跳至內容

為什麼我的 Application Migration Service 或彈性災難復原複寫程序卡在 100%,且出現「正在完成初始同步」訊息?

4 分的閱讀內容
0

我使用 AWS Application Migration Service 或 AWS 彈性災難復原。複寫程序卡在 100%,且主控台顯示「正在完成初始同步」訊息。

簡短描述

在進行 Application Migration Service 或彈性災難復原的同步期間,複寫程序卡在 100% 時,您會看到下列錯誤:

  • 「正在完成初始同步 – 排清待辦事項」
  • 「正在完成初始同步 – 建立第一個可啟動的快照」

解決方法

**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,請參閱對 AWS CLI 錯誤進行疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本

對「Finalizing Initial Sync - Flushing Backlog」錯誤進行疑難排解

等待待辦事項完成排清,以便同步初始化。

如果來源機器是寫入密集型,那麼待辦事項的大小可能會增加。如果機器卡在「正在完成初始同步」狀態,請測試 Application Migration Service彈性災難復原的複寫速度。另外,計算所有複寫來源機器所需的頻寬。確保複寫執行個體的網路輸送量足夠。

若要檢查複寫設定,請完成以下步驟:

  1. 開啟 Application Migration Service彈性災難復原主控台。
  2. 在導覽窗格中,選擇 Source servers (來源伺服器)。
  3. 選擇 Edit replication settings (編輯複寫設定)。
  4. 檢查 Network bandwidth throttling (網路頻寬限流) 是否設定為 Throttle bandwidth (限流頻寬)。如果您不需要限流頻寬,請選取 Do not throttle bandwidth (不限流頻寬)。如果您需要限流頻寬,請務必將該值設定為所需的最小頻寬。如需詳細資訊,請參閱 Application Migration Service 的資料路由和限流,或彈性災難復原的限流網路頻寬

使用 Amazon CloudWatch 指標檢查複寫伺服器的網路和磁碟使用量。如果資源限流了伺服器,則使用專用複寫伺服器或更大的複寫伺服器類型。或者,選擇 SSD 型儲存體。如需詳細資訊,請參閱 AWS Application Migration Service 最佳實務變更暫存磁碟類型

若要檢查特定來源機器使用的複寫伺服器,請根據您的作業系統 (OS) 在來源機器上執行下列命令。

Linux:

netstat -anp | grep ":1500"

Windows:

netstat -ano | findstr ":1500"

記下機器透過連接埠 1500 連線到的遠端 IP 位址。

或者,根據您的作業系統執行以下命令來查看來源機器上的 agent.log.0 檔案,並確定正在使用的確切複寫伺服器。

Linux:

sudo cat /var/lib/aws-replication-agent/agent.log.0 | grep :1500 | tail -n 1

Windows:

findstr /L ":1500" "C:\Program Files (x86)\AWS Replication Agent\agent.log.0"

對「Finalizing Initial Sync - Creating First Launchable Snapshot」錯誤進行疑難排解

檢查使用者的 IAM 政策權限

確保使用者的 AWS Identity and Access Management (IAM) 政策具有執行 Amazon Elastic Compute Cloud (Amazon EC2) API 的權限。

檢查使用者的 Application Migration Service彈性災難復原憑證。或者,檢查 AWS CloudTrail 事件歷史記錄,以尋找使用者發生的 API 故障。

檢查您的 Amazon EC2 端點

確保複寫伺服器可以與 AWS 區域中的 Application Migration Service彈性災難復原的 Amazon EC2 端點通訊。

若要測試與服務端點的連線,請完成以下步驟:

  1. 在與您的暫存區域相同的子網路中,啟動一個新的 Linux 執行個體
  2. 登入新執行個體,然後執行以下命令:
    dig ec2.us-east-1.amazonaws.com  
    telnet ec2.us-east-1.amazonaws.com 443  
    wget https://ec2.us-east-1.amazonaws.com
    **注意:**將 us-east-1 替換為您的區域。如果上述任何命令失敗,請繼續執行以下區段,以對網路連線問題進行疑難排解。確認虛擬私有雲端 (VPC)、子網路、安全群組、網路存取控制清單 (網路 ACL) 和路由表設定與您的複寫設定一致。組態錯誤可能會封鎖複寫伺服器與 Amazon EC2 端點的通訊。

識別您在公有子網路中啟動的複寫伺服器所遇到的網路連線障礙

確保安全群組、網路 ACL 和路由表允許與 TCP 連接埠 443 上的 Amazon EC2 端點進行通訊。

確認您是否在 VPC 層級將 enableDnsHostnamesenableDnsSupport 屬性設為 true。執行以下 describe-vpc-attribute AWS CLI 命令來檢查 enableDnsHostnames 屬性:

aws ec2 describe-vpc-attribute --vpc-id vpc-abcdef --attribute enableDnsHostnames   

**注意:**將 vpc-abcdef 替換為您的 VPC ID。

輸出範例:

$ aws ec2 describe-vpc-attribute --vpc-id vpc-abcdef --attribute enableDnsHostnames  
{   
 "VpcId": "vpc-a01106c2",  
 "EnableDnsHostnames": {   
 "Value": true  
 }   
}

執行以下 describe-vpc-attribute 命令,以檢查 enableDnsSupport 屬性:

aws ec2 describe-vpc-attribute --vpc-id vpc-abcdef --attribute enableDnsSupport

