• CentOS 7 搭建 LVS集群 DR模式


    工作原理

    1. 客户端发送请求到 Director Server (负载均衡器),请求的数据报文(源IP是CIP,目标IP是VIP)到达内核空间
    2. Director Server 和 Real Server 在同一个网络中,数据通过二层数据链路层来传输
    3. 内核空间判断数据包的目标IP是本机IP,此时IPVS比对数据包请求的服务是否是集群服务,是集群服务就重新封装数据包。修改源 MAC 地址为 Director Server 的 MAC 地址,修改目标 MAC 地址为 Real Server 的 MAC 地址,源IP地址与目标IP地址没有改变,然后将数据包发送给 Real Server
    4. 到达 Real Server 的请求报文的 MAC 地址是自身的 MAC 地址,就接收此报文。数据包重新封装报文(源IP地址为VIP,目标IP 为CIP),将响应报文通过IO接口传送给物理网卡然后向外发出
    5. Real server 直接将响应报文传送到客户端

    环境

    主机信息主机服务
    192.168.2.200虚拟IP(VIP)
    192.168.2.100lvs调度器(DS)
    192.168.2.111web服务器1(RS)
    192.168.2.112web服务器2(RS)

    一、lvs 调度器安装 

    1、安装ipvsadm工具

    1. # 安装
    2. yum install ipvsadm
    3. # 启动
    4. systemctl start ipvsadm

    2、永久创建虚拟IP

    1. # 临时创建虚拟IP
    2. ifconfig ens33:0 192.168.2.200 netmask 255.255.255.0
    3. cd /etc/sysconfig/network-scripts/
    4. cp ifcfg-ens33 ifcfg-ens33:0
    5. # 修改NAME,DEVICE名称,删除UUID,DNS,网关
    6. vim ifcfg-ens33:0
    7. NAME=ens33:0
    8. DEVICE=ens33:0
    9. ONBOOT=yes
    10. IPADDR=192.168.2.200
    11. NETMASK=255.255.255.0

    3、重启网络服务

    systemctl restart network 

    4、调整 proc 响应参数 

    1. # 对于 DR 群集模式来说,由于 LVS 负载调度器和各节点需要共用 VIP 地址
    2. # 需要关闭 ICMP 的重定向,不充当路由器
    3. cat <<EOF > /etc/sysctl.d/lvs-dr.conf
    4. net.ipv4.ip_forward = 0
    5. net.ipv4.conf.all.send_redirects = 0
    6. net.ipv4.conf.default.send_redirects = 0
    7. net.ipv4.conf.ens33.send_redirects = 0
    8. EOF
    9. # 动态加载ip_vs模块
    10. modprobe ip_vs
    11. # 刷新配置
    12. sysctl -p /etc/sysctl.d/lvs-dr.conf

    5、配置策略

    1. # 清空策略 
    2. ipvsadm -C
    3. -A: 添加虚拟服务器
    4. -a:添加节点
    5. -t:指定vip及tcp端口
    6. -s:指定算法
    7. rr:轮询
    8. -r:指定节点ip及端口
    9. -g:表示使用DR模式
    10. -w:设置权重
    11. ipvsadm -A -t 192.168.2.200:80 -s rr
    12. ipvsadm -a -t 192.168.2.200:80 -r 192.168.2.111:80 -g -w 1
    13. ipvsadm -a -t 192.168.2.200:80 -r 192.168.2.112:80 -g -w 1
    14. # 保存
    15. ipvsadm-save > /etc/sysconfig/ipvsadm
    16. # 查看策略
    17. ipvsadm -ln

    二、Web 服务器安装(2台都要安装)

    1、安装并启动 httpd

    1. yum install httpd -y
    2. systemctl start httpd 

    2、修改主页内容

    1. # 修改 web 服务器 1
    2. vim /var/www/html/index.html
    3. this is 192.168.2.111
    4. # 修改 web 服务器 2
    5. vim /var/www/html/index.html
    6. this is 192.168.2.112

    3、添加回环网卡

    1. cd /etc/sysconfig/network-scripts/
    2. cp ifcfg-lo ifcfg-lo:0
    3. # 修改回环网卡名,IP地址,子网掩码
    4. vim ifcfg-lo:0
    5. DEVICE=lo:0
    6. IPADDR=192.168.2.200
    7. NETMASK=255.255.255.255
    8. NETWORK=127.0.0.0
    9. # If you're having problems with gated making 127.0.0.0/8 a martian,
    10. # you can change this to something else (255.255.255.255, for example)
    11. #BROADCAST=127.255.255.255
    12. ONBOOT=yes
    13. #NAME=loopback
    14. # 重启网络服务
    15. systemctl restart network

    4、设置路由

    1. route add -host 192.168.2.200 dev lo:0
    2. route -n
    3. # 开机启动
    4. vim /etc/rc.d/rc.local
    5. /usr/sbin/route add -host 192.168.2.200 dev lo:0
    6. chmod +x /etc/rc.d/rc.local

    5、调整 proc 响应参数 

    1. # 系统只响应目的IP为本地IP的ARP请求
    2. # 系统不使用IP包的源地址来设置ARP请求的源地址,而选择发送接口的IP地址
    3. cat <<EOF > /etc/sysctl.d/lvs-dr.conf
    4. net.ipv4.conf.lo.arp_ignore = 1
    5. net.ipv4.conf.lo.arp_announce = 2
    6. net.ipv4.conf.all.arp_ignore = 1
    7. net.ipv4.conf.all.arp_announce = 2
    8. EOF
    9. # 刷新配置
    10. sysctl -p /etc/sysctl.d/lvs-dr.conf

    6、访问

  • 相关阅读:
    Text-based diagram tool
    Oracle数据库从入门到精通系列之十二:段
    状态栏QStatusBar
    电商新趋势:Starday拿下黑色星期五的制胜法宝是物流速度
    VUE2中routes和router,$route和$router的区别
    Leetcode 283. Move Zeroes
    贾扬清开源 AI 框架 Caffe | 开源英雄
    揭秘 · 机器人酒店
    【通信】非正交多址接入(NOMA)和正交频分多址接入(OFDMA)的性能对比附matlab代码
    Python 搭建编程环境
  • 原文地址:https://blog.csdn.net/mshxuyi/article/details/126152180