Symptoms
免责声明: 本文是 vSphere handling of LUNs detected as snapshot LUNs (1011387) 的翻译版本。 尽管我们会不断努力为本文提供最佳翻译版本,但本地化的内容可能会过时。 有关最新内容,请参见英文版本。
- 缺少数据存储,但您仍可以看到提供给主机的 LUN
- 强制挂载格式化为 VMFS-5 的 LUN 时(使用名称或 UUID),您会看到类似以下内容的条目:
# esxcli storage vmfs snapshot mount -l DEV-LUN03
No unresolved VMFS snapshots with volume label 'DEV-LUN03' found.# esxcli storage vmfs snapshot mount -u 4f1d6367-34a3d2d2-f46b-14feb5cc149a
No unresolved VMFS snapshots with volume UUID '4f1d6367-34a3d2d2-f46b-14feb5cc149a' found.
- 在 vmkernel 或 messages.log 文件中,您会看到类似以下内容的条目:
LVM: 8445: Device naa.0012345012345678:1 detected to be a snapshot:
LVM: 8445: Device eui.0017380012020364:1 detected to be a snapshot:
LVM: 8452: queried disk ID: <type 1, len 17, lun 36, devType 0, scsi 0, h(id) 7683208289187576905>
LVM: 8459: on-disk disk ID: <type 1, len 17, lun 17, devType 0, scsi 0, h(id) 7683208289187576905>
- 强制挂载 VMFS 数据存储会导致出现以下症状:
- 同一数据中心内的其他主机无法从 vCenter Server 挂载该 VMFS 数据存储。
- vCenter Client 的任务列表中显示的“解析 VMFS 卷”自动任务会导致出现类似以下内容的条目:
Error: Cannot change the host configuration.
Error Stack
Call "HostStorageSystem.ResolveMultipleUnresolvedVmfsVolumes" for object "storageVolume" on vCenter Server "MyVC" failed.
注意: 其中storageVolume
是数据存储的名称,MyVC
是 vCenter Server 的名称。
- 同一数据中心内的其他主机无法从 vCenter Server 挂载该 VMFS 数据存储。
Purpose
本文提供有关 ESXi/ESX 4.x 和 ESXi 5.x 如何处理快照 LUN 检测的信息。
Cause
从 ESXi/ESX 4.0 起,不再需要通过 CLI 处理快照 LUN。 GUI 完全支持重新签名和强制挂载操作,而且执行重新签名操作后,vCenter Server 会对所有主机执行 VMFS 重新扫描。
如果 ESXi/ESX 主机不通过预期会在 VMFS 元数据中看到的内容来确认 LUN 身份,将出现快照 LUN 问题。 更换 SAN 硬件、固件升级、SAN 复制、DR 测试和一些 HBA 固件升级后会出现此问题。 某些 ESXi/ESX 主机从 3.5 升级到 4.x 时也会出现此问题(由于命名约定从 mpx
改为 naa
)。 但这种情况极少出现。 有关更多/相关信息,请参见 ESX Configuration Guide(对于 ESXi/ESX 4.x)和 vSphere Storage Guide(对于 ESXi 5.x 和 6.x)中的“管理重复 VMFS 数据存储”。
在以下情况下,强制挂载 VMFS 数据存储会失败:
- 多个 ESXi/ESX 4.x 和 5.x 主机由同一个 vCenter Server 管理,且这些主机位于同一个数据中心内。
- 包含 VMFS 数据存储的快照 LUN 提供给所有这些 ESXi/ESX 主机。
- 其中的一个 ESXi/ESX 主机强制挂载了位于该快照 LUN 中的 VMFS 数据存储。
- 另有一个 ESXi/ESX 主机尝试同时执行操作。
如果一个 ESXi/ESX 主机强制挂载某个位于 LUN 上的 VMFS 数据存储并且此时已经检测到该数据存储为快照,那么将向 vCenter Server 数据库中的数据中心组中添加一个表示该数据存储的对象。
当第二个 ESXi/ESX 主机尝试对同一 VMFS 数据存储执行相同操作时,此操作将失败,因为 vCenter Server 数据库中的同一数据中心分组内已经存在一个对象。
由于已经存在一个对象,因此 vCenter Server 不允许将该数据存储挂载到同一数据中心内的任何其他 ESXi/ESX 主机上。
Resolution
有关在早期版本中如何处理快照 LUN 的详细信息,请参见:
- VMFS Volume Can Be Erroneously Recognized as a Snapshot (6482648)
- Resignaturing VMFS3 volumes on VMware ESX 3.x via the VMware Infrastructure Client (9453805)
从 ESXi/ESX 4.0 起,不再需要通过 CLI 处理快照 LUN。 GUI 完全支持重新签名和强制挂载操作,而且执行重新签名操作后,vCenter Server 会对所有主机执行 VMFS 重新扫描。
以下三种方法可用于在 ESXi/ESX 主机上挂载 VMFS 卷:
- 使用 VMware vSphere Client
- 使用 VMware vSphere Web Client
- 使用命令行/技术支持模式控制台。 有关详细信息,请参见:
注意:保留现有签名将导致将来出现问题,例如阻止数据存储大小增加,以及阻止数据存储区自动挂载到新主机上等。因此,“强制挂载”(在保持现有签名的同时挂载数据存储)只是获得即时访问的临时步骤。之后,请为该数据存储上的虚拟机安排维护窗口并分配新签名,或者将虚拟机从数据存储迁出以使其不受维护影响。
注意:在重新签名时,除了分配新的 UUID 外,ESXi 还为数据存储分配了修改后的标签(即名称)。分配给数据存储的新标签的默认格式为 snap-snapID-oldLabel,其中 snapID 是整数,而 oldLabel 是原始数据存储的标签/名称。
ESXi 5.x 和 6.x
vSphere Client
- 登录 vSphere Client,然后从清单面板中选择服务器。
- 在“配置”选项卡的“硬件”面板中,单击存储器。
- 单击添加存储器。
- 选择磁盘/LUN 存储器类型。
- 单击下一步。
- 从 LUN 列表中选择数据存储名称显示在“VMFS 标签”列中的 LUN。
注意: “VMFS 标签”列中显示的名称表示该 LUN 是一个副本,其中包含现有 VMFS 数据存储的副本。
- 单击下一步。
- 在挂载选项下,显示以下选项:
- 保留现有签名: 永久挂载 LUN(例如,在整个重新引导期间挂载 LUN)
- 分配新签名: 重新签名 LUN
- 格式化磁盘: 重新格式化 LUN
注意:- 格式化磁盘选项会删除 LUN 上的任何现有数据。
- 在尝试重新签名之前,请确保其他任何主机上没有虚拟机正在运行该 VMFS 卷,因为这些虚拟机在 vCenter Server 清单中会变为无效,并且将再次在其各自的主机上注册。
- 为卷选择所需选项。
- 在“即将完成”页上,查看数据存储配置信息。
- 单击完成。
vSphere Web Client
- 登录 vSphere Web Client 并导航到“vCenter 主页”。
- 在左侧菜单中单击数据存储。
- 在“对象”选项卡中,单击左上部的创建新的数据存储图标。
- 键入数据存储的名称,如果需要,选择放置数据存储的位置。
- 选择 VMFS 作为数据存储类型。
- 从存储设备列表中,选择具有显示在“快照卷”列中的特定值的设备。
注意: “快照卷”列中显示的值表示设备是包含现有 VMFS 数据存储副本的副本。 - 在“挂载选项”下面,为卷选择所需选项(“保留现有”、“分配新的”、“格式化”),然后单击下一步。
- 检查数据存储配置信息。
- 单击完成。
命令行esxcli
命令需在命令行中使用。
- 要列出检测为快照的卷,请运行以下命令:
# esxcli storage vmfs snapshot list
您会看到类似以下内容的输出:49d22e2e-996a0dea-b555-001f2960aed8
Volume Name: VMFS_1
VMFS UUID:49d22e2e-996a0dea-b555-001f2960aed8
Can mount: true
Reason for un-mountability:
Can resignature: true
Reason for non-resignaturability:
Unresolved Extent Count: 1
- 要挂载在重新引导后依旧存在的快照/副本 LUN,请运行以下命令:
# esxcli storage vmfs snapshot mount -l label|-u uuid
例如:# esxcli storage vmfs snapshot mount -l "VMFS_1"
# esxcli storage vmfs snapshot mount -u "49d22e2e-996a0dea-b555-001f2960aed8"
- 要挂载在重新引导后不再存在的快照/副本 LUN,请运行以下命令:
# esxcli storage vmfs snapshot mount -n -l label|-u uuid
例如:# esxcli storage vmfs snapshot mount -n -l "VMFS_1"
# esxcli storage vmfs snapshot mount -n -u "49d22e2e-996a0dea-b555-001f2960aed8"
- 要对快照/副本 LUN 进行重新签名(卷在重新签名后立即挂载),请运行以下命令:
# esxcli storage vmfs snapshot resignature -l label|-u uuid
例如:# esxcli storage vmfs snapshot resignature -l "VMFS_1"
# esxcli storage vmfs snapshot resignature -u "49d22e2e-996a0dea-b555-001f2960aed8"
- 要挂载卷而不对该卷执行重新签名(此卷会在重新引导 ESX 主机时挂载),请运行以下命令:
# esxcfg-volume -M VMFS_UUID|label
例如:# esxcfg-volume -M "VMFS_1"
# esxcfg-volume -M "49d22e2e-996a0dea-b555-001f2960aed8"
注意:
要在 vCenter Server 中再次查看数据存储,您可能必须重新扫描该数据存储提供给的所有 ESXi/ESX 主机上的存储适配器,或者刷新存储视图。 如果难以确定受影响的数据存储,请在 vSphere Client 中检查仍正确挂载了该数据存储的其他 ESX/ESXi 主机的存储视图。 这样您就可以将 VMFS 数据存储名称与 NAA LUN 标识符关联在一起。
ESXi/ESX 4.x
vSphere Client
- 登录 vSphere Client,然后从清单面板中选择服务器。
- 单击配置选项卡。
- 在“硬件”面板中单击存储器。
- 单击添加存储器。
- 选择磁盘/LUN 存储器类型。
- 单击下一步。
- 从 LUN 列表中,选择数据存储名称显示在“VMFS 标签”列中的 LUN,然后单击下一步。
注意: “VMFS 标签”列中显示的名称表示该 LUN 是一个副本,其中包含现有 VMFS 数据存储的副本。
- 在“挂载选项”下,显示以下选项:
- 保留现有签名: VMFS 元数据不变。 重新引导后,卷将被检测为快照。 其他所有访问该设备/LUN 的主机继续将其视为快照卷。 (要永久挂载,请参见命令行部分。)
- 分配新签名: 重新签名 LUN
- 格式化磁盘: 重新格式化 LUN
注意:- 格式化磁盘选项会删除 LUN 上的任何现有数据。
- 在尝试重新签名之前,请确保其他任何主机上没有虚拟机正在运行该 VMFS 卷,因为这些虚拟机在 vCenter Server 清单中可能会变为无效,并且必须再次在其各自的主机上注册。
- 为卷选择所需选项。
- 在“即将完成”页上,查看数据存储配置信息。
- 单击完成。
命令行esxcfg-volume
命令需在命令行中使用。
- 要列出检测为快照/副本的卷,请运行以下命令:
# esxcfg-volume -l
输出如下所示:VMFS3 UUID/label: 49d22e2e-996a0dea-b555-001f2960aed8/VMFS_1
Can mount: Yes
Can resignature: Yes
Extent name: naa.60a98000503349394f3450667a744245:1 range: 0 - 97023 (MB)
在此示例中,数据存储 UUID 是49d22e2e-996a0dea-b555-001f2960aed8
,而且其最后一个标签是VMFS_1
。
- 要挂载卷而不对该卷执行重新签名(此卷会在重新引导 ESX 主机时卸载),请运行以下命令:
# esxcfg-volume -m VMFS_UUID|label
例如:# esxcfg-volume -m "VMFS_1"
# esxcfg-volume -m "49d22e2e-996a0dea-b555-001f2960aed8"
- 要挂载卷而不对该卷执行重新签名(此卷会在重新引导 ESX 主机时挂载),请运行以下命令:
# esxcfg-volume -M VMFS_UUID|label
例如:# esxcfg-volume -M "VMFS_1"
# esxcfg-volume -M "49d22e2e-996a0dea-b555-001f2960aed8"
- 要对卷进行重新签名(该卷在重新签名后立即挂载),请运行以下命令:
# esxcfg-volume -r VMFS_UUID|label
例如:# esxcfg-volume -r "VMFS_1"
# esxcfg-volume -r "49d22e2e-996a0dea-b555-001f2960aed8"
注意:
要在 vCenter Server 中再次查看数据存储,您可能必须重新扫描该数据存储提供给的所有 ESXi/ESX 主机上的存储适配器,或者刷新存储视图。 如果难以确定受影响的数据存储,请在 vSphere Client 中检查仍正确挂载了该数据存储的其他 ESX/ESXi 主机的存储视图。 这样您就可以将 VMFS 数据存储名称与 NAA LUN 标识符关联在一起。
ESXi/ESX 3.5
- 在 VMware Infrastructure Client 中,选择清单中的主机。
- 单击配置选项卡,然后单击高级设置。
- 在左侧窗格中选择 LVM,并在右侧窗格中将
LVM.DisallowSnapshotLUN
设置为0
。
警告: 如果LVM.DisallowSnapshotLUN
设置为0
,则不要向 ESXi/ESX 主机提供任何快照 LUN,否则可能导致数据损坏。 有关详细信息,请参见适用于您的 ESXi/ESX 版本的 SAN Configuration Guide。
- 重新扫描所有 VMFS 卷。
重新扫描之后,所有 VMFS 卷均可用。
Related Information
挂载快照 LUN 的最佳做法
- 受影响的数据存储不能存在活动 I/O。 卷上注册了任何虚拟机都会导致无法卸载数据存储,而且在对数据存储执行重新签名后,主机数据库位置记录会不正确,数据存储中的虚拟机也将无法打开电源。
以下两个选项可确保数据存储上不会发生任何 I/O:
- Storage vMotion: 通过将数据存储置入维护模式,从任何主机使用 Storage vMotion 将该数据存储上的所有虚拟机迁移到其他数据存储。
或
- 关闭并取消注册: 关闭并取消注册任何驻留在受影响数据存储上的虚拟机。
- Storage vMotion: 通过将数据存储置入维护模式,从任何主机使用 Storage vMotion 将该数据存储上的所有虚拟机迁移到其他数据存储。
- 在所有主机上卸载数据存储
- 选择包含 VMFS 卷数据的 LUN,然后通过分配新签名选项将存储添加到群集中的一个主机。
注意:- 执行重新签名之前,快照数据存储只能挂载到一个主机。
- 该主机不必是挂载数据存储时遇到问题的主机。
- 根据需要重命名该卷。 默认情况下,数据存储名称在执行重新签名操作后会附加 snap-。
- 将已重新签名的数据存储中的任何虚拟机重新添加到清单中,然后打开这些虚拟机的电源。
对于大部分内容驻留在不同数据存储上但一部分内容驻留在已重新签名的卷上的虚拟机(这些虚拟机的一个或多个磁盘驻留在受影响的数据存储上)来说,您可能需要将虚拟磁盘 (vmdk) 从虚拟机配置中移除,然后从新近重新签名的数据存储位置重新添加虚拟磁盘。
在 ESXi/ESX 主机上强制挂载 VMFS 卷时应谨记以下重要说明:
- 仅当 VMFS 数据存储不与 UUID(即 VMFS 签名)相同的已挂载 VMFS 数据存储冲突时,才会挂载该数据存储。 换言之,如果包含原始 VMFS 数据存储的原始 LUN 及其快照 LUN 同时提供给 ESXi/ESX 主机,则不允许在这个相同的 ESXi/ESX 主机上挂载来自快照 LUN 的 VMFS 数据存储。 在这种情况下,挂载快照 LUN 中的该 VMFS 数据存储的唯一方式是,对该数据存储进行重新签名并为它选择一个新的标签。
- 在包含多个 ESXi/ESX 主机的数据中心内,快照 LUN 上的 VMFS 数据存储会强制挂载到其中任何一台主机上。 当该数据存储挂载到指定主机上后,将无法使用 vCenter Server 用户界面强制挂载到任何其他主机上。 要在其他主机上挂载该数据存储,请使用上述步骤。
- 如果在 vCenter Server 中无法正确挂载数据存储,请在直接连接到 ESXi/ESX 主机的情况下重试挂载。 执行重新签名操作后,该卷将对其他主机可见。 如果在执行重新签名操作后看不到该卷,则根据需要从每个主机执行手动重新扫描,请参见 对 ESX/ESXi 主机上的存储执行重新扫描 (2076592)。
有关如何将 VMFS 卷检测为快照的更多信息,请参见 Snapshot LUN detection in ESX and ESXi。