管理由 Azure Arc 启用的 Azure Local VM 的受信任启动的备份和恢复

适用于:Azure Local 2311.2 及更高版本

本文介绍如何为 Azure Arc 启用的 Azure Local VM 手动备份和还原受信任启动。

与标准 Azure Local VM 不同,Azure Local VM 的受信任启动使用 VM 来宾状态保护 (GSP) 密钥来保护 VM 来宾状态,包括虚拟 TPM (vTPM) 状态,使其在静止状态下得到保护。 VM GSP 密钥存储在 VM 所在的 Azure 本地系统中的本地密钥保管库中。

Azure 本地 VM 的受信任启动将 VM 来宾状态存储在两个文件中:VM 来宾状态(VMGS)和 VM 运行时状态(VMRS)。 如果 VM GSP 密钥丢失,则无法启动 Azure 本地 VM 的受信任启动。

请务必定期备份 Azure 本地 VM 的受信任启动,以便在数据丢失时恢复 VM。 若要备份受信任的启动 VM,请备份所有 VM 文件,包括 VMGS 和 VMRS 文件。 此外,将 VM GSP 密钥备份到备份密钥保管库。

同样,若要将 Azure 本地 VM 的受信任启动还原到目标 Azure 本地系统,请还原所有 VM 文件,包括 VMGS 和 VMRS 文件。 此外,将 VM GSP 密钥从备份密钥保管库还原到目标 Azure 本地系统上的另一个密钥保管库。

以下部分介绍如何备份 Azure 本地 VM 的受信任启动,并在数据丢失时还原它。

备份 VM

对于受信任的 Azure 本地 VM 启动,可以使用 Export-VM 获取所有 VM 文件的副本,包括 VMGS 和 VMRS 文件。 然后,可以备份这些 VM 文件。

按照以下步骤将 VM GSP 密钥从 Azure 本地系统上的密钥保管库(VM 所在的位置)复制到其他 Azure 本地系统上的备份密钥保管库:

1.在具有备份密钥保管库的 Azure 本地系统上

使用备份密钥保管库在 Azure 本地系统上运行以下命令。

  1. 在备份密钥保管库中创建包装密钥。

    New-MocKey -name wrappingKey -group AzureStackHostAttestation -keyvaultName AzureStackTvmKeyVault -type RSA -size 2048
    
  2. 下载隐私增强邮件(PEM)文件。

    Get-MocKeyPublicKey -name wrappingKey -group AzureStackHostAttestation -keyvaultName AzureStackTvmKeyVault -outputFile wrappingKey.pem
    

2. 在 VM 所在的 Azure 本地系统上

在 Azure 本地系统上运行以下命令。

  1. 将 PEM 文件复制到 Azure 本地系统。

  2. 确认 VM 的宿主节点。

    Get-ClusterGroup <VM name>
    
  3. 在所有者节点上运行以下 cmdlet 以确定 VM ID。

    (Get-VM -Name <VM name>).vmid
    
  4. 导出 VM 的 GSP 密钥。

    Export-MocKey -name <VM ID> -wrappingKeyName wrappingKey -wrappingPubKeyFile wrappingKey.pem -outFile <VM ID>.json -group AzureStackHostAttestation -keyvaultName AzureStackTvmKeyVault -size 256
    

3.在具有备份密钥保管库的 Azure 本地系统上

在 Azure 本地系统上运行以下步骤。

  1. <VM ID><VM ID>.json 文件复制到 Azure Local 系统。

  2. 将 VM 的 GSP 密钥导入备份密钥保管库。

    Import-MocKey -name <VM ID> -importKeyFile <VM ID>.json -group AzureStackHostAttestation -keyvaultName AzureStackTvmKeyVault -type AES -size 256
    

还原虚拟机

如果数据丢失,请使用 VM 文件的备份副本,并使用 Import-VM 将 VM 还原到目标 Azure 本地系统。 这会还原所有 VM 文件,包括 VMGS 和 VMRS 文件。

按照以下步骤将 VM GSP 密钥从 Azure 本地系统中的备份密钥保管库(其中存储了 VM GSP 密钥的备份副本)复制到目标 Azure 本地系统上的密钥保管库(其中需要还原 VM)。

注释

在备用 Azure Local 系统上还原的 Azure Local VM 的受信任启动(不同于最初驻留 VM 的 Azure Local 系统)无法从 Azure 控制平面进行管理。

1.在需要还原 VM 的源 Azure Local 系统上

在 Azure 本地系统上运行以下命令。

  1. 在密钥保管库中创建包装密钥。

    New-MocKey -name wrappingKey -group AzureStackHostAttestation -keyvaultName AzureStackTvmKeyVault -type RSA -size 2048
    
  2. 下载隐私增强邮件(PEM)文件。

    Get-MocKeyPublicKey -name wrappingKey -group AzureStackHostAttestation -keyvaultName AzureStackTvmKeyVault -outputFile wrappingKey.pem
    

2.在具有备份密钥保管库的 Azure 本地系统上

在 Azure 本地系统上运行以下命令。

  1. 将 PEM 文件复制到 Azure 本地系统。

  2. 从磁盘上存储的 VM 文件获取 <VM ID>(无论它位于何处)。 将会有一个 VM 配置文件 (.xml),名称为 <VM ID>。 您还可以使用以下命令来获取 <VM ID>,如果您知道 VM 名称。 需要在具有 VM 文件的 Hyper-V 主机上执行此步骤。

    (Get-VM -Name <VM name>).vmid
    
  3. 导出 VM 的 VM GSP 密钥。

    Export-MocKey -name <VM ID> -wrappingKeyName wrappingKey -wrappingPubKeyFile wrappingKey.pem -outFile <VM ID>.json -group AzureStackHostAttestation -keyvaultName AzureStackTvmKeyVault -size 256
    

3. 在需要还原 VM 的 Azure 本地系统上

从目标 Azure 本地系统运行以下命令。

  1. <VM ID><VM ID>.json 文件复制到 Azure Local 系统。

  2. 导入 VM 的 VM GSP 密钥。

    Import-MocKey -name <VM ID> -importKeyFile <VM ID>.json -group AzureStackHostAttestation -keyvaultName AzureStackTvmKeyVault -type AES -size 256
    

    注释

    在 Azure 本地系统(VM 需要还原的地方)上启动 VM 之前,请还原 VM GSP 密钥(完成上述步骤)。 这可确保 VM 使用还原的 VM GSP 密钥。 否则,VM 创建会失败,系统会创建新的 VM GSP 密钥。 如果出现错误(人为错误),请删除 VM GSP 密钥,然后重复执行还原 VM GSP 密钥的步骤。

    Remove-MocKey -name <vm id> -group AzureStackHostAttestation -keyvaultName > AzureStackTvmKeyVault
    

后续步骤