您好,登录后才能下订单哦!
密码登录
            
            
            
            
        登录注册
            
            
            
        点击 登录注册 即表示同意《亿速云用户服务条款》
        使用 keepalived 实现 LVS 双机热备。
| 主机 | 操作系统 | IP地址 | 主要软件 | 
|---|---|---|---|
| LVS 负载调度器 | CentOS 7.3 x86_64 | 192.168.217.128 | keepalived | 
| LVS 负载调度器 | CentOS 7.3 x86_64 | 192.168.217.129 | keepalived | 
| web 服务器 1 | CentOS 7.3 x86_64 | 192.168.217.130 | http | 
| web 服务器 2 | CentOS 7.3 x86_64 | 192.168.217.131 | http | 
| NFS 共享储存 | CentOS 7.3 x86_64 | 192.168.217.132 | |
| 客户机 | Windows 7 | 192.168.217.133 | 
yum install keepalived ipvsadm -y       #安装lvs管理工具和keepalived
cd /etc/sysconfig/network-scripts/  
cp ifcfg-ens32 ifcfg-ens32:0                #复制现有的网卡做虚拟网卡 ,添加以下内容
DEVICE=ens32:0
ONBOOT=yes
IPADDR=192.168.217.10                   #虚拟网卡地址 VIP 
NETMASK=255.255.255.255ifup ens32:0                                        #开启虚拟网卡vim /etc/sysctl.conf
net.ipv4.ip_forward=1                        #开启路由转发功能
#proc响应关闭重定向功能
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens32.send_redirects = 0modprobe ip_vs                                   #加载LVS模板cd /etc/init.d/
vim dr.sh
#!/bin/bash
GW=192.168.217.1            #网关      
VIP=192.168.217.10          #虚拟IP
RIP1=192.168.217.130      #web服务器1地址
RIP2=192.168.217.131      #web服务器2地址
case "$1" in
start)
    /sbin/ipvsadm --save > /etc/sysconfig/ipvsadm           #在centos 7 以上的版本 需要保存策略 才能开启服务
    systemctl start ipvsadm                                               #开启服务
    /sbin/ifconfig ens32:0 $VIP broadcast $VIP netmask 255.255.255.255 broadcast $VIP up
    /sbin/route add -host $VIP dev ens32:0                      #添加网段
    /sbin/ipvsadm -A -t $VIP:80 -s rr                                 #添加虚拟服务机
    /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g                 #添加真实服务机   使用DR群集模式
    /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g
    echo "ipvsadm starting --------------------[ok]"
    ;;
    stop)
    /sbin/ipvsadm -C                                                          #清除节点服务器
    systemctl stop ipvsadm                                               #关闭服务
    ifconfig ens32:0 down                                                 #关闭虚拟网卡
    route del $VIP                                                             #删除网段
    echo "ipvsamd stoped----------------------[ok]"
     ;;
    status)
    if [ ! -e /var/lock/subsys/ipvsadm ];then    #如果没有匹配到/var..../ipvsadm这个文件 则 stoped  否则 runing 
    echo "ipvsadm stoped---------------"
    exit 1
            else
            echo "ipvsamd Runing ---------[ok]"
    fi
    ;;
    *)
    echo "Usage: $0 {start|stop|status}"
    exit 1
    esac
    exit 0chmod +x dr.sh             #添加权限
service dr.sh start         #开启服务注:可以不做 keepalived ,做 web 服务器 ,测试能否调度 。
vim /etc/keepalived/keepalived.conf
global_defs {
...
smtp_server 127.0.0.1         #指向本地
router_id LVS_01                #主调度服务器名称,要与从调度服务器不同名称
...           
}
vrrp_instance VI_1 {
state MASTER             #从调度服务器是BACKUP
virtual_router_id 10      #组号  主从组号要相同 
...
auth_pass abc123       #验证密码  主从相同
priority 100                  #优先级大的为主,从优先级不能大于主
...
virtual_ipaddress {       #虚拟IP地址池
    192.168.217.10
}
...
virtual_server 192.168.217.10 80 {    #虚拟IP地址
delay_loop 6
lb_algo rr                           #负载调度算法
lb_kind DR                        #群集模式
...
real_server 192.168.217.130 80 {    #web服务器地址
    weight 1                              #权重
    TCP_CHECK {                   #检查方式
        connect_port 80             #监听端口
        connect_timeout 3         #链接超时(秒)
        nb_get_retry 3               #重试次数
        delay_before_retry 3     #重试间隔(秒)
    }   
}   
real_server 192.168.1217.131 80 {
    weight 1
    TCP_CHECK {
        connect_port 80             
        connect_timeout 3
        nb_get_retry 3
        delay_before_retry 3
    }   
}    
}systemctl start keepalived           #开启服务
ip addr show dev ens32:0           #查看虚拟网卡
systemctl stop  firewalld.service  # 关闭防火墙注:主、从调度器名称要不同、组号要相同、验证密码相同、优先级不能大于主 。
主从调度器除了以上不同 ,其他的配置都相同 ,IP地址也不同 ,虚拟IP相同 。
yum install http -y
systemctl start httpd.service 
systemctl stop  firewalld.service
mount.nfs 192.168.217.132:/opt/benet /var/www/html   #挂载nfs提供的文件
cd /var/www/html/
echo "this is accp web" > index.html    #添加不同的测试首页 ,便于区别 。cd /etc/sysconfig/network-scripts
cp ifcfg-lo ifcfg-lo:0                      #复制回环地址 做虚拟IPvim ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.217.10
NETMASK=255.255.255.255
ONBOOT=yesifup lo:0            #启动虚拟地址 会把原本地址覆盖cd /etc/init.d/
vim web.sh
#!/bin/bash
VIP=192.168.217.10
    case "$1" in
    start)
            ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP   #开启虚拟IP
            /sbin/route add -host $VIP dev lo:0                                           #添加网段
            echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
            echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
            echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
            echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
            sysctl -p >/dev/null 2>&1                                                            
            echo "RealServer Start OK "
            ;;
            #以上内容是只接受调度服务器给予的回馈 
    stop)
            ifconfig lo:0 down
            route del $VIP /dev/null 2>&1
            echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
            echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
            echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
            echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
            echo "RealServer Stopd"
            ;;
    *)
            echo "Usage: $0 {start|stop}"
            exit 1
    esac
    exit 0chmod +x web.sh              
service web.sh start           注:web 服务器配置都一样 。
使用win访问虚拟IP ,如果没问题 ,把 LVS 负载调度器 1 的虚拟网关关掉 ,ifdown ens32:0 , 继续测试 ,如果还能访问 ,则群集搭建成功 。
注:如果刷新不出 ,可以重启ipvsadm 服务 ,或者清除浏览器缓存 。
注:如果有错误的地方 ,欢迎指出 。谢谢观赏
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。