使用 Systems Manager 命令文档创建基于 VSS 的快照 - Amazon Elastic Compute Cloud

使用 Systems Manager 命令文档创建基于 VSS 的快照

可以使用 AWS Systems Manager 命令文档创建基于 VSS 的快照。以下内容介绍可用的命令文档,以及这些文档用于创建快照的运行时系统参数。

在使用任何 Systems Manager 命令文档之前,请确保已满足所有 创建基于 Windows VSS 的 EBS 快照的先决条件

Systems Manager VSS 快照文档的参数

用于创建 VSS 快照的 Systems Manager 文档均使用以下参数,除非另有说明:

AmiName(字符串,可选)

如果 CreateAmi 设置为 True,请指定备份创建的 AMI 名称。

description(字符串,可选)

为此过程创建的快照或映像指定一个描述。

CollectDiagnosticLogs(字符串,可选)

要在快照和 AMI 创建步骤中收集更多信息,请将此参数设置为“True”。此参数的默认值为“False”。整合后的诊断日志将以 .zip 存档格式保存在实例的以下位置:

C:\ProgramData\Amazon\AwsVss\Logs\timestamp.zip

CopyOnly(字符串,可选)

如果除了 AWS VSS 之外还使用本地 SQL Server 备份,执行“仅复制”备份可防止 AWS VSS 中断本地差异备份链。要执行一个“仅复制”备份操作,请将此参数设置为 True

此参数的默认值为 False,这样会导致 AWS VSS 执行完整备份操作。

CreateAmi(字符串,可选)

要创建基于 VSS 的亚马逊机器映像(AMI)以备份您的实例,请将此参数设置为 True。此参数的默认值为 False,它将使用 EBS 快照备份您的实例。

有关创建从实例创建 AMI 的更多信息,请参阅 创建 Amazon EBS-backed AMI

executionTimeout(字符串,可选)

指定在实例上执行快照创建过程或从实例创建 AMI 的最长时间(以秒为单位)。增大此超时将允许此命令等待更长时间,以使 VSS 开始冻结并完成对它创建的资源执行的标记操作。此超时只适用于快照或 AMI 创建步骤。此超时不包括用来安装或更新 AwsVssComponents 软件包的初始步骤所花费的时间。

ExcludeBootVolume(字符串,可选)

如果是创建快照,此设置将从备份过程中排除启动卷。要从快照中排除启动卷,请将 ExcludeBootVolume 设置为 True、将 CreateAmi 设置为 False

如果是为备份创建 AMI,应将此参数设置为 False。此参数的默认值为 False

NoWriters(字符串,可选)

要从快照进程中排除应用程序 VSS 写入器,请将此参数设置为 True。排除应用程序 VSS 写入器可以帮助您解决与第三方 VSS 备份组件的冲突。此参数的默认值为 False

如果 SaveVssMetadataTrue,则此参数必须设置为 False

SaveVssMetadata(字符串,可选)

要在每次快照拍摄期间保存 VSS 元数据文件,请将此参数设置为 True。默认值为 False。VSS 元数据文件有助于深入了解备份操作中包含的具体组件或写入器,以及每个组件的关联文件。

元数据文件的名称中包含关联快照集的 ID。可以在实例上的以下位置找到这些信息:

C:\ProgramData\Amazon\AwsVss\VssMetadata\
警告
  • 保存 VSS 元数据文件需要 AwsVssComponents 软件包版本 2.4.0 或更高版本。如果实例安装的是早期版本,则将 SaveVssMetadata 设置为 True 会导致快照创建失败。

  • NoWritersSaveVssMetadata 参数是互斥的。如果两者都设置为 True,则快照创建将会失败。

tags(字符串,可选)

建议您标记快照和映像,以帮助您定位和管理资源,例如,从快照列表中恢复卷。系统添加带有空值的 Name 键,您可以在其中指定要应用于输出快照或映像的名称。

如果您要指定更多标签,请使用分号分隔标签。例如,Key=Environment,Value=Test;Key=User,Value=TestUser1

默认情况下,系统会为基于 VSS 的快照和映像添加以下保留标签。

  • 设备:对于基于 VSS 的快照,这是快照捕获的 EBS 卷的设备名称。

  • AppConsistent:此标签表示已成功创建基于 VSS 的快照或 AMI。

  • AwsVssConfig – 此标签用于识别在启用 VSS 的情况下创建的快照和 AMI。此标签包含 AwsVssComponents 版本等元信息以及快照集 ID。

警告

在参数列表中指定这些保留标签中的任何一个都将导致错误。

VssVersion(字符串,可选)

仅对于 AWSEC2-VssInstallAndSnapshot 文档,可以指定 VssVersion 参数,以便在实例上安装特定版本的 AwsVssComponents 软件包。如果将此参数留空,将安装建议的默认版本。

