VMWARE LVS Keepalived 部署

第一部分 环境准备
第二部分 使用Keepalived搭建双机热备
第三部分 配置Web节点服务器
第四部分 测试LVS+Keepalived高可用群集

VMware 测试 

本地只是测试  毕竟一般一台机器 开到4台虚拟机是很耗性能了 且cpu达 89%

为四台机器 分配IP 

VMWARE 网络配置 

第一部分 环境准备
一:调度器两台(双机热备)
系统:Linux—CentOS 7
IP地址:192.168.129.128(主)
IP地址:192.168.129.129(备)

二:Web服务器两台
系统:Linux—CentOS 7.4
IP地址:192.168.129.130(SERVER AA)
IP地址:192.168.129.131(SERVER BB)

第二部分 使用Keepalived搭建双机热备

第一步:配置主调度器
[root@dd01 ~]# modprobe ip_vs //加载ip_vs模块
[root@dd01 ~]# yum  install  ipvsadm
[root@dd01 ~]# yum -y install gcc gcc-c++ make popt-devel kernel-devel openssl-devel

获取 keepalived   http://www.keepalived.org/download.html  

[root@dd01 ~]# wget http://www.keepalived.org/software/keepalived-1.2.7.tar.gz

[root@dd01 ~]# tar zxf  keepalived-1.2.7.tar.gz

[root@dd01 ~]# cd  keepalived-1.2.7

# ./configure --prefix=/usr/local/keepalived

# make && make install


# cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/       #生成启动脚本
 
# cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/           #配置启动脚本参数

# mkdir /etc/keepalived                                        #创建默认的keepalived配置文件路径

# cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/    #将keepalived模板文件拷贝到新建的目录中去

# cp /usr/local/keepalived/sbin/keepalived /usr/sbin/                         #配置系统变量(这样当敲击keepalive的时候就不用打绝对路径了)

# echo "/etc/init.d/keepalived start" >> /etc/rc.local

# cat /etc/keepalived/keepalived.conf
 

! Configuration File for keepalived

global_defs {
   notification_email {         // 邮件提示 
  #   [email protected]
   #  [email protected]
    # [email protected]
   }
   notification_email_from [email protected]
#   smtp_server 192.168.200.1
#   smtp_connect_timeout 30
 #  router_id LVS_DEVEL
}

vrrp_instance VI_1 {   //定义VRRP热备实例
    state MASTER     //热备状态,MASTER表示主服务器,BACKUP表示从服务器 
    interface ens33    //承载VIP地址的物理接口
    virtual_router_id 51    //虚拟路由器的ID号,每个热备组保持一致
    priority 100     //优先级,数值越大优先级越高
    advert_int 1   //通告间隔秒数(心跳频率)
    authentication {    //热备认证信息,每个热备组保持一致
        auth_type PASS    //认证类型
        auth_pass 1111    //密码字符串
    }
    virtual_ipaddress {    //指定漂移地址(VIP),可以有多个
        192.168.129.100   // 该值本人是随意设置的 
 #       192.168.200.17
 #       192.168.200.18
    }
}

virtual_server 192.168.129.100 80 {  //虚拟服务器地址(VIP)、端口
    delay_loop 6   //健康检查的间隔时间(秒)
    lb_algo rr       //轮询(rr)调度算法
    lb_kind DR    //直接路由(DR)群集工作模式 可以了解lvs 的3种群集模式 
    persistence_timeout 50  //连接保持时间(秒) 长连接不受时间影响(没有实践过)
    protocol TCP    //应用服务器采用的是TCP协议

    real_server 192.168.129.130 80 {     //第一个Web服务器节点的地址、端口
        weight 1    weight 1 //节点的权重
        TCP_CHECK {    //健康检查方式
            connect_port 80     //检查的目标端口
            connect_timeout 3   //连接超时(秒)
            nb_get_retry 3    //重试次数
            delay_before_retry 3    //重试间隔
        }
    }

    real_server 192.168.129.131 80 {    //第二个Web服务器节点的地址、端口
        weight 1
        TCP_CHECK {
            connect_port 80
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

保存退出

#  service keepalived start

#  ip addr show dev ens33 //验证绑定了的虚拟地址

# ipvsadm -Ln 

# tail -f /var/log/messages

从调度器 只需要修改  

第三部分 配置Web节点服务器

第一步:配置SERVER AA服务器(192.168.129.130)

可以配置 httpd  

我配置的是 nginx  

在这里就不演示了 

直接访问

2.配置DR模式
[root@aa ~]# vi web.sh
#!/bin/bash
#haha
ifconfig lo:0 192.168.128.100 broadcast 192.168.129.100 netmask 255.255.255.255 up
route add -host 192.168.129.100 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
保存退出

[root@aa ~]# sh web.sh //执行脚本
[root@aa ~]# ifconfig //查看虚拟接口

第二步:配置SERVER BB服务器(192.168.129.131)

与 SERVER AA 一致 

验证两台Web服务器轮询工作

//由于设置了连接保持时间为50秒,一分钟后再重新访问该地址

不过 确实有成功过 

测到后面 机器直接卡死了

参考文档  http://blog.51cto.com/12227558/2096290

猜你喜欢

转载自blog.csdn.net/zhouyuqi1/article/details/81088028