keepalived一介绍与安装

一、keepalived介绍

1.keepalived是什么?

  • Keepalived软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能。因此,Keepalived除了能够管理LVS软件外,还可以作为其他服务(例如:Nginx、Haproxy、MySQL等)的高可用解决方案软件。

  • Keepalived软件主要是通过VRRP协议实现高可用功能的。VRRP是Virtual Router RedundancyProtocol(虚拟路由器冗余协议)的缩写,VRRP出现的目的就是为了解决静态路由单点故障问题的,它能够保证当个别节点宕机时,整个网络可以不间断地运行。

  • 所以,Keepalived一方面具有配置管理LVS的功能,同时还具有对LVS下面节点进行健康检查的功能,另一方面也可实现系统网络服务的高可用功能。

2.keepalived功能

a)集群节点健康检查
b)高可用

3.keepalived故障转移原理

  • keepalived高可用故障转移,是通过vrrp协议(虚拟路由器冗余协议)来实现的。

  • 在keepalived正常工作时,主节点会不断向备节点广播心跳消息,用以告诉备节点自己还活着,当主节点发生故障时,备节点就无法继续监测到主节点心跳,进而调用自身的接管程序,接管主节点的IP资源及服务,而当主节点恢复时,备节点会释放主节点故障时自身接管的IP资源及服务,恢复到原来自身的备用服务角色。

4.vrrp协议介绍

  • VRRP协议是为消除在静态缺省路由环境下的缺省路由器单点故障引起的网络失效而设计的主备模式的协议,使得在发生故障而进行设备功能切换时可以不影响内外数据通信,不需要再修改内部网络的网络参数。VRRP协议需要具有IP地址备份,优先路由选择,减少不必要的路由器间通信等功能。

二、安装keepalived

1.环境(使用ansible管理,lb主机清单模块)

lb-01:10.0.0.10
lb-02:10.0.0.11

1.下载安装包到lb的两台主机

[root@lb01 ~]# ansible lb -m copy -a "src=/root/keepalived-1.2.16.tar.gz dest=/root"
[root@lb01 ~]# ansible lb -m yum -a "name=kernel-devel state=present"
[root@lb01 ~]# ansible lb -m shell -a "ln -s /usr/src/kernels/2.6.32-431.el6.i686 /usr/src/linux"

2.编译安装

[root@lb01 ~]# cat /test/keepalived.yml    
---
- hosts: lb
  tasks:
  - name: tar keepalived
    unarchive: src=/root/keepalived-1.2.16.tar.gz dest=/root
  - name: make install
    shell: chdir=/root/keepalived-1.2.16 ./configure && make && make install

[root@lb01 ~]# ansible-playbook /test/keepalived.yml 

3.设置启动脚本

[root@lb01 ~]# ansible lb -m copy -a "src=/usr/local/etc/rc.d/init.d/keepalived dest=/etc/init.d/ owner=root group=root mode="a+x""
[root@lb01 ~]# ansible lb -m copy -a "src=/usr/local/etc/sysconfig/keepalived dest=/etc/sysconfig/" ###配置启动脚本参数
[root@lb01 ~]# ansible lb -m file -a "path=/etc/keepalived state=directory"
[root@lb01 ~]# ansible lb -m copy -a "src=/usr/local/etc/keepalived/keepalived.conf dest=/etc/keepalived/"###配置文件
[root@lb01 ~]# ansible lb -m copy -a "src=/usr/local/sbin/keepalived dest=/usr/sbin mode="a+x" "###启动命令

4.启动keepalived

[root@lb01 ~]# ansible lb -m service -a "name=keepalived state=started"
[root@lb01 ~]# ansible lb -m shell -a "ps -ef|grep kee"         
10.0.0.10 | SUCCESS | rc=0 >>
root     19176     1  0 02:13 ?        00:00:00 keepalived -D
root     19178 19176  0 02:13 ?        00:00:00 keepalived -D
root     19179 19176  0 02:13 ?        00:00:00 keepalived -D
root     19186 15385 29 02:21 pts/1    00:00:00 /usr/bin/python2.6 /usr/bin/ansible lb -m shell -a ps -ef|grep kee
root     19196 19186 16 02:21 pts/1    00:00:00 /usr/bin/python2.6 /usr/bin/ansible lb -m shell -a ps -ef|grep kee
root     19198 19186  4 02:21 pts/1    00:00:00 /usr/bin/python2.6 /usr/bin/ansible lb -m shell -a ps -ef|grep kee
root     19245 19244  0 02:21 pts/3    00:00:00 /bin/sh -c ps -ef|grep kee
root     19247 19245  0 02:21 pts/3    00:00:00 grep kee

10.0.0.11 | SUCCESS | rc=0 >>
root     11551     1  0 02:12 ?        00:00:00 keepalived -D
root     11553 11551  0 02:12 ?        00:00:00 keepalived -D
root     11554 11551  0 02:12 ?        00:00:00 keepalived -D
root     11624 11623  0 02:20 pts/2    00:00:00 /bin/sh -c ps -ef|grep kee
root     11626 11624  0 02:20 pts/2    00:00:00 grep kee

猜你喜欢

转载自blog.csdn.net/liang_operations/article/details/81665775