File system specific implementation of LookupAndOpen [file] failed
一、问题描述:
某vm开机时,报错:文件系统特定的dOpen [file] 实施无效,无法启动虚拟机;“File system specific implementation of LookupAndOpen [file] failed。”
二、分析处理
1)可能原因:
使用sesparse vmdk回收链接克隆的磁盘空间时数据损坏。/
虚拟磁盘描述符文件(.vmdk,.vmx)中存在错误条目/
ESXi主机与存储阵列之间的通信问题/
ESXi操作系统问题/
文件锁的问题/
虚拟磁盘数据损坏
2)检查vm的 vmkernel.log和vmware.log,有相关指示条目;
3)修复磁盘
1 2 3 | vmkfstools -x check /vmfs/volumes/<datastorepath>/<vm name>/<vm name main base disk>.vmdk vmkfstools -x repair /vmfs/volumes/<datastorepath>/<vm name>/<vm name main base disk>.vmdk |
4)参考KB82673;
1>检查vm的磁盘是否被其他vm所使用中;(现场是如此)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | grep -i virtualdisk.vmdk /vmfs/volumes /*/*/ *.vmx ##esxi主机上检查,输出结果多余1条的,证明有多个虚拟机占用 /vmfs/volumes/xxxxxxxx-xxxxxxxx-xxxx-xxxxxxxxxxxx/VM/VM.vmx:scsi0:0.fileName = "virtualdisk.vmdk" #检查文件是否使用及使用者,执行: vmkfstools -D /vmfs/volumes/xxxxxxxx-xxxxxxxx-xxxx-xxxxxxxxxxxx/VM/virtualdisk-flat.vmdk #输出如下类似:owner,Lock,可判断出当前正在使用的vmnic和mac地址; Aug 25 09:32:13 esxhost vmkernel: 11:13:16:44.102 cpu3:1041)FS3: 130: <START virtualdisk-flat.vmdk> Aug 25 09:32:13 esxhost vmkernel: 11:13:16:44.102 cpu3:1041)Lock [type 10c00001 offset 69419008 v 436, hb offset 3200512 Aug 25 09:32:13 esxhost vmkernel: gen 40, mode 1, owner 4a84acc3-786ebaf4-aaf9-xxxxxxxxxxxx mtime 271] Aug 25 09:32:13 esxhost vmkernel: 11:13:16:44.102 cpu3:1041)Addr <4, 153, 112>, gen 379, links 1, type reg, flags 0x0, uid 0, gid 0, mode 100600 Aug 25 09:32:13 esxhost vmkernel: 11:13:16:44.102 cpu3:1041)len 8388608, nb 8 tbz 0, zla 1, bs 1048576 Aug 25 09:32:13 esxhost vmkernel: 11:13:16:44.102 cpu3:1041)FS3: 132: <END virtualdisk-flat.vmdk> cat /etc/vmware/hostd/vmInventory.xml |grep -i vm_name |grep vmx #查找vm的配置文件 vim-cmd vmsvc/getallvms |grep -i vm_name cat VM config file name |grep fileName #获取当前连接到VM的虚拟磁盘文件的名称,上面查出的file name (*.vmx) |
2>检查vm的vmdk文件是否被锁定;
3>检查确认vm的虚拟磁盘文件大小是否配置正确,没有被损坏;
4>更多参考KB82673;
5)检查esxi主机与VMFS6 存储卷的通信是否异常,他们之间用VAAI ATS heartbeat;通过在ESXi内核中禁用ATS heartbeat,可将与心跳相关的活动还原为旧方法。旧式方法涉及VMware ESXi内调用普通的SCSI读写来处理验证,新方法将验证步骤卸载到存储系统。
这种优化导致ESXi内核向存储系统发出的ATS命令数量显著增加,并导致存储系统负载增加。在某些情况下,使用ATS的VMFS心跳可能会失败,并出现错误的ATS错误比较,这会导致ESXi内核再次验证其对VMFS数据存储的访问。这会导致无法访问数据存储消息。 VMFS5/VMFS6存储中,默认ATS开启;以下命令执行后立即生效,不影响ESXi host OS;选项的根节点均为/VMFS3;
1 2 3 | esxcli system settings advanced set -i 0 -o /VMFS3/UseATSForHBOnVMFS5 #禁用ATS esxcli system settings advanced set -i 1 -o /VMFS3/UseATSForHBOnVMFS5 #启用 esxcli system settings advanced list -o /path #验证 |
1 2 3 | Get-AdvancedSetting -Entity VMHost-Name -Name VMFS3.UseATSForHBOnVMFS5 | Set-AdvancedSetting -Value 0 -Confirm:$ false Get-AdvancedSetting -Entity VMHost-Name -Name VMFS3.UseATSForHBOnVMFS5 | Set-AdvancedSetting -Value 1 -Confirm:$ false |
最好选择此方法恢复 VMFS 检测信号活动,而不是在使用相应存储系统时全局禁用 VAAI 或 ATS。尽管某些存储系统要求将检测信号相关的活动恢复为旧方法,它们仍能正常处理与检测信号无关的 ATS 命令,而且使用 ATS 能够带来显著的性能和扩展优势,即便不应将 ATS 用于 VMFS 检测信号。
本文来自博客园,作者:聆听城市喧哗,转载请注明原文链接:https://www.cnblogs.com/fzhelpdesk/p/17247813.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术