AWSDataSync移轉問題疑難排解 - AWS DataSync

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

AWSDataSync移轉問題疑難排解

下列主題說明AWSDataSync地點和工作常見的問題,以及您可以如何解決這些問題。

如何設定使DataSync用特定 NFS 或 SMB 版本來掛載我的檔案共用?

對於支援網路檔案系統 (NFS) 或伺服器訊息區 (SMB) 的位置,預設會為您選擇DataSync通訊協定版本。您也可以使用DataSync主控台或 API 自行指定版本。

要採取的動作 (DataSync主控台)

建立 NFS 或 SMB 位置時,請設定您要使用的通訊協DataSync定版本。如需詳細資訊,請參閱設定 NFS 檔案伺服器的AWS DataSync傳輸設定AWS DataSync從 SMB 檔案伺服器傳輸

要採取的行動 (DataSyncAPI)

建立或更新 NFS 或 SMB 位置時,請指定Version參數。例如,請參閱「CreateLocationNfs」或「CreateLocationSmb」。

下列範例AWS CLI指令會建立使用 NFS 4.0 版DataSync掛載的 NFS 位置。

$ aws datasync create-location-nfs --server-hostname your-server-address \ --on-prem-config AgentArns=your-agent-arns \ --subdirectory nfs-export-path \ --mount-options Version="NFS4_0"

下列範例AWS CLI命令會建立使用 SMB 第 3 版DataSync掛載的 SMB 位置。

$ aws datasync create-location-smb --server-hostname your-server-address \ --on-prem-config AgentArns=your-agent-arns \ --subdirectory smb-export-path \ --mount-options Version="SMB3"

錯誤:無效的SyncOption值。選項:TransferMode、PreserveDeletedFiles、值:全部、移除。

當您建立或編輯DataSync工作,並選取 [傳輸所有資料] 選項,並取消選取 [保留已刪除的檔案] 選項時,就會發生這個錯誤。傳輸所有數據時,DataSync不會掃描目標位置,也不知道要刪除的內容。

我的任務一直失敗,並EniNotFound出現錯誤

如果您刪除其中一個工作的網路介面,就會發生此 VPC 誤。如果您的工作已排程或排入佇列,則如果工作缺少傳輸資料所需的網路介面,工作將會失敗。

要採取的動作

您有下選項:

  • 手動重新啟動工作。當你這樣做時,DataSync將創建任何缺少的網絡接口,它需要運行任務。

  • 如果您需要清理 VPC 中的資源,請確定不要刪除與您仍在使用的DataSync工作相關的網路介面。

    若要查看配置給工作的網路介面,請執行下列其中一項:

    • 使用DescribeTask操作。您可以檢視SourceNetworkInterfaceArnsDestinationNetworkInterfaceArns回應元素中的網路介面。

    • 在 Amazon EC2 主控台中,搜尋您的任務 ID (例如task-f012345678abcdef0) 以尋找其網路界面。

  • 請考慮不要自動執行您的工作。這可能包括停用工作佇列或排程 (透過DataSync或自訂自動化)。

我的任務失敗,DataSync目前不支持服務器端 NFSv4 ID 映射錯誤

如果傳輸中涉及的檔案系統使用 NFS 第 4 版 ID 對應 (DataSync不支援的功能),就會發生此錯誤。

採取動作

您有幾個選項:

  • 為使用 NFS 第 3 版的檔案系統建立新DataSync位置。

  • 在檔案系統上停用 NFS 第 4 版識別碼對應。

重試移轉作業。任何一個選項都可以解決問題。

我的工作狀態無法使用,表示掛載錯誤

DataSync如果您的代理程式無法掛載 NFS 位置,則表示您的工作無法使用。

採取動作

首先,確保您指定的 NFS 伺服器和匯出都是有效的。如果無效,請刪除任務、使用正確的 NFS 伺服器建立新的任務,然後匯出。如需詳細資訊,請參閱設定 NFS 檔案伺服器的AWS DataSync傳輸

如果 NFS 伺服器和匯出皆有效,通常表示以下兩種情況之一。防火牆導致代理程式無法掛載 NFS 伺服器,或 NFS 伺服器未設定為允許代理程式進行掛載。

