vSphere 故障排错:针对 Virtual Machine 的故障排查
twt企业IT社区 2018-04-25
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