Skip to main content
  • Place orders quickly and easily
  • View orders and track your shipping status
  • Enjoy members-only rewards and discounts
  • Create and access a list of your products

vSAN 物理磁盘故障处理指南

Summary: 这是一份常规故障处理指南,可帮助确定 vSAN 群集中的物理磁盘是否存在问题。

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Instructions

从 Web UI 检查 vSAN 物理磁盘状态:

连接到 vCenter Server Web Client 并从以下位置检查磁盘状态:

库存 >主机和群集 > vSAN 群集>配置 > vSAN 磁盘管理 图 1:vSAN 磁盘管理视图 选择受影响的主机,然后展开“查看磁盘”部分:图 2:vSAN >磁盘组视图 vSAN 磁盘管理视图
vSAN 磁盘组视图


在这里,您可以验证磁盘是否被检测到:






运行状况不佳 已卸载
0 容量
永久磁盘故障
磁盘关闭
不存在磁盘

此外,检查从 vSAN Skyline 运行状况部分触发的与磁盘相关的警报: 
 
库存 > 主机和群集 > vSAN 群集 > 监视 > vSAN > Skyline 运行状况 > 物理磁盘

图 3:Skyline 运行状况视图
Skyline 运行状况视图
您可以在此处验证是否触发了以下任何警报:

即将发生永久磁盘故障,正在撤出数据(运行状况 — 黄色)。
即将发生永久磁盘故障,由于资源不足,数据疏散失败(运行状况 - 红色)。
即将发生永久磁盘故障,由于无法访问对象,数据疏散失败(运行状况 - 红色)。
即将发生永久磁盘故障,数据疏散已完成(运行状况状态 — 黄色)
 
此外,您还可以从受影响主机的存储设备列表中检查磁盘状态:

库存 >主机和群集 vSAN 群集>受影响的 vSAN ESXi 主机 > 配置>存储存储>设备 图 4:>

主机存储设备视图
Host Storage Devices 视图
您可以在此处验证磁盘状态是否为:

0 Capacity
Disk Absent
Disk Unmounted
 
Verify there are the Resync happening:

库存 >主机和群集 > vSAN 群集>监视 > vSAN > 重新同步对象:图 5:

“重新同步对象”视图
“重新同步对象”视图
提醒:重新同步可能表示正在从受影响的磁盘或磁盘组中撤出数据。需要进一步调查以确定受影响的磁盘是否已准备好卸下或更换。

 
验证 vSAN 对象的状态:

库存 >主机和群集vSAN 群集监视>程序vSAN Skyline 运行状况数据>vSAN 对象运行状况图 6:vSAN >> 对象运行状况>视图>


vSAN 对象运行状况视图
提醒:务必确认没有不可访问的对象。对象不可访问意味着“对象的所有副本都丢失”。如果您卸下或更换可能导致 DL 的磁盘。

 
下一步是通过 CLI 收集有关问题的更多信息并检查日志:从 CLI 检查 vSAN 物理磁盘状态:通过 SSH 连接到受影响的主机并运行以下命令:




 
vdq -qH
检查“IsPDL”(永久设备丢失)参数。如果等于 1,则磁盘丢失。

Example:
 
DiskResults:
 DiskResult[0]:
 Name: naa.600508b1001c4b820b4d80f9f8acfa95
 VSANUUID: 5294bbd8-67c4-c545-3952-7711e365f7fa
 State: In-use for VSAN
 ChecksumSupport: 0
 Reason: Non-local disk
 IsSSD?: 0
IsCapacityFlash?: 0
 IsPDL?: 0
 <<truncated>>
 DiskResult[18]:
 Name:
 VSANUUID: 5227c17e-ec64-de76-c10e-c272102beba7
 State: In-use for VSAN
 ChecksumSupport: 0
 Reason: None
 IsSSD?: 0
IsCapacityFlash?: 0
 IsPDL?: 1
 