確定代理程式和 NFS 伺服器之間沒有防火牆。然後,確定 NFS 伺服器已設定為允許代理程式掛載任務中所指定的匯出結束點。如需網路和防火牆需求的資訊,請參閱AWS DataSync網路需求

如果您執行這些動作,但代理程式仍無法掛載 NFS 伺服器並匯出,請開啟 SupportAWS 援通道。如需如何開啟支援管道的相關資訊,請參閱取得代理人的協助AWS Support

我的任務失敗,出現無法分配內存錯誤

當您的DataSync任務失敗並出現無法分配內存錯誤時,它可能意味著一些不同的事情。

採取動作

請嘗試以下操作,直到您不再看到問題為止:

我的任務失敗,出現輸入/輸出錯誤

如果儲存系統發出DataSync代理程式的 I/O 要求失敗,您可能會收到輸入/輸出錯誤訊息。造成這種情況的常見原因包括伺服器磁碟故障、防火牆組態變更或網路路由器故障。

如果錯誤涉及 NFS 伺服器或 Hadoop 分散式檔案系統 (HDFS) 叢集,請使用下列步驟來解決錯誤。

要採取的動作

請先檢查您的 NFS 伺服器日誌和指標,進而判斷問題是否出自 NFS 伺服器。如果是,請解決該問題。

接著,確定網路組態並未變更。若要檢查 NFS 伺服器是否設定正確且DataSync可以存取,請執行下列動作:

  1. 在與 代理程式相同的網路子網路上設定另一個 NFS 用戶端。

  2. 在該用戶端上掛載共用區。

  3. 確認用戶端可成功讀取和寫入該共用區。

要採取的行動

請確定 HDFS 叢集允許代理程式與叢集的NameNode和DataNode連接埠進行通訊。在大多數叢集中,您可以在下列組態檔中找到叢集使用的連接埠號碼。

  1. 若要尋找NameNode連接埠,請查看fs.defaultfs.default.name屬性下的core-site.xml檔案 (取決於 Hadoop 發行版本)。

  2. 若要尋找DataNode連接埠,請查看dfs.datanode.address屬性下的hdfs-site.xml檔案。

我的任務執行具有啟動狀態,但似乎沒有發生任何事情

當無法指示指定的來源代理程式開始工作時,您的工作執行DataSync可能會停留在 [啟動] 狀態中。此問題通常會發生在代理程式關機或失去網路連線的情況。

採取動作

確定代理程式已連線,而且狀態為 ONLINE (線上)。如果狀態為 OFFLINE (離線),則代理程式未連線。如需如何測試網路連線的資訊,請參閱測試代理程式的連線AWS

接著,確定您的代理程式已開機。若未開機,請開機。

如果代理程式已開啟電源,且工作仍停留在 [啟動] 狀態,則代理程式之間出現網路連線問題,DataSync這是最有可能的問題。檢查您的網路和防火牆設定,確保代理程式可以連接至 DataSync。

如果您執行這些動作,但問題仍未解決,請使用開啟支援管道AWS Support。如需如何開啟支援管道的相關資訊,請參閱取得代理人的協助AWS Support

我的任務執行已經處於準備狀態很長時間

DataSync 在 Preparing (準備) 狀態所需的時間,依據來源與目的檔案系統中的檔案數量,以及這些檔案系統的效能而定。當任務開始時,DataSync 將執行遞迴目錄清單,以探索來源和目的地檔案系統中的所有檔案和檔案中繼資料。這些清單用於識別差異及判斷需要複製的項目。此程式通常需要幾分鐘到幾小時的時間。如需詳細資訊,請參閱開始您的AWS DataSync任務

採取動作

你不應該做任何事情。繼續等待「準備中」狀態變更為「轉移」。如果狀態仍未變更,請聯絡AWS Support。

我的任務失敗,出現權限被拒絕錯誤

如果您在設定 NFS 伺服器時啟用 root_squashall_squash,但檔案未具備所有讀取權限,就可能會收到「permissions denied」(許可遭拒) 的錯誤訊息。

採取動作

若要修正此問題,您可以使用 no_root_squash 來設定 NFS 匯出。或者,您可以確保要傳輸之所有檔案的許可允許所有使用者讀取。如此可讓代理程式讀取檔案。若要讓代理程式存取目錄,您還必須額外提供所有執行存取權限。

