• LVS 负载均衡集群


    目录

    LVS负载均衡群集部署

    1.DR模式

    1.配置负载调度器

    2.部署共享存储nfs服务器

    3.配置节点服务器

    2.NAT模式

    0.虚拟机预览

    1.部署共享存储(NFS服务器)

    2.web节点服务器

    1.第一台web节点服务器

    2.第二台web节点服务器

    3.配置负载调度器 NAT

    1.配置SNAT转发规则

    2.加载LVS内核模块

    3. 安装ipvsadm 管理工具

    4.配置负载分配策略


    LVS调度器用的调度方法基本分为两类:
    固定调度算法:rr,wrr,dh,sh
    rr:轮询算法,将请求依次分配给不同的rs节点,即RS节点中均摊分配。适合于RS所有节点处理性能接近的情况。
    wrr:加权轮训调度,依据不同RS的权值分配任务。权值较高的RS将优先获得任务,并且分配到的连接数将比权值低的RS更多。相同权值的RS得到相同数目的连接数。
    dh:目的地址哈希调度(destination hashing)以目的地址为关键字查找一个静态hash表来获得所需RS。
    sh:源地址哈希调度(source hashing)以源地址为关键字查找一个静态hash表来获得需要的RS。

    动态调度算法:wlc,lc,lblc
    wlc:加权最小连接数调度,假设各台RS的权值依次为Wi,当前tcp连接数依次为Ti,依次去Ti/Wi为最小的RS作为下一个分配的RS。
    lc:最小连接数调度(least-connection),IPVS表存储了所有活动的连接。LB会比较将连接请求发送到当前连接最少的RS。
    lblc:基于地址的最小连接数调度(locality-based least-connection):将来自同一个目的地址的请求分配给同一台RS,此时这台服务器是尚未满负荷的。否则就将这个请求分配给连接数最小的RS,并以它作为下一次分配的首先考虑。

    LVS负载均衡群集部署

    1.DR模式

    原理:首先负载均衡器接收到客户的请求数据包时,根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。然后负载均衡器就把客户端发送的请求数据包的目标MAC地址改成后端真实服务器的MAC地址(R-MAC)。真实服务器响应完请求后,查看默认路由,把响应后的数据包直接发送给客户端,不需要经过负载均衡器。

    优点:负载均衡器只负责将请求包分发给后端节点服务器,而RS将应答包直接发给用户。所以,减少了负载均衡器的大量数据流动,负载均衡器不再是系统的瓶颈,也能处理很巨大的请求量。

    缺点:需要负载均衡器与真实服务器RS都有一块网卡连接到同一物理网段上,必须在同一个局域网环境。

    1.配置负载调度器

    1. modprobe ip_vs
    2. cat /proc/net/ip_vs
    3. yum -y install ipvsadm
    1. cd /etc/sysconfig/network-scripts/
    2. cp ifcfg-ens33 ifcfg-ens33:0
    3. vim ifcfg-ens33:0
    4. DEVICE=ens33:0
    5. ONBOOT=yes
    6. IPADDR=192.168.64.100
    7. NETMASK=255.255.255.255
    8. # 配置虚拟 IP 地址
    9. ifup ens33:0
    10. ifconfig ens33:0

    1. vim /etc/sysctl.conf
    2. # 编辑内核参数
    3. net.ipv4.ip_forward = 0
    4. net.ipv4.conf.all.send_redirects = 0
    5. net.ipv4.conf.default.send_redirects = 0
    6. net.ipv4.conf.ens33.send_redirects = 0
    7. sysctl -p
    8. # 刷新参数

    1. ipvsadm-save > /etc/sysconfig/ipvsadm
    2. systemctl start ipvsadm
    3. ipvsadm -C
    4. ipvsadm -A -t 192.168.64.100:80 -s rr
    5. ipvsadm -a -t 192.168.64.100:80 -r 192.168.64.40:80 -g
    6. ipvsadm -a -t 192.168.64.100:80 -r 192.168.64.50:80 -g
    7. ipvsadm
    8. ipvsadm -ln
    9. # 查看节点状态

    2.部署共享存储nfs服务器

    1. yum -y install nfs-utils rpcbind
    2. mkdir /opt/pc /opt/mo
    3. chmod 777 /opt/pc /opt/mo
    4. vim /etc/exports
    5. /usr/share *(ro,sync)
    6. /opt/pc 192.168.80.0/24(rw,sync)
    7. /opt/mo 192.168.80.0/24(rw,sync)
    8. # 配置nfs共享文件
    9. systemctl start rpcbind.service
    10. systemctl start nfs.service

    3.配置节点服务器

    给2个节点服务器配置虚拟网卡(两个节点进行以下操作)

    1. cd /etc/sysconfig/network-scripts/
    2. cp ifcfg-lo ifcfg-lo:0
    3. vim ifcfg-lo:0
    4. DEVICE=lo:0
    5. ONBOOT=yes
    6. IPADDR=192.168.64.100
    7. NETMASK=255.255.255.255
    8. systemctl restart network
    9. ifconfig lo:0
    10. route add -host 192.168.64.100 dev lo:0
    11. vim /etc/rc.local
    12. /sbin/route add -host 192.168.64.100 dev lo:0
    1. vim /etc/sysctl.conf
    2. net.ipv4.conf.lo.arp_ignore = 1
    3. net.ipv4.conf.lo.arp_announce = 2
    4. net.ipv4.conf.all.arp_ignore = 1
    5. net.ipv4.conf.all.arp_announce = 2
    6. sysctl -p
    7. yum -y install nfs-utils rpcbind httpd
    8. systemctl start rpcbind
    9. systemctl start httpd

    第一个节点服务器

    1. mkdir /var/www/html -p
    2. mount.nfs 192.168.64.20:/opt/pc /var/www/html
    3. echo 'this is pc web!' > /var/www/html/index.html

    第二个节点服务器 

    1. mkdir /var/www/html -p
    2. mount.nfs 192.168.64.20:/opt/mo /var/www/html
    3. echo 'this is mo web!' > /var/www/html/index.html

    2.NAT模式

    原理:首先负载均衡器接收到客户的请求数据包时,根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。然后负载均衡器就把客户端发送的请求数据包的目标IP地址及端口改成后端真实服务器的IP地址(RIP)。真实服务器响应完请求后,查看默认路由,把响应后的数据包发送给负载均衡器,负载均衡器在接收到响应包后,把包的源地址改成虚拟地址(VIP)然后发送回给客户端。

    优点:集群中的服务器可以使用任何支持TCP/IP的操作系统,只要负载均衡器有一个合法的IP地址。

    缺点:扩展性有限,当服务器节点增长过多时,由于所有的请求和应答都需要经过负载均衡器,因此负载均衡器将成为整个系统的瓶颈。
     

    0.虚拟机预览

    1.部署共享存储(NFS服务器)

    1. yum install nfs-utils rpcbind -y
    2. # 安装nfs
    3. systemctl start rpcbind.service
    4. systemctl start nfs.service
    5. # 启动
    6. systemctl enable nfs.service
    7. systemctl enable rpcbind.service
    8. # 设为开机自启
    1. mkdir /opt/pc /opt/ben
    2. chmod 777 /opt/pc /opt/ben
    3. # 创建目录并给予权限
    4. echo 'this is pc web!' > /opt/pc/index.html
    5. echo 'this is ben web!' > /opt/ben/index.html
    6. # 设置网页内容
    1. vim /etc/exports
    2. # 输入以下内容
    3. /usr/share *(ro,sync)
    4. /opt/pc 192.168.64.0/24(rw,sync)
    5. /opt/ben 192.168.64.0/24(rw,sync)

    1. exportfs -rv
    2. # 发布共享

    2.web节点服务器

    1. yum install httpd -y
    2. # 安装httpd
    3. systemctl start httpd.service
    4. systemctl enable httpd.service
    5. # 启动并设为开机自启
    1. yum install nfs-utils rpcbind -y
    2. # 安装nfs
    3. showmount -e 192.168.64.50
    4. # 查询NFS服务器上已经导出的所有文件系统

    1. systemctl start rpcbind
    2. systemctl enable rpcbind
    3. # 启动并开机自启
    1.第一台web节点服务器
    1. mount.nfs 192.168.64.50:/opt/pc /var/www/html
    2. # 将nfs服务器的pc目录挂载到/var/www/html
    3. vim /etc/fstab
    4. # 修改配置文件以永久挂载
    5. 192.168.64.50:/opt/pc /var/www/html nfs defaults,_netdev 0 0
    6. # nfs服务器共享目录 挂载到本地的位置 文件系统类型 挂载选项 转储频率 自检次序

    2.第二台web节点服务器
    1. mount.nfs 192.168.64.50:/opt/ben /var/www/html
    2. # 将nfs服务器的ben目录挂载到/var/www/html
    3. vim /etc/fstab
    4. # 修改配置文件以永久挂载
    5. 192.168.64.50:/opt/ben /var/www/html nfs defaults,_netdev 0 0
    6. # nfs服务器共享目录 挂载到本地的位置 文件系统类型 挂载选项 转储频率 自检次序

    3.配置负载调度器 NAT

    1.配置SNAT转发规则
    1. vim /etc/sysctl.conf
    2. # 修改配置文件
    3. net.ipv4.ip_forward = 1
    4. sysctl -p
    5. # 读取变量

    1. iptables -t nat -F
    2. # 清空nat表
    3. iptables -F
    4. # 删除默认链
    5. iptables -t nat -A POSTROUTING -s 192.168.64.0/24 -o ens36 -j SNAT --to-source 12.0.0.1
    6. # 设置snat链

    2.加载LVS内核模块
    1. modprobe ip_vs
    2. # 加载 ip_vs模块
    3. cat /proc/net/ip_vs
    4. # 查看 ip_vs版本信息

    3. 安装ipvsadm 管理工具
    1. yum -y install ipvsadm
    2. # 安装ipvsadm 管理工具
    3. ipvsadm-save > /etc/sysconfig/ipvsadm
    4. # 启动服务前须保存负载分配策略
    5. systemctl start ipvsadm.service
    4.配置负载分配策略
    1. ipvsadm -C
    2. # 清除原有策略
    3. ipvsadm -A -t 12.0.0.1:80 -s rr
    4. ipvsadm -a -t 12.0.0.1:80 -r 192.168.64.30:80 -m -w 1
    5. ipvsadm -a -t 12.0.0.1:80 -r 192.168.64.40:80 -m -w 1
    6. ipvsadm
    7. # 启用策略

    1. ipvsadm -ln
    2. # 查看节点状态,Masq代表 NAT模式
    3. ipvsadm-save > /opt/ipvsadm
    4. # 保存策略
    5. ipvsadm-save > /etc/sysconfig/ipvsadm

  • 相关阅读:
    自定义MVC增删改查
    【毕业设计】单片机与NBIOT通信模块 - 单片机 物联网 stm32
    webpack拓展篇(六十八):bundle 和 bundless 的差异
    HTTPSConnectionPool
    【动画进阶】有意思的 Emoji 3D 表情切换效果
    CM72 另类加法
    LogStash
    穿越时空,探索未来的云计算世界
    用Python操控Minecraft我的世界 1.安装Spigot服务器并添加RaspberryJuice插件
    链表例题小总结:
  • 原文地址:https://blog.csdn.net/akk_dian/article/details/132811640