查看原文
其他

vSphere 故障排错:针对 Virtual Machine 的故障排查

上篇:vSphere 故障排错思路总结


1、VM 故障排查思想

2 、VM  的文件架构


3 、Content ID

所谓 CID,位于 VM 的磁盘描述文件里面,负责磁盘相关整合状态跟踪


图示说明:

• 母盘的 parentCID 为"fffffff"

• 若虚拟机有快照,则第一级快照的 parentCID 为母盘的 CID,第二级快照的 parentCID 为第一级快照的 CID(若虚拟机存在多层快照,则依次类推)

• 如果快照层级出问题,可能会导致快照出问题,很有可能导致虚拟机无法启动

4 、故障 01 -  解决 Countent ID  不匹配的问题

• Step1:备份好磁盘描述文件

• Step2:下载这个文件,用文本编辑器打开,然后修改 CID


• Step3:修改之后,利用如下命令来验证 CID 的修改是否成功(若提示失败,则意味着 CID 的更改没有成功)

        o vmkfstools -q Win01-A-000002.vmdk -v10

注意:虚拟机快照导致的虚拟机无法启动的故障,很多时候都是快照层级发生错乱所致。这类问题可以采用上述方法来解决。

5 、故障 02 -  解决 Snapshot 之 之 vss  导致故障(执行 Snapshot  时,提示 I/O  静默调用失败)

• VM 有大量的 I/O 负载导致在执行 Snapshot 时 I/O Quiescing 失败

• 通常通过下面 2 个技术来执行 I/O Quiescing

        o Microsoft Volume Shadow Copy Service(VSS)

        o VMware Tools SYNC driver

• 初始化检查

        o 检查是否可以手动创建一个不调用 I/O Quiescing 的快照

6 、解决 I/O Quiescing  导致的 Snapshot  失败的故障问题

• 如果利用 VSS 执行 I/O Quiescing,则需要确认下列条件是否满足

        o VSS 要求满足

        o 相关服务是正常运行状态

        o Microsoft Software Shadow Copy 服务正常

        o VSS Writer 没报错

• 如果利用 SYNC Driver 执行 I/O Quiescing,则需要确认下列条件满足

        o 禁止掉 SYNC Driver

        o 在执行 Snapshot 之前,先将 I/O 密集型的业务停掉(比如数据库)

• 老版本的 Windows OS 没包含 SYNC Driver 在 Microsoft VSS 里面

7 、故障 03 - VM  开机失败

• 在 vmware.log 文件里面可以看到虚拟机开启失败

• 故障原因逻辑分析(从上到下)


• 分析是否 vm 文件丢失

        o 执行如下命令来查看是否存在文件丢失

• ls /vmfs/volumes/Shared/Win01-B


• 解决方案

        o 利用之前的备份来恢复

        o 如果 descriptor 文件丢失,手动重建这个文件

• 分析是否虚拟机被锁定

        o 确认是否存在文件被锁定

• 尝试开机虚拟机,如果失败,说明可能有锁定

• 执行如下命令查询是否有文件被锁定

▪ touch filename

• 可执行如下命令查看哪台 ESXi Host 锁定磁盘文件

▪ vmkfstools -D /vmfs/volumes/Shared/Win01-B/Win01-B-flat.vmdk

• 执行如下命令来找到锁定的进程信息

        o lsof | grep <name_of_locked_file>

• 找到后杀掉它

• 如果依然无法确认那个进程导致虚拟机文件锁定,那就用最简单的逻辑

        o 迁移虚拟机或重启 ESXi Host

8 、故障 04 - VMware Toolsf  无法安装( 最有可能是 GOS  类型选择错误)

• 检查 Guest OS 类型是否正常

• 分析 Guest OS 类型选错的问题

9 、故障 05 - Virtual Machine orphaned( 虚拟机被孤立)

检查 vCenter Server 是否在 VM 执行迁移的过程中重启过该虚拟机(在迁移到 60%的时候最容易出现),因为在虚拟机被重启时,会临时性的无法使用,状态就会显示为 orphaned

• 故障原因逻辑分析(自上而下)

• 分析 vMotion 或 DRS 导致故障

        o 确认是否由于迁移导致故障

• 查看 Tasks 页标签

• 检查 orphaned 虚拟机被注册到的源或目标 ESXi Host

        o 如果有找到虚拟机被注册到 ESXi Host

• 重启 ESXi Host 的管理服务

        o 如果没有找到虚拟机被注册的信息,则执行

• 注册虚拟机到 ESXi Host 或 vCenter

• 利用 orphaned 虚拟机的 vmdk 创建全新的虚拟机

• 分析虚拟机没通过 vCenter 删除导致故障

        o 执行如下命令去验证虚拟机的文件是否存在

• ls /vmfs/volumes/shared/Win01-B

        o 如果配置文件被删除,则执行如下动作来恢复

• 重建虚拟机,借此重建*.vmx 文件

        o 如果虚拟机的磁盘文件被删除,则执行

• 备份恢复计划

• 分析*.vmx 文件导致故障

        o *.vmx 这个文件包含了虚拟机的所有配置信息,如果它被破坏可能会出现上述问题

        o 解决思路

• 利用文件编辑器打开这个*.vmx 文件,去掉其中不当部分后重新尝试

• 从备份信息里恢复*.vmx 文件

• 直接从 Inventory 里移除掉虚拟机,然后重建 vm

• 分析 ESXi Host 根文件系统空间不足导致的故障

        o 当 ESXi Host 的根文件系统空间不足时,系统可能会尝试删除掉虚拟机

        o 可以执行如下命令来确认是否存在这个问题

• DCUI 下面执行:df -h

• 清除不必要的根文件系统里的内容

• 从 Inventory 移除掉 VM,再重新添加

10 、故障 06 - Virtual Machine Snapshot  故障(尝试创建或者处理快照时出错)

• 确认 vm 的磁盘是否支持 Snapshot,因为 RDM 的 Physical Mode、Independent Disk 等状态下是无法做快照的

• 由于 Snapshot 最多支持 32 级,因此,超过后会无法执行

• 故障原因逻辑分析(自上而下)


• 分析描述文件混乱问题导致故障

        o 快照的 delta 文件在描述文件里错乱

• 000001-delta.vmdk 文件在 000001.vmdk 里没有正确描述

        o Delta 磁盘根本就没了描述的配对文件

• copy 基础磁盘的描述文件,然后更名为配对 Delta 磁盘的描述文件

• 编辑里面,将相关的配对信息更改为 Delta 磁盘的信息

• 分析文件尺寸过大问题导致故障

        o VMFS 5 Datastore 单个文件最大支持 62.93TB

        o 快照最大值会受到限制

• VMFS 5 里,最大只能超过原始盘的 8GB 左右

• 这里的 8GB 的来源是开销的部分

• 分析 Datastore 空间不足问题导致故障

        o 要处理所有的快照信息的前提条件就是 Datastore 的空间要足够

        o 可以通过如下方式来确认是否有足够的空间

• 去 GUI 下查看快照所在的 Datastore 空间是否 ok

• 在 ESXi host 上运行命令:df -h


• 解决方案

        o 增加 Datastore 的尺寸

        o 移走虚拟机


上文摘自《技术资料整理归集——vSphere 虚拟化优化与排错》

http://www.talkwithtrend.com/Document/detail/tid/413935

长按二维码关注公众号

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存