三期总目录链接
?一、Keepalived双机热备
? ? ? ?Keepalived起初是专门针对LVS设计的一款强大的辅助工具,主要用来提供故障切换(Failover)和健康检查(Health?Checking)功能——判断LVS负载调度器、节点服务器的可用性,及时隔离并替换为新的服务器,当故障主机恢复后将其重新加入群集。
(一)Keepalived概述
Keepalived的热备方式
Keepalived:采用VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议)以软件方式实现Linux服务器的多机热备功能
VRRP:是针对路由器的一种备份解决方案:一主 + 多备? ?共用同一个IP地址,但优先级不同(优先级决定接替顺序),其他路由器处于冗余状态;如使用多台备用服务器,state均设为BACKUP,但各自的优先级priority不要相同
? ? ?热备组内每台都有可能成为主路由,虚拟路由器的ip地址(VIP)可以在热备组内的路由器之间进行转移,也被称为:漂移ip地址,漂移地址不需要手动建立虚拟接口配置文件
(二)Keepalived实现双机热备
VRRP的热备方式,Keepalived可以用做服务器故障切换,常用于双机热备,在双机热备的方案中,故障切换主要针对虚拟IP地址的漂移来实现,因此能够适用于各种应用服务器(如:web、ftp、fail、还是ssh、dns等)
案例:
主服务器地址:192.168.1.12/24? ?网关地址192.168.1.12
备用服务器地址:192.168.1.13/24? 网关地址192.168.1.12
漂移集群vip地址:192.168.1.87/24
1、主服务器配置
网卡配置(略)防火墙关闭(略)selinux关闭(略)
Keepalived?服务的配置目录位于/etc/keepalived/ keepalived.conf:主配置文件 另外包括一个子目录samples/,提供了许多配置样例作为参考。 在配置文件中,使用??global_defs{...}??区段指定全局参数,使用? vrp_instancc?实例名称??区段指定VRRP热备参数
[root@C-12 ~]# yum -y install keepalived ipvsadm httpd #安装
......
...
[root@C-12 ~]# systemctl enable keepalived #设置为开机自启
Created symlink from /etc/systemd/system/multi-user.target.wants/keepalived.service to /usr/lib/systemd/system/keepalived.service.
[root@C-12 ~]# vim /var/www/html/index.html
<h1>192.168.1.12今天星期日休息<h1/>
[root@C-12 ~]# mv /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak #修改配置文件名称进行备份
[root@C-12 ~]# vim /etc/keepalived/keepalived.conf #新建配置文件
global_defs {
router_id HA_TEST_R1 #本路由器的名称
}
vrrp_instance VI_1 { #定义VRRP热备实例
state MASTER #MASTER表示主服务器
interface ens33 #承载VIP地址的物理接口
virtual_router_id 1 #虚拟路由器的ID号,每个热备组保持一致
priority 100 #优先级,数值越大优先级越高
advert_int 1 #通告间隔秒数(心跳频率)
authentication { #认证信息,每个热备组保持一致
auth_type PASS #认证类型
auth_pass 123.com #密码字串
}
virtual_ipaddress {
192.168.1.87 #指定漂移地址(VIP)可以有多个
}
}
[root@C-12 ~]# systemctl start keepalived #启动
[root@C-12 ~]# systemctl start httpd #启动
[root@C-12 ~]# ip addr show dev ens33 #使用ip命令进行查看
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:20:f8:34 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.12/24 brd 192.168.1.255 scope global ens33
valid_lft forever preferred_lft forever
inet 192.168.1.87/32 scope global ens33 #自动设置的VIP地址
2、备用服务器
?在同一个Keepalived热备组内,所有配置文件基本相同,包括虚拟路由器的ID号、认证信息、漂移地址、心跳频率等。不同之处在于路由器名称,热备状态、优先级 路由器名称(router_id):建议为每个参与热备的服务器指定不同的名称 热备状态(state):至少应有一台主服务器,将状态设为MASTER;可以有多台备用的服务器,将状态设为BACKUP 优先级(priority):数值越大则取得 VIP控制权的优先级越高,因此主服务器的优先级应设为最高;其他备用服务器的优先级可依次递减,但不要相同,以免在争夺VIP控制权时发生冲突
?
[root@C-13 ~]# yum -y install keepalived ipvasdm httpd
.......
...
[root@C-13 ~]# systemctl enable keepalived
Created symlink from /etc/systemd/system/multi-user.target.wants/keepalived.service to /usr/lib/systemd/system/keepalived.service.
[root@C-13 ~]# echo "<h1>192.168.1.13今天是阴天</h1>" >/var/www/html/index.html #测试首页
[root@C-13 ~]# mv /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak
[root@C-13 ~]# echo ' #编辑内容
> global_defs {
> router_id HA_TEST_R2 #修改本路由器名称
> }
>
>
> vrrp_instance VI_1 {
> state BACKUP #
> interface ens33
> virtual_router_id 1
> priority 90 #修改优先级
> advert_int 1
> authentication {
> auth_type PASS
> auth_pass 123.com
> }
> virtual_ipaddress {
> 192.168.1.87
>
> }
> }
> ' > /etc/keepalived/keepalived.conf
[root@C-13 ~]# cat /etc/keepalived/keepalived.conf #查看
global_defs {
router_id HA_TEST_R2
}
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 1
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass 123.com
}
virtual_ipaddress {
192.168.1.87
}
}
[root@C-13 ~]# ip addr show dev ens33 #查看
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:ef:19:34 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.13/24 brd 192.168.1.255 scope global ens33
valid_lft forever preferred_lft forever
? ? 配置没有错误后启动,这时候主服务器仍然在线,VIP地址实际上仍然由主服务器控制,其他服务器处于备用状态,因此备用服务器中不会为ens33接口添加VIP地址
3、验证
连通性测试? :停止和启动? 主服务器keepalived服务器,发现ping测试只中断1到2个包即恢复正常,说明已有其他服务器接替VIP地址及时响应客户机请求
C:\Users\wrzs0>ping -t 192.168.1.87
正在 Ping 192.168.1.87 具有 32 字节的数据:
来自 192.168.1.87 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.1.87 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.1.87 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.1.87 的回复: 字节=32 时间=1ms TTL=64
请求超时。
来自 192.168.1.87 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.1.87 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.1.87 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.1.87 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.1.87 的回复: 字节=32 时间=1ms TTL=64
请求超时。
来自 192.168.1.87 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.1.87 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.1.87 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.1.87 的回复: 字节=32 时间<1ms TTL=64
web访问测试:http://192.168.1.87 会看到主服务器192.168.1.12提供的网页
停止、启动主服务器的keepalived服务器,再次访问web服务
?停止主服务后可以看到由备用服务器192.168.1.13提供的网页,说明VIP地址已切换至备用服务器
?启动主服务
?
二、LVS+Keepalived高可用群集
1. 简述Keepalived的主要功能、应用场合
主要功能:提供故障切换和健康检查功能
应用场合:双机热备
2. 简述虚拟路由冗余协议的工作原理
工作原理?:由一台或多台路由器组成一个热备组,通过共用虚拟IP地址对外提供服务;每个热备组同一时刻只有一台主路由器提供服务,其他路由器处于冗余状态,若当前在线的路由器失效,则其他路由器会自动接替(优先级决定接替顺序)虚拟IP地址,以继续提供服务
3. 在Keepalived的配置文件中,”vrrp_instance 实例名称 {…}”区段的作用是什么?
?作用:指定VRRP热备参数
4. 使用Keepalived实现双机热备时,主、备服务器的配置存在哪些区别?
?所有配置文件基本相同
区别在于:路由器名称,热备状态、优先级
5. 在Keepalived服务器上如何查看添加的VIP地址?
?使用 ip a 命令可以查看
6. 当存在多台从调度器时优先级(priority)的配置规则是什么?
?配置规则:数值越大取得VIP控制权的优先级越高
7. 在Keepalived的配置文件中,”virtual_server VIP 端口 { ... }”区段的作用是什么?
作用:配置虚拟服务器
8. 在Keepalived的配置文件中,通过什么配置项指定群集工作模式?
?使用 lb_kind 工作模式? 配置项进行指定? ?如:lb_kind? DR
9. 在Keepalived的配置文件中real_server IP地址 {...}区段的作用是什么?
?作用:配置真实服务器地址等参数
例:real_server 192.168.1.1:80? ? ? 说明:web节点的地址:端口
10. 在Linux系统中执行”ipvsadm –ln”、”ipvsadm –lnc”等操作命令的作用是什么?
?ipvsadm –ln:查看节点的状态负载分配情况
ipvsadm –lnc:查看当前ipvs模块中记录的连接
|