第一部分 回收Thin模式磁盘空间
背景:在使用Thin模式的磁盘,空间不停的增加,通过通常的方法删除文件,释放可用空间,在虚拟机中查看已使用空间和在vsphere的存储中查看的已使用空间不一样,存储中的空间好像只会增加不会自动减少,根据搜索的资料总结出来释放可用空间的方法如下
环境:Vsphere 6.0
第二部分 虚拟机中处理
如果是windows系统,请使用sdelete工具进行置零,此工具在微软官网可以搜索下载;命令:sdelete -z C: 这里是以C盘为例子,实际中使用相关盘符替代C
以上过程非常缓慢,请耐心等待;
if you’re in a Linux guest, use dd to do the same thing.
dd if=/dev/zero of=/[path]/zeroes bs=4096 && rm -f /[path]/zeroes
第三部分 ESXI主机中的处理
1.开启ESXI主机的SSH功能;
2.如果有快照,先删除快照;
3.通过SSH登入ESXI主机,执行如下命令
3.1 df -h 查看该ESXI主机下所有的卷
3.2 cd /vmfs/volumes/... 进入对应的卷
3.3 cd srv01 进入虚拟机文件夹
3.4 du -ah * 用于查看当前目录下的所有文件的列表及所占空间大小(GB)
3.5 vmkfstools --punchzero srv01.vmdk 执行收缩名,其中vmdk文件名输入您系统中对应的vmdk的文件名(前提:虚拟机需要关机)
3.6 通过3.4的命令查看,空间则缩减为和虚拟机中显示的同样的状态
第四部分 虚拟硬盘类型转换
- Thick 转换为 Thin
1.1 vmkfstools -i<source-disk-name.vmdk>-d {thin|thick}<destination-disk-name.vmdk>
1.2 参数说明:-i <source-disk-name.vmdk>参数:原vmdk磁盘名 ; -d {thin|thick}<destination-disk-name.vmdk> :目标磁盘的格式,thin或thick; <destination-disk-name.vmdk>为要生成的目标vmdk磁盘名;
1.3 进入虚拟机所在的目录:cd /vmfs/volmues/... #此时体现出英文命名的好处了吧#
1.4 目录内容说明:需要注意:转换过程中需要用到的文件是vmdk磁盘文件,vmdk有两种,一种是”虚拟机名.vmdk”,另一种是”虚拟机名-flat.vmdk”,vmdk文件很小,存放了虚拟磁盘的一些配置信息(如虚拟磁盘数据文件等),实际数据都存放在flat.vmdk文件中,转换时需要使用vmdk文件而不是flat.vmdk文件
1.5 按照如上命令行格式进行转换;
1.6 转换完成后将原来的vmdk文件进行重命名,mv virtual_machine.vmdk virtual_machine_old.vmdk , mv virtual_machine-flat.vmdk virtual_machine-flat.vmdk
1.7 将转换完成的vmdk文件重命名为虚拟机的原vmdk名称;
1.8 查看和编码vmdk文件,修改行# Extent description
RW 1468006400 VMFS "Virtual_Machine-flat.vmdk"
1.9 开机虚拟机是否可以启动;注意:不能删除重命名的旧文件(-flat的旧文件可以删除)