正文共:1234 字 17 图,预估阅读时间:2 分钟
前面介绍了VMware中用于管理VMFS卷、存储设备和虚拟磁盘的命令-vmkfstools(VMware存储管理命令vmkfstools使用指南),主要就是为了今天这个案例。起因是我之前创建了一台Windows虚拟机,磁盘没有配置成精简置备,现在找了比较多的存储资源,虚拟机多了之后总想着把这台虚拟机优化一下。
主要的操作就是转换磁盘格式。
回顾一下,本次操作主要涉及两种磁盘格式:zeroedthick和thin。zeroedthick 即厚置备模式,新建的磁盘默认是这种格式。虚拟磁盘所需的空间是在创建过程中分配的;在创建过程中,物理设备上剩余的任何数据都不会被擦除,而是在从虚拟机首次写入时按需清零,虚拟机不会从磁盘中读取过时的数据。thin即精简置备模式,与(zeroed)thick厚格式不同,虚拟磁盘所需的空间在创建过程中不会分配,而是根据需要提供、清零。
为了对比明显,我们新建两台虚拟机,虚拟机Windows-thick的磁盘配置成厚置备。
虚拟机Windows-thin的磁盘配置成精简置备。
两台虚拟机都安装的Windows 7操作系统,安装完成之后的系统内磁盘使用率相同,均剩余38.6 GB。
然后我们打开数据存储浏览器,看一下磁盘使用情况。首先是Windows-thin,实际磁盘文件大小为7.36 GB。
和实际显示占用的21.2 GB之间存在13.84 GB的差距,但如果我们在系统磁盘中查看隐藏文件就清楚了,有两个系统文件:hiberfil.sys和pagefile.sys,这两个文件都是Windows操作系统中的系统文件,合计占用了将近14 GB的磁盘空间。
hiberfil.sys是Windows的休眠文件。在开启了休眠功能的Windows系统中,当内存大于物理内存时,休眠文件将被创建,用于将内存数据保存到磁盘中,以便在系统唤醒时能够恢复到休眠前的状态。
pagefile.sys是Windows的页面文件。页面文件是虚拟内存的一部分,它用于扩展物理内存的容量。当系统运行程序时,如果程序需要的内存超过了物理内存的容量,系统就会将一些内存数据存储到页面文件中,以便释放物理内存的空间给需要运行的程序。页面文件通常是隐藏的系统文件,而且可以手动设置其大小。
然后是Windows-thick,实际磁盘文件大小为60 GB,和分配的大小一致。
既然如此,我们测试一下在Windows-thin中复制文件,向桌面添加一个108 MB的文件,此时再查看磁盘文件大小,增长了0.11 GB,基本匹配。
然后我们进入ESXi的命令行后台,查看Windows-thin的资源使用情况。
上半部分为开机状态的资源情况,下半部分为关机情况的资源情况。可以看到,两种情况下的差距主要为开机时多了两个.vswp文件,磁盘文件显示的大小都是60 GB,但是总的使用量分别为15.44 GB和7.47 GB,关机情况下的使用率和数据存储浏览器中看到的基本一致了,而差的8 GB空间就是.vswp文件占用的空间。
对比Windows-thick的资源使用情况,两个.vswp文件占用的空间基本一致,关机情况的总使用量为60 GB。
回顾一下,vmkfstools命令转换磁盘格式的命令子选项为-d|--diskformat。KVM精简磁盘使用的是qemu-img命令(qemu-img命令手册),操作方式为压缩磁盘(不是KVM不支持精简置备的磁盘,而是VMM),可以直接-c选项进行操作。但是vmkfstools的-d是一个子选项,需要跟着-c创建命令或-i克隆命令一块使用,创建肯定是不合适了,那就只能是克隆了。
我们先试试它能不能单独使用。
vmkfstools -d thin /vmfs/volumes/datastore1/vmware-windows/vmware-windows.vmdk
报错了,缺少命令参数。再结合克隆命令转换磁盘格式试一下:
vmkfstools -i /vmfs/volumes/datastore1/vmware-windows/vmware-windows.vmdk /vmfs/volumes/datastore1/vmware-windows/windows-thin.vmdk -d thin
可以看到,虽然克隆出来的文件还是60 GB,但是总的空间就只有67.35 GB了,在数据存储浏览器中查看,磁盘大小为7.35 GB。
最后就是验证了,先移除掉之前的厚置备的硬盘。
然后添加一块现有硬盘。
选择到克隆的精简置备磁盘,不过类型和大小识别不是很准确。
挂载之后状态就正常了。
开机看一下,首先需要按提示重新启动。
然后状态就正常了,验证通过。
长按二维码
关注我们吧