如果已经安装了 AwsVssComponents 软件包的指定版本,此脚本将跳过安装步骤并转到备份步骤。有关 AwsVssComponents 软件包版本和操作支持的列表,请参阅 AWS VSS 解决方案版本历史记录

运行 Systems Manager VSS 快照命令文档

可以使用 AWS Systems Manager 命令文档创建基于 VSS 的 EBS 快照,如下所示。

当使用 AWS Systems Manager 运行 AWSEC2-VssInstallAndSnapshot 文档时,此脚本将执行以下步骤。

  1. 此脚本首先在实例上安装或更新 AwsVssComponents 软件包,具体情况取决于是否已安装此软件包。

  2. 此脚本将在完成第一步之后创建应用程序一致性快照。

要运行 AWSEC2-VssInstallAndSnapshot 文档,请按照适用于您的首选环境的步骤操作。

Console
从控制台创建基于 VSS 的 EBS 快照
  1. 访问 https://console.aws.amazon.com/systems-manager/,打开 AWS Systems Manager 控制台。

  2. 从导航窗格中选择运行命令。这将显示您的账户中当前正在运行的命令的列表(如果适用)。

  3. 选择 Run command(运行命令)。这将打开您有权访问的命令文档的列表。

  4. 从命令文档列表中选择 AWSEC2-VssInstallAndSnapshot。为了简化结果,您可以输入完整或部分文档名称。也可以按所有者、平台类型或标签进行筛选。

    当选择命令文档时,将在列表下方填充详细信息。

  5. 文档版本列表中选择 Default version at runtime

  6. 配置命令参数,以定义 AWSEC2-VssInstallAndSnapshot 如何安装 AwsVssComponents 软件包以及如何使用 VSS 快照或 AMI 进行备份。有关参数的详细信息,请参阅 Systems Manager VSS 快照文档的参数

  7. 对于目标选择,请指定标签或者手动选择实例,以确定要在其上执行此操作的实例。

    注意

    如果手动选择实例,而且要查看的实例未包含在列表中,请参阅我的实例在哪里?以获得故障排除提示。

  8. 要获得用来定义 Systems Manager Run Command 行为(例如速率控制)的其他参数,请输入从控制台运行命令中所述的值。

  9. 选择运行

    如果成功,则该命令使用新快照填充 EBS 快照列表。您可以通过搜索指定的标签或搜索 AppConsistent 在 EBS 快照列表中查找这些快照。如果命令执行失败,请查看 Systems Manager 命令输出,了解执行失败的详细原因。如果命令成功完成,但特定卷备份失败,您可以在 EBS 卷列表中排查失败的原因。

AWS CLI

可以在 AWS CLI 中运行以下命令,以创建基于 VSS 的 EBS 快照,并获取快照创建的状态。

创建基于 VSS 的 EBS 快照

运行以下命令以创建基于 VSS 的 EBS 快照。要创建快照,必须使用 --instance-ids 参数标识实例。有关可以使用的其他参数的更多信息,请参阅 Systems Manager VSS 快照文档的参数

aws ssm send-command \ --document-name "AWSEC2-VssInstallAndSnapshot" \ --instance-ids "i-01234567890abcdef" \ --parameters '{"ExcludeBootVolume":["False"],"description":["Description"],"tags":["Key=key_name,Value=tag_value"],"VssVersion":[""]}'

如果成功,则该命令文档使用新快照填充 EBS 快照列表。您可以通过搜索指定的标签或搜索 AppConsistent 在 EBS 快照列表中查找这些快照。如果命令执行失败,请查看命令输出,了解执行失败的详细原因。

获取命令状态

要获取快照的当前状态,请使用从 send-command 返回的命令 ID 运行如下命令。

aws ssm get-command-invocation --instance-ids "i-01234567890abcdef" \ --command-id "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" \ --plugin-name "CreateVssSnapshot"
PowerShell

使用 AWS Tools for Windows PowerShell 运行以下命令,以创建基于 VSS 的 EBS 快照,并获取输出创建过程的当前运行时状态。指定前面的列表中介绍的参数,以修改快照进程的行为。

使用 Tools for Windows PowerShell 创建基于 VSS 的 EBS 快照

运行如下命令,以创建基于 VSS 的 EBS 快照或 AMI。

Send-SSMCommand -DocumentName "AWSEC2-VssInstallAndSnapshot" -InstanceId "i-01234567890abcdef" -Parameter @{'ExcludeBootVolume'='False';'description'='a_description' ;'tags'='Key=key_name,Value=tag_value';'VssVersion'=''}
获取命令状态

要获取快照的当前状态,请使用从 Send-SSMCommand 返回的命令 ID 运行如下命令。

Get-SSMCommandInvocationDetail -InstanceId "i-01234567890abcdef" -CommandId "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" -PluginName "CreateVssSnapshot"

