如果 ESXi 主机无法从 vCenter Server 获取加密虚拟机或加密虚拟磁盘的密钥 (KEK),则加密虚拟机将锁定。使密钥在密钥服务器 (KMS) 上可用后,您可以解锁锁定的加密虚拟机。

在某些情况下,使用标准密钥提供程序时,ESXi 主机无法从 vCenter Server 获取加密虚拟机或加密虚拟磁盘的密钥加密密钥 (KEK)。在这种情况下,您仍然可以取消注册或重新加载虚拟机。但是,无法执行其他虚拟机操作,例如打开虚拟机电源。在采取必要的步骤使所需密钥在密钥服务器上可用后,可以使用 vSphere Client 解锁锁定的加密虚拟机。

如果虚拟机密钥不可用, vCenter Server 警报会向您发出通知,并且虚拟机的状态将显示为无效。虚拟机无法打开电源。如果虚拟机密钥可用,但是加密磁盘的密钥不可用,则虚拟机状态不会显示为无效。但是,虚拟机无法打开电源,并且会出现以下错误:
The disk [/path/to/the/disk.vmdk] is encrypted and a required key was not found.
注: 以下过程说明了会导致虚拟机进入锁定状态的情况、显示的相应警报和事件日志以及在每种情况下应执行的操作。

过程

  1. 如果 vCenter Server 系统和密钥服务器之间的连接有问题,vCenter Server 将生成虚拟机警报。此外,还会在事件日志中显示一条错误消息。
    还原与密钥服务器的连接。当密钥服务器和密钥可用时,解锁锁定的虚拟机。请参见 解锁锁定的虚拟机。您也可以重新引导主机并重新注册虚拟机,以便在还原连接后解锁该虚拟机。

    与密钥服务器的连接断开不会自动锁定虚拟机。如果满足以下条件,虚拟机只会进入锁定状态:

    • 密钥在 ESXi 主机上不可用。
    • vCenter Server 无法从密钥服务器检索密钥。
    每次 ESXi 重新引导后,最好(但非必要)先启动 vCenter ServervCenter Server 会从密钥服务器请求具有相应 ID 的密钥,并将其提供给 ESXi
    注: 在 vSphere 7.0 Update 2 及更高版本中,可以在 ESXi 重新引导后持久保留加密密钥。请参见 ESXi 主机上的 vSphere 密钥持久性

    如果还原与密钥提供程序的连接后虚拟机仍锁定,请参见解锁锁定的虚拟机

  2. 如果连接已还原,请注册虚拟机。如果出现错误,或者虽然操作成功但虚拟机处于锁定状态,请验证您是否具有 vCenter Server 系统的 Cryptographic operations.RegisterVM 特权。
    如果密钥可用,则不需要此特权即可打开加密虚拟机的电源。如果必须检索密钥,则需要此特权才能注册虚拟机。
  3. 如果密钥在密钥服务器上不再可用,vCenter Server 将生成虚拟机警报。此外,还会在事件日志中显示一条错误消息。
    请求密钥服务器管理员还原密钥。如果要打开已从清单中移除且已很长时间未注册的虚拟机的电源,您可能会遇到非活动的密钥。如果您重新引导 ESXi 主机且密钥服务器不可用,也会发生这种情况。
    1. 使用 Managed Object Browser (MOB) 或 vSphere API 检索密钥 ID。
      VirtualMachine.config.keyId.keyId 中检索 keyId
    2. 请求密钥服务器管理员重新激活与该密钥 ID 关联的密钥。
    3. 还原密钥后,参见解锁锁定的虚拟机
    如果可在密钥服务器上还原此密钥, vCenter Server 则会在下次需要时对其进行检索并推送到 ESXi 主机。
  4. 如果密钥服务器可供访问且 ESXi 主机已开机,但 vCenter Server 系统不可用,请按照以下步骤解锁虚拟机。
    1. 还原 vCenter Server 系统,或者设置不同的 vCenter Server 系统,然后与密钥服务器建立信任。
      您必须使用相同的密钥提供程序名称,但密钥服务器 IP 地址可以不同。
    2. 重新注册所有已锁定的虚拟机。
      vCenter Server 实例将从密钥服务器中检索密钥,并且虚拟机将解锁。
  5. 如果仅在 ESXi 主机上缺少密钥,则 vCenter Server 会生成虚拟机警报,并且会在事件日志中显示以下消息:
    虚拟机已锁定,因为主机上缺少密钥。
    vCenter Server 系统可以从密钥提供程序检索缺少的密钥。不需要手动恢复密钥。请参见 解锁锁定的虚拟机