LVS+keepalived高可用群集
一 Keepalived双机热备
·keepalived概述
Keepalived是专门针对LVS设计的一款强大的辅助工具,主要用来提供故障自动切换和节点健状态检查功能,如判断LVS负载调度器、节点服务器的可用性,及时隔离并替换为新的服务器,当故障主机恢复后将其重新加入群集。在非LVS群集环境中使用时Keepalived也可以作为热备软件使用;官方网站:http://www.keepalived.org/
·keepalived的热备方式
Keepalived采用VRRP(virtual router redundancy protocol,虚拟路由冗余协议)热备份协议,以软件的方式实现linux服务器的多机热备功能
VRRP是针对路由器的一种备份解决方案-----由多台路由器组成一个热备组。通过共用的虚拟IP地址对外提供服务;每个热备组内同一时刻只有一台主服务器提供服务,其他服务器处于冗余状态,若当前在线的服务器失败,其他服务器会自动接替(优先级决定接替顺序)虚拟IP地址,以继续提供服务
热备组内的每台服务器都可以成为主服务器,虚拟IP地址(VIP)可以在热备组内的服务器之间进行转移,所以也称为漂移IP地址,使用Keepalived时,漂移地址的实现不需要手动建立虚拟接口配置文件(如eth0:0),而是由Keepalived根据配置文件自动管理
二 LVS+keepalived高可用群集
使用Keepalived构建LVS群集更加简便易用,主要优势体现在:对LVS负载调度器实现热备切换,提高可用性,对WEB服务器池中的节点进行分健康检查,自动移除失败节点,恢复后再重新加入
在基于LVS-Keepalived实现的LVS群集结构中,至少包括两台热备的负载调度器,两台以上的节点服务器,本例将以DR模式的LVS群集为基础,增加一台从负载调度器,使用Keepalived来实现主、从调度器的热备,从而构建建有负载均衡、高可用两种能力的LVS网站群集平台
·实验环境:如图所示
其中节点服务器都是双网卡
·配置主调度器
1安装keepalived支持软件
在编译安装Keepalived之前,必须先安装内核开发包kernel-devel以及openssl-devel、popt-devel等支持库(RHEL6中在装系统时如果勾选开发软件和开发工具,则会自动安装)
除此之外,在LVS群集环境中应用时,也需要用到ipvsadm管理工具,先加载ip_vs模块
2编译安装Keepalived
源码包从官网下载
使用指定的linux内核位置对keepalived进行配置,并将安装路径指定为根目录,这样就无需额外创建链接文件了
3配置为系统服务
安装完后会自动生成/etc/init.d/keepalived脚本文件,但还需要手动添加为系统服务,这样就可以使用service、chkconfig工具来对keepalived服务程序进行管理了
4主服务器的配置文件
Keepalived服务的配置目录位于/etc/keepalived。其中keepalived.conf是主配置文件,另外包括一个子目录samples/,提供了许多配置样列作为参考。在keepalived的配置文件中,使用"global_defs {……}"区段指定全局参数。使用"vrrp_instance 实例名称 {……}"区段指定VRRP热备参数,注释文字以"!"符号开头
全局参数
只需定义ID即可,其它自定义或默认
实例参数
这里只需指定虚拟IP即可,实际环境中最好修改密码字串确保安全;其它全部默认
优先级中,MASTER表示主服务器;SLAVE表示备用服务器;当有多台备用的服务器,热备状态改为 BACKUP,此状态是由 priority 的值来决定的,当前priority 的值小于备机的值,那么将会失去 MASTER 状态
热备参数
根据以下参数进行配置,其它多余内容全部删除即可
5重启keepalived服务并配置防火墙
重启服务配置生效,并设置防火墙使主从之间能够通信(VRRP协议的通告报文使用固定的组播地址224.0.0.18,用IP 报文作为传输协议进行协议报文的传送)
·配置从调度器
从调度器的配置与主调度器基本相同,只需调整keepalived配置文件中的router_id、state、prority参数即可,其余内容完全相同
安装支持软件
安装keepalived软件包
调整配置文件
直接从主服务器中复制一份配置文件过来
只需修改一下三处即可
重启服务配置防火墙
总结:在同一个keepalived热备组内,所有服务器的keepalived配置文件基本相同。不同之处主要在于服务器的名称标识、热备状态、优先级
·测试主、从服务器的配置
当以上状态配置完成后,
实际状态为MASTER的主服务器取得VIP控制权,并将eth0接口自动添加VIP地址,通过ip addr show dev eth0命令可以查看(注意:ifconfig命令看不到)(我这里配置ip时为eth1)
主服务器
从服务器
备用服务器中将不会为eth0接口添加VIP地址
Keepalived的日志消息保存在/var/log/messages文件中,在测试主、从故障自动切换功能时,可以跟踪此日志文件来观察热备状态的变化
在internet的测试机上执行ping 172.16.16.172 –t,(172.16.16.172为VIP地址),能够正常ping通,说明主服务器以接管VIP地址,并及时响应客户机的请求
禁用主服务器的eth0网卡,发现ping测试会中断3~4个包即恢复正常,说明已有其他服务器接替VIP地址,并及时响应客户机的请求
重新启用主服务器的eth0网卡,发现ping测试再次中断3~4个包即恢复正常,说明主服务器已恢复正常,并夺回VIP地址的控制权
在上述过程中可以查看日志记录来了解MASTER、SLAVE状态的迁移记录
·配置共享存储服务器
配置如下
修改/etc/exports文件,内容如下:
/opt/wwwroot 192.168.7.0/24(rw,sync,no_root_squash)
允许192.168.7.0/24网段的主机访问NFS的共享
·配置节点服务器
节点服务器的配置与在DR模式中节点服务器的配置完全一样
1调整/proc响应参数
2配置虚拟IP地址
3添加VIP本地访问路由
4连接共享目录
5安装httpd服务,开启服务并创建测试页
6配置防火墙策略
其他节点服务器同样的配置
·测试访问
使用VIP进行访问
在主调度器上观察
在从调度器上观察
模拟主调度器宕机(关闭网卡),再测试
查看从调度器,可以看出从调度器自动担任了主调度器的角色
至此有关LVS+keepalived群集配置完毕,这样即实现了lvs负载平衡又实现了调度器的热备