如果成功,则该命令使用新快照填充 EBS 快照列表。您可以通过搜索指定的标签或搜索 AppConsistent 在 EBS 快照列表中查找这些快照。如果命令执行失败,请查看命令输出,了解执行失败的详细原因。

要运行 AWSEC2-CreateVssSnapshot 文档,请按照适用于您的首选环境的步骤操作。

Console
从控制台创建基于 VSS 的 EBS 快照
  1. 访问 https://console.aws.amazon.com/systems-manager/,打开 AWS Systems Manager 控制台。

  2. 从导航窗格中选择运行命令。这将显示您的账户中当前正在运行的命令的列表(如果适用)。

  3. 选择 Run command(运行命令)。这将打开您有权访问的命令文档的列表。

  4. 从命令文档列表中选择 AWSEC2-CreateVssSnapshot。为了简化结果,您可以输入完整或部分文档名称。也可以按所有者、平台类型或标签进行筛选。

    当选择命令文档时,将在列表下方填充详细信息。

  5. 文档版本列表中选择 Default version at runtime

  6. 配置命令参数,以定义 AWSEC2-CreateVssSnapshot 使用 VSS 快照或 AMI 进行备份的方式。有关参数的详细信息,请参阅 Systems Manager VSS 快照文档的参数

  7. 对于目标选择,请指定标签或者手动选择实例,以确定要在其上执行此操作的实例。

    注意

    如果手动选择实例,而且要查看的实例未包含在列表中,请参阅我的实例在哪里?以获得故障排除提示。

  8. 要获得用来定义 Systems Manager Run Command 行为(例如速率控制)的其他参数,请输入从控制台运行命令中所述的值。

  9. 选择运行

    如果成功,则该命令使用新快照填充 EBS 快照列表。您可以通过搜索指定的标签或搜索 AppConsistent 在 EBS 快照列表中查找这些快照。如果命令执行失败,请查看 Systems Manager 命令输出,了解执行失败的详细原因。如果命令成功完成,但特定卷备份失败,您可以在 EBS 卷列表中排查失败的原因。

AWS CLI

在 AWS CLI 中运行以下命令来创建基于 VSS 的 EBS 快照。

创建基于 VSS 的 EBS 快照

运行以下命令以创建基于 VSS 的 EBS 快照。要创建快照,必须使用 --instance-ids 参数标识实例。有关可以使用的其他参数的更多信息,请参阅 Systems Manager VSS 快照文档的参数

aws ssm send-command \ --document-name "AWSEC2-CreateVssSnapshot" \ --instance-ids "i-01234567890abcdef" \ --parameters '{"ExcludeBootVolume":["False"],"description":["Description"],"tags":["Key=key_name,Value=tag_value"]}'

如果成功,则该命令文档使用新快照填充 EBS 快照列表。您可以通过搜索指定的标签或搜索 AppConsistent 在 EBS 快照列表中查找这些快照。如果命令执行失败,请查看命令输出,了解执行失败的详细原因。

PowerShell

使用 AWS Tools for Windows PowerShell 运行以下命令以创建基于 VSS 的 EBS 快照。

使用 Tools for Windows PowerShell 创建基于 VSS 的 EBS 快照

运行以下命令以创建基于 VSS 的 EBS 快照。要创建快照,必须使用 InstanceId 参数标识实例。可以指定多个实例为其创建快照。有关可以使用的其他参数的更多信息,请参阅 Systems Manager VSS 快照文档的参数

Send-SSMCommand -DocumentName AWSEC2-CreateVssSnapshot -InstanceId "i-01234567890abcdef" -Parameter @{'ExcludeBootVolume'='False';'description'='a_description' ;'tags'='Key=key_name,Value=tag_value'}

如果成功,则该命令使用新快照填充 EBS 快照列表。您可以通过搜索指定的标签或搜索 AppConsistent 在 EBS 快照列表中查找这些快照。如果命令执行失败,请查看命令输出,了解执行失败的详细原因。如果命令成功完成,但特定卷备份失败,您可以在 EBS 快照列表中排查失败的原因。

您可以使用上一部分中描述的任何命令行步骤来创建基于 VSS 的快照。命令文档(AWSEC2-VssInstallAndSnapshotAWSEC2-CreateVssSnapshot)必须在集群中的主节点上运行。由于辅助节点无权访问共享磁盘,因此该文档将在辅助节点上失败。如果您的主节点和辅助节点动态更改,则可以在多个节点上运行 AWS Systems Manager Run Command 文档,并且预期该命令将在主节点上成功,而在辅助节点上会失败。

注意

要自动执行备份,可以创建一个使用 AWSEC2-VssInstallAndSnapshot 文档的 AWS Systems Manager 维护时段任务。有关更多信息,请参阅 AWS Systems Manager 用户指南中的使用维护时段(控制台)