建立 VSS 應用程式一致性快照 - Amazon Elastic Compute Cloud

建立 VSS 應用程式一致性快照

本節所涵蓋的程序旨在利用 AWS CLI 或 AWS Tools for Windows PowerShell 來建立具備 VSS 功能的 EBS 快照。還包含使用 AWSEC2-ManageVssIO SSM 文件來建立具備 VSS 功能的快照的進階方法。

開始之前

如果您要使用 AWS CLI,請確保您已安裝最新版本的 AWS CLI。如需詳細資訊,請參閱 Installing or upgrading and then configuring the (安裝或升級,然後設定)AWS CLI 位於 AWS Systems Manager User Guide(《使用者指南》) 中。

如果您要使用 AWS Tools for Windows PowerShell,請確保您已安裝最新版本的 Tools for Windows PowerShell。如需詳細資訊,請參閱 Installing or upgrading and then configuring the (安裝或升級,然後設定)AWS Tools for Windows PowerShell 位於 AWS Systems Manager User Guide(《使用者指南》) 中。

提示

您也可以將 AWS CloudShell 用於直接從 AWS Management Console 啟動的瀏覽器型預先驗證身分的殼層。

安裝 VSS 套件

使用下列其中一個命令列程序,下載 VSS 元件並安裝到 Windows on EC2 執行個體。

使用 AWS CLI 安裝 VSS 套件

透過以下程序,即可使用 AwsVssComponents 中的執行命令來下載 AWS CLI 套件,並在執行個體上進行安裝。該套件的安裝程序包含兩個元件:VSS 請求程式和 VSS 供應程式。系統會將這些元件複製到執行個體上的目錄,接著註冊供應程式 DLL,以將其做為 VSS 供應程式。

使用 AWS CLI 安裝 VSS 套件

  • 執行下列命令,藉此下載並安裝 Systems Manager 所需的 VSS 元件。

    aws ssm send-command \ --document-name "AWS-ConfigureAWSPackage" \ --instance-ids "i-12345678" \ --parameters '{"action":["Install"],"name":["AwsVssComponents"]}'

使用 Tools for Windows PowerShell 安裝 VSS 套件

透過以下程序,即可使用 Tools for Windows PowerShell 中的執行命令來下載 AwsVssComponents 套件,並在執行個體上進行安裝。該套件的安裝程序包含兩個元件:VSS 請求程式和 VSS 供應程式。系統會將這些元件複製到執行個體上的目錄,接著註冊供應程式 DLL,以將其做為 VSS 供應程式。

使用 適用於 Windows 的 AWS 工具 PowerShell 安裝 VSS 套件

  1. 開啟 AWS Tools for Windows PowerShell 並執行以下命令,以指定您的登入資料。您必須在 Amazon EC2 中具備管理員權限,或已在 IAM 中獲得適當許可。如需詳細資訊,請參閱《AWS Systems Manager 使用者指南中的 設定AWS Systems Manager

    Set-AWSCredentials –AccessKey key_name –SecretKey key_name
  2. 執行以下命令,以設定 PowerShell 工作階段的區域。此範例使用 us-east-2 區域。

    Set-DefaultAWSRegion -Region us-east-2
  3. 執行下列命令,藉此下載並安裝 Systems Manager 所需的 VSS 元件。

    Send-SSMCommand -DocumentName AWS-ConfigureAWSPackage -InstanceId "$instance"-Parameter @{'action'='Install';'name'='AwsVssComponents'}

建立具備 VSS 功能的 EBS 快照

使用下列其中一個命令列程序,建立具備 VSS 功能的 EBS 快照。

使用 AWS CLI 建立具備 VSS 功能的 EBS 快照

遵循以下程序,即可使用 AWS CLI 建立具備 VSS 功能的 EBS 快照。當您執行命令時,可以指定下列參數:

  • 執行個體 (必要):指定一或多個 Amazon EC2 Windows 執行個體。您可以手動指定執行個體,也可以指定標記。

  • 說明 (選用):指定此備份程序的詳細資訊。

  • 標記 (選用):指定要指派給快照的標記索引鍵/值組。標記可協助您從快照清單中尋找、管理和恢復磁碟區。在預設情況下,系統會將 Name 金鑰填入標記參數中。請為此金鑰值指定一個名稱,以便套用至此程序建立的快照。您也可以按照以下格式,將自訂標記新增至此清單:Key=Environment,Value=Test;Key=User,Value=TestUser1

    雖然此為選用參數,但仍建議您標記快照。根據預設,系統會以裝置 ID 和 AppConsistent 來標記快照 (藉此表示成功建立與應用程式一致且具備 VSS 功能的 EBS 快照)。

  • 排除開機磁碟區 (選用):只要使用此參數,即可從備份程序中排除開機磁碟區。

