keeplived工作原理:
keepalived的工作原理是VRRP(Virtual Router Redundancy Protocol)虚拟路由冗余协议。
keepalived的原理可以这样简单理解:
keepalived安装在两台物理服务器上,并相互监控对方是否在正常运行。
当节点A正常的时候:节点A上的keepalived会将下面的信息广播出去:
192.168.45.220 这个IP对应的MAC地址为节点A网卡的MAC地址
其它电脑如客户端和NodeB会更新自己的ARP表,对应192.168.45.220的MAC地址=节点A网卡的MAC地址。
当节点A发生故障的时候,节点B上的keepalived会检测到,并且将下面的信息广播出去:
192.168.45.220 这个IP对应的MAC地址为节点B网卡的MAC地址
其它电脑如客户端会更新自己的ARP表,对应192.168.45.220的MAC地址=节点B网卡的MAC地址。
keepalived的作用是检测后端TCP服务的状态,如果有一台提供TCP服务的后端节点死机,或者工作出现故障,keepalived会及时检测到,并将有故障的节点从系统中剔除,当提供TCP服务的节点恢复并且正常提供服务后keepalived会自动将TCP服务的节点加入到集群中。这些工作都是keepalived自动完成,不需要人工干涉,需要人工做的只是修复发生故障的服务器。
准备工作需要两台虚拟机:NODEA IP:192.168.45.101
NODEB IP:192.168.45.102
虚拟IP:192.168.45.220
需要: keepalived-1.2.22.tar.gz(http://www.keepalived.org/software/keepalived-1.2.22.tar.gz)
第一步:解压安装包:tar -zxvf keepalived-1.2.22.tar.gz
第二步:需要安装依赖包 yum install openssl 与yum install openssl-devel
第三步:运行文件./configure 这是可能报错,可能是依然缺少依赖文件,如果是就安装依赖文件即可。(具体问题具体分析)
这里是缺少gcc依赖直接yum安装即可:yum -y install gcc
这里是运行成功后的结果
第四步:编译与安装
make && make install
因为我采用默认安装的方式,这样安装成功后会在 安装目录的 keepalived/etc/keepalived/目录下有一个keepalived.conf文件
这个是一个模板配置文件。
第五步:创建文件夹并且复制模板配置文件
因为运行keepalived时候他会去etc/keepalived目录下加载模板文件。
所以我们需要创建文件夹 mkdir -p /etc/keepalived
并且需要复制文件
第六步:修改配置文件
! Configuration File for keepalived
global_defs {
notification_email {
root@localhost
}
notification_email_from root@localhost
smtp_server localhost
smtp_connect_timeout 30
router_id NodeA
}
vrrp_instance VI_1 {
state MASTER #指定A节点为主节点 备用节点上设置为BACKUP即可
interface eth0 #绑定虚拟IP的网络接口
virtual_router_id 51 #VRRP组名,两个节点的设置必须一样,以指明各个节点属于同一VRRP组
priority 100 #主节点的优先级(1-254之间),备用节点必须比主节点优先级低
advert_int 1 #组播信息发送间隔,两个节点设置必须一样
authentication { #设置验证信息,两个节点必须一致
auth_type PASS
auth_pass 1111
}
virtual_ipaddress { #指定虚拟IP, 两个节点设置必须一样
192.168.45.220
}
}
按同样的方法配置节点B并修改配置文件,可将A节点的配置文件复制到B节点,并修改以下几项:
router_id NodeB
state BACKUP
priority 99
其它项不必修改。
第七步:启动keepalived (需要在keepalived文件夹下)
keepalived -D第八步:查询keepalived的进程
ps aux | grep keepalived
Keepalived 正常运行时,共启动 3 个进程,其中一个进程是父进程,负责监控其子进程;一个是 vrrp 子进程;另外一个是 checkers 子进程
第九步:查询本地网卡
这是查询本地网卡能够看到本地网卡绑定的虚拟IP
ip a
这个时候可以使用本机ping 192.168.45.220 就可ping通了。
而且作为主机的192.168.45.101死机后依然能过ping同192.168.45.220因为热备的102已经上线。
双机热备主要实现的就是单点服务器的安全保障。