1.环境及背景介绍
th045、th046环境部署heartbeat+drbd+mfsmaster,两个节点做高可用,th045当前是主,DRBD meta data分区使用的/dev/sdb1,空间太小,之前出过故障,当磁盘满时服务会直接宕掉,故准备扩容,更换drbd分区磁盘
2.目标
切换th045、th046的元数据目录使用/disk12,当前/disk12已经从mfs中下线,已创建分区/dev/sdm1,准备切换,即DRBD meta data分区使用的磁盘/dev/sdb1改为/dev/sdm1
3.操作步骤:
步骤一 th046切换目录
$ dd if=/dev/zero bs=1M count=1 of=/dev/sdm1 #对于新磁盘首次会报错,需要执行此命令
$ vim /disk1/drbd-8.4.3/etc/drbd.conf #修改配置更换磁盘
/dev/sdb1 改为 /dev/sdm1
$ service drbd restart
$ drbdadm detach r0
$ drbdadm create-md r0
$ drbdadm attach r0
之后会进入同步,此过程对服务无影响,等待同步完成后,进入第二步
步骤二 切换mfs master为th046
$ service heartbeat stop
说明:主节点停止heartbeat,服务会自动切换,vip会自动漂移至th046,并启动mfsmaster机mfscgisrv,在此过程中客户端会读写阻塞,大概20s,服务正常后如下操作
$ service heartbeat start
步骤三 th045切换目录
#操作类似步骤1
$ dd if=/dev/zero bs=1M count=1 of=/dev/sdm1
$ vim /disk1/drbd-8.4.3/etc/drbd.conf
/dev/sdb1 改为 /dev/sdm1
$ service drbd restart
$ drbdadm detach r0
$ drbdadm create-md r0
$ drbdadm attach r0
之后会进入同步,此过程对服务无影响,等待同步完成后,进入第四步
步骤四 扩容磁盘并切换mfs master为th045
由于小磁盘扩容大磁盘后大小未变大,还是20G,因此准备扩容,由于文件系统时ext4,不能在线resize,需要停服
1.卸载mfs客户端(防止停服导致机器压力增大)
$ umount -lf /mfs_live
两个master节点也挂载了mfs存储,需要首先卸载mfs,否则当服务停掉后,mfs客户端会阻塞,系统会慢慢被拖垮
2.停服(th046)
su - mfs
mfsmaster stop
4.3.扩容(th046)
cp -rp /mfsmetadata/mfsmaster_metadata /disk1/ #备份,以防万一
exit
umount -lf /mfsmetadata/mfsmaster_metadata
e2fsck -f /dev/drbd0
resize2fs /dev/drbd0
service heartbeat stop
等待服务迁移完成
service heartbeat start
4.测试及服务恢复
df -h
mfsmount -H 10.105.132.222 /mfs_live
4.总结:
- 此步骤为正确的切割步骤,实际操作中出现好多意外,例如1.更换磁盘后,磁盘空间未按照预期扩大;2.停服时未卸载mfs客户端,导致服务器变卡,切割失败等
2.在停服过程中,部分使用mfs存储的服务会宕掉,如依赖了mfs的jdk的服务可能会宕掉。目前排查原因是服务会定期从jdkload下jar包,如果恰好jdk目录不可用了,一般会有jvm致命异常
3.由于广告mfs元数据存在此套mfs存储中,当停服时间过长时可能会导致广告mfs宕掉,故首先将mfs迁出