drbd磁盘扩容

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. 此步骤为正确的切割步骤,实际操作中出现好多意外,例如1.更换磁盘后,磁盘空间未按照预期扩大;2.停服时未卸载mfs客户端,导致服务器变卡,切割失败等

2.在停服过程中,部分使用mfs存储的服务会宕掉,如依赖了mfs的jdk的服务可能会宕掉。目前排查原因是服务会定期从jdkload下jar包,如果恰好jdk目录不可用了,一般会有jvm致命异常

3.由于广告mfs元数据存在此套mfs存储中,当停服时间过长时可能会导致广告mfs宕掉,故首先将mfs迁出

上一篇:Android简易实战教程--第二十八话《加载大图片》


下一篇:DRBD原理知识