

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

# 使用 NFS 檔案伺服器設定 AWS DataSync 傳輸
<a name="create-nfs-location"></a>

使用 AWS DataSync，您可以在網路檔案系統 (NFS) 檔案伺服器與下列 AWS 儲存服務之間傳輸資料。支援的儲存服務取決於您的任務模式，如下所示：


| 基本模式 | 增強型模式 | 
| --- | --- | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/datasync/latest/userguide/create-nfs-location.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/datasync/latest/userguide/create-nfs-location.html)  | 

若要設定這種傳輸，您可以為 NFS 檔案伺服器建立[位置](how-datasync-transfer-works.md#sync-locations)。您可以使用此位置做為傳輸來源或目的地。

## 提供對 NFS 檔案伺服器的 DataSync 存取權
<a name="accessing-nfs"></a>

若要讓 DataSync 存取 NFS 檔案伺服器，您需要 DataSync [代理程式](how-datasync-transfer-works.md#sync-agents)。代理程式會使用 NFS 通訊協定在您的檔案伺服器上掛載匯出。請務必使用對應至您所需任務模式的代理程式。

**Topics**
+ [設定 NFS 匯出](#accessing-nfs-configuring-export)
+ [支援的 NFS 版本](#supported-nfs-versions)

### 設定 NFS 匯出
<a name="accessing-nfs-configuring-export"></a>

DataSync 傳輸所需的匯出取決於您的 NFS 檔案伺服器是來源或目的地位置，以及檔案伺服器的許可設定方式。

如果您的檔案伺服器是來源位置，DataSync 只需要讀取和周遊您的檔案和資料夾。如果是目的地位置，DataSync 需要根存取權才能寫入位置，並在您正在複製的檔案和資料夾上設定擁有權、許可和其他中繼資料。您可以使用 `no_root_squash`選項來允許匯出的根存取。

下列範例說明如何設定提供 DataSync 存取權的 NFS 匯出。

**當您的 NFS 檔案伺服器是來源位置時 （根存取）**  
使用下列命令來設定匯出，該命令提供 DataSync 唯讀許可 (`ro`) 和根存取 ()`no_root_squash`：

```
export-path datasync-agent-ip-address(ro,no_root_squash)
```

**當您的 NFS 檔案伺服器是目的地位置時**  
使用下列命令來設定匯出，該命令提供 DataSync 寫入許可 (`rw`) 和根存取 (`no_root_squash`)：

```
export-path datasync-agent-ip-address(rw,no_root_squash)
```

**當您的 NFS 檔案伺服器是來源位置時 （無根存取）**  
使用下列命令來設定匯出，該命令會指定您知道會為匯出提供 DataSync 唯讀許可的 POSIX 使用者 ID (UID) 和群組 ID (GID)：

```
export-path datasync-agent-ip-address(ro,all_squash,anonuid=uid,anongid=gid)
```

### 支援的 NFS 版本
<a name="supported-nfs-versions"></a>

根據預設，DataSync 會使用 NFS 4.1 版。DataSync 也支援 NFS 4.0 和 3.x。

## 設定您的網路以進行 NFS 傳輸
<a name="configure-network-nfs-location"></a>

對於 DataSync 傳輸，您必須為幾個網路連線設定流量：

1. 允許從 DataSync 代理程式到 NFS 檔案伺服器的下列連接埠流量：
   + **對於 NFS 4.1 和 4.0 版** – TCP 連接埠 2049
   + **對於 NFS 3.x 版** – TCP 連接埠 111 和 2049

   網路中的其他 NFS 用戶端應該能夠掛載您用來傳輸資料的 NFS 匯出。匯出也必須在沒有 Kerberos 身分驗證的情況下存取。

1. 設定[服務端點連線](datasync-network.md)的流量 （例如 VPC、公有或 FIPS 端點）。

1. 允許流量從 DataSync 服務流向您要傳輸的[AWS 儲存服務](datasync-network.md#storage-service-network-requirements)。

## 建立 NFS 傳輸位置
<a name="create-nfs-location-how-to"></a>

開始之前，請注意下列事項：
+ 您需要要從中傳輸資料的 NFS 檔案伺服器。
+ 您需要可以[存取檔案伺服器的](#accessing-nfs) DataSync 代理程式。
+  DataSync 不支援複製 NFS 第 4 版存取控制清單 ACLs)。

### 使用 DataSync 主控台
<a name="create-nfs-location-console"></a>

1. 在 https：//[https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/) 開啟 AWS DataSync 主控台。

1. 在左側導覽窗格中，展開**資料傳輸**，然後選擇**位置**和**建立位置**。

1. 針對**位置類型**，選擇**網路檔案系統 (NFS)**。

1. 針對**代理**程式，選擇可連線至 NFS 檔案伺服器的 DataSync 代理程式。

   您可以選擇多個代理程式。如需詳細資訊，請參閱[使用多個 DataSync 代理程式](do-i-need-datasync-agent.md#multiple-agents)。

1. 針對 **NFS 伺服器**，輸入 DataSync 代理程式連線之 NFS 檔案伺服器的網域名稱系統 (DNS) 名稱或 IP 地址。

1. 針對**掛載路徑**，輸入您希望 DataSync 掛載的 NFS 匯出路徑。

   此路徑 （或路徑的子目錄） 是 DataSync 往返傳輸資料的位置。如需詳細資訊，請參閱[設定 NFS 匯出](#accessing-nfs-configuring-export)。

1. （選用） 展開**其他設定**，並為 DataSync 選擇存取檔案伺服器時要使用的特定 **NFS 版本**。

   如需詳細資訊，請參閱[支援的 NFS 版本](#supported-nfs-versions)。

1. （選用） 選擇**新增標籤**以標記 NFS 位置。

   *標籤*是索引鍵/值組，可協助您管理、篩選和搜尋位置。建議您為位置建立至少一個名稱標籤。

1. 選擇**建立位置**。

### 使用 AWS CLI
<a name="create-location-nfs-cli"></a>
+ 使用下列命令來建立 NFS 位置。

  ```
  aws datasync create-location-nfs \
      --server-hostname nfs-server-address \
      --on-prem-config AgentArns=datasync-agent-arns \
      --subdirectory nfs-export-path
  ```

  如需建立位置的詳細資訊，請參閱 [提供對 NFS 檔案伺服器的 DataSync 存取權](#accessing-nfs)。

  DataSync 會自動選擇用來從 NFS 位置讀取的 NFS 版本。若要指定 NFS 版本，請在 [NfsMountOptions](API_NfsMountOptions.md) API 作業中使用其他 `Version` 參數。

此命令會傳回 NFS 位置的 Amazon Resource Name (ARN)，類似下列 ARN 所示。

```
{
    "LocationArn": "arn:aws:datasync:us-east-1:111222333444:location/loc-0f01451b140b2af49"
}
```

若要確保目錄可以掛載，您可以連線到和代理程式具有相同網路組態的任何電腦，並執行下列命令。

```
mount -t nfs -o nfsvers=<nfs-server-version <nfs-server-address:<nfs-export-path <test-folder
```

下面是命令的範例。

```
mount -t nfs -o nfsvers=3 198.51.100.123:/path_for_sync_to_read_from /temp_folder_to_test_mount_on_local_machine
```