vdq -iH
检查磁盘组中是否缺少磁盘。

Example:
 
Mappings:
DiskMapping[0]:
SSD: naa.58ce38ee2016ffe5
MD: naa.5002538a4819e3e0
 
DiskMapping[2]:
SSD: naa.58ce38ee2016fe55
MD: naa.5002538a48199ca0
MD: naa.5002538a48199e20
MD: naa.5002538a48199e00
 
esxcli vsan storage list
检查“In CMMDS”参数。如果为 false,则与磁盘的通信会丢失。

Example:
 
Device: Unknown
Display Name: Unknown
Is SSD: false
VSAN UUID: 529cadbc-acd1-b588-8643-68336d5512d6
VSAN Disk Group UUID:
VSAN Disk Group Name:
Used by this host: false
In CMMDS: false
On-disk format version: <Unknown>
Deduplication: false
Compression: false
Checksum:
Checksum OK: false
Is Capacity Tier: false
 
for i in `esxcli  storage core device list | grep ^naa` ; do echo $i; esxcli storage core device smart get -d $i; done.
使用智能 get 命令检查读/写错误。

Example:
 
naa.55cd2e404c1f35a1
Parameter                   Value  Threshold  Worst  Raw
--------------------------  -----  ---------  -----  ---
Health Status               OK     N/A        N/A    N/A
Media Wearout Indicator     100    0          100    86
Read Error Count            130    39         130    133
Power-on Hours              100    0          100    110
Power Cycle Count           100    0          100    106
Drive Temperature           100    0          100    26
Uncorrectable Sector Count  100    0          100    0
naa.55cd2e404c1f35a5
Parameter                   Value  Threshold  Worst  Raw
--------------------------  -----  ---------  -----  ---
Health Status               OK     N/A        N/A    N/A
Media Wearout Indicator     100    0          100    10
Read Error Count            130    39         130    53
Power-on Hours              100    0          100    110
Power Cycle Count           100    0          100    106
Drive Temperature           100    0          100    27
Uncorrectable Sector Count  100    0          100    0
 
esxcli vsan storage list | grep "VSAN Disk Group UUID:" | sort | uniq -c
检查可用的磁盘组。

Example:
 
      2    VSAN Disk Group UUID: 5203424c-ee56-497d-75d1-fcf73ae997cb
      2    VSAN Disk Group UUID: 52af8e5c-77d1-b552-3310-ec5fef09edf4
 
