在工作中由于同事疏忽,给虚拟机添加磁盘的格式选为厚置备,导致虚拟机直接占用大量磁盘空间。以下介绍一个将厚置备转为精简置备的方法,实测可行。
厚置备转精简置备的方法有好几个,官方介绍的通过“迁移”,“克隆”等方法太费时间。相比来说,使用vmkfstools
工具又简单又快捷。
一、ESXI7开启SSH
二、使用Xshell6连接服务器
三、转换磁盘
四、修改配置
五、写在后面
一、ESXI7开启SSH服务
如果你能登录服务器的web控制台,那么可以在 控制台-管理-服务 中打开TSM
及TSM-SSH
服务。
如果你不能够登录服务器的web控制台,那么可以在服务器上接入显示器及键盘,按F2
进入系统界面,输入root及密码进入配置中心,选择Select and enter Troubleshooting Options
,找到SSH的选项,回车,使服务变为enable。
注意:在ESXI6的版本也可以使用vSphere连接服务器,但是在7以上的系统中已经被弃用了。
二、使用Xshell6连接服务器
为什么强调 要使用Xshell6 来连接服务器呢,因为使用Xshell5连接会报错“服务器发送了一个意外的数据包”
具体原因不详,如果你去百度,基本都会说修改/etc/ssh/sshd_config
文件,但实测安装Xshell6连接就不会报错。如果有大神知道怎么回事,欢迎交流。
三、转换磁盘
首先确认虚拟机已经关闭!!!
找到虚拟机文件存储的位置,如:/vmfs/volumes/datastore2/V3-WEB/
, 使用vmkfstools
工具进行转换:
vmkfstools -i VM名称.vmdk -d thin <VM名称新磁盘>.vmdk
在目录中会有两个.vmdk
文件,查看大小可发现,V3-EB-flat.vmdk
文件足有1000G,而V3-EB.vmdk
是描述性文件,进行转换就要改写V3-EB.vmdk
文件,所以命令为:
vmkfstools -i V3-EB_1.vmdk -d thin V3-EB_2.vmdk
等进度条跑完,会发现目录下多了俩个文件:V3-EB_2.vmdk
和V3-EB_2-flat.vmdk
,并且-flat.vmdk
文件缩小到了几十G。
四、修改配置
直接使用替换文件的方法替换文件:
mv V3-EB_1.vmdk V3-EB_1.vmdk_bak
mv V3-EB_1-flat.vmdk V3-EB_1-flat.vmdk_bak
mv V3-EB_2.vmdk V3-EB_1.vmdk
mv V3-EB_2-flat.vmdk V3-EB_1-flat.vmdk
注意:替换完之后需要修改V3-EB_1.vmdk文件,将文件名进行对应:
RW 2097152000 VMFS "V3-EB_2-flat.vmdk"
修改为:
RW 2097152000 VMFS "V3-EB_1-flat.vmdk"
如果现在启动虚拟机,会发现磁盘还是厚置备,需要将原虚拟机‘取消注册’,然后重新注册一个虚拟机。
回到虚拟机界面,右键 “V3-EB” 虚拟机,点击取消注册
然后到存储→datastore2→数据存储浏览器→V3-EB→V3-EB.vmx
,右键选择注册虚拟机
,重新注册即可。
到虚拟机管理,即可看到磁盘2已经是精简置备了。
五、写在后面
1、使用Xshell6以上版本连接ESXI7
2、将-flat.vmdk
文件转换并替换之后,记得修改.vmdx
文件,不然启动虚拟机会报错找不到vmdx文件
3、需要将虚拟机 “取消注册” 之后重新 “注册虚拟机”
4、文件操作请保证虚拟机已处于关闭状态
5、欢迎交流、指正。如果觉得有用,点个赞吧