使用 AWS CLI 建立具備 VSS 功能的 EBS 快照

  • 執行下列命令,藉此建立具備 VSS 功能的 EBS 快照。

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

如果操作成功,該命令就會將新快照填入 EBS 快照清單中。您可以搜尋指定的標記,或是搜尋 AppConsistent,藉此在 EBS 快照清單中找到這些快照。如果命令執行失敗,請檢視 命令輸出的詳細資訊,以了解執行失敗的原因。

您可以建立採用 AWSEC2-CreateVssSnapshot SSM 文件的維護時段視窗任務,以自動執行備份作業。如需詳細資訊,請參閱《AWS Systems Manager 使用者指南》中的 使用維護時段 Windows (主控台)

使用 適用於 Windows 的 AWS 工具 PowerShell 建立具備 VSS 功能的 EBS 快照

遵循以下程序,即可使用 AWS Tools for Windows PowerShell 建立具備 VSS 功能的 EBS 快照。當您執行命令時,可以指定下列參數:

  • 執行個體 (必要):指定一或多個 Amazon EC2 Windows 執行個體。您可以手動指定執行個體,也可以指定標記。

  • 說明 (選用):指定此備份程序的詳細資訊。

  • 標記 (選用):指定要指派給快照的標記索引鍵/值組。標記可協助您從快照清單中尋找、管理和恢復磁碟區。在預設情況下,系統會將 Name 金鑰填入標記參數中。請為此金鑰值指定一個名稱,以便套用至此程序建立的快照。您也可以按照以下格式,將自訂標記新增至此清單:Key=Environment,Value=Test;Key=User,Value=TestUser1

    雖然此為選用參數,但仍建議您標記快照。根據預設,系統會以裝置 ID 和 AppConsistent 來標記快照 (藉此表示成功建立與應用程式一致且具備 VSS 功能的 EBS 快照)。

  • 排除開機磁碟區 (選用):只要使用此參數,即可從備份程序中排除開機磁碟區。

使用 適用於 Windows 的 AWS 工具 PowerShell 建立具備 VSS 功能的 EBS 快照

  1. 開啟 AWS Tools for Windows PowerShell 並執行以下命令,以指定您的登入資料。您必須在 Amazon EC2 中具備管理員權限,或已在 IAM 中獲得適當許可。如需詳細資訊,請參閱《AWS Systems Manager 使用者指南》中的 設定 AWS Systems Manager

    Set-AWSCredentials –AccessKey key_name –SecretKey key_name
  2. 請執行下列命令,藉此設定 PowerShell 工作階段的區域。此範例使用 us-east-2 區域。

    Set-DefaultAWSRegion -Region us-east-2
  3. 請執行下列命令,藉此建立具備 VSS 功能的 EBS 快照。

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

如果操作成功,該命令就會將新快照填入 EBS 快照清單中。您可以搜尋指定的標記,或是搜尋 AppConsistent,藉此在 EBS 快照清單中找到這些快照。如果命令執行失敗,請檢視 命令輸出的詳細資訊,以了解執行失敗的原因。若系統成功完成命令,但無法備份特定磁碟區,則您可以在 EBS 快照清單中進行疑難排解。

您可以建立採用 AWSEC2-CreateVssSnapshot SSM 文件的維護時段視窗任務,以自動執行備份作業。如需詳細資訊,請參閱《AWS Systems Manager 使用者指南》中的 使用維護時段 Windows (主控台)

使用 AWSEC2-ManageVssIO SSM 文件建立具備 VSS 功能的 EBS 快照 (進階)

您可使用下列指令碼和預先定義的 AWSEC2-ManageVssIO SSM 文件,以暫時暫停 I/O、建立具備 VSS 功能的 EBS 快照,然後重新啟動 I/O。系統會在執行命令的使用者內容中執行此程序。如果使用者有足夠的許可能建立和標記快照,則 AWS Systems Manager 便能建立及標記具備 VSS 功能的 EBS 快照,且執行個體上也無需其他 IAM 快照角色。

相對的,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 文件。根據 VSS 中的限制,FreezeThaw 動作的呼叫時間相差不得超過 10 秒鐘。此外,在未使用指令碼的情況下手動呼叫這些動作,可能會導致錯誤。

