

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 疑難排解基於 Windows VSS 的 EBS 快照
<a name="application-consistent-snapshots-troubleshooting"></a>

在嘗試任何其他疑難排解步驟之前，建議您先確認下列詳細資料。
+ 確保您符合所有 [建立基於 Windows VSS 的 EBS 快照的先決條件](application-consistent-snapshots-prereqs.md)。
+ 確認您使用您作業系統適用的 `AwsVssComponents` 套件最新 [支援 Windows OS 版本](vss-comps-history.md#windows-version-support)。您觀察到的問題可能已在較新版本中得到解決。

**Topics**
+ [檢查日誌檔](#general-log-files)
+ [收集其他診斷日誌](#vss-ts-collect-diagnostic-logs)
+ [在已設定代理的執行個體上使用 VSS](#general-using-vss-with-proxy)
+ [錯誤：Thaw 管道連線逾時、Thaw 發生錯誤、VSS Freeze 等候逾時或其他逾時錯誤](#error-thaw)
+ [錯誤：無法叫用方法。僅在此語言模式下的核心類型上支援方法調用](#error-invoke)

## 檢查日誌檔
<a name="general-log-files"></a>

如果建立基於 VSS 的 EBS 快照時遇到問題或收到錯誤訊息，則可在 Systems Manager 主控台中檢視命令輸出。

對於建立 VSS 快照的 Systems Manager 文件，您可以在執行時期將 `CollectDiagnosticLogs` 參數設定為「`True`」。當 `CollectDiagnosticLogs` 參數設定為「`True`」時，VSS 會收集其他日誌來協助偵錯。如需詳細資訊，請參閱[收集其他診斷日誌](#vss-ts-collect-diagnostic-logs)。

如果您收集診斷日誌，Systems Manager 文件會將其儲存在以下位置的執行個體：`C:\ProgramData\Amazon\AwsVss\Logs\timestamp.zip`。`CollectDiagnosticLogs` 參數的預設值為「`False`」。

**注意**  
如需其他偵錯說明，您可以將`.zip`檔案傳送到 支援。

無論您是否收集診斷日誌檔，都可以使用下列其他日誌檔：
+ `%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 供應程式和磁碟區陰影複製服務的事件，請依條款 **Ec2VssSoftwareProvider** 和 **VSS** 的**來源**進行篩選。

如果您正透過 VPC 端點使用 Systems Manager，且 Systems Manager [send-command](https://docs.aws.amazon.com/cli/latest/reference/ssm/send-command.html) API 動作 (主控台的 **Run Command**) 失敗，請確認已正確設定下列端點：**com.amazonaws.*region*.ec2**。

如果沒有定義 Amazon EC2 端點，則用來列舉所連接 EBS 磁碟區的呼叫會失敗，進而導致 Systems Manager 命令失敗。如需有關使用 Systems Manager 設定 VPC 端點的詳細資訊，請參閱*「AWS Systems Manager 使用者指南」*中的[建立 Virtual Private Cloud 端點](https://docs.aws.amazon.com/systems-manager/latest/userguide/setup-create-vpc.html)。

## 收集其他診斷日誌
<a name="vss-ts-collect-diagnostic-logs"></a>

若要在使用 Systems Manager 發送命令執行 VSS 快照文件時，收集其他診斷日誌，請在執行時期將 `CollectDiagnosticLogs` 輸入參數設定為「`True`」。我們建議您在疑難排解時將此參數設定為「`True`」。

若要檢視命令列範例，請選取下列其中一個索引標籤。

------
#### [ AWS CLI ]

以下範例在 AWS CLI執行 `AWSEC2-CreateVssSnapshot` Systems Manager 文件：

```
aws ssm send-command \ 
    --document-name "AWSEC2-CreateVssSnapshot" \
    --instance-ids "i-1234567890abcdef0" \
    --parameters '{"description":["Example - create diagnostic logs at runtime."],"tags":["Key=tag_name,Value=tag_value"],"CollectDiagnosticLogs":["True"]}'
```

------
#### [ PowerShell ]

以下範例在 PowerShell 執行 `AWSEC2-CreateVssSnapshot` Systems Manager 文件：

```
Send-SSMCommand `
    -DocumentName "AWSEC2-CreateVssSnapshot" `
    -InstanceId "i-1234567890abcdef0" `
    -Parameter @{'description'='Example - create diagnostic logs at runtime.';'tags'='Key=tag_name,Value=tag_value';'CollectDiagnosticLogs'='True'}
```

------

## 在已設定代理的執行個體上使用 VSS
<a name="general-using-vss-with-proxy"></a>

如果在使用代理連線 EC2 端點的執行個體上建立基於 VSS 的 EBS 快照時發生問題，請確認執行個體的下列設定：
+ 確認代理已設定，以便以 SYSTEM 身分 AWS Tools for Windows PowerShell 執行，以存取執行個體區域和 IMDS 中的 EC2 服務端點。
+ 若要支援使用系統設定的 WinHTTP Proxy，請確定您已在執行個體安裝最新 `AwsVssComponents` 版本。如需設定 WinHTTP 代理的詳細資訊，請前往 Microsoft 網站參閱 [Windows 超文字傳輸通訊協定 (WINHTTP) 的 Netsh 命令](https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-r2-and-2008/cc731131(v=ws.10))。

## 錯誤：Thaw 管道連線逾時、Thaw 發生錯誤、VSS Freeze 等候逾時或其他逾時錯誤
<a name="error-thaw"></a>

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 快照。
+ 如果您的帳戶在執行快照的相同區域內出現大量 Amazon EC2 API 呼叫，則 API 限流可能會延遲快照作業。若要減少限流影響，請使用最新 `AwsVssComponents` 套件。此套件利用 EC2 `CreateSnapshots` API 動作來減少每磁碟區快照建立和標記等變更動作的數量。
+ 如果您同時執行多個 `AWSEC2-CreateVssSnapshot` 命令指令碼，您可以採取下列步驟來減少並行問題。
  + 請考慮在 API 活動較低期間安排快照時間。
  + 如果您在 Systems Manager 主控台 (或 API 中的 **SendCommand**) 使用 **Run Command** 來執行命令指令碼，您可以使用 Systems Manager 速率控制來減少並行。

    您也可以使用 Systems Manager 速率控制來減少服務並行 AWS Backup ，例如使用 Systems Manager 執行命令指令碼的服務。
+ 在 Shell 中執行命令 `vssadmin list writers`，並查看是否有回報系統上任何寫入器的**上次錯誤**欄位中任何錯誤。如有任何寫入器回報**逾時**錯誤，請考慮在執行個體負載較少時重試快照。
+ 當您使用較小的執行個體類型 (例如 *t2 \$1 t3 \$1 t3a*.nano 或 *t2 \$1 t3 \$1 t3a*.micro)，可能會因記憶體和 CPU 限制而發生逾時。下列動作可能有助於減少逾時問題。
  + 在建立快照之前，請嘗試關閉記憶體或 CPU 密集型應用程式。
  + 嘗試在執行個體活動較低期間建立快照。

## 錯誤：無法叫用方法。僅在此語言模式下的核心類型上支援方法調用
<a name="error-invoke"></a>

當 PowerShell 語言模式未設定為 `FullLanguage` 時，您將會遇到此錯誤。`AWSEC2-CreateVssSnapshot` SSM 文件需要將 PowerShell 設定為 `FullLanguage` 模式。

若要確認語言模式，請在 PowerShell 主控台中的執行個體上執行以下命令：

```
$ExecutionContext.SessionState.LanguageMode
```

如需語言模式的詳細資訊，請參閱 Microsoft 文件中的 [about\$1Language\$1Modes](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_language_modes)。