一,缘起
1,某服务器磁盘空间不足,需要扩容,联系运营商在原盘基础上增加了容量。(两种方式,1增加数据盘,2在原盘上扩容,根据情况选择适合的)
2,扩容后发现原盘已经是2T,增加了1T,一共3T,但磁盘格式原来使用的是MBR,导致无法识别超过2T的容量。
3,因原盘上存在大量生产数据且不是LVM的模式挂载,必须保留无损,不能使用直接删除分区重建等方式,所以需要无损转换。
二,操作过程
扩容的磁盘为 /dev/sdb ,从2T扩到3T,在使用分区为 /dev/sdb1,挂载在 /data。
1,从MBR转为GPT
1.1,工具安装:
1.2,查看原盘信息,记住磁盘格式TYPE的值:ext4/xfs等。(附:xfs格式不支持动态缩容文件系统)
1.3,停止所有该磁盘上应用,并解除挂载
1.4,转换分区格式
1.5,重建原分区,【此步骤极为重要,必须先重建原分区大小,再进行扩容,不能一步到位,否则数据全部丢失。】
1.6,扩容原磁盘(可选,只是转格式此步骤不用执行)
1.7,转换格式和扩容完成后操作
1.7.1,恢复挂载,检查数据是否正常
1.7.2,启动应用检查日志是否异常,应用服务是否正常。
1.8,报错信息处理
1.8.1,Warning! Secondary partition table overlaps the last partition by 33 blocks!
在虚拟机上测试是因为反复转换磁盘格式产生的问题;
另一个原因是服务器扩容磁盘以后没有刷新出来容量,需要解除挂载重新挂,直到看到完整的扩容后磁盘容量,再执行就没有这个错误了。
解决方法:(谨慎操作,只在虚拟机测试上面验证过)
gdisk /dev/sdb
输入:
x -> z -> y * 2
2,从GPT转为MBR
三,提示:
数据无价,涉及此类操作前务必做好备份和在测试环境反复测试,以上方法不确保能绝对无损。
20240126线上扩容完整操作正常扩容
挂载后发现分区大小还是原来的,再扩容文件系统