File system specific implementation of LookupAndOpen [file] failed

本文详细阐述了遇到'FilesystemspecificimplementationofLookupAndOpen[file]failed'错误时,如何分析可能的原因,包括磁盘损坏、配置错误、通信故障等。通过检查日志、修复磁盘、调整ATS设置,提供了一套完整的排查和修复流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、问题描述:

某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)修复磁盘

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所使用中;(现场是如此)

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;

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  #验证
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 检测信号。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

羌俊恩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值