DRBD存储高可用及其在川航云平台的应用

2022-09-26 05:46李富强
科技与创新 2022年19期
关键词:开源虚拟化节点

李富强

(四川航空股份有限公司,四川 成都 610000)

随着信息技术的发展,数据安全和企业安全紧密相连。各种存储技术以及云计算的发展又使得数据存储越来越集中,云平台存储的安全已经直接关系企业数据安全。因此,对于云平台存储技术的选型变得至关重要。本文将在DRBD存储技术的基础上,通过高可用改造,将其应用于川航生产云平台,有力保障企业云平台的数据安全。

1 研究背景及现状需求分析

1.1 背景介绍

红帽企业虚拟化[1](RHEV)是一款针对服务器和桌面虚拟化的完整虚拟化管理解决方案,它以强大的基于内核的虚拟机(KVM)系统管理程序和oVirt开源虚拟化管理平台为基础,是一个成熟、完全开源的企业虚拟化平台。川航RHEV云平台项目整个系统架构如图1所示。

图1 RHEV云平台系统架构

存储部分,采用4台X86存储服务器,分2组提供服务。第一组DRBD存储客户机镜像,第二组存储客户机应用数据,每组均配置为DRBD主/备模式。该模式下,主节点(Master)读写时备节点(Slave)只能接收数据和监控主节点,不能主动发起读写操作。在物理层面,每台服务器对本地磁盘进行RAID配置,而后在RHEL操作系统中对1组(2台)服务器上RAID后的磁盘进行DRBD主/备创建及同步,最后通过iSCSI服务及2组存储网络提供给RHEV使用。

1.2 现状及需求分析

川航RHEV的存储架构能够满足对数据冗余备份的要求,同时还有其他一系列优点,如LUN实时同步数据,多链路冗余;多个存储节点可以大幅度降低池化中存储节点故障的耦合度;某个存储节点故障,可以手动切换到备用节点实现对存储的访问。但是,主/备模式的采用也带来另一个问题,当主节点发生故障,如果没有及时恢复或手动切换到备节点,虽数据的完整性会得到保证,但存储将无法提供对外访问,使得云平台上运行的虚拟机都将无法正常工作。目前主/备节点采用不同的IP地址,对RHEV平台来说,即使通过手动切换,iSCSI从主节点卸载到备节点挂载也需要一定的时间,这个时间在几分钟到十多分钟不等,如此长时间的切换是实际生产运行无法接受的。

因此,如何实现存储节点故障时主/备自动、快速地切换,进而保证存储的高可用是目前需要解决的问题。

2 方案设计及实现

2.1 方案设计

基于平台现有配置,DRBD实现主/备节点的数据实时同步,iSCSI协议向平台计算节点提供存储数据访问。如何实现对主/备节点的心跳检测及现有DRBD、iSCSI资源的调度是实现存储故障后自动切换的关键点。

被广泛使用的Corosync+Pacemaker开源方案即能满足以上对于存储高可用的需求,其中Corosync用于检测传送主/备节点的心跳信息,当节点故障时能及时检测到并传送给Pacemaker处理。Pacemaker负责需要切换的资源(如存储、VIP)调度,当主节点确认故障后能将其占用的资源转交给备节点。对外提供存储访问通过虚拟VIP实现,对RHEV云平台来说,访问的存储地址并没有改变,不存在iSCSI的卸载挂载环节,从而实现主/备节点及其资源的自动高效切换[2]。其主/备模式工作架构如图2所示。

图2 Corosync+Pacemaker主/备模式

该方案无需对现有云平台存储做大的改动,只需在原有基础之上增加相应的软件和配置,实施难度小,可行性高。

2.2 环境准备

IP地址为172.18.19.12/24(VIP),172.18.19.13/24(主节点),172.18.19.32/24(备节点);2台X86存储服务器;川航RHEV云平台。

2.3 基本环境配置

RHEV云平台配置无需做任何更改,只需要在2台X86存储服务器做配置即可。具体如下:(2个节点)安装操作系统,配置NTP时钟同步,关闭iptables和selinux;(2个节点)增加yum镜像源用于安装corosync、pacemaker;(2个节点)yum安装drbd、tgt、corosync、pacemaker及相关组件;(2个节点)编辑/etc/hosts配置主机名并验证主机名配置是否成功;(2个节点)配置双机互信并验证ssh互相登录是否需密码。

2.4 DRBD配置

(2个节点)编辑/etc/lvm/lvm.conf,配置激活本地LVM。(2个节点)编辑DRBD配置文件/etc/drbd.d/global_common.conf。(2个节点)编辑/etc/drbd.d/vhost.res,创建DRBD资源配置文件,文件具体如下:

(2个节点)初始化,启动DRBD:#drbdadm create-md vhost && service drbd start。(任意节点)命令查看DRBD同步状态,此时输出状态secondary/secondary为正常。(主节点)使用drbdadm primary vhost命令提升主节点,并检查状态,此时输出状态primary/secondary为正常。(2个节点)使用命令chkconfig drbd on设置DRBD开机自动启动。

2.5 tgt服务配置

(主节点)启动tgt服务并查看tgt提供服务状态是否正常;(2个节点)使用命令chkconfig tgtd on设置tgt服务为开机自动启动。

2.6 corosync服务配置

(主节点)配置corosync通信认证文件并拷贝到备节点。(2个节点)编辑corosync配置文件。(2个节点)修改日志文件属主为hacluster。(2个节点)启动corosync并设置为开机自动启动。

2.7 pacemaker服务配置

(2个节点)下载iSCSITarget的pacemaker脚本,添加可执行权限,保存到usr/lib/ocf/resource.d/heartbeat/。(2个节点)启动pacemaker并设置为开机自动启动。(任意节点)配置集群修改并提交:

3 验证测试

(任意节点)现在所有资源均配置在node2.scal.com.cn,我们测试将该节点standby,看资源是否能够自动切换到node1。

(任意节点)登录任意节点查询DRBD,tgt服务实际运行情况是否和pacemaker显示结果一致,如果以上2项资源均运行在node1则说明正常。

登录RHEV WEB管理界面,添加新的存储域。测试能否成功添加,能否在该域成功运行虚拟机,将运行的主节点standby后能否成功自动切换,切换后虚拟机运行是否正常。

4 结论

RHEV云平台存储高可用可以有效解决当前云平台中存在的存储主/备模式带来的存储节点故障后无法自动高效切换的问题,所采用是成熟且应用广泛的开源技术方案。经验证,基于当前环境进行简单配置即可满足运行要求,成本低廉,效果良好。

猜你喜欢
开源虚拟化节点
校园武术“学、练、赛”一体化实践探索
分区域的树型多链的无线传感器网络路由算法
基于移动汇聚节点和分簇的改进节能路由算法
五毛钱能买多少头牛
2019(第十四届)开源中国开源世界
2019开源杰出贡献奖
基于点权的混合K-shell关键节点识别方法
浅谈虚拟化工作原理
用户怎样选择虚拟化解决方案
虚拟化整合之势凸显