标签:protocol 定义 集群 复制 注意 使用 过程 virtual 报告
VRRP是什么?keepalived就是利用VRRP协议实现的一种可保障集群高可用的工具。通过主机之间的优先等级以及心跳检测来及时切换准备主机的工作状态,以提高集群的高可用性。
keepalived的核心组件:
1.VRRP stack
2.ipvs wrapper
3.checkers
为什么使用keepalived一定要确认网卡支持并开启组播功能?
如VRRP中所述,Master需要通过组播功能定时向Backup发送心跳信息,报告自己的运作是否正常,组播通信方式是一种很节省资源的通信方式。
从centos6.4开始,keepalived就集成在yum的base仓中了(keepalived的应用重要可见一斑),所以直接yum安装即可。[root@localhost ~]# yum install -y keepalived
n1:192.168.11.11
n2:192.168.11.22
! Configuration File for keepalived
global_defs {
notification_email { #通知邮件配置,将keepalived的状态信息发送到指定邮箱
root@localhost #这里配置通知的邮箱地址,为方便演示这里就配置为本机
}
notification_email_from keepalived@localhost #配置发邮件的地址,这里也配置为本机
smtp_server 127.0.0.1
smtp_connect_timeout 30 #邮件服务超时时间
router_id n1 #当前标识当前主机
vrrp_mcast_group4 224.1.101.18 #配置组播地址,集群中通常不会使用默认的组播地址
}
vrrp_instance VI_1 { #当前节点所属的虚拟路由的名称
state MASTER #当前节点的状态,有Master和Backup两种状态
interface ens33 #定义vrrp地址绑定在哪个接口
virtual_router_id 51 #虚拟路由器的标识,同一虚拟路由器组中的ID要相同
priority 100 #优先级设置
advert_int 1 #每隔多久以组播形式向外通告一次,默认是1秒
authentication {
auth_type PASS #认证开启
auth_pass 1111 #认证密码
}
virtual_ipaddress { #配置虚拟路由ip,即漂移地址
192.168.11.99/24 dev ens33 label ens33:0 #漂移地址为192.168.11.99,配置在ens33网卡上并指定接口0
}
}
配置完成后将此配置复制到n1并修改route_id和priority[root@localhost ~]# scp /etc/keepalived/keepalived.conf root@n1:/etc/keepalived/
确定网卡开启了multicast功能[root@localhost ~]# ifconfig
出现MULTICAST就说明已开启
[root@localhost ~]# systemctl start keepalived
[root@localhost ~]# systemctl status keepalived
查看n2网卡配置[root@localhost ~]# ifconfig
可看出n2进入了MASTER状态
[root@localhost ~]# systemctl start keepalived
[root@localhost ~]# systemctl status keepalived
现在再查看n2
n1启动后漂移地址(虚拟IP)就漂移至n1了
n2网卡中的漂移地址(配置在ens33:0上)也被删除了,并漂移至n1上(同样配置在ens33:0)了。
安装tcpdump[root@localhost ~]# yum install -y tcpdump
现在的状态是n1,n2的keepalived都开启了,n1的优先级大于n2。
在n1和n2上使用命令[root@localhost ~]# tcpdump -i ens33 -nn host 224.1.101.11
注意:因为n1为master状态,所以n1会不停的(配置是每隔1秒)发送组播通告,并且这个通告在同一局域网的所有主机都能接收到,但只有配置了keepalived的主机才会起作用。
停掉n1的keepalived服务[root@localhost ~]# systemctl stop keepalived
查看n2的抓包信息[root@localhost ~]# tcpdump -i ens33 -nn host 224.1.101.11
这就比较完整的展示了两个节点间在4层上使用keepalived做高可用的最基本的原理过程了。但这没有涉及到应用层的高可用,keepalived还能实现具体服务的高可用。
标签:protocol 定义 集群 复制 注意 使用 过程 virtual 报告
原文地址:http://blog.51cto.com/13322786/2162618