while true;do echo " ****************************************** "; echo "" > /tmp/resyncStats.txt ;cmmds-tool find -t DOM_OBJECT -f json |grep uuid |awk -F \" '{print $4}' |while read i;do pendingResync=$(cmmds-tool  find -t DOM_OBJECT -f json -u $i|grep -o "\"bytesToSync\": [0-9]*,"|awk -F " |," '{sum+=$2} END{print sum / 1024 / 1024 / 1024;}');if [ ${#pendingResync} -ne 1 ]; then echo "$i: $pendingResync GiB";fi;done |tee -a /tmp/resyncStats.txt;total=$(cat /tmp/resyncStats.txt |awk '{sum+=$2} END{print sum}');echo "Total: $total GiB" |tee -aa /tmp/resyncStats.txt;total=$(cat /tmp/resyncStats.txt  |grep Total);totalObj=$(cat /tmp/resyncStats.txt|grep -vE " 0 GiB|Total"|wc -l);echo "`date +%Y-%m-%dT%H:%M:%SZ` $total ($totalObj objects)" >> /tmp/totalHistory.txt; echo `date `; sleep 60; done
检查是否存在正在进行或停滞的重新同步操作。

Example:
 
Total: 0 GiB
Mon Feb 13 17:32:06 UTC 2023

Ctrl+C 停止命令。
 
cmmds-tool find -f python | grep CONFIG_STATUS -B 4 -A 6 | grep 'uuid\|content' | grep -o 'state\\\":\ [0-9]*' | sort | uniq -c
检查组件的状态。

正常 -- 状态 7
无法访问 -- 状态 13
不存在或降级 -- 状态 15
 
示例:
 
    425 state\": 7
 
如何通过 CLI 确定故障 SSD 或硬盘的位置:

列出所有可用设备:
esxcli storage core device list | grep "naa" | awk '{print $1}' | grep "naa"

Example:
 
naa.5000c500852df8d3
naa.55cd2e404c1f35a1
naa.55cd2e404c1f35a5
naa.5000c500852dd5e7

使用列表中的每个磁盘 naa 检查位置:
esxcli storage core device physical get -d
 
Example:
 
esxcli storage core device physical get -d naa.5000c500852df8d3
esxcli storage core device physical get -d naa.55cd2e404c1f35a1
esxcli storage core device physical get -d naa.55cd2e404c1f35a5
esxcli storage core device physical get -d naa.5000c500852dd5e7
 
   Physical Location: enclosure 65535 slot 0
   Physical Location: enclosure 65535 slot 1
   Physical Location: enclosure 65535 slot 2
   Physical Location: enclosure 65535 slot 3

如果缺少设备名称,如何识别发生故障的硬盘或 SSD:

可能未检测到故障磁盘,并且无法使用相应的 naa 进行识别。在这种情况下,需要找到所有磁盘,而未实际找到的磁盘将是发生故障的磁盘。

下面是一个脚本,可用于稍快地执行任务:
echo "=============Physical disks placement=============="
echo ""
esxcli storage core device list | grep "naa" | awk '{print $1}' | grep "naa" | while read in; do
echo "$in"
esxcli storage core device physical get -d "$in"
sleep 1
echo "===================================================="
done

存储相关问题的 vSAN 相关日志:

/var/log/vmkernel.log
读取和写入 vSAN 磁盘、vSAN 主机心跳信号、PDL、SCSI 感知代码和 I/O 请求(读取/写入)以及群集成员身份信息时出现问题。

Example:
 
2021-06-22T12:02:08.408Z cpu30:1001397101)ScsiDeviceIO: PsaScsiDeviceTimeoutHandlerFn:12834: TaskMgmt op to cancel IO succeeded for device naa.55cd2e404b7736d0 and the IO did not complete. WorldId 0, Cmd 0x28, CmdSN = 0x428.Cancelling of IO will be
2021-06-22T12:02:08.408Z cpu30:1001397101)retried.

/var/log/vobd.log
报告磁盘运行状况、永久设备丢失磁盘 (PDL)、磁盘延迟,并报告主机何时进入和退出维护模式。

Example:
 
2022-05-31T11:42:46.065Z: [vSANCorrelator] 10605891965954us: [vob.vsan.lsom.devicerepair] vSAN device 521a74ce-c980-c16c-ff3d-38a036233daf is being repaired due to I/O failures, and will be out of service until the repair is complete. If the device is part of a dedup disk group, the entire disk group will be out of service until the repair is complete.
2022-05-31T11:42:46.065Z: [vSANCorrelator] 10606062774178us: [esx.problem.vob.vsan.lsom.devicerepair] Device 521a74ce-c980-c16c-ff3d-38a036233daf is in offline state and is getting repaired

/var/log/vsandevicemonitord.log
它可帮助您确定磁盘是否由于过度日志拥塞或 I/O 延迟而被标记为不正常。

Example:
 
INFO vsandevicemonitord WARNING - WRITE Average Latency on VSAN device naa.50000xxxxxxxx has exceeded threshold value 2000000 us 2 times.
INFO vsandevicemonitord Tier 2 (naa.50000xxxxxxxx) as unhealthy

Affected Products

VMware ESXi 7.x, VMware VSAN

Products

VMware, VMware ESXi 6.7.X
Article Properties
Article Number: 000209262
Article Type: How To
Last Modified: 12 Feb 2024
Version:  3
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.