一例VMware ESXi虚拟机删除快照时出现vim.fault.GenericVmConfigFault的解决方法
某企业VMware vSphere 6.7虚拟化环境,vSAN存储。使用Veeam 9.5备份重要的业务虚拟机。在进行例行检查时发现:某台虚拟机在使用VBR的复制时失败,出错信息如下:
A general system error occurred: Fault cause: vim fault. Genericvmconfigfault
登录到vCenter Server检查该虚拟机,发现该虚拟机(名称为WS08R2_ERPDB_210712-200.23)有许多名称为VEEAM BACKUP TEMPORARY SNAPSHOT的快照(如图1所示),这些快照是 Veeam 在执行虚拟机备份或虚拟机复制作业上创建的,此快照的创建会导致虚拟机的基本磁盘在作业的读取操作期间处于只读状态。Veeam会在备份或复制完成后删除该快照。
图1 Veeam创建的临时快照
但是,通过查看该虚拟机的任务发现,在移除快照时出现了错误,错误提示为“出现了常规系统错误:Fault cause: vim fault. Genericvmconfigfault”,如图2所示。
图2 移除快照时出错
【注意】 VMware 快照是一个增量文件,其中包含自该快照创建以来对该 VM 所做的所有更改。因此,对于生产环境中有重要数据的虚拟机,永远不要使用“恢复”选项至关重要,因为这会破坏更改数据并将 VM 的状态恢复到创建快照时的时间点。
在使用Veeam备份或复制虚拟机时,Veeam备份服务器和Veeam备份代理虚拟机会锁定快照,如果没有正确释放锁定的快照文件,将会出现图3所示的移除快照时出错的故障。当出现这种情况时,要检查当前环境中的Veeam备份服务器和备份代理虚拟机的配置,是否有锁定的其他虚拟机硬盘的配置。检查的方法很简单,编辑Veeam备份服务器和Veeam备份代理虚拟机,检查是否有多余的硬盘。注意,检查的时候要确认没有正在执行备份或复制的任务,在没有虚拟机备份和复制任务执行的前提下检查。如果有多余的硬盘,检查是否是锁定的虚拟机的快照文件,如果是,从配置中移除锁定的文件即可。
但是,在本次案例中,经过检查Veeam备份服务器和Veeam备份代理虚拟机,没有多余的硬盘配置。
对于这种只能为虚拟机创建快照但无法删除快照的情况,可以尝试关闭虚拟机再删除全部快照的方法。在申请了停机时间后,关闭了故障虚拟机,尝试删除所有快照,错误提示依旧。
对于这种情况,可以使用VMware Converter软件,以P2V的方式将该虚拟机当成物理机,迁移到虚拟化平台。但是该虚拟机是EFI引导方式,目前的VMware Converter 6.2的版本不支持该功能。
最后决定创建一个具有同样配置的“空白”虚拟机,使用磁盘复制的方式,将故障虚拟机的硬盘复制到空白虚拟机,然后修复Windows引导环境的方式完成了修复,下面介绍修复的方法,步骤如下。
(1)检查当前故障虚拟机的硬盘数量和分区数,并做好标记。当前计算机有3个硬盘(如图3所示),其中第1个硬盘划分了C和D这2个分区,第2个硬盘划分了F和G这2个分区,第3个硬盘划分了1个名称为J的分区。为了避免克隆后分区名称的顺序变动,将卷标修改为同名的盘符名称。
图3 查看磁盘数量和大小
(2)检查故障虚拟机的CPU、内存、硬盘数量和大小,当前虚拟机是32个VCPU、64GB内存,有3块硬盘。第1个硬盘为835GB,第2个硬盘为3071.999GB,第3个硬盘大小为40GB。
(3)新建虚拟机,虚拟机名称为WS08R2-ERPDB-220719-200.23,配置要不低于源虚拟机的配置。在当前示例中,新建虚拟机具有相同的CPU和内存,以及硬盘数量。但每块硬盘对应的容量大于或等于源虚拟机的配置,在当前示例中,源硬盘大小分别是835GB、3071.999GB和40GB。新建的虚拟机的硬盘大小依次是900GB、3072GB和40GB。该虚拟机创建完成后,不要打开虚拟机的电源。
(4)编辑故障虚拟机的配置(故障虚拟机名称为WS08R2_ERPDB_210712-200.23),添加新设备选择使用现有硬盘,将上一步中新建虚拟机的硬盘附加到故障虚拟机中,如图4所示。在“虚拟机选项”中,修改引导方式为BIOS,并选中“下次引导时强制进入BIOS”。
图4 添加新虚拟机硬盘
(5)为故障虚拟机添加新创建虚拟机的空白硬盘后,使用VMRC打开故障虚拟机控制台,加载Windows PE的ISO镜像文件为虚拟机光驱。打开故障虚拟机的电源,进入BIOS选项,修改引导顺序为光驱最先引导。保存退出,使用Windows PE的ISO启动故障虚拟机,进入Windows PE,运行DiskGenius,使用“工具”菜单里面的“克隆磁盘”功能,将3个故障硬盘一一故障到新的3个空白硬盘中。
注意,克隆的时候要正确的选择源硬盘和目标硬盘。因为故障虚拟机有3个硬盘,所以需要分3次克隆。第一次克隆的时候,要复制的硬盘选择HD0(如图5所示),目标硬盘选择HD3(空闲的900GB硬盘)。
图5 第1次克隆:选择源硬盘
在“克隆硬盘”对话框中选择“按文件系统结构原样复制”,然后单击“开始”按钮。
DiskGenius提示“目标硬盘各分区上的所有文件将会被覆盖”,此时可以根据大小再次进行确认。根据图10所示截图,故障虚拟机第1个硬盘大小容量为835GB,需要复制到容量为900GB的硬盘上。确认无误之后单击“确定”按钮。之后开始克隆,直到克隆完成,如图6所示。
图6 第1块硬盘复制完成
(6)参照第(5)步的操作克隆第2个硬盘,将HD1的硬盘复制到容量为2072GB的HD4。
(7)参照第(5)步的操作克隆容量为40GB的第3个硬盘。
(8)克隆完成后,退出DiskGenius,关闭虚拟机电源。修改虚拟机配置,移除添加的硬盘4、硬盘5和硬盘6,注意,不要选中“从数据存储删除文件”的选项,如图7所示。
图7 移除硬盘4、硬盘5和硬盘6
(9)修改复制后的虚拟机,当前示例中虚拟机名称为WS08R2_ERPDB_220719-200.23,修改引导方式为BIOS,并且下次引导时进BIOS。使用VMRC控制台打开虚拟机的电源,修改Boot引导顺序为光驱最先引导,然后加载Windows PE的ISO文件作为虚拟机光驱。保存BIOS配置后,使用Windows PE的ISO引导进入Windows PE。
(10)进入Windows PE后,执行DiskGenius,删除C盘前面的3个容量较小分区,按F8保存。然后将当前的硬盘分区表从GUID转换为MBR格式,然后按F8保存。最后选中C盘,调整分区大小,将C盘前面删除的空间扩展到C盘。如图8所示。然后保存退出。
图8 将分区表转换为MBR格式
(11)使用Windows PE中的“Win引导修复”程序,修复Windows引导环境,如图9所示。
图9 修复Windows引导环境
(12)关闭虚拟机,取消加载的Windows PE的ISO镜像文件,重新打开虚拟机的电源。此时该虚拟机可以正常进入Windows操作系统。并且该虚拟机也能创建快照也能删除。修复完成,进入Windows系统后,在“计算机管理→存储→磁盘管理”中,将每个分区的盘符顺序修改为原有的顺序。
(13)打开网络设置,为虚拟机设置原来的IP地址、子网掩码、网关和DNS。
(14)重新启动虚拟机,再次进入虚拟机之后,检查业务是否正常。
(15)修改故障虚拟机的名称,添加“-不使用,一周后删除”的后缀。如果克隆硬盘后新建的虚拟机使用一切顺序,则可以在一周后删除原来的故障虚拟机。这些不再一一介绍。
相关视频
==========视频,如需浏览请用鼠标右键单击打开=============
王春海视频页
https://edu.51cto.com/lecturer/225186.html
vCenter服务无法启动的常见原因和解决方法
https://edu.51cto.com/course/32606.html
VMware NSX网络虚拟化入门
https://edu.51cto.com/course/31457.html
VMware vSphere 7.0服务器虚拟化入门
https://edu.51cto.com/course/29857.html
VMware Horizon 8 桌面虚拟化入门
https://edu.51cto.com/course/28118.html
VMware vSphere迁移与升级视频课程
https://edu.51cto.com/course/27973.html
基于Veeam V11的物理机和虚拟机的备份容灾应用视频
https://edu.51cto.com/course/27783.html
VMware ESXi与vCenter Server安装与升级实验视频课程
https://edu.51cto.com/sd/e1e6b
使用NVIDIA RTX8000配置GPU的虚拟桌面
https://edu.51cto.com/sd/952a9
VMware vSphere 6.7虚拟化入门视频课程
https://edu.51cto.com/sd/22fe0
VMware vSAN 6.7实战演练
https://edu.51cto.com/sd/c6449
深入学习VMware Horizon View7虚拟桌面
https://edu.51cto.com/sd/225f2
中小企业vSphere虚拟化数据中心规划设计与产品选型
https://edu.51cto.com/sd/04e53
标签:快照,Windows,ESXi,虚拟机,硬盘,cto,VMware From: https://blog.51cto.com/wangchunhai/6138635