使用 Amazon Systems Manager 命令文档创建 VSS 快照 - Amazon Elastic Compute Cloud
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

使用 Amazon Systems Manager 命令文档创建 VSS 快照

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

在使用任何 Systems Manager 命令文档之前,请确保已满足所有 先决条件

Systems Manager VSS 快照文档的参数

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

ExcludeBootVolume(字符串,可选)

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

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

NoWriters(字符串,可选)

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

CopyOnly(字符串,可选)

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

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

CreateAmi(字符串,可选)

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

有关创建从实例创建 AMI 的更多信息,请参阅 从正在运行的实例创建 Windows AMI

AmiName(字符串,可选)

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

description(字符串,可选)

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

tags(字符串,可选)

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

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

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

  • 设备 – 对于启用了 VSS 的快照,这是快照捕获的 EBS 卷的设备名称。

  • AppConsistent – 此标签表示已成功创建启用了 VSS 的快照或 AMI。

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

警告

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

executionTimeout(字符串,可选)

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

CollectDiagnosticLogs(字符串,可选)

要在快照和 AMI 创建步骤中收集更多信息,请将此参数设置为 True。此参数的默认值为 False

VssVersion(字符串,可选)

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

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

运行 Systems Manager VSS 快照命令文档

可以使用 Amazon Systems Manager 命令文档创建已启用 VSS 的 EBS 快照,如下所示。

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

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

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

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

Console
从控制台创建启用 VSS 的 EBS 快照
  1. 访问 https://console.aws.amazon.com/systems-manager/,打开 Amazon 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 卷列表中排查失败的原因。

Amazon CLI

可以在 Amazon 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

使用 Amazon 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/,打开 Amazon 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 卷列表中排查失败的原因。

Amazon CLI

在 Amazon 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

使用 Amazon 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)必须在集群中的主节点上运行。由于辅助节点无权访问共享磁盘,因此该文档将在辅助节点上失败。如果您的主节点和辅助节点动态更改,则可以在多个节点上运行 Amazon Systems Manager Run Command 文档,并且预期该命令将在主节点上成功,而在辅助节点上会失败。

您可以使用以下脚本和预定义的 AWSEC2-ManageVssIO SSM 文档以临时暂停 I/O,创建启用了 VSS 的 EBS 快照,然后重新启动 I/O。此过程在运行命令的用户上下文中运行。如果用户具有足够的权限来创建和标记快照,那么 Amazon Systems Manager 可以创建和标记启用了 VSS 的 EBS 快照,而实例上无需更多 IAM 快照角色。

相反,命令文档(AWSEC2-VssInstallAndSnapshotAWSEC2-CreateVssSnapshot)要求您将 IAM 快照角色分配给要为其创建 EBS 快照的每个实例。如果您出于策略或合规性原因不希望向您的实例提供其他 IAM 权限,则可以使用以下脚本。

开始前的准备工作

请注意有关该过程的以下重要详细信息:

  • 除了根卷以外,该过程使用 PowerShell 脚本(CreateVssSnapshotAdvancedScript.ps1)为指定的实例上的所有其他卷拍摄快照。如果需要拍摄根卷的快照,您必须使用 AWSEC2-CreateVssSnapshot SSM 文档。

  • 该脚本调用两次 AWSEC2-ManageVssIO 文档。第一次将 Action 参数设置为 Freeze,这会暂停实例上的所有 I/O。第二次将 Action 参数设置为 Thaw,这会强制恢复 I/O。

  • 在未使用 CreateVssSnapshotAdvancedScript.ps1 脚本的情况下,不要尝试使用 AWSEC2-ManageVssIO 文档。Microsoft 的 VSS 框架要求调用 FreezeThaw 操作相隔不超过十秒钟,在不使用脚本的情况下手动调用这些操作会导致错误。

使用 AWSEC2-ManageVssIO SSM 文档创建启用了 VSS 的 EBS 快照
  1. 下载 CreateVssSnapshotAdvancedScript.zip 文件并提取文件内容。

  2. 在文本编辑器中打开 CreateVssSnapshotAdvancedScript.ps1,编辑脚本底部的示例调用以包含有效的 EC2 实例 ID、快照描述和所需的标签值,然后从 PowerShell 中运行该脚本。

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

注意

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