LVS+Keepalived 群集
Keepalived起初是专门针对LVS设计的一款强大的复制工具。
主要用来提供故障切换和健康检查功能——判断LVS负载调度器、节点服务器的可用性,及时隔离并替换新的服务器。
测试环境:
调度器两台(双机热备)IP
192.168.30.30
192.168.30.31
Web服务器 IP
192.168.30.33
192.168.30.34
安装所需软件
centos7系统中已经自带modprobe ip_vs 只需打开即可使用
modprobe ip_vs #加载IP_vs模块
yum -y install gcc gcc-c++ make popt-devel kernel-devel openssl-devel ipvsadm #安装编译工具、插件和ipvsadm
在两台调度器上编译安装 keepalived
tar xf keepalived-1.4.2.tar.gz
cd keepalived-1.4.2
./configure --prefix=/
make && make install
cp keepalived/etc/init.d/keepalived /etc/init.d/ #加入系统管理服务
[root@lin3036 keepalived-1.4.2]# systemctl enable keepalived #设为开机自启
另一台安装方式相同
修改第一台master keepalived.conf文件
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 ens33 #承载VIP地址的物理接口
virtual_router_id 51 #虚拟路由器的ID号,每个热备组保持一致
priority 110 #优先级,数值越大优先级越高
advert_int 1 #通告间隔秒数(心跳频率)
authentication { #热备认证信息,每个热备组保持一致
auth_type PASS #认证类型
auth_pass 6666 #密码字符串
}
virtual_ipaddress { #指定漂移地址(VIP),可以有多个
192.168.30.100
}
}
virtual_server 192.168.30.100 80 { #虚拟服务器地址(VIP)、端口
delay_loop 6 #健康检查的间隔时间(秒)
lb_algo rr #轮询(rr)调度算法
lb_kind DR #直接路由(DR)群集工作模式
persistence_timeout 60 #连接保持时间(秒)
protocol TCP #应用服务器采用的是TCP协议
real_server 192.168.30.33 80 { #第一个Web服务器节点的地址、端口
weight 1 #节点的权重
TCP_CHECK { #健康检查方式
connect_port 80 #检查的目标端口
connect_timeout 3 #连接超时(秒)
nb_get_retry 3 #重试次数
delay_before_retry 3 #重试间隔
}
}
real_server 192.168.30.34 80 { #第二个Web服务器节点的地址、端口
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
[root@dd01 keepalived-1.4.2]# service keepalived start
[root@dd01 keepalived-1.4.2]# ip addr show dev ens33 //验证绑定了的虚拟地址
备服务配置keepalived.conf文件
! Configuration File for keepalived
global_defs {
router_id LVS_02
}
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 51
priority 105
advert_int 1
authentication {
auth_type PASS
auth_pass 6666
}
virtual_ipaddress {
192.168.30.100
}
}
virtual_server 192.168.30.100 80 {
delay_loop 6
lb_algo rr
lb_kind DR
persistence_timeout 60
protocol TCP
real_server 192.168.30.33 80 {
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.30.34 80 {
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
启动服务
配置主服务器LVS
[root@lin3034 keepalived-1.4.2]# modprobe ip_vs #加载ip_vs模块
配置主服务器LVS
备服务器相同
web服务器也要虚拟出192.168.30.100这个虚拟VIP
ifconfig lo:0 192.168.30.100 broadcast 192.168.30.100 netmask 255.255.255.255 up
route add -host 192.168.30.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 刷新
查看网卡状态
另一台web服务器配置相同
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。