行云管家高可用部署环境扩展数据磁盘分区方案
一、HA扩展磁盘概述
在以高可用方式部署行云管家时,某些磁盘分区在部署期即被指定了其分区尺寸大小。而随着行云管家的运行和数据的持续增加(如MongoDB、MySQL、行云管家审计录像等数据均会持续增长),可能会出现磁盘分区可用空间不足的情况。一旦出现磁盘分区可用空间不足的情况,则会导致行云管家的服务运行异常而失去响应。
以高可用方式部署行云管家时,会使用到两台主机(以下将称之为node1和node2)进行部署,扩展磁盘分区时,如果是以DRBD方式进行部署的环境,需要同时对两台主机的磁盘进行扩展;如果是以共享存储方式进行部署的环境,则仅需在其中一台主机进行磁盘扩展操作。
本文将介绍以共享存储方式部署时的磁盘分区扩展方案,以及以DRBD方式部署时的两种扩展磁盘分区的方案,作为扩展行云管家所用磁盘分区的指引。实际操作时,可根据实际情况采取相应方案来对磁盘分区进行扩展。
另外,可以设置对磁盘分区使用率进行监控,在磁盘分区占用率达到告警阈值时,管理员即可获得告警,从而提前对磁盘分区进行扩展,进而避免因为磁盘分区可用空间不足而导致的行云管家服务停机。
二、共享存储模式-磁盘扩展
以共享存储方式进行行云管家高可用部署时,其磁盘空间扩展方法如下。
2.1、扩展数据分区所在共享存储容量
首先,在node1和node2两台主机的操作系统外,将数据分区所在共享存储(磁盘)的容量扩大。
数据分区所在共享存储(磁盘)的容量扩大后,可能需要重启两台主机操作系统,方可识别到新增的共享存储(磁盘)容量。
如果需要重启两台主机的操作系统,则按以下步骤进行重启:
1、在node1主机执行以下命令,对SkybilityHA作全局禁用
hasvcadm --global --disable
2、在node1和node2主机中,分别执行以下命令,重启操作系统
reboot
3、待node1和node2主机操作系统重启完毕后,在两台主机中分别执行以下命令,取消SkybilityHA全局禁用,并启动行云管家服务
hasvcadm --global --enable
4、执行以下命令,查看磁盘,可以看到容量增加了
lsblk
命令执行后,将会查看到磁盘的容量,类似下图:
其中sdb即为共享存储磁盘,SIZE列的值即为其容量(从图中可以看出,sdb磁盘的总容量为80G,sdb1分区容量为70G,sdb盘新增了10G容量,新增容量尚未分区) 。
2.2、设置SkybilityHA全局禁用
如果当前共享存储磁盘状态正常,则可以做扩展共享存储盘容量操作,首先在node1主机执行以下命令,设置SkybilityHA全局禁用
hasvcadm --global --disable
2.3、创建新分区
以下以共享存储盘 /dev/sdb 为例,说明如何将新增的磁盘空间创建为一个新的分区。
1、在node1主机上,执行以下操作,修正分区表信息
1.1、执行以下命令,进入磁盘分区工具界面
parted /dev/sdb
执行上述命令后,将进入如下界面
1.2、在上述界面中输入 p ,并敲回车键,将进入如下界面
1.3、在上述界面中输入 Fix ,并敲回车键,将进入如下界面
1.4、在上述界面中输入 Fix ,并敲回车键,将进入如下界面
1.5、在上述界面中输入 q ,并敲回车键,完成分区表信息修正并退出parted工具界面
2、在node1主机上,执行以下操作,创建新的分区
2.1、执行以下命令,进入fdisk分区工具界面
fdisk /dev/sdb
2.2、在上述界面中,输入 p ,敲回车键,进入如下界面,显示当前分区情况
2.3、在上述界面中,输入 n ,敲回车键,进入如下界面,准备创建新的分区
2.4、在上述界面中,直接敲回车键,进入如下界面
2.5、在上述界面中,直接敲回车键,进入如下界面
2.6、在上述界面中,直接敲回车键,进入如下界面
2.7、在上述界面中,输入 w ,敲回车键,完成创建新的分区并退出fdisk分区工具界面
2.8、执行以下命令,更新分区表信息
partprobe
2.9、执行以下命令,将新的分区设置为lvm,从而完成新分区创建
parted --script /dev/sdb "set 2 lvm on"
2.4、扩展共享存储盘容量
以下假设新增的磁盘分区为 /dev/sdb2 ,并以此为例做命令操作说明。
1、在node1主机上,分别执行以下三行命令,将 /dev/sdb2 分区创建为物理卷,并加入卷组 vg_gj ,同时扩展逻辑卷 lv_cloudbility (将新分区sdb2的所有容量扩充到lv_cloudbility逻辑卷中)
pvcreate /dev/sdb2 vgextend vg_gj /dev/sdb2 lvextend -l +100%FREE /dev/vg_gj/lv_cloudbility
执行上述命令后,再执行 lsblk 命令,将看到类似如下输出,可以看到,sdb2 分区被加入到了vg_gj卷组中,并作为了逻辑卷lv_cloudbility的底层磁盘
2、在node1主机中,执行以下命令,扩展逻辑卷lv_cloudbility的容量
resize2fs /dev/vg_gj/lv_cloudbility
3、在node2主机中,执行以下命令,更新分区表信息
partprobe
2.5、取消SkybilityHA全局禁用
在node1主机执行以下命令,取消SkybilityHA全局禁用
hasvcadm --global --enable
至此,即可完成共享存储磁盘扩展。
三、DRBD模式-磁盘扩展1-增加新磁盘
如果条件允许,可以为node1和node2两台主机分别增加一块磁盘(数据盘),例如行云管家部署在公有云主机中时,则可以为部署行云管家的两台主机分别增加一块数据盘。
以下以扩展Mongo数据分区为例进行说明,实现扩展Mongo数据分区的容量。
3.1、增加磁盘
首先,需要在操作系统外为两台部署行云管家的主机分别增加一块磁盘。增加的磁盘的大小根据实际需要来设置,例如50G。
添加磁盘后,可能需要重启主机操作系统,使其识别到新增的磁盘。
如果需要重启两台主机的操作系统,则按以下步骤进行重启:
1、在node1主机执行以下命令,对SkybilityHA作全局禁用
hasvcadm --global --disable
2、在node1和node2主机中,分别执行以下命令,重启操作系统
reboot
3、待node1和node2主机操作系统重启完毕后,在两台主机中分别执行以下命令,取消SkybilityHA全局禁用,并启动行云管家服务
hasvcadm --global --enable
4、执行以下命令,查看新增加的磁盘
lsblk
命令执行后,将会查看到新增加的磁盘,类似下图:
其中sdb即为新增加的磁盘,其路径为/dev/sdb 。
3.2、确认当前drbd状态
扩展drbd分区容量前,需要先保证当前drbd状态正常。
在node1主机中执行以下命令,查询drbd状态
cat /proc/drbd
执行上述命令后,如果看到类似以下输出,则表明node1和node2两个主机节点的drbd数据是同步的、状态时正常的
如上图,”Connected”表示两个drbd节点是处于连接状态的,”UpToDate/UpToDate”表明两个节点的drbd盘数据是同步的。
如果drbd状态不正常,则需要先参考《SkybilityHA_FAQ》,处理好drbd同步状态后,再做本文后述“扩展drbd盘容量”操作。
3.3、设置SkybilityHA全局禁用
如果drbd状态正常,则可以做扩展drbd盘容量操作,首先在node1主机执行以下命令,设置SkybilityHA全局禁用
hasvcadm --global --disable
3.4、扩展drbd盘容量
以下假设新增的磁盘为 /dev/sdb ,并以此为例做命令操作说明。
1、在node1和node2两台主机上,分别执行以下三行命令,对新增磁盘进行分区(注意:命令行中的 /dev/sdb 为新增的磁盘,执行命令前需要根据实际情况给出)
parted --script /dev/sdb "mklabel gpt" parted --script /dev/sdb "mkpart primary 0% 100%" parted --script /dev/sdb "set 1 lvm on"
上述命令执行后,再执行 lsblk 命令,将看到如下图的输出,可以看到新增了sdb1 分区
2、在node1和node2两台主机上,分别执行以下三行命令,将 /dev/sdb1 分区创建为物理卷,并加入卷组 vg_gj_b ,同时扩展逻辑卷 lv_gj_b
pvcreate /dev/sdb1 vgextend vg_gj_b /dev/sdb1 lvextend -l +100%FREE /dev/vg_gj_b/lv_gj_b
执行上述命令后,再执行 lsblk 命令,将看到类似如下输出,可以看到,sdb1 分区被加入到了vg_gj_b卷组中,并作为了逻辑卷lv_gj_b的底层磁盘
3、在node1和node2两台主机中,分别执行以下一行命令,扩展drbd盘空间
drbdadm resize drbd0
4、等待drbd同步完成,再执⾏后续命令,可通过在node1或node2主机中执行命令 cat /proc/drbd 查看drbd的同步状态,同步100%后再进⾏后续操作
[root@gj-a ~]# cat /proc/drbd version: 8.4.11-1 (api:1/proto:86-101) GIT-hash: 6cabe58ac8a400ca3c85ef8932f655f8d01f1e84 build by support@skybilityha.com, 2020-05-27 16:09:04 0: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent B r----- ns:649944 nr:0 dw:633608 dr:54473017 al:115 bm:0 lo:0 pe:0 ua:4 ap:0 ep:1 wo:d oos:216396 [==================>.] sync'ed: 99.6% (208/49584)M finish: 0:00:01 speed: 104,936 (107,344) K/sec
5、在node1和node2两台主机上,分别执行以下一行命令,扩展drbd0所在pv,从而完成扩展drbd盘容量操作
if cat /proc/drbd | grep "Primary/Secondary"; then pvresize /dev/drbd0 ; fi
3.5、扩展数据分区容量
以下以为Mongo分区增加5G容量为例,进行分区容量扩展说明。
1、在node1和node2两台主机上,分别执行以下一行命令,为Mongo分区增加5G容量
if cat /proc/drbd | grep "Primary/Secondary"; then lvextend -L +5G /dev/vg_gj/lv_mongo ; fi
2、在node1和node2两台主机上,分别执行以下一行命令,重新检测Mongo所在⽂件系统⼤⼩,从而完成扩展数据分区容量操作
if cat /proc/drbd | grep "Primary/Secondary"; then resize2fs /dev/vg_gj/lv_mongo ; fi
3.6、取消SkybilityHA全局禁用
在node1主机执行以下命令,取消SkybilityHA全局禁用
hasvcadm --global --enable
至此,即可成功扩展数据盘分区容量,此时,可以运行行云管家,并进行操作,如果操作正常(例如查看原有的审计录像正常),即表示扩展磁盘分区成功。
四、DRBD模式-磁盘扩展2-扩大现有磁盘容量
可以增加node1和node2两台主机中用做drbd盘的磁盘的容量,然后将新增容量扩展至数据分区,从而扩展数据分区的容量。
以下以扩展Mongo分区为例进行说明,按以下步骤操作,实现扩展Mongo分区的容量。
4.1、扩展数据分区所在磁盘容量
首先,在node1和node2两台主机的操作系统外,将drbd所在磁盘的容量扩大。
drbd所在磁盘的容量扩大后,可能需要重启两台主机操作系统,方可识别到新增的磁盘容量。
如果需要重启两台主机的操作系统,则按以下步骤进行重启:
1、在node1主机执行以下命令,对SkybilityHA作全局禁用
hasvcadm --global --disable
2、在node1和node2主机中,分别执行以下命令,重启操作系统
reboot
3、待node1和node2主机操作系统重启完毕后,在两台主机中分别执行以下命令,取消SkybilityHA全局禁用,并启动行云管家服务
hasvcadm --global --enable
4、执行以下命令,查看磁盘,可以看到容量增加了
lsblk
命令执行后,将会查看到磁盘的容量,类似下图:
其中vdb即为drbd磁盘,SIZE列的值即为其容量 。
4.2、确认当前drbd状态
扩展drbd分区容量前,需要先保证当前drbd状态正常。
在node1节点执行以下命令,查询drbd状态
cat /proc/drbd
执行上述命令后,如果看到类似以下输出,则表明node1和node2两个主机节点的drbd数据是同步的、状态时正常的
如上图,”Connected”表示两个drbd节点是处于连接状态的,”UpToDate/UpToDate”表明两个节点的drbd盘数据是同步的。
如果drbd状态不正常,则需要先参考《SkybilityHA_FAQ》,处理好drbd同步状态后,再做本文后述“扩展drbd盘容量”操作。
4.3、设置SkybilityHA全局禁用
如果drbd状态正常,则可以做扩展drbd盘容量操作,首先在node1主机执行以下命令,设置SkybilityHA全局禁用
hasvcadm --global --disable
4.4、创建新分区
以下以数据盘 /dev/vdb 为例,说明如何将新增的磁盘空间创建为一个新的分区。
1、在node1和node2两台主机上,分别执行以下操作,修正分区表信息
1.1、执行以下命令,进入磁盘分区工具界面
parted /dev/vdb
执行上述命令后,将进入如下界面
1.2、在上述界面中输入 p ,并敲回车键,将进入如下界面
1.3、在上述界面中输入 Fix ,并敲回车键,将进入如下界面
1.4、在上述界面中输入 Fix ,并敲回车键,将进入如下界面
1.5、在上述界面中输入 q ,并敲回车键,完成分区表信息修正并退出parted工具界面
2、在node1和node2两台主机上,分别执行以下操作,创建新的分区
2.1、执行以下命令,进入fdisk分区工具界面
fdisk /dev/vdb
2.2、在上述界面中,输入 p ,敲回车键,进入如下界面,显示当前分区情况
2.3、在上述界面中,输入 n ,敲回车键,进入如下界面,准备创建新的分区
2.4、在上述界面中,直接敲回车键,进入如下界面
2.5、在上述界面中,直接敲回车键,进入如下界面
2.6、在上述界面中,直接敲回车键,进入如下界面
2.7、在上述界面中,输入 w ,敲回车键,完成创建新的分区并退出fdisk分区工具界面
2.8、执行以下命令,更新分区表信息
partprobe
2.9、执行以下命令,将新的分区设置为lvm,从而完成新分区创建
parted --script /dev/vdb "set 2 lvm on"
4.5、扩展drbd盘容量
以下假设新增的磁盘分区为 /dev/vdb2 ,并以此为例做命令操作说明。
1、在node1和node2两台主机上,分别执行以下三行命令,将 /dev/vdb2 分区创建为物理卷,并加入卷组 vg_gj_b ,同时扩展逻辑卷 lv_gj_b
pvcreate /dev/vdb2 vgextend vg_gj_b /dev/vdb2 lvextend -l +100%FREE /dev/vg_gj_b/lv_gj_b
执行上述命令后,再执行 lsblk 命令,将看到类似如下输出,可以看到,vdb2 分区被加入到了vg_gj_b卷组中,并作为了逻辑卷lv_gj_b的底层磁盘
2、在node1和node2两台主机中,分别执行以下命令,扩展drbd
drbdadm resize drbd0
3、等待drbd同步完成,再执⾏后续命令,可通过在node1或node2主机中执行命令 cat /proc/drbd 查看同步状态,待同步100%后再进⾏后续“扩展数据分区容量”操作
4、在node1和node2两台主机上执行以下命令,扩展drbd0所在pv,完成扩展drbd盘容量操作
if cat /proc/drbd | grep "Primary/Secondary"; then pvresize /dev/drbd0 ; fi
4.6、扩展数据分区容量
以下以为Mongo分区增加5G容量为例,进行分区容量扩展说明。
1、在node1和node2两台主机上,分别执行以下一行命令,为Mongo分区增加5G容量
if cat /proc/drbd | grep "Primary/Secondary"; then lvextend -L +5G /dev/vg_gj/lv_mongo ; fi
2、在node1和node2两台主机上,分别执行以下命令,重新检测Mongo所在⽂件系统⼤⼩,即可完成扩展Mongo数据分区容量操作
if cat /proc/drbd | grep "Primary/Secondary"; then resize2fs /dev/vg_gj/lv_mongo ; fi
4.7、取消SkybilityHA全局禁用
在node1主机执行以下命令,取消SkybilityHA全局禁用
hasvcadm --global --enable
至此,即可成功扩展数据盘分区容量,此时,可以运行行云管家,并进行操作,如果操作正常(例如查看原有的审计录像正常),即表示扩展磁盘分区成功。
五、附录:设置磁盘空间监控告警
通过在SkybilityHA中设置数据磁盘分区监控,监控数据磁盘分区的消耗情况,在磁盘分区空间占用达到设定阈值时,可以获得邮件通知,进而在数据磁盘分区空间占满之前,对其进行扩展,避免因磁盘空间不足而引起服务停止。
设置SkybilityHA磁盘空间监控操作如下。
5.1、安装监控组件包
1、将SkybilityHA-disk-percent-5-0.x86_64.rpm组件包拷贝至两台部署了SkybilityHA的主机(以下将两台主机简称为 node1 和 node2)的/opt目录
2、在node1和node2两台主机中,分别执行以下命令,安装监控组件
cd /opt yum -y install SkybilityHA-disk-percent-5-0.x86_64.rpm
5.2、开启SkybilityHA并配置邮件服务
SkybilityHA的监控告警信息将以电子邮件进行发送,邮件发送至指定的管理员邮箱。
配置SkybilityHA邮件服务操作如下。
1、以浏览器登录SkybilityHA管理控制台,行云管家部署环境中的SkybilityHA管理控制台登录地址为:http://node1_ip:9099 或 http://node2_ip:9099 ,其中 node1_ip 指的是node1主机的ip地址,node2_ip指的是node2主机的ip地址,登录后将进入SkybilityHA管理控制台
2、点击“全局配置”,进入全局配置界面
3、在全局配置界面下,找到“E-MAIL”区域,并勾选其中的“启用”,开启邮件配置
4、配置邮件发送设置,如下图,指定邮件发送服务器地址、端口、登录用户、接收邮件者地址等信息
5、设置完毕后,点击页面上方的“保存”,使得邮件设置生效,完成邮件配置
5.3、SkybilityHA监控服务设置
通过设置监控行云管家数据磁盘占用率,在磁盘空间占用率达到监控阈值时可以获得邮件通知。以下以设置磁盘占用率达到85%时,发送告警邮件为例进行设置。
1、在node1主机上执行以下命令,对SkybilityHA做全局禁用
hasvcadm --global --disable
2、在node1主机上执行以下一行命令(注意:是一行命令,可以整体拷贝粘贴到SSH终端中执行),设置HA资源监控服务
hacli << EOF service add -n disk_mon_srv --node gj-a --node gj-b resource add -n disk_mon_rsc -s disk_mon_srv resource parameter add disk_percent/disk -n disk_mon_rsc --mountpoint /var/lib/mongo,/var/lib/mysql,/var/lib/influxdb,/var/lib/redis,/opt/cloudbility --percent 85 location add --parent mongo --child disk_mon_srv bootfirst add --first mongo --second disk_mon_srv saveconfig exit EOF
3、在node1主机上执行以下一行命令,同步HA配置到node2主机节点
haconf -sn
4、在node1主机上执行以下命令,取消SkybilityHA全局禁用
hasvcadm --global --enable
至此,即可完成磁盘空间占用监控告警设置。