HA+LVS 高可用集群
keepalived:采用VRRP热备份协议,可一主多备,优先级不同。
NFS不做 NAT模式那一篇有
使用keepalived实现双机热备。
chkconfig NetworkManager off
chkconfig iptables off
cat /etc/sysconfig/selinux #例行公事四台都要这样。
装插件两台lvs都要装
yum -y install kernel-devel openssl-devel popt-devel ipvsadm keepalived
modprobe ip_vs #加载ipvs模块 两台lvs都需要
#修改内核参数( /etc/sysctl.conf)文件,关闭ICMP重定向。
vim /etc/sysctl.conf
sysctl -p
chkconfig --add keepalived
chkconfig keepalived on
#添加为系统服务 开机自启 两台都要
配置主调度器
/etc/keepalived/keepalived.conf # 主配文件 以下为主配文件的内容
! Configuration File for keepalived
global_defs {
notification_email {
[email protected].loc
[email protected]
[email protected]
}
notification_email_from [email protected] #邮箱
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id LVS_DEVEL1 #本路由器名称
}
vrrp_instance VI_1 { #定义vrrp热备份实例
state MASTER #热备状态 MASTER表示主服务器 BACKUP表示备份
interface eth0 #承载VIP地址的物理接口
virtual_router_id 51 #承载路由器的ID号,每个热备组要保持一致
priority 100 #优先级,越大优先级越高,也叫占先权
advert_int 1 #通告间隔秒数(心跳频率)
authentication { #认证信息 每个热备组保持一致
auth_type PASS #认证类型
auth_pass 1111 #密码字串
}
virtual_ipaddress { #指定漂移地址(vip)可以有多个
200.0.0.100
}
}
virtual_server 200.0.0.100 80 { #虚拟服务器(vip)地址、端口
delay_loop 15 #健康检查的间隔时间
lb_algo rr #rr轮询调度算法
lb_kind DR #直接路由(DR)群集模式
!persistence_timeout 50 #连接保持时间,启用就去掉感叹号,这个配置文件"!"代表注释
protocol TCP #应用服务采用TCP协议
real_server 200.0.0.4 80 { #第二个web节点地址、端口
weight 1 #权重
TCP_CHECK { #健康检查方式
connect_port 80 #检查的目标端口
connect_timeout 3 #连接超时(秒)
nb_get_retry 3 #重试次数
delay_before_retry 3 #重试间隔(秒)
}
}
real_server 200.0.0.3 80 { #第三个web节点地址、端口
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
service keepalived start
ip a #启动服务 查看漂移地址
从调度器配置
scp [email protected]:/etc/sysctl.conf /etc/
sysctl -p #从主服务器复制文件,刷新
scp [email protected]:/etc/keepalived/keepalived.conf /etc/keepalived/
这里把主配文件需要改的东西列出来
router_id LVS_DEVEL2 #改本路由器名字
state BACKUP #BACKUP从服务器模式
priority 90 #优先级 要低于主调度器
chkconfig --add keepalived
chkconfig keepalived on
service keepalived start
web1服务器的配置
#修改内核参数 /etc/sysctl.conf文件,关闭ARP应答。
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
sysctl -p
# ifcfg-lo:0配置群集ip地址200.0.0.100,子网掩码为255.255.255.255
DEVICE=lo:0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
IPADDR=200.0.0.100
NETMASK=255.255.255.255
ifup lo:0
#建立测试网页
echo 111111 > /var/www/html/index.html
service httpd start
route add -host 200.0.0.100 dev lo:0 #写路由记录,最好写进/etc/rc.local 开机自动运行
web 2 配置与web1基本相同
scp [email protected]:/etc/sysctl.conf /etc/
sysctl -p
scp [email protected]:/etc/sysconfig/network-scripts/ifcfg-lo:0 /etc/sysconfig/network-scripts/
ifup lo:0 #远程复制过来,启用
echo 55555555 > /var/www/html/index.html
service httpd start
route add -host 200.0.0.100 dev lo:0
client访问
分配给了不同的服务器
poweroff
#关闭主调度器
主出现问题 由从接管服务
#主正常之后,漂移地址变回来了。