工作中由于前期规划不足,导致磁盘空间分配较大,而且是厚置备。后期不再需要时,无法把用不到的空间释放出来,造成空间浪费。经过摸索和实验验证,到最终解决问题,总结出来两种方案。
风险提示:两种方案的实验都验证通过了,但第一种方案在生产环境中没有成功,如有类似问题,建议采用第二种方案!
环境:Esxi 6.5,vCenter 6.5 U1e,Ubuntu 16.04
由于初始分配给Ubuntu 16.04虚拟机的硬盘空间是2T,后期数据量加大需要增加空间时,发现分区表不是GPT,无法超过2T。
VMware官方对于这种情况提供了一种解决办法:通过迁移,改变虚拟磁盘格式,从“厚置备”改成“精简置备”,从而减小实际占用的空间。
通过官方的解决办法进行处理,如下图所示,结果喜忧参半
2.关机后迁移虚拟机,虚拟磁盘格式从“厚置备”改成“精简置备”,已用空间减小到6GB,说明在没有写入数据的情况下,通过官方的方法是可以减小实际占用空间的。
fdisk –lu #查看磁盘分区情况
resize2fs /dev/sda1 10G #把文件系统大小调整为10G
resize2fs /dev/sda1 #调整文件系统大小,使之与分区大小相匹配
dd bs=64k if=/dev/zero of=/dev/sda2 #bs表示每次写的块的大小
删除/dev/sda2,使之变成unallocated
9.再次迁移虚拟机,把虚拟磁盘格式从“厚置备”改成“精简置备”,可以看到已用空间减小到10GB,也就是实际占用的空间确实减小了。
其实现在想来,通过先备份,再还原到精简置备磁盘的方式,应该也是可以的,不过没有验证,而且对于强迫症患者来说,这个方案也并不完美。
所以我的方法是先备份原机器/dev/sda1分区,再新建一台虚拟机,空间比原机器/dev/sda1分区的大小略大(原因参考使用再生龙Clonezilla备份还原Linux系统),然后把备份内容还原到新虚拟机上,之后再把原机器/dev/sdb1分区所在的虚拟磁盘添加到新虚拟机中。
当然,还是要先通过实验验证一番,具体步骤另外写了一篇随笔使用再生龙Clonezilla备份还原Linux系统
实验很成功,效果很满意,接下来就是在半夜没有业务的时候关机调整了。得益于再生龙Clonezilla超高的备份还原效率,30分钟之内完成了全部操作,经过一天的测试,一切正常。
原机器和新机器的配置对比
总结:
1.前期的规划很重要,没做好规划,后期就要浪费很多时间来填坑。
2.大体积虚拟磁盘文件的迁移很费时间,一晚上可能只能干这一件事。
文章知识点与官方知识档案匹配,可进一步学习相关知识云原生入门技能树首页概览8711 人正在系统学习中 相关资源:管道壁厚计算软件_管道壁厚计算软件-制造工具类资源-CSDN文库
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!