

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

# 針對 DataSync 位置的問題進行故障診斷
<a name="troubleshooting-storage-issues"></a>

使用下列資訊來協助您疑難排解 AWS DataSync 位置的問題。其中一些問題可能包括：
+ NFS 位置的許可和掛載錯誤
+ 檔案擁有權問題
+ 存取使用 Kerberos 身分驗證的 SMB 位置時發生問題
+ 物件儲存的許可和存取問題，例如 Amazon S3 和 Microsoft Azure Blob 位置

## 我的任務因 NFS 許可遭拒錯誤而失敗
<a name="task-permission-denied"></a>

如果您使用 `root_squash`或 設定 NFS 檔案伺服器，`all_squash`且您的檔案不具備讀取存取權，則可能會收到「許可遭拒」錯誤訊息。

**採取動作**  
若要修正此問題，請使用 設定 NFS 匯出，`no_root_squash`或確定您要傳輸的所有檔案的許可允許所有使用者的讀取存取。

若要讓 DataSync 存取目錄，您還必須啟用所有執行檔存取。為了確保目錄可供掛載，請先連接至與代理程式具有相同網路組態的任何電腦，然後執行下列 CLI 命令：

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

如果問題仍未解決，請聯絡 [AWS 支援 中心](https://console.aws.amazon.com/support/home#/)。

## 我的任務因 NFS 掛載錯誤而失敗
<a name="onpremise-location-stuck-mounting"></a>

執行涉及 NFS 檔案伺服器位置的 DataSync 任務時，您可能會看到下列錯誤：

任務無法存取位置 loc-1111222233334444a：x40016： mount.nfs：連線逾時

**要採取的動作**  
請執行下列動作，直到錯誤解決為止。

1. 請確定您在 DataSync 位置中指定的 NFS 檔案伺服器和匯出是有效的。如果不是，請刪除您的位置和任務，然後建立使用有效 NFS 檔案伺服器和匯出的新位置和任務。如需詳細資訊，請參閱[使用 DataSync 主控台](create-nfs-location.md#create-nfs-location-console)。

1. 檢查您的代理程式與 NFS 檔案伺服器之間的防火牆組態。如需詳細資訊，請參閱[內部部署、自我管理和其他雲端儲存的網路需求](datasync-network.md#on-premises-network-requirements)。

1. 請確定您的代理程式可以存取 NFS 檔案伺服器並掛載匯出。如需詳細資訊，請參閱[提供對 NFS 檔案伺服器的 DataSync 存取權](create-nfs-location.md#accessing-nfs)。

1. 如果您仍然看到錯誤，請使用 開啟支援管道 支援。如需詳細資訊，請參閱[我不知道客服人員的情況。有人可以協助我嗎？](troubleshooting-datasync-agents.md#enable-support-access)。

## 我的任務因 Amazon EFS 掛載錯誤而失敗
<a name="troubleshoot-efs-mount-target"></a>

執行涉及 Amazon EFS 位置的 DataSync 任務時，您可能會看到下列錯誤：

任務無法存取位置 loc-1111222233334444a：x40016：無法使用 IP：10.10.1.0 連線至 EFS 掛載目標。

如果您使用位置設定的 Amazon EFS 檔案系統的掛載路徑已更新或刪除，就會發生這種情況。DataSync 不知道檔案系統中的這些變更。

**採取動作**  
刪除您的位置和任務，並使用[新的掛載路徑建立新的 Amazon EFS 位置](create-efs-location.md#create-efs-location-how-to)。

## NFS 傳輸不會維護檔案擁有權
<a name="nfs-id-mapping"></a>

傳輸後，您可能會注意到 DataSync 目的地位置中的檔案具有與來源位置中相同檔案不同的使用者 IDs (UIDs) 或群組 IDs (GIDs)。例如，目的地中的檔案可能具有 `65534`、 `99`或 的 UID`nobody`。

如果傳輸中涉及的檔案系統使用 NFS 第 4 版 ID 映射，即 DataSync 不支援的功能，就會發生這種情況。

**採取動作**  
您有幾個選項可以解決此問題：
+ 為使用 NFS 第 3 版而非第 4 版的檔案系統建立新的位置。
+ 在檔案系統上停用 NFS 第 4 版 ID 映射。

重試傳輸。任一選項都應解決問題。

## 我的任務無法存取使用 Kerberos 的 SMB 位置
<a name="task-fails-smb-location-kerberos"></a>

使用 [Kerberos 身分驗證](create-smb-location.md#configuring-smb-kerberos-authentication)的 SMB 位置的 DataSync 錯誤通常與位置和 Kerberos 組態之間的不相符有關。也可能發生網路問題。

**無法存取位置**  
下列錯誤表示您的 SMB 位置或 Kerberos 設定可能有組態問題：  

```
Task failed to access location
```
**驗證下列項目**：  
+ 您為位置指定的 SMB 檔案伺服器是網域名稱。對於 Kerberos，您無法指定檔案伺服器的 IP 地址。
+ 您為位置指定的 Kerberos 主體與您用來建立 Kerberos 金鑰資料表 (keytab) 檔案的主體相符。主體名稱區分大小寫。
+ 自您建立 keytab 檔案以來，Kerberos 主體的映射使用者密碼尚未變更。如果密碼變更 （因為密碼輪換或其他原因），您的任務執行可能會失敗，並顯示下列錯誤：

  任務無法存取位置 loc-1111222233334444a：x40015：kinit：取得初始登入資料時預先驗證失敗

**無法聯絡 KDC 領域**  
下列錯誤表示網路問題：  

```
kinit: Cannot contact any KDC for realm 'MYDOMAIN.ORG' while getting initial credentials"
```
**驗證下列項目**：  
+ 您提供 DataSync 的 Kerberos 組態檔案 (`krb5.conf`) 具有 Kerberos 領域的正確資訊。如需範例`krb5.conf`檔案，請參閱 [Kerberos 身分驗證先決條件](create-smb-location.md#configuring-smb-kerberos-prerequisites)。
+ Kerberos Key Distribution Center (KDC) 伺服器連接埠已開啟。KDC 連接埠通常是 TCP 連接埠 88。
+ 您網路上的 DNS 組態。

## 我的任務失敗，出現輸入/輸出錯誤
<a name="sync-io-error"></a>

如果您的儲存系統失敗來自 DataSync 代理程式的 I/O 請求，您可以收到輸入/輸出錯誤訊息。常見的原因包括伺服器磁碟故障、防火牆組態的變更，或網路路由器故障。

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

**要採取的動作 (NFS)**  
首先，檢查您的 NFS 檔案伺服器的日誌和指標，以判斷問題是否在 NFS 伺服器上啟動。如果是，請解決該問題。

接著，確定網路組態並未變更。若要檢查 NFS 檔案伺服器是否已正確設定，以及 DataSync 是否可以存取它，請執行下列動作：

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

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

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

**要採取的動作 (HDFS)**  
請執行下列動作，直到您解決錯誤為止：

1. 請確定您的 HDFS 叢集允許 DataSync 代理程式與叢集的 NameNode 和 DataNode 連接埠通訊。

   在大多數叢集中，您可以在下列組態檔案中找到叢集使用的連接埠號碼：
   + 若要尋找 NameNode 連接埠，請查看 `fs.default`或 `fs.default.name` 屬性下的 `core-site.xml` 檔案 （取決於 Hadoop 分佈）。
   + 若要尋找 DataNode 連接埠，請查看 `dfs.datanode.address` 屬性下的 `hdfs-site.xml` 檔案。

1. 在您的 `hdfs-site.xml`檔案中，確認您的 `dfs.data.transfer.protection` 屬性只有一個值。例如：

   ```
   <property>
      <name>dfs.data.transfer.protection</name>
      <value>privacy</value>
   </property>
   ```

## 錯誤：`FsS3UnableToConnectToEndpoint`
<a name="troubleshoot-fss3unabletoconnecttoendpoint"></a>

DataSync 無法連線至您的 [Amazon S3 位置](create-s3-location.md)。這可能表示無法連線位置的 S3 儲存貯體，或未正確設定位置。

請執行下列動作，直到您解決問題為止：
+ 檢查 DataSync 是否可以[存取您的 S3 儲存貯](create-s3-location.md#create-s3-location-access)體。
+ 使用 DataSync 主控台或 [DescribeLocationS3](https://docs.aws.amazon.com/datasync/latest/userguide/API_DescribeLocationS3.html) 操作，確保您的位置設定正確。

## 錯誤：`FsS3HeadBucketFailed`
<a name="troubleshoot-fss3headbucketfailed"></a>

DataSync 無法存取您要從中傳輸的 S3 儲存貯體。檢查 DataSync 是否具有使用 Amazon S3 [HeadBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadBucket.html) 操作存取儲存貯體的許可。如果您需要調整許可，請參閱 [提供對 S3 儲存貯體的 DataSync 存取權](create-s3-location.md#create-s3-location-access)。

## 任務失敗並發生錯誤 `Unable to list Azure Blobs on the volume root`
<a name="troubleshoot-azure-blob-storage-list-volume-root"></a>

如果您的 DataSync 傳輸任務失敗並發生錯誤`Unable to list Azure Blobs on the volume root`，您的共用存取簽章 (SAS) 字符或Azure儲存帳戶的網路可能會出現問題。

**要採取的動作**  
請嘗試下列動作，並再次執行任務，直到您修正問題為止：
+ 請確定您的 [SAS 字符](creating-azure-blob-location.md#azure-blob-sas-tokens)具有存取 的正確許可Microsoft Azure Blob Storage。
+ 如果您在 中執行 DataSync 代理程式Azure，請將您的儲存帳戶設定為允許從代理程式所在的虛擬網路進行存取。
+ 如果您在 Amazon EC2 上執行代理程式，請將Azure儲存防火牆設定為允許從代理程式的公有 IP 地址存取。

如需如何設定Azure儲存帳戶網路的資訊，請參閱 [Azure Blob Storage 文件](https://learn.microsoft.com/en-us/azure/storage/common/storage-network-security)。

## 錯誤：`FsAzureBlobVolRootListBlobsFailed`
<a name="troubleshoot-fsazureblobvolrootlistblobsfailed"></a>

DataSync 用來存取 的共用存取簽章 (SAS) 字符Microsoft Azure Blob Storage沒有清單許可。

若要解決此問題，請使用具有清單許可的權杖[更新您的位置](creating-azure-blob-location.md#azure-blob-update-location)，然後再次嘗試執行您的任務。

## 錯誤：`SrcLocHitAccess`
<a name="troubleshoot-srclochitaccess"></a>

DataSync 無法存取您的來源位置。檢查 DataSync 是否具有存取位置的許可，並再次嘗試執行您的任務。

## 錯誤：`SyncTaskErrorLocationNotAdded`
<a name="troubleshoot-synctaskerrorlocationnotadded"></a>

DataSync 無法存取您的位置。檢查 DataSync 是否具有存取位置的許可，並再次嘗試執行您的任務。

## 錯誤：`S3 location creation failed with (InvalidRequestException) when calling the CreateLocationS3 operation`
<a name="troubleshoot-403-error"></a>

此錯誤可能與 IAM 許可、Amazon S3 儲存貯體政策、 AWS KMS 許可或其他許可問題有關。如果您收到此錯誤，請使用下列資訊進行故障診斷：
+ 《[Amazon Simple Storage Service 使用者指南》中的對 Amazon S3 中的存取遭拒 (403 禁止） 錯誤進行故障診斷](https://docs.aws.amazon.com/AmazonS3/latest/userguide/troubleshoot-403-errors.html) **
+ [如何在 上對 Amazon S3 的 403 存取遭拒錯誤進行故障診斷？](https://repost.aws/knowledge-center/s3-troubleshoot-403) AWS re:Post

## 具有 S3 來源位置的任務失敗，並顯示 `HeadObject`或 `GetObjectTagging` 錯誤
<a name="troubleshoot-getobjecttagging"></a>

**與 `HeadObject`或 相關的錯誤 `GetObjectTagging`**  
如果您要從 S3 儲存貯體傳輸具有特定版本 IDs物件，您可能會看到與 `HeadObject`或 相關的錯誤`GetObjectTagging`。例如，以下是與 相關的錯誤`GetObjectTagging`：

```
[WARN] Failed to read metadata for file /picture1.png (versionId: 111111): S3 Get Object Tagging Failed
[ERROR] S3 Exception: op=GetObjectTagging photos/picture1.png, code=403, type=15, exception=AccessDenied, 
msg=Access Denied req-hdrs: content-type=application/xml, x-amz-api-version=2006-03-01 rsp-hdrs: content-type=application/xml, 
date=Wed, 07 Feb 2024 20:16:14 GMT, server=AmazonS3, transfer-encoding=chunked, 
x-amz-id-2=IOWQ4fDEXAMPLEQM+ey7N9WgVhSnQ6JEXAMPLEZb7hSQDASK+Jd1vEXAMPLEa3Km, x-amz-request-id=79104EXAMPLEB723
```

如果您看到其中一個錯誤，請驗證 DataSync 用來存取 S3 來源位置的 IAM 角色具有下列許可：
+ `s3:GetObjectVersion`
+ `s3:GetObjectVersionTagging`

如果您需要更新具有這些許可的角色，請參閱 [為 DataSync 建立 IAM 角色以存取您的 Amazon S3 位置](create-s3-location.md#create-role-manually)。