第一部分 环境准备
第二部分 使用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 { // 邮件提示
# acassen@firewall.loc
# failover@firewall.loc
# sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
# 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