使用 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
文档时,此脚本将执行以下步骤。
-
此脚本首先在实例上安装或更新
AwsVssComponents
软件包,具体情况取决于是否已安装此软件包。 -
此脚本将在完成第一步之后创建应用程序一致性快照。
要运行 AWSEC2-VssInstallAndSnapshot
文档,请按照适用于您的首选环境的步骤操作。
要运行 AWSEC2-CreateVssSnapshot
文档,请按照适用于您的首选环境的步骤操作。
您可以使用上一部分中描述的任何命令行步骤来创建启用 VSS 的快照。命令文档(AWSEC2-VssInstallAndSnapshot
或 AWSEC2-CreateVssSnapshot
)必须在集群中的主节点上运行。由于辅助节点无权访问共享磁盘,因此该文档将在辅助节点上失败。如果您的主节点和辅助节点动态更改,则可以在多个节点上运行 Amazon Systems Manager Run Command 文档,并且预期该命令将在主节点上成功,而在辅助节点上会失败。
您可以使用以下脚本和预定义的 AWSEC2-ManageVssIO
SSM 文档以临时暂停 I/O,创建启用了 VSS 的 EBS 快照,然后重新启动 I/O。此过程在运行命令的用户上下文中运行。如果用户具有足够的权限来创建和标记快照,那么 Amazon Systems Manager 可以创建和标记启用了 VSS 的 EBS 快照,而实例上无需更多 IAM 快照角色。
相反,命令文档(AWSEC2-VssInstallAndSnapshot
或 AWSEC2-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 框架要求调用Freeze
和Thaw
操作相隔不超过十秒钟,在不使用脚本的情况下手动调用这些操作会导致错误。
使用 AWSEC2-ManageVssIO
SSM 文档创建启用了 VSS 的 EBS 快照
-
下载 CreateVssSnapshotAdvancedScript.zip 文件并提取文件内容。
-
在文本编辑器中打开
CreateVssSnapshotAdvancedScript.ps1
,编辑脚本底部的示例调用以包含有效的 EC2 实例 ID、快照描述和所需的标签值,然后从 PowerShell 中运行该脚本。
如果成功,则该命令使用新快照填充 EBS 快照列表。您可以通过搜索指定的标签或搜索 AppConsistent
在 EBS 快照列表中查找这些快照。如果命令执行失败,请查看命令输出,了解执行失败的详细原因。如果命令成功完成,但特定卷备份失败,您可以在 EBS 卷列表中排查失败的原因。
注意
要自动执行备份,可以创建一个使用 AWSEC2-VssInstallAndSnapshot
文档的 Amazon Systems Manager 维护时段任务。有关更多信息,请参阅 Amazon Systems Manager 用户指南中的使用维护时段(控制台)。