目录
1.说明
2.现状
3.高可用方案
3.1.部署架构
规划采用keepalived+rsync+NFS组合来实现存储的高可用,如图所示,单纯的nfs存在单点故障,通过浮动IP管理和rsync文件同步满足高可用需求。
3.2.高可用说明
按照所示架构,再辅助服务端检测脚本,高可用能够满足以下4种故障的服务切换:
1:nfs服务主机在一个主机宕机情况下,浮动ip切换到另外一台主机
2:一台主机的keepalived服务故障,导致网络不通时候也进行切换。
3:配置辅助检测脚本,自动后台运行,在网络、主机正常情况下,如果nfs服务存在问题,自动拉起,如果拉起不成功,终止keepalived服务,强制浮动ip漂移
4:由于nfs浮动IP切换,会导致客户端原有挂载目录故障,需要在客户端配置检测脚本,检测到挂载的nfs不正常时候,强制卸载本地挂载目录,然后重新挂载。
备注:keepalived有两种模式(抢占模式、非抢占模式),
抢占模式下,依赖两个节点的权重配置,权重高的抢占主节点,只有当主节点失败后,权重低的节点才能做为主节点,当权重高的节点恢复后,再次夺回主节点;
-
非争抢模式下,两个节点,谁先启动谁做为主节点,当主节点故障后,主节点切换,故障修复后,主节点不再移动,保持当前位置;
本方案部署的为非争抢模式,区别在于keepalived的配置文件,通过不同参数可以修改模式。
3.2.1. keepalived服务故障
该情况下,浮动IP由当前节点移动到备用节点,由于物理属相改变,客户端挂载nfs目录失效,检测脚本自动进行卸载和重新挂载。
当主节点keepalived服务修复后,浮动ip再次移动回来,客户端脚本自动再次重新运行,恢复到故障前状态。
3.2.2 . 主机宕机ived服务故障
该情况和第一种后台处理动作基本相同,待主机恢复后,所有服务恢复正常,浮动IP会再次恢复到主节点上。
3.2.3. nfs服务故障
该情况下,nfs服务检测脚本会尝试自动拉起nfs服务,拉取失败后,主动关闭keepalived服务,强制浮动IP移动到备用节点,随后客户端重新卸载和挂载nfs目录。
待主节点恢复正常后,所有回重新恢复原状。
3.2.4. 客户端重新挂载
由于浮动IP移动后,客户端连接的实际物理设备更换,会导致自身挂载的共享nfs目录失效,所以该情况下,需要对mount的共享目录执行umountum后重新mount.该操作皆由脚本来实现。
4.实施条件
4.1 系统权限
- 由于keepalived、rsync、nfs安装依赖平台其他的开发包,所以要申请主机的临时root权限;
- 浮动ip服务的启停需要使用root用户,后续恢复普通用户权限时候前,要做该用户的无密码的sudo权限;
- 后续为aitp用户配置增加systmectl、mount、umount无口令sudo权限
4.2.IP地址申请
按照规划的方式,需要申请一个浮动IP地址,该地址同两台存储服务主机IP地址同属于一个网段。已申请ip地址位192.168.187.242
5.实施步骤
5.1.服务部署
5.1.1.keepalived部署
=========安装==root=========================
#mkdir -p /home/aitp/keepalived-app
ftp文件(keepalived-2.0.20.tar.gz)到新创建目录
#cd /home/aitp/keepalived-app
#tar -zxvf keepalived-2.0.20.tar.gz
#cd keepalived-2.0.20
#./configure
#make && make install
chown –R aitp:aitp /home/aitp/keepalived-app
备注:编译过程提示缺少ipv6支持,yum install libnl* 解决
======编辑配置文件=root=============================
vi /usr/local/etc/keepalived/keepalived.conf
清空该文件内容,复制粘贴以下即可,复制前删除下边的备注信息
主节点主机Keepalived配置文件脚本:
! Configuration File for keepalived
global_defs {
router_id lb02
}
unicast_src_ip 192.168.187.48 #主节点IP
unicast_peer {
1