

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

# 使用 往返內部部署儲存體 AWS DataSync
<a name="transferring-on-premises-storage"></a>

使用 AWS DataSync，您可以在多個內部部署或自我管理儲存系統與下列 AWS 儲存服務之間傳輸檔案和物件：
+ [Amazon S3](create-s3-location.md)
+ [Amazon EFS](create-efs-location.md)
+ [Amazon FSx for Windows File Server](create-fsx-location.md)
+ [Amazon FSx for Lustre](create-lustre-location.md)
+ [Amazon FSx for OpenZFS](create-openzfs-location.md)
+ [Amazon FSx for NetApp ONTAP](create-ontap-location.md)

**Topics**
+ [

# 使用 NFS 檔案伺服器設定 AWS DataSync 傳輸
](create-nfs-location.md)
+ [

# 使用 SMB 檔案伺服器設定 AWS DataSync 傳輸
](create-smb-location.md)
+ [

# 使用 HDFS 叢集設定 AWS DataSync 傳輸
](create-hdfs-location.md)
+ [

# 使用物件儲存系統設定 DataSync 傳輸
](create-object-location.md)

# 使用 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
```

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

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


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

若要設定這種傳輸，請為 SMB 檔案伺服器建立[位置](how-datasync-transfer-works.md#sync-locations)。您可以使用此做為傳輸來源或目的地。請務必使用對應至您所需任務模式的代理程式。

## 提供對 SMB 檔案伺服器的 DataSync 存取權
<a name="configuring-smb"></a>

DataSync 會使用 SMB 通訊協定連線至您的檔案伺服器，並且可以使用 NTLM 或 Kerberos 進行身分驗證。

**Topics**
+ [

### 支援的 SMB 版本
](#configuring-smb-version)
+ [

### 使用 NTLM 身分驗證
](#configuring-smb-ntlm-authentication)
+ [

### 使用 Kerberos 身分驗證
](#configuring-smb-kerberos-authentication)
+ [

### 所需的許可
](#configuring-smb-permissions)
+ [

### DFS 命名空間
](#configuring-smb-location-dfs)

### 支援的 SMB 版本
<a name="configuring-smb-version"></a>

根據預設，DataSync 會根據與 SMB 檔案伺服器的交涉，自動選擇 SMB 通訊協定的版本。

您也可以將 DataSync 設定為使用特定 SMB 版本，但我們建議只在 DataSync 自動與 SMB 檔案伺服器交涉發生問題時，才這麼做。DataSync 支援 SMB 1.0 版和更新版本。基於安全考量，我們建議您使用 SMB 3.0.2 版或更新版本。舊版，例如 SMB 1.0，包含已知的安全漏洞，攻擊者可以利用這些漏洞來入侵您的資料。

如需 DataSync 主控台和 API 中的選項清單，請參閱下表：


| 主控台選項 | API 選項 | Description | 
| --- | --- | --- | 
| 自動 |  `AUTOMATIC`  |  DataSync 和 SMB 檔案伺服器會交涉它們在 2.1 和 3.1.1 之間相互支援的 SMB 最高版本。 這是預設和建議的選項。如果您改為選擇檔案伺服器不支援的特定版本，可能會收到 `Operation Not Supported` 錯誤。  | 
|  SMB 3.0.2  |  `SMB3`  |  將通訊協定交涉限制為僅限 SMB 3.0.2 版。  | 
| SMB 2.1 |  `SMB2`  | 將通訊協定交涉限制為僅限 SMB 2.1 版。 | 
| SMB 2.0 | `SMB2_0` | 將通訊協定交涉限制為僅限 SMB 2.0 版。 | 
| SMB 1.0 | `SMB1` | 將通訊協定交涉限制為僅限 SMB 1.0 版。 | 

### 使用 NTLM 身分驗證
<a name="configuring-smb-ntlm-authentication"></a>

若要使用 NTLM 身分驗證，您需要提供使用者名稱和密碼，以允許 DataSync 存取您要從中傳輸的 SMB 檔案伺服器。使用者可以是檔案伺服器的本機使用者或 Microsoft Active Directory 中的網域使用者。

### 使用 Kerberos 身分驗證
<a name="configuring-smb-kerberos-authentication"></a>

若要使用 Kerberos 身分驗證，您需要提供 Kerberos 主體、Kerberos 金鑰表 (keytab) 檔案和 Kerberos 組態檔案，允許 DataSync 存取您要從中傳輸的 SMB 檔案伺服器。

**Topics**
+ [

#### 先決條件
](#configuring-smb-kerberos-prerequisites)
+ [

#### Kerberos 的 DataSync 組態選項
](#configuring-smb-kerberos-options)

#### 先決條件
<a name="configuring-smb-kerberos-prerequisites"></a>

您需要建立幾個 Kerberos 成品並設定您的網路，以便 DataSync 可以存取您的 SMB 檔案伺服器。
+ 使用 [ktpass](https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/ktpass) 或 [kutil](https://web.mit.edu/kerberos/krb5-1.12/doc/admin/admin_commands/ktutil.html) 公用程式建立 Kerberos keytab 檔案。

  下列範例使用 建立 keytab 檔案`ktpass`。您指定的 Kerberos 領域 (`MYDOMAIN.ORG`) 必須為大寫。

  ```
  ktpass /out C:\YOUR_KEYTAB.keytab /princ HOST/kerberosuser@MYDOMAIN.ORG /mapuser kerberosuser /pass * /crypto AES256-SHA1 /ptype KRB5_NT_PRINCIPAL
  ```
+ 準備簡化版本的 Kerberos 組態檔案 (`krb5.conf`)。包含有關領域、網域管理伺服器的位置，以及主機名稱映射到 Kerberos 領域的資訊。

  確認`krb5.conf`內容已針對領域和網域領域名稱使用正確的混合大小寫進行格式化。例如：

  ```
  [libdefaults] 
    dns_lookup_realm = true 
    dns_lookup_kdc = true 
    forwardable = true 
    default_realm = MYDOMAIN.ORG
  
  [realms] 
    MYDOMAIN.ORG = { 
      kdc = mydomain.org 
      admin_server = mydomain.org 
    }
  
  [domain_realm] 
    .mydomain.org = MYDOMAIN.ORG 
    mydomain.org = MYDOMAIN.ORG
  ```
+ 在您的網路組態中，請確定您的 Kerberos Key Distribution Center (KDC) 伺服器連接埠已開啟。KDC 連接埠通常是 TCP 連接埠 88。

#### Kerberos 的 DataSync 組態選項
<a name="configuring-smb-kerberos-options"></a>

建立使用 Kerberos 的 SMB 位置時，您可以設定下列選項。


| 主控台選項 | API 選項 | Description | 
| --- | --- | --- | 
|  **SMB 伺服器**  |  `ServerHostName`  |  DataSync 代理程式將掛載的 SMB 檔案伺服器的網域名稱。對於 Kerberos，您無法指定檔案伺服器的 IP 地址。  | 
|  **Kerberos 主體**  |  `KerberosPrincipal`  |  Kerberos 領域中的身分，有權存取 SMB 檔案伺服器中的檔案、資料夾和檔案中繼資料。 Kerberos 主體可能看起來像 `HOST/kerberosuser@MYDOMAIN.ORG`。 主體名稱區分大小寫。  | 
|  **Keytab 檔案**  |  `KerberosKeytab`   |  Kerberos 金鑰資料表 (keytab) 檔案，其中包含 Kerberos 主體和加密金鑰之間的映射。  | 
|  **Kerberos 組態檔案**  |  `KerberosKrbConf`  |  定義 Kerberos 領域組態`krb5.conf`的檔案。  | 
|  **DNS IP 地址** （選用）  |  `DnsIpAddresses`  |  SMB 檔案伺服器所屬之 DNS 伺服器的 IPv4 地址。 如果您的環境中有多個網域，請設定此項目可確保 DataSync 連線至正確的 SMB 檔案伺服器。  | 

### 所需的許可
<a name="configuring-smb-permissions"></a>

您提供 DataSync 的身分必須具有掛載和存取 SMB 檔案伺服器檔案、資料夾和檔案中繼資料的許可。

如果您在 Active Directory 中提供身分，則必須是具有下列其中一個或兩個使用者權限的 Active Directory 群組成員 （視[您希望 DataSync 複製的中繼資料](configure-metadata.md)而定）：


| 使用者權限 | Description | 
| --- | --- | 
|  **還原檔案和目錄 **(`SE_RESTORE_NAME`)  |  允許 DataSync 複製物件擁有權、許可、檔案中繼資料和 NTFS 選擇性存取清單 DACLs)。 此使用者權利通常授予**網域管理員**和**備份運算子**群組的成員 （兩者都是預設 Active Directory 群組）。  | 
|  **管理稽核和安全性日誌 **(`SE_SECURITY_NAME`)  |  允許 DataSync 複製 NTFS 系統存取控制清單 SACLs)。 此使用者權利通常會授予**網域管理員**群組的成員。  | 

如果您想要複製 Windows ACLs，並在 SMB 檔案伺服器與使用 SMB 的另一個儲存系統 （例如 Amazon FSx for Windows File Server 或 FSx for ONTAP) 之間傳輸，您提供 DataSync 的身分必須屬於相同的 Active Directory 網域，或在其網域之間具有 Active Directory 信任關係。

### DFS 命名空間
<a name="configuring-smb-location-dfs"></a>

DataSync 不支援 Microsoft 分散式檔案系統 (DFS) 命名空間。我們建議您在建立 DataSync 位置時，改為指定基礎檔案伺服器或共用。

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

開始之前，您需要要從中傳輸資料的 SMB 檔案伺服器。

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

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

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

1. 在 **Location type (位置類型)** 中，選擇 **Server Message Block (SMB) (伺服器訊息區塊 (SMB))**。

   您稍後會將此位置設定為來源或目的地。

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

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

1. 針對 **SMB 伺服器**，輸入 DataSync 代理程式將掛載之 SMB 檔案伺服器的網域名稱或 IP 地址。

   使用此設定請記住下列事項：
   + 您無法指定 IP 第 6 版 (IPv6) 地址。
   + 如果您使用 Kerberos 身分驗證，則必須指定網域名稱。

1. 針對**共用名稱**，輸入由 DataSync 讀取或寫入資料之 SMB 檔案伺服器匯出的共用名稱。

   您可以在共用路徑中包含子目錄 （例如，`/path/to/subdirectory`)。請確定您網路中的其他 SMB 用戶端也可以掛載此路徑。

   若要複製子目錄中的所有資料，DataSync 必須能夠掛載 SMB 共用並存取其所有資料。如需詳細資訊，請參閱[所需的許可](#configuring-smb-permissions)。

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

   根據預設，DataSync 會根據與 SMB 檔案伺服器的交涉自動選擇版本。如需相關資訊，請參閱[支援的 SMB 版本](#configuring-smb-version)。

1. 針對**身分驗證類型**，選擇 **NTLM** 或 **Kerberos**。

1. 根據您的身分驗證類型執行下列其中一項操作：

------
#### [ NTLM ]
   + 針對**使用者**，輸入可掛載 SMB 檔案伺服器的使用者名稱，並具有存取傳輸所涉及檔案和資料夾的許可。

     如需詳細資訊，請參閱[所需的許可](#configuring-smb-permissions)。
   + 針對**密碼**，輸入可掛載 SMB 檔案伺服器且具有許可存取傳輸所涉及之檔案和資料夾的使用者密碼。
   + （選用） 對於**網域**，輸入 SMB 檔案伺服器所屬的 Windows 網域名稱。

     如果您的環境中有多個網域，設定此設定可確保 DataSync 連線至正確的 SMB 檔案伺服器。

------
#### [ Kerberos ]
   + 對於 **Kerberos 主體**，請在 Kerberos 領域中指定主體，該主體具有存取 SMB 檔案伺服器中檔案、資料夾和檔案中繼資料的許可。

     Kerberos 主體可能看起來像 `HOST/kerberosuser@MYDOMAIN.ORG`。

     主體名稱區分大小寫。如果您為此設定指定的委託人與您用來建立 keytab 檔案的委託人不完全相符，您的 DataSync 任務執行將會失敗。
   + 對於 **Keytab 檔案**，上傳包含 Kerberos 主體與加密金鑰之間映射的 keytab 檔案。
   + 對於 **Kerberos 組態檔案**，上傳定義 Kerberos 領域組態`krb5.conf`的檔案。
   + （選用） 對於 **DNS IP 地址**，請為您的 SMB 檔案伺服器所屬的 DNS 伺服器指定最多兩個 IPv4 地址。

     如果您的環境中有多個網域，設定此參數可確保 DataSync 連線至正確的 SMB 檔案伺服器。

------

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

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

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

### 使用 AWS CLI
<a name="create-location-smb-cli"></a>

下列指示說明如何使用 NTLM 或 Kerberos 身分驗證建立 SMB 位置。

------
#### [ NTLM ]

1. 複製下列`create-location-smb`命令。

   ```
   aws datasync create-location-smb \
       --agent-arns datasync-agent-arns \
       --server-hostname smb-server-address \
       --subdirectory smb-export-path \
       --authentication-type "NTLM" \
       --user user-who-can-mount-share \
       --password user-password \
       --domain windows-domain-of-smb-server
   ```

1. 針對 `--agent-arns`，指定可連線至 SMB 檔案伺服器的 DataSync 代理程式。

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

1. 針對 `--server-hostname`，指定 DataSync 代理程式將掛載之 SMB 檔案伺服器的網域名稱或 IPv4 地址。

1. 針對 `--subdirectory`，指定由 SMB 檔案伺服器匯出的共用名稱，DataSync 會在其中讀取或寫入資料。

   您可以在共用路徑中包含子目錄 （例如，`/path/to/subdirectory`)。請確定您網路中的其他 SMB 用戶端也可以掛載此路徑。

   若要複製子目錄中的所有資料，DataSync 必須能夠掛載 SMB 共用並存取其所有資料。如需詳細資訊，請參閱[所需的許可](#configuring-smb-permissions)。

1. 針對 `--user`，指定可掛載 SMB 檔案伺服器的使用者名稱，並具有存取傳輸中涉及之檔案和資料夾的許可。

   如需詳細資訊，請參閱[所需的許可](#configuring-smb-permissions)。

1. 針對 `--password`，指定可掛載 SMB 檔案伺服器且具有許可存取傳輸所涉及之檔案和資料夾的使用者密碼。

1. （選用） 針對 `--domain`，指定 SMB 檔案伺服器所屬的 Windows 網域名稱。

   如果您的環境中有多個網域，設定此設定可確保 DataSync 連線至正確的 SMB 檔案伺服器。

1. （選用） 如果您想要 DataSync 使用特定的 SMB 版本，請新增 `--version`選項。如需詳細資訊，請參閱[支援的 SMB 版本](#configuring-smb-version)。

1. 執行 `create-location-smb` 命令。

   如果命令成功，您會收到回應，顯示您建立位置的 ARN。例如：

   ```
   {
       "arn:aws:datasync:us-east-1:123456789012:location/loc-01234567890example"
   }
   ```

------
#### [ Kerberos ]

1. 複製下列`create-location-smb`命令。

   ```
   aws datasync create-location-smb \
       --agent-arns datasync-agent-arns \
       --server-hostname smb-server-address \
       --subdirectory smb-export-path \
       --authentication-type "KERBEROS" \
       --kerberos-principal "HOST/kerberosuser@EXAMPLE.COM" \
       --kerberos-keytab "fileb://path/to/file.keytab" \
       --kerberos-krb5-conf "file://path/to/krb5.conf" \
       --dns-ip-addresses array-of-ipv4-addresses
   ```

1. 針對 `--agent-arns`，指定可連線至 SMB 檔案伺服器的 DataSync 代理程式。

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

1. 針對 `--server-hostname`，指定 DataSync 代理程式將掛載的 SMB 檔案伺服器的網域名稱。

1. 針對 `--subdirectory`，指定由 SMB 檔案伺服器匯出的共用名稱，DataSync 會在其中讀取或寫入資料。

   您可以在共用路徑中包含子目錄 （例如，`/path/to/subdirectory`)。請確定您網路中的其他 SMB 用戶端也可以掛載此路徑。

   若要複製子目錄中的所有資料，DataSync 必須能夠掛載 SMB 共用並存取其所有資料。如需詳細資訊，請參閱[所需的許可](#configuring-smb-permissions)。

1. 對於 Kerberos 選項，請執行下列動作：
   + `--kerberos-principal`：在 Kerberos 領域中指定主體，該主體具有存取 SMB 檔案伺服器中檔案、資料夾和檔案中繼資料的許可。

     Kerberos 主體可能看起來像 `HOST/kerberosuser@MYDOMAIN.ORG`。

     主體名稱區分大小寫。如果您為此選項指定的委託人與您用來建立 keytab 檔案的委託人不完全相符，您的 DataSync 任務執行將會失敗。
   + `--kerberos-keytab`：指定包含 Kerberos 主體與加密金鑰之間映射的 keytab 檔案。
   + `--kerberos-krb5-conf`：指定定義 Kerberos 領域組態`krb5.conf`的檔案。
   + （選用） `--dns-ip-addresses`：為您的 SMB 檔案伺服器所屬的 DNS 伺服器指定最多兩個 IPv4 地址。

     如果您的環境中有多個網域，設定此參數可確保 DataSync 連線至正確的 SMB 檔案伺服器。

1. （選用） 如果您想要 DataSync 使用特定的 SMB 版本，請新增 `--version`選項。如需詳細資訊，請參閱[支援的 SMB 版本](#configuring-smb-version)。

1. 執行 `create-location-smb` 命令。

   如果命令成功，您會收到回應，顯示您建立位置的 ARN。例如：

   ```
   {
       "arn:aws:datasync:us-east-1:123456789012:location/loc-01234567890example"
   }
   ```

------

# 使用 HDFS 叢集設定 AWS DataSync 傳輸
<a name="create-hdfs-location"></a>

使用 AWS DataSync，您可以使用基本模式任務，在 Hadoop 分散式檔案系統 (HDFS) 叢集與下列其中一個 AWS 儲存服務之間傳輸資料：
+ [Amazon S3](create-s3-location.md)
+ [Amazon EFS](create-efs-location.md)
+ [Amazon FSx for Windows File Server](create-fsx-location.md)
+ [Amazon FSx for Lustre](create-lustre-location.md)
+ [Amazon FSx for OpenZFS](create-openzfs-location.md)
+ [Amazon FSx for NetApp ONTAP](create-ontap-location.md)

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

## 提供對 HDFS 叢集的 DataSync 存取權
<a name="accessing-hdfs"></a>

若要連線至 HDFS 叢集，DataSync [會使用您盡可能接近 HDFS 叢集部署](deploy-agents.md)的基本模式代理程式。DataSync 代理程式充當 HDFS 用戶端，並與叢集中的 NameNodes 和 DataNodes 通訊。

當您啟動傳輸任務時，DataSync 會查詢 NameNode 在叢集上尋找檔案和資料夾的位置。如果您將 HDFS 位置設定為來源位置，DataSync 會從叢集中的 DataNodes 讀取檔案和資料夾資料，並將該資料複製到目的地。如果您將 HDFS 位置設定為目的地位置，則 DataSync 會將來源的檔案和資料夾寫入叢集中的 DataNodes。

### 身分驗證
<a name="accessing-hdfs-authentication"></a>

連線至 HDFS 叢集時，DataSync 支援簡易身分驗證或 Kerberos 身分驗證。若要使用簡單的身分驗證，請為使用者提供讀取和寫入 HDFS 叢集的權限。若要使用 Kerberos 身分驗證，請提供 Kerberos 組態檔案、Kerberos 金鑰資料表 (keytab) 檔案和 Kerberos 主體名稱。Kerberos 主體的登入資料必須位於提供的 keytab 檔案中。

### 加密
<a name="accessing-hdfs-encryption"></a>

使用 Kerberos 身分驗證時，DataSync 支援在 DataSync 代理程式和 HDFS 叢集之間傳輸時加密資料。使用 HDFS 叢集上的保護品質 (QOP) 組態設定，以及在建立 HDFS 位置時指定 QOP 設定，來加密您的資料。QOP 組態包含資料傳輸保護和遠端程序呼叫 (RPC) 保護的設定。

**DataSync 支援下列 Kerberos 加密類型：**
+ `des-cbc-crc`
+ `des-cbc-md4`
+ `des-cbc-md5`
+ `des3-cbc-sha1`
+ `arcfour-hmac`
+ `arcfour-hmac-exp`
+ `aes128-cts-hmac-sha1-96`
+ `aes256-cts-hmac-sha1-96`
+ `aes128-cts-hmac-sha256-128`
+ `aes256-cts-hmac-sha384-192`
+ `camellia128-cts-cmac`
+ `camellia256-cts-cmac`

您也可以使用透明資料加密 (TDE) 設定 HDFS 叢集進行靜態加密。使用簡易身分驗證時，DataSync 會讀取和寫入已啟用 TDE 的叢集。如果您使用 DataSync 將資料複製到啟用 TDE 的叢集，請先在 HDFS 叢集上設定加密區域。DataSync 不會建立加密區域。

## 不支援的 HDFS 功能
<a name="hdfs-unsupported-features"></a>

DataSync 目前不支援下列 HDFS 功能：
+ 使用 Kerberos 身分驗證時的透明資料加密 (TDE)
+ 設定多個 NameNodes
+ 透過 HTTP 的 Hadoop HDFS (HttpFS)
+ POSIX 存取控制清單 ACLs)
+ HDFS 延伸屬性 (xattrs)
+ 使用 Apache HBase 的 HDFS 叢集

## 建立您的 HDFS 傳輸位置
<a name="create-hdfs-location-how-to"></a>

您可以使用 位置做為 DataSync 傳輸的來源或目的地。

**開始之前**：執行下列動作來驗證代理程式和 Hadoop 叢集之間的網路連線：
+ 測試對 中所列 TCP 連接埠的存取[內部部署、自我管理和其他雲端儲存的網路需求](datasync-network.md#on-premises-network-requirements)。
+ 測試本機代理程式與 Hadoop 叢集之間的存取。如需說明，請參閱[驗證代理程式與儲存系統的連線](test-agent-connections.md#self-managed-storage-connectivity)。

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

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

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

1. 針對**位置類型**，選擇 **Hadoop 分散式檔案系統 (HDFS)**。

   您可以稍後將此位置設定為來源或目的地。

1. 針對 **代理**程式，選擇可連線至 HDFS 叢集的代理程式。

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

1. 針對 **NameNode**，請提供 HDFS 叢集主要 NameNode 的網域名稱或 IP 地址。

1. 針對**資料夾**，輸入您希望 DataSync 用於資料傳輸的 HDFS 叢集資料夾。

   如果您的 HDFS 位置是來源，DataSync 會將此資料夾中的檔案複製到目的地。如果您的位置是目的地，DataSync 會將檔案寫入此資料夾。

1. 若要設定**區塊大小**或**複寫因素**，請選擇**其他設定**。

   預設區塊大小為 128 MiB。您提供的區塊大小必須是 512 位元組的倍數。

   傳輸到 HDFS 叢集時，預設複寫係數為三個 DataNodes。

1. 在**安全**區段中，選擇 HDFS 叢集上使用的**身分驗證類型**。
   + **簡單** – 對於**使用者**，在 HDFS 叢集上指定具有下列許可的使用者名稱 （取決於您的使用案例）：
     + 如果您打算使用此位置做為來源位置，請指定只有讀取許可的使用者。
     + 如果您打算使用此位置做為目的地位置，請指定具有讀取和寫入許可的使用者。

     或者，指定 HDFS 叢集金鑰管理伺服器 (KMS) 的 URI。
   + **Kerberos** – 指定可存取 HDFS 叢集的 Kerberos **委託人**。接著，提供 **KeyTab 檔案**，其中包含提供的 Kerberos 主體。然後，提供 **Kerberos 組態檔案**。最後，在 **RPC 保護**和**資料傳輸保護**下拉式清單中指定傳輸中保護的加密類型。

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

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

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

### 使用 AWS CLI
<a name="create-location-hdfs-cli"></a>

1. 複製下列`create-location-hdfs`命令。

   ```
   aws datasync create-location-hdfs --name-nodes [{"Hostname":"host1", "Port": 8020}] \
       --authentication-type "SIMPLE|KERBEROS" \
       --agent-arns [arn:aws:datasync:us-east-1:123456789012:agent/agent-01234567890example] \
       --subdirectory "/path/to/my/data"
   ```

1. 針對 `--name-nodes` 參數，指定 HDFS 叢集主要 NameNode 的主機名稱或 IP 地址，以及 NameNode 正在接聽的 TCP 連接埠。

1. 針對 `--authentication-type` 參數，指定連線至 Hadoop 叢集時要使用的身分驗證類型。您可指定為 `SIMPLE` 或 `KERBEROS`。

   如果您使用`SIMPLE`身分驗證，請使用 `--simple-user` 參數來指定使用者的使用者名稱。如果您使用`KERBEROS`身分驗證，請使用 `--kerberos-principal`、 `--kerberos-keytab`和 `--kerberos-krb5-conf` 參數。如需詳細資訊，請參閱 [create-location-hdfs](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/datasync/create-location-hdfs.html)。

1. 針對 `--agent-arns` 參數，指定可連線至 HDFS 叢集之 DataSync 代理程式的 ARN。

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

1. （選用） 對於 `--subdirectory` 參數，請在 HDFS 叢集上指定您希望 DataSync 用於資料傳輸的資料夾。

   如果您的 HDFS 位置是來源，DataSync 會將此資料夾中的檔案複製到目的地。如果您的位置是目的地，DataSync 會將檔案寫入此資料夾。

1. 執行 `create-location-hdfs` 命令。

   如果命令成功，您會收到回應，顯示您建立位置的 ARN。例如：

   ```
   {
       "arn:aws:datasync:us-east-1:123456789012:location/loc-01234567890example"
   }
   ```

# 使用物件儲存系統設定 DataSync 傳輸
<a name="create-object-location"></a>

使用 AWS DataSync，您可以使用基本模式任務，在物件儲存系統與下列其中一個 AWS 儲存服務之間傳輸資料：
+ [Amazon S3](create-s3-location.md)
+ [Amazon EFS](create-efs-location.md)
+ [Amazon FSx for Windows File Server](create-fsx-location.md)
+ [Amazon FSx for Lustre](create-lustre-location.md)
+ [Amazon FSx for OpenZFS](create-openzfs-location.md)
+ [Amazon FSx for NetApp ONTAP](create-ontap-location.md)

若要設定這種傳輸，您可以為物件儲存系統建立[位置](how-datasync-transfer-works.md#sync-locations)。您可以使用此位置做為傳輸來源或目的地。在內部部署物件儲存體之間傳輸資料需要基本模式 DataSync 代理程式。

## 先決條件
<a name="create-object-location-prerequisites"></a>

您的物件儲存系統必須與下列 [Amazon S3 API 操作](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Operations.html)相容，DataSync 才能與其連線：
+ `AbortMultipartUpload`
+ `CompleteMultipartUpload`
+ `CopyObject`
+ `CreateMultipartUpload`
+ `DeleteObject`
+ `DeleteObjects`
+ `DeleteObjectTagging`
+ `GetBucketLocation`
+ `GetObject`
+ `GetObjectTagging`
+ `HeadBucket`
+ `HeadObject`
+ `ListObjectsV2`
+ `PutObject`
+ `PutObjectTagging`
+ `UploadPart`

## 建立物件儲存體傳輸位置
<a name="create-object-location-how-to"></a>

開始之前，您需要一個物件儲存系統，您計劃將資料傳輸到其中或從中傳輸資料。

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

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

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

1. 針對**位置類型**，選擇**物件儲存**。

   您稍後會將此位置設定為來源或目的地。

1. 對於**伺服器**，請提供物件儲存伺服器的網域名稱或 IP 地址。

1. 針對**儲存貯體名稱**，輸入傳輸中涉及的物件儲存貯體名稱。

1. 針對**資料夾**，輸入物件字首。

   DataSync 只會複製具有此字首的物件。

1. 如果您的傳輸需要代理程式，請選擇**使用代理程式**，然後選擇連線至物件儲存系統的 DataSync 代理程式。

   有些傳輸不需要客服人員。在其他情況下，您可能想要使用多個代理程式。如需詳細資訊，請參閱[不需要 DataSync 代理程式的情況](do-i-need-datasync-agent.md#when-agent-not-required)及[使用多個 DataSync 代理程式](do-i-need-datasync-agent.md#multiple-agents)。

1. 若要設定物件儲存伺服器的連線，請展開**其他設定**並執行下列動作：

   1. 針對**伺服器通訊協定**，選擇 **HTTP** 或 **HTTPS**。

   1. 對於**伺服器連接埠**，請使用預設連接埠 (HTTP 為 **80** 或 HTTPS 為 **443**)，或視需要指定自訂連接埠。

   1. 針對**憑證**，如果您的物件儲存系統使用私有或自我簽署憑證授權機構 (CA)，請選取**選擇檔案**，並指定具有完整憑證鏈的單一`.pem`檔案。

      憑證鏈可能包括：
      + 物件儲存系統的憑證
      + 所有中繼憑證 （如果有的話）
      + 簽署 CA 的根憑證

      您可以將憑證串連至`.pem`檔案 （在 base64 編碼之前最多可達 32768 個位元組）。下列範例`cat`命令會建立包含三個憑證`object_storage_certificates.pem`的檔案：

      ```
      cat object_server_certificate.pem intermediate_certificate.pem ca_root_certificate.pem > object_storage_certificates.pem
      ```

1. 如果物件儲存伺服器需要登入資料才能存取，請選取**需要登入**資料，然後輸入您用來存取儲存貯體的**存取金鑰**。然後直接輸入**秘密金鑰**，或指定包含該金鑰的 AWS Secrets Manager 秘密。如需詳細資訊，請參閱[提供儲存位置的登入](https://docs.aws.amazon.com/datasync/latest/userguide/location-credentials.html)資料。

   存取金鑰和私密金鑰分別可以是使用者名稱和密碼。

1. （選用） 選擇**新增標籤**以標記物件儲存位置。

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

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

### 使用 AWS CLI
<a name="create-location-object-cli"></a>

1. 複製下列`create-location-object-storage`命令：

   ```
   aws datasync create-location-object-storage \
       --server-hostname object-storage-server.example.com \
       --bucket-name your-bucket \
       --agent-arns arn:aws:datasync:us-east-1:123456789012:agent/agent-01234567890deadfb
   ```

1. 在 命令中指定下列必要參數：
   + `--server-hostname` – 指定物件儲存伺服器的網域名稱或 IP 地址。
   + `--bucket-name` – 指定您要從中轉移之物件儲存伺服器上的儲存貯體名稱。

1. （選用） 將下列任何參數新增至命令：
   + `--agent-arns` – 指定您要連線至物件儲存伺服器的 DataSync 代理程式。
   + `--server-port` – 指定物件儲存伺服器接受傳入網路流量的連接埠 （例如，連接埠 `443`)。
   + `--server-protocol` – 指定物件儲存伺服器用來通訊的通訊協定 (`HTTP` 或 `HTTPS`)。
   + `--access-key` – 如果需要登入資料才能向物件儲存伺服器進行身分驗證，請指定存取金鑰 （例如，使用者名稱）。
   + `--secret-key` – 如果需要登入資料來驗證物件儲存伺服器，請指定私密金鑰 （例如密碼）。

     您也可以提供使用 保護金鑰的其他參數 AWS Secrets Manager。如需詳細資訊，請參閱[提供儲存位置的登入](https://docs.aws.amazon.com/datasync/latest/userguide/location-credentials.html)資料。
   + `--server-certificate` – 指定憑證鏈，以便在系統使用私有或自我簽署憑證授權單位 (CA) 時，讓 DataSync 與您的物件儲存系統進行驗證。您必須指定具有完整憑證鏈的單一`.pem`檔案 （例如 `file:///home/user/.ssh/object_storage_certificates.pem`)。

     憑證鏈可能包括：
     + 物件儲存系統的憑證
     + 所有中繼憑證 （如果有的話）
     + 簽署 CA 的根憑證

     您可以將憑證串連至`.pem`檔案 （在 base64 編碼之前最多可達 32768 個位元組）。下列範例`cat`命令會建立包含三個憑證`object_storage_certificates.pem`的檔案：

     ```
     cat object_server_certificate.pem intermediate_certificate.pem ca_root_certificate.pem > object_storage_certificates.pem
     ```
   + `--subdirectory` – 指定物件儲存伺服器的物件字首。

     DataSync 只會複製具有此字首的物件。
   + `--tags` – 指定代表您要新增至位置資源之標籤的鍵/值對。

     標籤可協助您管理、篩選和搜尋資源。建議您為位置建立名稱標籤。

1. 執行 `create-location-object-storage` 命令。

   您會收到一個回應，顯示您剛建立的位置 ARN。

   ```
   {
       "LocationArn": "arn:aws:datasync:us-east-1:123456789012:location/loc-01234567890abcdef"
   }
   ```