使用 AWSEC2-ManageVssIO SSM 文件建立具備 VSS 功能的 EBS 快照

  1. 開啟 AWS Tools for Windows PowerShell 並執行以下命令,以指定您的登入資料。您必須在 Amazon EC2 中具備管理員權限,或已在 IAM 中獲得適當許可。如需詳細資訊,請參閱《AWS Systems Manager 使用者指南》中的 設定AWS Systems Manager

    Set-AWSCredentials –AccessKey key_name –SecretKey key_name
  2. 請執行下列命令,藉此設定 PowerShell 工作階段的區域。此範例使用 us-east-2 區域。

    Set-DefaultAWSRegion -Region us-east-2
  3. 下載 CreateVssSnapshotAdvancedScript.zip 檔案,並解壓縮檔案內容。

  4. 在文字編輯器中開啟 CreateVssSnapshotAdvancedScript.ps1,編輯指令碼底端的範例呼叫,加上有效的 EC2 執行個體 ID、快照描述和需要的標籤值,然後從 PowerShell 執行指令碼。

如果操作成功,該命令就會將新快照填入 EBS 快照清單中。您可以搜尋指定的標記,或是搜尋 AppConsistent,藉此在 EBS 快照清單中找到這些快照。如果命令執行失敗,請檢視 命令輸出的詳細資訊,以了解執行失敗的原因。若命令執行成功,但無法備份特定磁碟區,則您可以在 EBS 磁碟區清單中進行疑難排解。

對具備 VSS 功能的 EBS 快照進行疑難排解

一般:查看日誌檔

如果建立具備 VSS 功能的 EBS 快照時遇到問題或收到錯誤訊息,則可在 Systems Manager 主控台中檢視命令輸出。您也可以檢視下列日誌:

  • %ProgramData%\Amazon\SSM\InstanceData\InstanceID\document\orchestration\SSMCommandID\awsrunPowerShellScript\runPowerShellScript\stdout

  • %ProgramData%\Amazon\SSM\InstanceData\InstanceID\document\orchestration\SSMCommandID\awsrunPowerShellScript\runPowerShellScript\stderr

您也可以開啟事件檢視器 Windows 應用程式,然後選擇 Windows 日誌 應用程式來檢視其他日誌。若要特別查看 EC2 Windows VSS 供應程式和磁碟區陰影複製服務的事件,請依條款 Ec2VssSoftwareProviderVSS來源進行篩選。

錯誤:Thaw 管道連線逾時、Thaw 發生錯誤、VSS Freeze 等候逾時或其他逾時錯誤

EC2 Windows VSS 供應程式可能會因為執行個體上的活動或服務導致具備 VSS 功能的 EBS 快照無法及時進行而逾時。Windows VSS 架構會提供無法設定的 10 秒時段,暫停與檔案系統的通訊。在這段期間,AWSEC2-CreateVssSnapshot 會對磁碟區執行快照。

下列項目可能造成 EC2 Windows VSS 供應程式在快照期間遇到時間限制:

  • 磁碟區的過多 I/O

  • 執行個體上的 EC2 API 回應緩慢

  • 分段的磁碟區

  • 與某些防毒軟體不相容

  • VSS 應用程式寫入器的問題

  • 當大量 PowerShell 模組啟用模組記錄時,可能會導致 PowerShell 指令碼執行緩慢

命令遭遇 AWSEC2-CreateVssSnapshot 時間限制,原因通常與備份當下執行個體上工作負載過高有關。下列動作可協助您成功建立快照:

  • 重試 AWSEC2-CreateVssSnapshot 命令來查看快照是否成功。若在某些情況下重試成功,減少執行個體負載可能使快照更加成功。

  • 等候一段時間,待執行個體上的工作負載減少,再重試 AWSEC2-CreateVssSnapshot 命令。或者,您可以在執行個體處於低壓力時嘗試快照。

  • 當系統上的防毒軟體關閉時,請嘗試 VSS 快照。若這樣可解決問題,請見防毒軟體說明,並將其設定為允許 VSS 快照。

  • 若在快照時進行大量的 EC2 API 呼叫,API 調節可能導致快照的啟動耗時太久。帳戶中 API 活動較少時,重試建立快照。

  • 在 Shell 中執行命令 vssadmin list writers,並查看是否有回報系統上任何寫入器的上次錯誤欄位中任何錯誤。如有任何寫入器回報逾時錯誤,請考慮在執行個體負載較少時重試快照。

  • 如果一或多個 PowerShell 模組具有啟用 PowerShell 模組記錄的群組政策,請嘗試暫時停用記錄,然後再建立快照。