為了確保目錄可供掛載,請先連接至與代理程式具有相同網路組態的任何電腦,再執行以下 CLI 命令。

mount -t nfs -o nfsvers=<your-nfs-server-version> <your-nfs-server-name>:<nfs-export-path-youspecified> <new-test-folder-on-your-computer>

如果您執行這些動作,但問題仍未解決,請聯絡AWS Support。

驗證我執行的工作需要多長時間?

DataSync 在 VERIFYING (驗證中) 狀態所花費的時間會視多種因素而定。這些因素包含來源與目的地檔案系統中的檔案數量、所有檔案的總容量,以及這些檔案系統的效能。在預設情況下,系統會啟用選項設定中的 Verification mode (驗證模式)。DataSync執行的驗證包括對所有檔案內容的 SHA256 總和檢查碼,以及所有檔案中繼資料的精確比較。

採取動作

你不應該做任何事情。繼續等待驗證狀態完成。如果狀態仍未變更,請聯絡AWS Support。

傳輸到另一個 S3 存儲桶時,我的任務失敗AWS 帳戶

與相同資源之間的DataSync傳輸不同AWS 帳戶,將資料複製到不同儲存貯體中的 S3 儲存貯體AWS 帳戶需要一些額外的步驟。

  • 如果您的DataSync任務失敗並出現與 S3 儲存貯體許可相關的錯誤:建立任務時,請確定您已AWS Management Console使用您在目的地 S3 儲存貯體政策中指定的相同 IAM 角色登入。(注意:這不是DataSync授予寫入 S3 儲存貯體的 IAM 角色。)

  • 如果您同時將資料複製到另一個儲存貯體中的儲存貯體,AWS 區域並出現 S3 端點連線錯誤:在與目標 S3 儲存貯體相同的區域中建立DataSync任務。

如需 Amazon S3 跨帳戶轉移的完整指示,請參閱下列教學課程:

從 Google 雲端儲存貯體傳輸時,我的工作失敗

由於使用 Amazon S3 APIDataSync 與 Google 雲端儲存進行通訊,因此如果您嘗試複製物件標記,可能會造成DataSync任務失敗的限制。下列與問題相關的訊息會顯示在您的CloudWatch記錄檔中:

[WARN] 無法讀取檔案/您的儲存貯體/您的物件的中繼資料:S3 取得物件標記失敗:在未標記的情況下繼續執行

若要避免此情況發生,請在配置工作設定時取消選取「複製物件標籤」選項

我的任務開始和結束時間與日誌不匹配

您在DataSync控制台中看到的任務執行開始和結束時間可能會因您在其他地方看到與傳輸相關的時間戳記而有所不同。這是因為主控台不會考慮工作執行在啟動或佇列狀態下所花費的時間。

例如,您的 AmazonCloudWatch 日誌可能表示您的任務執行結束時間晚於DataSync主控台中顯示的結束。您可能會注意到以下幾個方面存在類似的差異:

  • 傳輸過程中涉及之檔案系統或物件儲存系統的記錄

  • DataSync寫入的 Amazon S3 物件上的最後修改日期

  • 來自DataSync代理程式的網路流量

  • 亞馬遜EventBridge活動

錯誤:SyncTaskDeletedByUser

自動化某些DataSync工作流程時,您可能會意外看到此錯誤。例如,您可能有一個腳本,在任務執行完成或處於隊列之前刪除您的任務。

若要修正此問題,請重新設定您的自動化操作,使這些類型的動作不會重疊。

錯誤:NoMem

您嘗試傳輸的數據集可能太大DataSync。如果看到此錯誤,請聯絡 AWS Support 中心

錯誤:FsS3UnableToConnectToEndpoint

DataSync無法連接到您的 Amazon S3 位置。這可能意味著無法訪問該位置的 S3 存儲桶或位置配置不正確。

請執行下列動作,直到您解決問題為止:

錯誤:FsS3HeadBucketFailed

DataSync無法存取您要傳輸輸輸輸輸輸輸輸輸輸輸輸輸輸輸輸輸輸輸輸輸輸 使用 Amazon S3 HeadBucket操作檢查是否DataSync有存取儲存貯體的權限。