**注意:**將 vpc-abcdef 替換為您的 VPC ID。

輸出範例:

$ aws ec2 describe-vpc-attribute --vpc-id vpc-abcdef --attribute enableDnsSupport     
{  
 "VpcId": "vpc-a01106c2",   
 "EnableDnsSupport": {  
 "Value": true   
 }  
}

如果這些屬性未設定為 true,請執行以下 modify-vpc-attribute 命令進行啟用:

aws ec2 modify-vpc-attribute --vpc-id vpc-abdcef --enable-dns-hostnames "{\"Value\":true}"

**注意:**將 vcp-abcdef 替換為您的 VPC ID,並將 enable-dns-hostnames 替換為未設定為 true 的屬性。

識別您在私有子網路中啟動的複寫伺服器所遇到的網路連線障礙

確認安全群組、網路 ACL 和路由表是否允許與 TCP 連接埠 443 上的 Amazon EC2 私有端點進行通訊。如果您在路由表中設定了 NAT 閘道或執行個體,請確認 TCP 連接埠 443 上到 Amazon EC2 端點的傳出流量正常。

檢查傳出流量是否通過傳輸或虛擬私有閘道。如果是,請確保路由表允許流量透過 TCP 連接埠 443 傳輸到 Amazon EC2 端點。另外,檢查防火牆是否封鎖通訊。

如果 VPC 具有介面 VPC 端點,請確保透過私有網路,在 TCP 連接埠 443 上與 Amazon EC2 端點之間進行通訊。確認您是否在 VPC 層級將 enableDnsHostnamesenableDnsSupport 設為 true,並在 VPC 介面端點將 PrivateDnsEnabled 設為 true

執行以下 describe-vpc-attribute 命令,以檢查 enableDnsHostnames 屬性:

aws ec2 describe-vpc-attribute --vpc-id vpc-abcdef --attribute enableDnsHostnames --query 'EnableDnsHostnames'

**注意:**將 vpc-abcdef 替換為您的 VPC ID。

輸出範例:

$ aws ec2 describe-vpc-attribute --vpc-id vpc-a01106c2 --attribute enableDnsHostnames --query 'EnableDnsHostnames'  

{   
 "Value": true  
}

執行以下 describe-vpc-attribute 命令,以檢查 enableDnsSupport 屬性:

aws ec2 describe-vpc-attribute --vpc-id vpc-abcdef --attribute enableDnsSupport --query 'EnableDnsSupport'

**注意:**將 vpc-abcdef 替換為您的 VPC ID。

輸出範例:

$ aws ec2 describe-vpc-attribute --vpc-id vpc-a01106c2 --attribute enableDnsSupport --query 'EnableDnsSupport'  

{   
 "Value": true  
}

執行以下 describe-vpc-attribute 命令,以檢查 PrivateDnsEnabled 屬性:

aws ec2 describe-vpc-endpoints --vpc-endpoint-ids vpce-12345abcde --query 'VpcEndpoints[0].PrivateDnsEnabled'  

**注意:**將 vpce-12345abcde 替換為您的 VPC 端點。

輸出範例:

true

如果屬性未設定為 true,則執行以下 modify-vpc-attribute 命令進行修改:

aws ec2 modify-vpc-attribute --vpc-id vpc-abdcef --enable-dns-hostnames "{\"Value\":true}"

**注意:**將 vcp-abcdef 替換為您的 VPC ID,並將 enable-dns-hostnames 替換為未設定為 true 的屬性。

檢查複寫設定中的最近變更

檢查 Application Migration Service彈性災難復原複寫設定中的最近變更。檢查您的 CloudTrail 事件歷史記錄中的 UpdateReplicationConfiguration API 呼叫,以識別變更。使用來源伺服器篩選資源名稱。例如,檢查 Replication resources tags (複寫資源標籤) 欄位中是否插入了無效標籤。有關允許的字元清單,請參閱標籤限制

確認您使用正確的 Proxy 設定

如果您的複寫伺服器使用 Proxy 伺服器,請確認 Proxy 設定允許與 TCP 連接埠 443 上的區域 Amazon EC2 端點進行通訊。

確保 SSL 攔截和驗證允許清單包含用於 Application Service Migration 的 mgn.region.amazonaws.com 和彈性災難復原的 drs.region.amazonaws.com

**注意:**將 region 替換為您的地區。

如需詳細資訊,請參閱來源伺服器和 AWS Application Migration Service 主控台之間可以使用 Proxy 伺服器嗎?另請參閱來源伺服器和彈性災難復原主控台之間可以使用 Proxy 伺服器嗎?

檢查 AWS Replication Agent

確認 AWS Replication Agent 在來源機器上正常運作。若要找出問題,請檢查 AWS Replication Agent 日誌中是否有錯誤。您可以在下列檔案位置找到 AWS Replication Agent 日誌:

  • 對於 Linux Replication Agent 日誌,請檢查 /var/lib/aws-replication-agent/agent.log.0
  • 對於 Windows Replication Agent 日誌,請檢查 C:\Program Files (x86) \AWS Replication Agent\agent.log.0

檢查 Amazon EC2 服務配額問題

如果您超出了 Application Migration Service彈性災難復原的服務配額,則這些服務將無法建立可啟動的復原快照。您可能還會遇到 API 限流或超出速率問題檢查 CloudTrail 事件歷史記錄,以確定服務配額或頻寬限流問題。如有需要,請申請增加配額