作为网络攻城狮大家通常架设服务用到最多的无非就是VMware ESX/ESXi了,那我们在部署虚拟化过程中难免会根据负载进行调整扩容优化,这次介绍下在部分硬盘模式中扩容会造成无法开机等事宜,一个个人正式案例进行备录,希望对大家也有所帮助和提示。
环境:DellEMC-ESXi-6.7.0-8169922-A01 (Dell)
客户机Server:Microsoft Windows Server 2016 (64 位) VBS /ESXi 6.7 及更高版本 (虚拟机版本 14)
磁盘/类型:100G/厚置备,延迟置零
需求:扩容到150G
以上,就是一个简单的扩容,大家都理解,完全可以支持热插拔或者关机编辑修改容量即可,但就是往往认为最简单的问题让我一时疏忽虚拟机磁盘的格式的兼容性问题。
无法打开虚拟机***的电源。VMware ESX 无法打开虚拟磁盘"/vmfs/volumes/5ed22d94-be3ffa6c-96f7-0894ef9a78ac/Windows server 2016/Windows server 2016_2.vmdk"以进行群集,请确认该虚拟磁盘是适用“厚”选项创建的。
...
失败-VMware ESX 无法打开虚拟磁盘"/vmfs/volumes/5ed22d94-be3ffa6c-96f7-0894ef9a78ac/Windows server 2016/Windows server 2016_2.vmdk"以进行群集,请确认该虚拟磁盘是适用“厚”选项创建的。
文件系统特定的OpenFil[file]实施失败
无法在多写入器模式下打开精简/TBZ/稀疏磁盘
无法打开磁盘"/vmfs/volumes/5ed22d94-be3ffa6c-96f7-0894ef9a78ac/Windows server 2016/Windows server 2016_2.vmdk"或其所依赖的快照磁盘之一。
模块"Disk"打开电源失败。
无法启动虚拟机。
详细赘述请参考官网手册,我这边就给出简单的解决方法:
1、打开VMware的SSH:
**2、查询 VMDK 的磁盘格式命令:vmkfstools -t0
##判断磁盘格式是 zeroedthick 还是 eagerzeroedthick
[root@localhost:~] df -l ##查看虚拟机的存储路径,开机报错会有相应的系统路径提示
[root@localhost:~] vmkfstools -t0 "/vmfs/volumes/5ed22d94-be3ffa6c-96f7-0894ef9a78ac/Windows server 2016/Windows server 2016_2.vmdk" ##查询此虚拟机的VMDK硬盘格式
此 vmkfstools 的备用交换机提供所存储虚拟磁盘的详细映射。要使用 -t0 交换机确定 VMDK 是 zeroedthick 还是 eagerzeroedthick,如果显示的输出类似于以下内容,则 VMDK 为 zeroedthick:
[root@localhost:~] vmkfstools -t0 "/vmfs/volumes/5ed22d94-be3ffa6c-96f7-0894ef9a78ac/Windows server 2016/Windows server 2016_2.vmdk"
Mapping for file /vmfs/volumes/5ed22d94-be3ffa6c-96f7-0894ef9a78ac/Windows server 2016/Windows server 2016_2.vmdk (161061273600 bytes in size):
[ 0: 536870912] --> [VMFS -- LVID:5ed22d94-babb2942-b5a1-0894ef9a78ac/5ed22d94-b8c024d6-5b57-0894ef9a78ac/1:( 4801792311296 --> 4802329182208)]
[ 536870912: 536870912] --> [VMFS -- LVID:5ed22d94-babb2942-b5a1-0894ef9a78ac/5ed22d94-b8c024d6-5b57-0894ef9a78ac/1:( 4802329182208 --> 4802866053120)]
[ 1073741824: 536870912] --> [VMFS -- LVID:5ed22d94-babb2942-b5a1-0894ef9a78ac/5ed22d94-
[ 110058536960: 536870912] --> [VMFS Z- LVID:5ed22d94-babb2942-b5a1-0894ef9a78ac/5ed22d94-b8c024d6-5b57-0894ef9a78ac/1:( 4950505553920 --> 4951042424832)]
[ 110595407872: 536870912] --> [VMFS Z- LVID:5ed22d94-babb2942-b5a1-0894ef9a78ac/5ed22d94-b8c024d6-5b57-0894ef9a78ac/1:( 4951042424832 --> 4951579295744)]
[ 111132278784: 536870912] --> [VMFS Z- LVID:5ed22d94-babb2942-b5a1-0894ef9a78ac/5ed22d94-b8c024d6-5b57-0894ef9a78ac/1:( 4951579295744 --> 4952116166656)]
注意:包含 Z 的块在虚拟机第一次尝试在该块上写入数据时未写入并置零。如果显示的输出没有包含Z的块,则 VMDK 为 eagerzeroedthick。
3、执行命令将 VMDK 的磁盘格式转换到eagerzeroedthick , 命令: vmkfstools -k
# vmkfstools -k "My VM.vmdk" ##此命令允许您将预分配的虚拟磁盘转换为 eagerzeroedthick 并维护现有数据,
##注意:必须关闭虚拟机的电源才能运行此命令。
[root@localhost:~] vmkfstools -k "/vmfs/volumes/5ed22d94-be3ffa6c-96f7-0894ef9a78ac/Window
s server 2016/Windows server 2016_2.vmdk"
...
vmfsDisk: 1, rdmDisk: 0, blockSize: 1048576
…这时会有一个转换过程及进度显示,为自动处理过程,完成后我们再查看磁盘格式,发现已经转换成eagerzeroedthick,都没有带Z,此时已大功告成,直接去VMware启动相应虚拟机即可。
[root@localhost:~] vmkfstools -t0 "/vmfs/volumes/5ed22d94-be3ffa6c-96f7-0894ef9a78ac/Windo
ws server 2016/Windows server 2016_2.vmdk"
Mapping for file /vmfs/volumes/5ed22d94-be3ffa6c-96f7-0894ef9a78ac/Windows server 2016/Windows server 2016_2.vmdk (161061273600 bytes in size):
[ 0: 536870912] --> [VMFS -- LVID:5ed22d94-babb2942-b5a1-0894ef9a78ac/5ed22d94-b8c024d6-5b57-0894ef9a78ac/1:( 4801792311296 --> 4802329182208)]
[ 536870912: 536870912] --> [VMFS -- LVID:5ed22d94-babb2942-b5a1-0894ef9a78ac/5ed22d94-b8c024d6-5b57-0894ef9a78ac/1:( 4802329182208 --> 4802866053120)]
[ 1073741824: 536870912] --> [VMFS -- LVID:5ed22d94-babb2942-b5a1-0894ef9a78ac/5ed22d94-b8c024d6-5b57-0894ef9a78ac/1:( 4802866053120 --> 4803402924032)]
[ 1610612736: 536870912] --> [VMFS -- LVID:5ed22d94-babb2942-b5a1-0894ef9a78ac/5ed22d94-b8c024d6-5b57-0894ef9a78ac/1:( 4803402924032 --> 4803939794944)]
[ 2147483648: 536870912] --> [VMFS -- LVID:5ed22d94-babb2942-b5a1-0894ef9a78ac/5ed22d94-b8c024d6-5b57-0894ef9a78ac/1:( 4803939794944 --> 4804476665856)]
[ 2684354560: 536870912] --> [VMFS -- LVID:5ed22d94-babb2942-b5a1-0894ef9a78ac/5ed22d94-b8c024d6-5b57-0894ef9a78ac/1:( 4804476665856 --> 4805013536768)]
注意:所有的块均已置零,因此不包含Z。精简磁盘可以不置零但不包含 Z。这是因为块在写入之前未进行分配。例如:
# vmkfstools -t0 "My VM_3.vmdk"
Mapping for file My VM_3.vmdk (1073741824 bytes in size):
[ 0: 1073741824] --> [NOMP -- :( 0 --> 1073741824)]
4、完成
打开虚拟机后,直接进磁盘管理将扩容的容量进行扩充即可。
以上可参考VMware官方知识库:https://kb.vmware.com/s/article/1011170?lang=en_us