1、 keepalived软件安装
yum install keepalived -y
注:
/etc/keepalived/keepalived.conf #keepalived服务主配置文件
/etc/rc.d/init.d/keepalived #服务启动脚本
2、配置文件说明
1-13行表示全局配置
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 #定义路由标识信息,相同局域网唯一
}
15-30行 虚拟ip配置 brrp
vrrp_instance VI_1 { #定义实例
state MASTER #状态参数 master/backup 只是说明
interface eth0 #虚IP地址放置的网卡位置
virtual_router_id 51 #同一家族要一直,同一个集群id一致
priority 100 # 优先级决定是主还是备 越大越优先
advert_int 1 #主备通讯时间间隔
authentication { # ↓
auth_type PASS #↓
auth_pass 1111 #认证
} #↑
virtual_ipaddress { #↓
192.168.200.16 设备之间使用的虚拟ip地址
192.168.200.17
192.168.200.18
}
}
实验:
keepalived热备份(双机热备)
主keepalived服务器:192.168.80.180
备keepalived服务器:192.168.80.105
修改后的配置如下:
主负载均衡服务器配置
! Configuration File for keepalived
global_defs {
router_id lb01
}
vrrp_instance VI_1 {
state MASTER
interface ens32
virtual_router_id 51
priority 150
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.80.188
}
}
备负载均衡服务器配置
! Configuration File for keepalived
global_defs {
router_id lb02
}
vrrp_instance VI_1 {
state BACKUP
interface ens32
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.80.188
}
}
service keepalived start 启动keepalived
ip addr show ens32
cat /var/log/messages 用日志查看
主:
从:
-----
【总结】配置文件修改
Keepalived主备配置文件区别:
1. router_id 信息不一致
2. state 状态描述信息不一致
3. priority 主备竞选优先级数值不一致
4.你的物理网卡名字 一定要先ifconfig看一下 是多少 interface后面就写多少
到此,keepalived主备部署完成。
--
-----
------------------------------------------------------------------------------------------------------------------------------------------
环境:
主keepalived服务器:192.168.80.100
从keepalived服务器: 192.168.80.101
Web服务器:192.168.80.102
192.168.80.103
windows7 :192.168.80.20
主从keepalived服务器上:
modprobe ip_vs
yum install ipvsadm -y
yum -y install gcc gcc-c++ make popt-devel kernel-devel openssl-devel
tar xf keepalived-1.4.2.tar.gz -C /opt
cd keepalived-1.4.2/
./configure --prefix=/
make && make install
cp keepalived/etc/init.d/keepalived /etc/init.d/ //加入系统管理服务
systemctl enable keepalived
在主服务器上
vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id LVS_01 //本服务器的名称
}
vrrp_instance VI_1 { //定义VRRP热备实例
state MASTER //热备状态,MASTER表示主服务器,BACKUP表示从服务器
interface ens32 //承载VIP地址的物理接口
virtual_router_id 51 //虚拟路由器的ID号,每个热备组保持一致
priority 110 //优先级,数值越大优先级越高
advert_int 1 //通告间隔秒数(心跳频率)
authentication { //热备认证信息,每个热备组保持一致
auth_type PASS //认证类型
auth_pass 6666 //密码字符串
}
virtual_ipaddress { //指定漂移地址(VIP),可以有多个
192.168.80.188
}
}
virtual_server 192.168.80.188 80 { //虚拟服务器地址(VIP)、端口
delay_loop 6 //健康检查的间隔时间(秒)
lb_algo rr //轮询(rr)调度算法
lb_kind DR //直接路由(DR)群集工作模式
persistence_timeout 60 //连接保持时间(秒)
protocol TCP //应用服务器采用的是TCP协议
real_server 192.168.80.102 80 { //第一个Web服务器节点的地址、端口
weight 1 //节点的权重
TCP_CHECK { //健康检查方式
connect_port 80 //检查的目标端口
connect_timeout 3 //连接超时(秒)
nb_get_retry 3 //重试次数
delay_before_retry 3 //重试间隔
}
}
real_server 192.168.80.103 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 ens32
ipvsadm –Ln //查看LVS虚拟服务器
cat /var/log/messages
配置从keepalived服务器:
vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id LVS_02
}
vrrp_instance VI_1 {
state BACKUP
interface ens32
virtual_router_id 51
priority 105
advert_int 1
authentication {
auth_type PASS
auth_pass 6666
}
virtual_ipaddress {
192.168.80.188
}
}
virtual_server 192.168.80.188 80 {
delay_loop 6
lb_algo rr
lb_kind DR
persistence_timeout 60
protocol TCP
real_server 192.168.80.102 80 {
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.80.103 80 {
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
service keepalived start
ipvsadm –Ln
验证热备结果
配置web节点服务器
第一台web节点:
yum install -y httpd
vi /etc/httpd/conf/httpd.conf
cd /var/www/html/
echo "<h1>SERVER AA</h1>" > index.html
service httpd start
vi web.sh
#!/bin/bash
#haha
ifconfig lo:0 192.168.80.188 broadcast 192.168.80.188 netmask 255.255.255.255 up
route add -host 192.168.80.188 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
sh web.sh
ifconfig
第二台web节点:
yum install -y httpd
vi /etc/httpd/conf/httpd.conf
cd /var/www/html/
echo "<h1>SERVER BB</h1>" > index.html
service httpd start
vi web.sh
#!/bin/bash
#haha
ifconfig lo:0 192.168.80.188 broadcast 192.168.80.188 netmask 255.255.255.255 up
route add -host 192.168.80.188 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
sh web.sh
ifconfig
测试LVS+Keepalived高可用群集
在客户端的浏览器中,能够通过LVS+Keepalived群集的漂移地址(192.168.80.100)正常访问web页面内容,则验证群集构建成功。
1. 验证两台Web服务器轮询工作
Win7访问http://192.168.80.188
2. 模拟主调度器故障,验证结果
systemctl stop keepalived
//主调度器keepalived停止工作
3、模拟Web服务器aa故障
LVS+Keepalived已成功搭建并测试完成