

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用传输您的数据 AWS DataSync
<a name="transferring-data-datasync"></a>

借 AWS DataSync助，您可以将数据传输到本地、内部或其他云中的存储 AWS，或从中传输数据。

设置 DataSync 转账通常涉及以下步骤：

1. 确定是否 DataSync [支持您的转移](working-with-locations.md)。

1. [如果需要 DataSync 代理来](do-i-need-datasync-agent.md)进行传输，请在尽可能靠近其中一个存储系统的地方部署和激活代理。

   例如，如果要从本地网络文件系统（NFS）文件服务器传输数据，应尽可能将代理部署在靠近该文件服务器的位置。

1. 提供对存储系统的 DataSync 访问权限。

   DataSync 需要权限才能读取或写入您的存储空间（取决于您的存储是源位置还是目标位置）。例如，学习如何[提供 DataSync 对 NFS 文件服务器的访问权限](create-nfs-location.md#accessing-nfs)。

1. [连接您的网络](networking-datasync.md)以获取存储系统和之间的流量 DataSync。

1. 使用 DataSync 控制台、 AWS CLI或 DataSync API 为您的源存储系统创建位置。

   例如，了解如何[创建 NFS 位置](create-nfs-location.md#create-nfs-location-how-to)或 [Amazon S3 位置](create-s3-location.md#create-s3-location-how-to)。

1. 重复步骤 3-5，创建转账的目的地地点。

1. [创建并启动包括您的来源和目标位置的 DataSync 转移任务](create-task-how-to.md)。

**Topics**
+ [我可以在哪里传输我的数据 AWS DataSync？](working-with-locations.md)
+ [使用本地存储与本地存储进行传入或传出本地存储 AWS DataSync](transferring-on-premises-storage.md)
+ [使用传入或传出 AWS 存储 AWS DataSync](transferring-aws-storage.md)
+ [使用其他云存储进行传入或传出其他云存储 AWS DataSync](transferring-other-cloud-storage.md)
+ [创建一个传输数据的任务](create-task-how-to.md)
+ [启动传输数据的任务](run-task.md)

# 我可以在哪里传输我的数据 AWS DataSync？
<a name="working-with-locations"></a>

您可以将数据传输到何处 AWS DataSync 取决于以下因素：
+ 传输的源位置和目标[位置](how-datasync-transfer-works.md#sync-locations)
+ 如果你的位置不同 AWS 账户
+ 如果你的位置不同 AWS 区域
+ 如果您使用的是基本模式或增强模式

## 支持同一个传输 AWS 账户
<a name="working-with-locations-same-account"></a>

DataSync 支持在以下与之关联的存储资源之间进行传输 AWS 账户。


| 来源 | 目标位置 | 需要代理吗？ | 支持的任务模式 | 
| --- | --- | --- | --- | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/working-with-locations.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/working-with-locations.html)  |  是  |  基本、增强  | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/working-with-locations.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/working-with-locations.html)  |  是  |  仅限基础版  | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/working-with-locations.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/working-with-locations.html)  |  是  |  仅限基础版  | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/working-with-locations.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/working-with-locations.html)  |  仅适用于基本模式  |  基本、增强  | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/working-with-locations.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/working-with-locations.html)  |  是  |  仅限基础版  | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/working-with-locations.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/working-with-locations.html)  |  否  |  基本、增强  | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/working-with-locations.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/working-with-locations.html)  |  否  |  仅限基础版  | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/working-with-locations.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/working-with-locations.html)  |  是  |  基本、增强  | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/working-with-locations.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/working-with-locations.html)  |  是  |  仅限基础版  | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/working-with-locations.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/working-with-locations.html)  |  仅适用于基本模式  |  基本、增强  | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/working-with-locations.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/working-with-locations.html)  |  是  |  仅限基础版  | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/working-with-locations.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/working-with-locations.html)  |  是  |  仅限基础版  | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/working-with-locations.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/working-with-locations.html)  |  是  |  仅限基础版  | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/working-with-locations.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/working-with-locations.html)  |  否  |  仅限基础版  | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/working-with-locations.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/working-with-locations.html)  |  否  |  仅限基础版  | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/working-with-locations.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/working-with-locations.html)  |  是  |  仅限基础版  | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/working-with-locations.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/working-with-locations.html)  |  是  |  仅限基础版  | 

## 支持的跨境传输 AWS 账户
<a name="working-with-locations-across-accounts"></a>

DataSync 支持在与不同存储资源关联的存储资源之间进行某些传输 AWS 账户。


| 来源 | 目标位置 | 需要代理吗？ | 支持的任务模式 | 
| --- | --- | --- | --- | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/working-with-locations.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/working-with-locations.html)  |  是  |  基本、增强  | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/working-with-locations.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/working-with-locations.html)  |  是  |  仅限基础版  | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/working-with-locations.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/working-with-locations.html)  |  否  |  基本、增强  | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/working-with-locations.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/working-with-locations.html)  |  否  |  仅限基础版  | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/working-with-locations.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/working-with-locations.html)  |  是  |  基本、增强  | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/working-with-locations.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/working-with-locations.html)  |  是  |  仅限基础版  | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/working-with-locations.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/working-with-locations.html)  |  否  |  仅限基础版  | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/working-with-locations.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/working-with-locations.html)  |  是（用作 NFS/SMB 位置时）  |  仅限基础版  | 

1 配置为 [NFS 位置](create-nfs-location.md)。

2 配置为 [SMB 位置](create-smb-location.md)。

3 配置为 NFS 或 SMB 位置。

## 支持同一个传输 AWS 区域
<a name="working-with-locations-same-region"></a>

在同一 AWS 区域 中传输数据时没有任何限制（包括[选择加入的区域](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-regions.html)）。有关更多信息，请参阅[AWS 区域 支持 DataSync](https://docs.aws.amazon.com/general/latest/gr/datasync.html)。

## 支持之间的传输 AWS 区域
<a name="working-with-locations-cross-regions"></a>

在[AWS 区域 支持的](https://docs.aws.amazon.com/general/latest/gr/datasync.html)之间传输数据时，请注意以下几点 DataSync：
+ 在不同 AWS 存储服务之间传输时 AWS 区域，两个位置中的一个必须位于您使用的区域 DataSync。
+ 您无法使用 NFS、SMB、HDFS 或对象存储位置进行跨区域传输。在这种情况下，您的两个转账地点必须位于[您激活 DataSync代理](activate-agent.md)的同一区域。
+ 使用 AWS GovCloud (US) 区域，您可以：
  + 在 AWS GovCloud （美国东部）和 AWS GovCloud （美国西部）地区之间转移。
  + 在某个 AWS GovCloud (US) 地区和商业 AWS 区域区域（例如美国东部（弗吉尼亚北部）之间转移。这种类型的传输在 Amazon EFS 或 Amazon FSx 文件系统之间传输时需要[代理](agent-requirements.md)。

**重要**  
您需要为两者之间传输的数据付费 AWS 区域。这种传输按从源区域到目标位置区域的数据传出进行计费。有关更多信息，请参阅[AWS DataSync 定价](https://aws.amazon.com/datasync/pricing/)。

## 确定您的转账是否需要代 DataSync 理
<a name="datasync-transfer-requirements"></a>

根据您的转账情况，您可能需要代 DataSync 理。有关更多信息，请参阅 [我需要 AWS DataSync 经纪人吗？](do-i-need-datasync-agent.md)。

# 使用本地存储与本地存储进行传入或传出本地存储 AWS DataSync
<a name="transferring-on-premises-storage"></a>

使用 AWS DataSync，您可以在多个本地或自行管理的存储系统与以下 AWS 存储服务之间传输文件和对象：
+ [Amazon S3](create-s3-location.md)
+ [Amazon EFS](create-efs-location.md)
+ [ FSx 适用于 Windows 文件服务器的亚马逊](create-fsx-location.md)
+ [亚马逊 f FSx or Lustre](create-lustre-location.md)
+ [ FSx 适用于 OpenZFS 的亚马逊](create-openzfs-location.md)
+ [ FSx 适用于 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_cn/datasync/latest/userguide/create-nfs-location.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/create-nfs-location.html)  | 

要设置此类传输，您需要为 NFS 文件服务器创建一个[位置](how-datasync-transfer-works.md#sync-locations)。您可以将此位置用作传输源或传输目标位置。

## 提供 DataSync 对 NFS 文件服务器的访问权限
<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 需要 root 访问权限才能写入该位置，并对要复制的文件和文件夹设置所有权、权限和其他元数据。您可以使用 `no_root_squash` 选项为导出提供根访问权限。

以下示例介绍如何配置提供访问权限的 NFS 导出。 DataSync

**当您的 NFS 文件服务器是源位置时（根访问权限）**  
使用以下命令配置导出，该命令提供 DataSync只读权限 (`ro`) 和 root 访问权限 (`no_root_squash`)：

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

**当您的 NFS 文件服务器是目标位置时**  
使用以下命令配置导出，该命令提供 DataSync写入权限 (`rw`) 和 root 访问权限 (`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. 打开 AWS DataSync 控制台，网址为[https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/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
  ```

  有关创建位置的更多信息，请参阅 [提供 DataSync 对 NFS 文件服务器的访问权限](#accessing-nfs)。

  DataSync 自动选择用于从 NFS 位置读取的 NFS 版本。要指定 NFS 版本，请在 [NfsMountOptions](API_NfsMountOptions.md) API 操作中使用可选 `Version` 参数。

此命令返回 NFS 位置的 Amazon 资源名称 (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_cn/datasync/latest/userguide/create-smb-location.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/create-smb-location.html)  | 

要设置此类传输，您需要为 SMB 文件服务器创建一个[位置](how-datasync-transfer-works.md#sync-locations)。您可以将此位置用作传输源或传输目标位置。请务必使用与所需任务模式相对应的代理。

## 提供 DataSync 对 SMB 文件服务器的访问权限
<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>

默认情况下，根据与 SMB 文件服务器的协商 DataSync 自动选择 SMB 协议的版本。

您也可以配置 DataSync 为使用特定的 SMB 版本，但我们建议只有 DataSync 在无法自动与 SMB 文件服务器协商时才这样做。 DataSync 支持 SMB 版本 1.0 及更高版本。出于安全起见，建议使用 SMB 版本 3.0.2 或更高版本。早期版本（例如 SMB 1.0）包含已知的安全漏洞，攻击者可以借此来窃取您的数据。

有关 DataSync控制台和 API 中的选项列表，请参阅下表：


| 控制台选项 | API 选项 | 说明 | 
| --- | --- | --- | 
| 自动 |  `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)
+ [DataSync Kerberos 的配置选项](#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 文件。

  以下示例使用 `ktpass` 创建 keytab 文件。您指定的 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 密钥分配中心（KDC）服务器端口已打开。KDC 端口通常为 TCP 端口 88。

#### DataSync Kerberos 的配置选项
<a name="configuring-smb-kerberos-options"></a>

在创建使用 Kerberos 的 SMB 位置时，需配置以下选项。


| 控制台选项 | API 选项 | 说明 | 
| --- | --- | --- | 
|  **中小型企业服务器**  |  `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)）：


| 用户权限 | 说明 | 
| --- | --- | 
|  **恢复文件和目录**（`SE_RESTORE_NAME`）  |   DataSync 允许复制对象所有权、权限、文件元数据和 NTFS 自由访问列表 () DACLs。 此用户权限通常授予**域管理员**组和**备份操作员**组（均为默认 Active Directory 组）的成员。  | 
|  **管理审计和安全日志**（`SE_SECURITY_NAME`）  |   DataSync 允许复制 NTFS 系统访问控制列表 (SACLs)。 此用户权限通常授予**域管理员**组的成员。  | 

如果您要复制 Windows， ACLs 并且要在 SMB 文件服务器和另一个使用 SMB 的存储系统（例如适用于 Windows 文件服务器的 Amazon 或 FSx ONTAP）之间 FSx 进行传输，则您提供的身份 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. 打开 AWS DataSync 控制台，网址为[https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/)。

1. 在左侧导航窗格中，展开**数据传输**，然后选择 **位置**和 **创建位置**。

1. 对于 **位置类型**，选择 **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. 在 “**共享名称**” 中，输入 SMB 文件服务器导出的共享名称，用于读 DataSync 取或写入数据。

   您可以在共享路径中包含子目录（例如，‭`/path/to/subdirectory`）。确保网络中的其他 SMB 客户端也可以挂载此路径。

   要复制子目录中的所有数据， DataSync 必须能够装载 SMB 共享并访问其所有数据。有关更多信息，请参阅 [所需的权限](#configuring-smb-permissions)。

1. （可选）展开 **“其他设置”**，然后选择 DataSync 要在访问文件服务器时使用的 **SMB 版本**。

   默认情况下，根据与 SMB 文件服务器的协商 DataSync 自动选择版本。有关信息，请参阅[支持的 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`。

     主体名称区分大小写。如果您为此选项指定的主体与您用于创建密钥表文件的主体不完全匹配，则 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)
+ [ FSx 适用于 Windows 文件服务器的亚马逊](create-fsx-location.md)
+ [亚马逊 f FSx or Lustre](create-lustre-location.md)
+ [ FSx 适用于 OpenZFS 的亚马逊](create-openzfs-location.md)
+ [ FSx 适用于 NetApp ONTAP 的亚马逊](create-ontap-location.md)

要设置此类传输，您需要为 HDFS 集群创建一个[位置](how-datasync-transfer-works.md#sync-locations)。您可以将此位置用作传输源或传输目标位置。

## 提供 DataSync 对 HDFS 集群的访问权限
<a name="accessing-hdfs"></a>

要连接到 HDFS 集群，请 DataSync 使用尽可能靠近 HDFS 集群[部署的基本模式代理代理](deploy-agents.md)。该 DataSync代理充当 HDFS 客户端，与集群 DataNodes 中的 NameNodes 和进行通信。

启动传输任务时，会 DataSync NameNode 查询群集上文件和文件夹的位置。如果您将 HDFS 位置配置为源位置，则会从集群 DataNodes 中 DataSync 读取文件和文件夹数据，并将这些数据复制到目标。如果您将 HDFS 位置配置为目标位置，则 DataSync 会将文件和文件夹从源位置写入集群 DataNodes 中。

### 身份验证
<a name="accessing-hdfs-authentication"></a>

连接到 HDFS 集群时， DataSync 支持简单身份验证或 Kerberos 身份验证。要使用简单身份验证，请提供对 HDFS 集群具有读写权限的用户的用户名。要使用 Kerberos 身份验证，请提供 Kerberos 配置文件、Kerberos 密钥表（密钥表）文件和 Kerberos 主体名称。Kerberos 主体的凭证必须位于提供的密钥表文件中。

### 加密
<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 集群配置为静态加密。使用简单身份验证时，对启用 TDE 的集群进行 DataSync 读取和写入。如果您使用将数据复制 DataSync 到启用 TDE 的集群，请先在 HDFS 集群上配置加密区域。 DataSync 不创建加密区域。

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

目前不支持以下 HDFS 功能： DataSync
+ 使用 Kerberos 身份验证时的透明数据加密 (TDE)
+ 配置多个 NameNodes
+ 通过 HTTPS 的 Hadoop HDFS (httpFS)
+ POSIX 访问控制列表 () ACLs
+ HDFS 扩展属性 (xattrs)
+ 使用 Apache 的 HDFS 集群 HBase

## 创建您的 HDFS 传输位置
<a name="create-hdfs-location-how-to"></a>

您可以使用您的位置作为 DataSync转账的来源或目的地。

**开始之前**：通过执行以下操作验证代理与 Hadoop 集群之间的网络连接：
+ 测试对 [本地、自我管理和其他云存储的网络要求](datasync-network.md#on-premises-network-requirements) 中列出的 TCP 端口的访问权限。
+ 测试本地代理与 Hadoop 集群之间的访问权限。有关说明，请参阅[验证代理与存储系统的连接](test-agent-connections.md#self-managed-storage-connectivity)。

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

1. 打开 AWS DataSync 控制台，网址为[https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/)。

1. 在左侧导航窗格中，展开**数据传输**，然后选择 **位置**和 **创建位置**。

1. 对于 **位置类型**，选择 **Hadoop Distributed File System (HDFS)**。

   您可在稍后将此位置配置为源或目标。

1. 对于**代理**，请选择可以连接到 HDFS 集群的代理。

   可以选择多个代理。有关更多信息，请参阅 [使用多个 DataSync 代理](do-i-need-datasync-agent.md#multiple-agents)。

1. 对于 **NameNode**，请提供 HDFS 群集的主 NameNode群集的域名或 IP 地址。

1. 在 **“文件夹**” 中，输入 HDFS 集群上 DataSync 要用于数据传输的文件夹。

   如果您的 HDFS 位置是源，请将此文件夹中的文件 DataSync 复制到目标。如果您的位置是目的地，则 DataSync会将文件写入此文件夹。

1. 要设置 **区块大小**或 **复制因子**，请选择 **其他设置**。

   默认块大小为 128MiB。您提供的块大小必须是 512 字节的倍数。

   传输到 HDFS 集群 DataNodes 时，默认重复因子为三。

1. 在 **安全**部分中，选择 HDFS 群集上使用的 **身份验证类型**。
   + **简单** - 对于 **用户**，在 HDFS 集群上指定具有以下权限的用户名（取决于您的用例）：
     + 如果您计划将此位置用作源位置，请指定仅具有读取权限的用户。
     + 如果您计划将此位置用作目标位置，请指定具有读写权限的用户。

     您可以选择为 HDFS 集群的密钥管理服务器（KMS）指定 URI。
   + **Kerberos** – 指定有权访问您的 HDFS 集群的 Kerberos **主体**。接下来，提供包含所提供的 Kerberos 主体的**KeyTab文件**。然后，提供 **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 集群的主集群的主机名或 IP 地址 NameNode 以及 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)
+ [ FSx 适用于 Windows 文件服务器的亚马逊](create-fsx-location.md)
+ [亚马逊 f FSx or Lustre](create-lustre-location.md)
+ [ FSx 适用于 OpenZFS 的亚马逊](create-openzfs-location.md)
+ [ FSx 适用于 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. 打开 AWS DataSync 控制台，网址为[https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/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"
   }
   ```

# 使用传入或传出 AWS 存储 AWS DataSync
<a name="transferring-aws-storage"></a>

使用 AWS DataSync，您可以将数据传输到多个存储服务或从多个 AWS 存储服务中传输数据。有关更多信息，请参阅[我可以在哪里传输数据 DataSync？](working-with-locations.md)

**Topics**
+ [使用 Amazon S3 配置 AWS DataSync 传输](create-s3-location.md)
+ [使用 Amazon EFS 配置 AWS DataSync 传输](create-efs-location.md)
+ [使用为 Window FSx s 文件服务器配置传输](create-fsx-location.md)
+ [为 Lustr FSx e 配置 DataSync 传输](create-lustre-location.md)
+ [为 OpenZFS 配置与亚马逊 FSx 的 DataSync 转账](create-openzfs-location.md)
+ [在 AMAZON 上 FSx 为 NetApp ONTAP 配置传输](create-ontap-location.md)

# 使用 Amazon S3 配置 AWS DataSync 传输
<a name="create-s3-location"></a>

要将数据传输到您的 Amazon S3 存储桶或从中传输数据，您需要创建一个 AWS DataSync 传输*位置*。 DataSync 可以将此位置用作传输数据的源或目的地。

## 提供 DataSync 对 S3 存储桶的访问权限
<a name="create-s3-location-access"></a>

DataSync 需要访问您要传入或传出的 S3 存储桶。为此，您必须创建一个具有访问存储桶所需权限的 AWS Identity and Access Management (IAM) 角色。 DataSync 然后，您可以在为[创建 Amazon S3 营业地点](#create-s3-location-how-to)时指定此角色 DataSync。

**Contents**
+ [所需的权限](#create-s3-location-required-permissions)
+ [为创建 IAM 角色 DataSync 以访问您的 Amazon S3 位置](#create-role-manually)
+ [使用服务器端加密访问 S3 存储桶](#create-s3-location-encryption)
+ [访问受限的 S3 存储桶](#denying-s3-access)
+ [通过受限 VPC 的访问权限访问 S3 存储库](#create-s3-location-restricted-vpc)

### 所需的权限
<a name="create-s3-location-required-permissions"></a>

您的 IAM 角色所需的权限可能取决于存储桶是 DataSync 源位置还是目标位置。Outposts 上的 Amazon S3 需要一组不同的权限。

------
#### [ Amazon S3 (source location) ]

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "s3:GetBucketLocation",
                "s3:ListBucket",
                "s3:ListBucketMultipartUploads"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket"
        },
        {
            "Action": [
                "s3:GetObject",
                "s3:GetObjectTagging",
                "s3:GetObjectVersion",
                "s3:GetObjectVersionTagging",
                "s3:ListMultipartUploadParts"
              ],
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
        }
    ]
}
```

------
#### [ Amazon S3 (destination location) ]

```
{
 "Version": "2012-10-17",		 	 	 
 "Statement": [
     {
         "Action": [
             "s3:GetBucketLocation",
             "s3:ListBucket",
             "s3:ListBucketMultipartUploads"
         ],
         "Effect": "Allow",
         "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
         "Condition": {
             "StringEquals": {
                 "aws:ResourceAccount": "123456789012"
             }
         }
     },
     {
         "Action": [
             "s3:AbortMultipartUpload",
             "s3:DeleteObject",
             "s3:GetObject",
             "s3:GetObjectTagging",
             "s3:GetObjectVersion",
             "s3:GetObjectVersionTagging",
             "s3:ListMultipartUploadParts",
             "s3:PutObject",
             "s3:PutObjectTagging"
           ],
         "Effect": "Allow",
         "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
         "Condition": {
             "StringEquals": {
                 "aws:ResourceAccount": "123456789012"
             }
         }
     }
 ]
}
```

------
#### [ Amazon S3 on Outposts ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "s3-outposts:ListBucket",
                "s3-outposts:ListBucketMultipartUploads"
            ],
            "Effect": "Allow",
            "Resource": [
            "arn:aws:s3-outposts:us-east-1:123456789012:outpost/outpost-id/bucket/amzn-s3-demo-bucket",
    "arn:aws:s3-outposts:us-east-1:123456789012:outpost/outpost-id/accesspoint/bucket-access-point-name"
            ]
        },
        {
            "Action": [
                "s3-outposts:AbortMultipartUpload",
                "s3-outposts:DeleteObject",
                "s3-outposts:GetObject",
                "s3-outposts:GetObjectTagging",
                "s3-outposts:GetObjectVersion",
                "s3-outposts:GetObjectVersionTagging",
                "s3-outposts:ListMultipartUploadParts",
                "s3-outposts:PutObject",
                "s3-outposts:PutObjectTagging"
            ],
            "Effect": "Allow",
            "Resource": [
            "arn:aws:s3-outposts:us-east-1:123456789012:outpost/outpost-id/bucket/amzn-s3-demo-bucket/*",
    "arn:aws:s3-outposts:us-east-1:123456789012:outpost/outpost-id/accesspoint/bucket-access-point-name/*"
            ]
        },
        {
            "Action": "s3-outposts:GetAccessPoint",
            "Effect": "Allow",
            "Resource": "arn:aws:s3-outposts:us-east-1:123456789012:outpost/outpost-id/accesspoint/bucket-access-point-name"
        }
    ]
}
```

------

### 为创建 IAM 角色 DataSync 以访问您的 Amazon S3 位置
<a name="create-role-manually"></a>

在控制台中[创建您的 Amazon S3 位置](#create-s3-location-how-to)时， DataSync 可以自动创建并代入一个 IAM 角色，该角色通常具有访问您的 S3 存储桶的正确权限。

在某些情况下，您可能需要手动创建此角色（例如，访问具有额外安全层的存储分区，或者在其他存储桶中向存储桶传送或从存储桶传出 AWS 账户）。

#### 为手动创建 IAM 角色 DataSync
<a name="create-role-manually-steps"></a>

1. 使用 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 打开 IAM 控制台。

1. 在左侧导航窗格的**访问管理**下，选择**角色**，然后选择**创建角色**。

1. 在**选择可信实体**页面中，为**可信实体类型**选择 **AWS 服务**。

1. 对于 “**用例**”，**DataSync**在下拉列表中进行选择，然后选择**DataSync**。选择**下一步**。

1. 在**添加权限**页面上，选择**下一步**。输入角色名称，然后选择**创建角色**。

1. 在**角色**页面上，搜索您刚刚创建的角色并选择其名称。

1. 在角色的详情页面上，选择**权限**选项卡。选择**添加权限**，然后选择**创建内联策略**。

1. 选择 **JSON** 选项卡[，然后在策略编辑器中添加访问存储桶所需的权限](#create-s3-location-required-permissions)。

1. 选择**下一步**。为您的策略输入名称，然后选择**创建策略**。

1. （推荐）为防止出现[跨服务混淆代理问题](cross-service-confused-deputy-prevention.md)，请执行以下操作：

   1. 在角色的详情页面上，选择**信任关系**选项卡。选择**编辑信任策略**。

   1. 使用以下示例更新信任策略，其中包括 `aws:SourceArn` 和 `aws:SourceAccount` 全局条件上下文键：

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
            {
              "Effect": "Allow",
              "Principal": {
                  "Service": "datasync.amazonaws.com"
              },
              "Action": "sts:AssumeRole",
              "Condition": {
                  "StringEquals": {
                  "aws:SourceAccount": "444455556666"
                  },
                  "ArnLike": {
                  "aws:SourceArn": "arn:aws:datasync:us-east-1:444455556666:*"
                  }
              }
            }
        ]
      }
      ```

------

   1. 选择**更新策略**。

您可以在创建您的 Amazon S3 位置时指定此角色。

### 使用服务器端加密访问 S3 存储桶
<a name="create-s3-location-encryption"></a>

DataSync 可以将数据传输到[使用服务器端加密的 S3 存储桶](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html)或从中传输数据。存储桶使用的加密密钥类型可以决定您是否需要 DataSync 允许访问存储桶的自定义策略。

 DataSync 与使用服务器端加密的 S3 存储桶一起使用时，请记住以下几点：
+ **如果您的 S3 存储桶使用 AWS 托管密钥加密，则默认情况下，如果您的所有资源都在同一个**存储桶中，则 DataSync 可以访问该存储桶的对象 AWS 账户。
+ **如果您的 S3 存储桶使用客户托管 AWS Key Management Service (AWS KMS) 密钥 (SSE-KMS) 加密**，则[密钥的策略](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html)必须包含 DataSync 用于访问存储桶的 IAM 角色。
+ **如果您的 S3 存储桶使用客户托管的 SSE-KMS 密钥和其他密钥进行加密，则 DataSync 需要获得访问另一个 AWS 账户**存储桶的权限。 AWS 账户您可以通过以下步骤完成上述设置：
  + 在使用的 IAM 角色中，您必须 DataSync 使用该密钥的完全限定的 Amazon 资源名称 (ARN) 来指定跨账户存储桶的 SSE-KMS 密钥。该密钥 ARN 与您用来配置存储桶[默认加密](https://docs.aws.amazon.com/AmazonS3/latest/userguide/default-bucket-encryption.html)的密钥 ARN 相同。在这种情况下，您不能指定密钥 ID、别名名称或别名 ARN。

    下面是一个密钥 ARN 示例：

    `arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`

    有关在 IAM 策略声明中指定 KMS 密钥的更多信息，请参阅 *[AWS Key Management Service 开发人员指南](https://docs.aws.amazon.com/kms/latest/developerguide/cmks-in-iam-policies.html)*。
  + 在 SSE-KMS 密钥策略中，[指定使用的 IAM 角色](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying-external-accounts.html)。 DataSync
+ **如果您的 S3 存储桶使用客户托管 AWS KMS 密钥 (DSSE-KMS) 进行加密以进行双层服务器端加密**，则[密钥的策略](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html)必须包括 DataSync 用于访问存储桶的 IAM 角色。（请记住，DSSE-KMS 不支持 [S3 存储桶密钥](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-key.html)，这可以降低 AWS KMS 请求成本。）
+ **如果您的 S3 存储桶使用客户提供的加密密钥 (SSE-C)** 进行加密，则 DataSync无法访问此存储桶。

#### 示例：适用于 SSE-KMS 的密钥策略 DataSync
<a name="create-s3-location-encryption-example"></a>

以下示例是客户托管的 SSE-KMS 密钥的[密钥政策](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)。此政策与使用服务器端加密的 S3 存储桶关联。

如果要使用此示例，请将以下值替换为您自己的值：
+ *account-id*— 你的 AWS 账户。
+ *admin-role-name*— 可以管理密钥的 IAM 角色的名称。
+ *datasync-role-name*— 允许 DataSync 在访问存储桶时使用密钥的 IAM 角色的名称。

------
#### [ JSON ]

****  

```
{
    "Id": "key-consolepolicy-3",
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Enable IAM Permissions",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:root"
            },
            "Action": "kms:*",
            "Resource": "*"
        },
        {
            "Sid": "Allow access for Key Administrators",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/admin-role-name"
            },
            "Action": [
                "kms:Create*",
                "kms:Describe*",
                "kms:Enable*",
                "kms:List*",
                "kms:Put*",
                "kms:Update*",
                "kms:Revoke*",
                "kms:Disable*",
                "kms:Get*",
                "kms:Delete*",
                "kms:TagResource",
                "kms:UntagResource",
                "kms:ScheduleKeyDeletion",
                "kms:CancelKeyDeletion"
            ],
            "Resource": "*"
        },
        {
            "Sid": "Allow use of the key",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/datasync-role-name"
            },
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKey*"
            ],
            "Resource": "*"
        }
    ]
}
```

------

### 访问受限的 S3 存储桶
<a name="denying-s3-access"></a>

如果您需要向通常拒绝所有访问权限的 S3 存储桶进行传输，则可以编辑存储桶策略， DataSync 使其只能在传输时访问该存储桶。

#### 示例：允许基于 IAM 角色的访问
<a name="denying-s3-access-example"></a>

1. 复制以下 S3 存储桶策略。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [{
           "Sid": "Deny-access-to-bucket",
           "Effect": "Deny",
           "Principal": "*",
           "Action": "s3:*",
           "Resource": [
               "arn:aws:s3:::amzn-s3-demo-bucket",
               "arn:aws:s3:::amzn-s3-demo-bucket/*"
           ],
           "Condition": {
               "StringNotLike": {
                   "aws:userid": [
                       "datasync-iam-role-id:*",
                       "your-iam-role-id"
                   ]
               }
           }
       }]
   }
   ```

------

1. 在策略中，替换以下值：
   + `amzn-s3-demo-bucket`：指定受限 S3 存储桶的名称。
   + `datasync-iam-role-id`— 指定用于访问存储桶的 [IAM 角色](#create-s3-location-access)的 ID。 DataSync 

     运行以下 AWS CLI 命令获取 IAM 角色 ID：

     `aws iam get-role --role-name datasync-iam-role-name`

     在输出中，查找 `RoleId` 值：

     `"RoleId": "ANPAJ2UCCR6DPCEXAMPLE"`
   + `your-iam-role-id`— 指定用于为存储桶创建 DataSync 位置的 IAM 角色的 ID。

     运行以下命令以创建 IAM 角色 ID：

     `aws iam get-role --role-name your-iam-role-name`

     在输出中，查找 `RoleId` 值：

     `"RoleId": "AIDACKCEVSQ6C2EXAMPLE"`

1. [将此策略添加](https://docs.aws.amazon.com/AmazonS3/latest/userguide/add-bucket-policy.html)到 S3 存储桶策略中。

1. 使用 DataSync 完受限存储桶后，请从存储桶策略中移除两个 IAM 角色的条件。

### 通过受限 VPC 的访问权限访问 S3 存储库
<a name="create-s3-location-restricted-vpc"></a>

一个 Amazon S3 存储桶，用于[限制对特定虚拟私有云 (VPC) 终端节点的访问或 VPCs](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies-vpc-endpoint.html)拒绝 DataSync 向该存储桶传输或从该存储桶传输数据。要在这些情况下启用传输，您可以更新存储桶的策略，将[您在 DataSync 位置中指定](#create-s3-location-how-to)的 IAM 角色包括在内。

------
#### [ Option 1: Allowing access based on DataSync location role ARN ]

在 S3 存储桶策略中，您可以指定您的 DataSync 位置 IAM 角色的亚马逊资源名称 (ARN)。

以下示例是一个 S3 存储桶策略，该策略拒绝除两个 VPCs （`vpc-1234567890abcdef0`和`vpc-abcdef01234567890`）之外的所有存储桶的访问。但是，该策略还包括[ArnNotLikeIfExists](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html)条件和 a [ws: PrincipalArn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalarn) 条件键，它们允许 DataSync 位置角色的 ARN 访问存储桶。

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Access-to-specific-VPCs-only",
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
            "Condition": {
                "StringNotEqualsIfExists": {
                    "aws:SourceVpc": [
                        "vpc-1234567890abcdef0",
                        "vpc-abcdef01234567890"
                    ]
                },
                "ArnNotLikeIfExists": {
                    "aws:PrincipalArn": [
                        "arn:aws:iam::111122223333:role/datasync-location-role-name"
                    ]
                }
            }
        }
    ]
}
```

------
#### [ Option 2: Allowing access based on DataSync location role tag ]

在 S3 存储桶策略中，您可以指定附加到您的 DataSync 位置 IAM 角色的标签。

以下示例是一个 S3 存储桶策略，该策略拒绝除两个 VPCs （`vpc-1234567890abcdef0`和`vpc-abcdef01234567890`）之外的所有存储桶的访问。但是，该策略还包括[StringNotEqualsIfExists](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html)条件和 a [ws: PrincipalTag](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principaltag) 条件键，它们允许委托人使用标签键`exclude-from-vpc-restriction`和值`true`。您可以通过指定附加到您的 DataSync 位置角色的标签来尝试在存储桶策略中使用类似的方法。

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Access-to-specific-VPCs-only",
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
            "Condition": {
                "StringNotEqualsIfExists": {
                    "aws:SourceVpc": [
                        "vpc-1234567890abcdef0",
                        "vpc-abcdef01234567890"
                    ],
                    "aws:PrincipalTag/exclude-from-vpc-restriction": "true"
                }
            }
        }
    ]
}
```

------

## Amazon S3 传输的存储类别注意事项
<a name="using-storage-classes"></a>

当 Amazon S3 是您的目标位置时， DataSync 可以将您的数据直接传输到特定的 [Amazon S3 存储类别](https://aws.amazon.com/s3/storage-classes/)。

有些存储类别的行为会影响您的 Amazon S3 存储成本。使用可能会因覆盖、删除或检索对象而产生额外费用的存储类别时，更改对象数据或元数据会产生此类费用。有关更多信息，请参阅 [Amazon S3 定价](https://aws.amazon.com/s3/pricing/)。

**重要**  
传输到 Amazon S3 目标位置的新对象使用您在[创建位置](#create-s3-location-how-to)时指定的存储类别进行存储。  
默认情况下，除非您将任务配置为[传输所有数据](configure-metadata.md#task-option-transfer-mode)，否则会 DataSync 保留目标位置中现有对象的存储类别。在这种情况下，创建位置时指定的存储类别适用于所有对象。


| Amazon S3 存储类 | 注意事项 | 
| --- | --- | 
| S3 标准 | 选择“S3 标准”将您经常访问的文件冗余存储在地理上分开的多个可用区中。如果您没有指定存储类别，则这是默认设置。 | 
| S3 智能分层 |  选择“S3 智能分层”，可通过自动将数据移动到最具成本效益的存储访问层来优化存储成本。 您需要为存储在 S3 智能分层存储类别中的每个对象按月支付相关费用。这项 Amazon S3 费用包括监控数据访问模式和在层之间移动对象。  | 
| S3 标准 - IA |  选择“S3 标准 - IA”将您不常访问的对象冗余存储在地理上分开的多个可用区中。 存储在“S3 标准 - IA”存储类别中的对象可能会因覆盖、删除或检索而产生额外费用。考虑这些对象的更改频率，计划保留这些对象的时间以及需要访问的频率。更改对象数据或元数据等同于删除一个对象后再创建一个新对象来替换它。这将导致存储在“S3 标准 - IA”存储类别中的对象产生额外费用。 小于 128 KB 的对象小于“S3 标准 - IA”存储类别中每个对象的最小容量费用。这些对象存储在 S3 标准存储类别中。  | 
| S3 单区 - IA  |  选择“S3 单区 - IA”：将您不常访问的对象存储在单个可用区中。 存储在“S3 单区 - IA”存储类别中的对象可能会因覆盖、删除或检索而产生额外费用。考虑这些对象的更改频率，计划保留这些对象的时间以及需要访问的频率。更改对象数据或元数据等同于删除一个对象后再创建一个新对象来替换它。这会导致存储在“S3 单区 - IA”存储类别中的对象产生额外费用。 小于 128 KB 的对象小于“S3 单区 - IA”存储类别中每个对象的最小容量费用。这些对象存储在 S3 标准存储类别中。  | 
| S3 Glacier Instant Retrieval |  选择“S3 Glacier 即时检索”可存档很少访问但需要在毫秒内检索的对象。 与“S3 标准-IA”存储类别相比，存储在“S3 Glacier 即时检索”存储类中的数据可以节省成本，同时享有与“S3 标准-IA”存储类别相同的延迟和吞吐量性能。“S3 Glacier 即时检索”的数据访问成本高于“S3 标准-IA”。 存储在“S3 Glacier 即时检索”存储类中的对象可能会因覆盖、删除或检索而产生额外费用。考虑这些对象的更改频率，计划保留这些对象的时间以及需要访问的频率。更改对象数据或元数据等同于删除一个对象后再创建一个新对象来替换它。这会导致存储在“S3 Glacier 即时检索”存储类别中的对象产生额外费用。 小于 128 KB 的对象小于“S3 Glacier 即时检索”存储类别中每个对象的最小容量费用。这些对象存储在 S3 标准存储类别中。  | 
| S3 Glacier 灵活检索 | 选择“S3 Glacier 灵活检索”，获取更多活跃档案。存储在“S3 Glacier 灵活检索”存储类中的对象可能会因覆盖、删除或检索而产生额外费用。考虑这些对象的更改频率，计划保留这些对象的时间以及需要访问的频率。更改对象数据或元数据等同于删除一个对象后再创建一个新对象来替换它。这会导致存储在“S3 Glacier 灵活检索”存储类别中的对象产生额外费用。S3 Glacier 灵活检索存储类需要为每个存档对象提供 40 KB 的额外元数据。 DataSync 将小于 40 KB 的对象归入 S3 标准存储类别。必须先恢复以该存储类别存档的对象，然后 DataSync 才能读取它们。有关信息，请参阅《Amazon S3 用户指南》中的[使用已归档的对象](https://docs.aws.amazon.com/AmazonS3/latest/userguide/archived-objects.html)。使用“S3 Glacier 灵活检索”时，请选择**仅验证传输的数据**任务选项，以便在传输结束时比较数据和元数据校验和。不能对此存储类别使用**验证目标中的所有数据**选项，因为它需要检索目标中的所有现有对象。 | 
| S3 Glacier 深度存档 |  选择“S3 Glacier 深度存档”来存档文件，以提供长期数据留存和数字保留，每年可以在其中访问一次或两次数据。 存储在“S3 Glacier 深度存档”存储类中的对象可能会因覆盖、删除或检索而产生额外费用。考虑这些对象的更改频率，计划保留这些对象的时间以及需要访问的频率。更改对象数据或元数据等同于删除一个对象后再创建一个新对象来替换它。这会导致存储在“S3 Glacier 深度存档”存储类别中的对象产生额外费用。 S3 Glacier Deep Archive Deep Archive 存储类需要为每个存档对象提供 40 KB 的额外元数据。 DataSync 将小于 40 KB 的对象归入 S3 标准存储类别。 必须先恢复以该存储类别存档的对象，然后 DataSync 才能读取它们。有关信息，请参阅《*Amazon S3 用户指南*》中的[使用已归档的对象](https://docs.aws.amazon.com/AmazonS3/latest/userguide/archived-objects.html)。 使用“S3 Glacier 深度存档”时，请选择**仅验证传输的数据**任务选项，以便在传输结束时比较数据和元数据校验和。不能对此存储类别使用**验证目标中的所有数据**选项，因为它需要检索目标中的所有现有对象。  | 
|  S3 Outposts  |  Amazon S3 on Outposts 的存储类别。  | 

## 使用时评估 S3 请求成本 DataSync
<a name="create-s3-location-s3-requests"></a>

在 Amazon S3 分支机构 DataSync中，您会产生与发出 S3 API 请求相关的费用。本节可帮助您了解这些请求的 DataSync 使用方式以及它们可能如何影响您的 [Amazon S3 成本](https://aws.amazon.com/s3/pricing/)。

**Topics**
+ [发出的 S3 请求由 DataSync](#create-s3-location-s3-requests-made)
+ [成本注意事项](#create-s3-location-s3-requests-cost)

### 发出的 S3 请求由 DataSync
<a name="create-s3-location-s3-requests-made"></a>

下表描述了您在向 Amazon S3 位置复制数据或从中复制数据时 DataSync 可能发出的 S3 请求。


| S3 请求 | 怎么 DataSync 用 | 
| --- | --- | 
|  [ListObjectV2](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html)  |  DataSync 对每个以正斜杠 (`/`) 结尾的对象发出至少一个`LIST`请求，以列出以该前缀开头的对象。此请求是在任务的[准备](run-task.md#understand-task-execution-statuses)阶段调用的。  | 
|  [HeadObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html)  | DataSync 在任务的[准备](run-task.md#understand-task-execution-statuses)和[验证](run-task.md#understand-task-execution-statuses)阶段发出检索对象元数据的`HEAD`请求。每个对象可能有多个`HEAD`请求，具体取决于您希望 DataSync 如何[验证其传输的数据的完整性](configure-data-verification-options.md)。 | 
|  [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html)  |  DataSync 在任务的[传输](run-task.md#understand-task-execution-statuses)阶段发出从对象读取数据的`GET`请求。对于大型对象可能会发出多个 `GET` 请求。  | 
|  [GetObjectTagging](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html)  |  如果您将任务配置为[复制对象标签](configure-metadata.md)，则会在任务的[准备](run-task.md#understand-task-execution-statuses)和[传输](run-task.md#understand-task-execution-statuses)阶段 DataSync 发出这些`GET`请求以检查对象标签。  | 
|  [PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)  |  DataSync 在任务的[传输](run-task.md#understand-task-execution-statuses)阶段，`PUT`请求在目标 S3 存储桶中创建对象和前缀。由于 DataSync 使用 [Amazon S3 分段上传功能](https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html)，因此可能会有多个针对大型对象的`PUT`请求。为了最大限度地降低您的存储成本，我们建议您使用[生命周期配置]()来停止未完成的分段上传。  | 
|  [PutObjectTagging](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html)  | 如果您的源对象有标签，并且您将任务配置为[复制对象标签](configure-metadata.md)， DataSync 则在[传输](run-task.md#understand-task-execution-statuses)这些标签时会`PUT`发出这些请求。 | 
|  [CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html)  |  DataSync 仅当对象的元数据发生变化时，才会`COPY`请求创建该对象的副本。如果您最初使用未保留其元数据的其他服务或工具将数据复制到 S3 存储桶，则可能会发生这种情况。  | 

### 成本注意事项
<a name="create-s3-location-s3-requests-cost"></a>

DataSync 每次运行任务时，都会在 S3 存储桶上发出 S3 请求。在某些情况下，这可能会导致费用增加。例如：
+ 您经常将对象传入或传出 S3 存储桶。
+ 您可能没有传输太多数据，但是您的 S3 存储桶里有很多对象。在这种情况下，您仍然可以看到高额费用，因为 DataSync 对存储桶的每个对象发出 S3 请求。
+ 您在 S3 存储桶之间进行传输，在源存储桶和目标上发出 S3 请求 DataSync 也是如此。

为了帮助最大限度地降低与之相关的 S3 请求成本 DataSync，请考虑以下几点：

**Topics**
+ [我使用的是哪些 S3 存储类别？](#create-s3-location-s3-requests-storage-classes)
+ [我需要多久传输一次数据？](#create-s3-location-s3-requests-recurring-transfers)

#### 我使用的是哪些 S3 存储类别？
<a name="create-s3-location-s3-requests-storage-classes"></a>

S3 请求费用可能因对象使用的 Amazon S3 存储类别而有所不同，特别是对于存储对象的存储类别（例如 S3 Glacier 即时检索、S3 Glacier 灵活检索和 S3 Glacier 深度存档）。

以下是一些使用存储类会影响您的 S3 请求费用的场景 DataSync：
+ 每次运行任务时，都会 DataSync 发出检索对象元数据的`HEAD`请求。即使您没有移动任何对象，这些请求也会产生费用。这些请求对账单的影响程度取决于您的对象使用的存储类别以及 DataSync 扫描的对象数量。
+ 如果您将对象移至 S3 Glacier 即时检索存储类别（直接或通过存储桶生命周期配置），则对该类中对象的请求比其他存储类别中的对象更昂贵。
+ 如果您将 DataSync 任务配置为[验证源位置和目标位置是否完全同步，则](configure-data-verification-options.md)所有存储类别（S3 Glacier 灵活检索和 S3 Glacier Deep Archive Deep Archive 除外）中的每个对象都将`GET`收到请求。
+ 除了 `GET` 请求之外，您还会产生 S3 标准-IA、S3 单区-IA 或 S3 Glacier 即时检索存储类别中的对象的数据检索成本。

有关更多信息，请参阅 [Amazon S3 定价](https://aws.amazon.com/s3/pricing/)。

#### 我需要多久传输一次数据？
<a name="create-s3-location-s3-requests-recurring-transfers"></a>

如果您需要定期移动数据，请考虑一个不会超出所需任务的[时间表](task-scheduling.md)。

您也可以考虑限制传输范围。例如，您可以配置为聚焦 DataSync 于某些前缀中的对象，或者[筛选要传输的数据](filtering.md)。这些选项可以帮助减少每次运行 DataSync 任务时发出的 S3 请求数量。

## Amazon S3 传输的对象注意事项
<a name="create-s3-location-considerations"></a>
+ 如果您要从 S3 存储桶中传输，请使用 [S3 Storage Lens 存储分析功能](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens_basics_metrics_recommendations.html)确定要移动的对象数量。
+ 在 S3 存储桶之间传输时，我们建议使用[增强型任务模式](choosing-task-mode.md)，因为您不受 DataSync 任务[配额](datasync-limits.md)的限制。
+ DataSync 可能无法传输名称中包含非标准字符的对象。有关更多信息，请参阅《*Amazon S3 用户指南*》中的[对象键命名指南](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-guidelines)。
+  DataSync 与使用[版本控制](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Versioning.html)的 S3 存储桶一起使用时，请记住以下几点：
  + 传输到 S3 存储桶时，如果在源位置修改了对象，则 DataSync 会创建该对象的新版本。这会导致额外收费。
  + 对象在源存储桶和目标存储桶 IDs 中的版本不同。
  + 只有每个对象的最新版本才会从源存储桶传输。早期版本不会复制到目标。
+ 最初将数据从 S3 存储桶传输到文件系统（例如 NFS 或 Amazon FSx）后，后续运行的同一 DataSync 任务将不包括已修改但大小与第一次传输时大小相同的对象。

## 为 Amazon S3 通用存储桶创建传输位置
<a name="create-s3-location-how-to"></a>

要创建用于传输的位置，您需要一个现有的 S3 通用存储桶。如果还没有存储桶，请参阅[《Amazon S3 用户指南》**](https://docs.aws.amazon.com/AmazonS3/latest/userguide/GetStartedWithS3.html)。

**重要**  
在创建位置之前，请确保阅读以下部分：  
[Amazon S3 传输的存储类别注意事项](#using-storage-classes)
[使用时评估 S3 请求成本 DataSync](#create-s3-location-s3-requests)

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

1. 打开 AWS DataSync 控制台，网址为[https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/)。

1. 在左侧导航窗格中，展开**数据传输**，然后选择 **位置**和 **创建位置**。

1. 对于**位置类型**，选择 **Amazon S3**，然后选择**通用存储桶**。

1. 对于 **S3 URI**，输入或选择要用于相应位置的存储桶和前缀。
**警告**  
DataSync 无法传输前缀以斜杠 (`/`) 开头或包含`//``/./`、或`/../`模式的对象。例如：  
`/photos`
`photos//2006/January`
`photos/./2006/February`
`photos/../2006/March`

1. 对于 **用作目标时的 S3 存储类别**，请选择您希望对象在以 Amazon S3 为传输目标时使用的存储类别。

   有关更多信息，请参阅 [Amazon S3 传输的存储类别注意事项](#using-storage-classes)。

1. 对于 **IAM 角色**，执行以下操作之一：
   + 选择 “**自动生成**” DataSync 以自动创建具有访问 S3 存储桶所需权限的 IAM 角色。

     如果 DataSync 之前为此 S3 存储桶创建了 IAM 角色，则默认情况下会选择该角色。
   + 选择您创建的自定义 IAM 角色。有关更多信息，请参阅 [为创建 IAM 角色 DataSync 以访问您的 Amazon S3 位置](#create-role-manually)。

1. （可选）选择**添加新标签**以标记您的 Amazon S3 位置。

   标签可帮助您管理、筛选和搜索资源。我们建议为您的位置创建一个名称标签。

1. 选择**创建位置**。

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

1. 复制以下 `create-location-s3` 命令：

   ```
   aws datasync create-location-s3 \
       --s3-bucket-arn 'arn:aws:s3:::amzn-s3-demo-bucket' \
       --s3-storage-class 'your-S3-storage-class' \
       --s3-config 'BucketAccessRoleArn=arn:aws:iam::account-id:role/role-allowing-datasync-operations' \
       --subdirectory /your-prefix-name
   ```

1. 对于 `--s3-bucket-arn`，指定要用作位置的 S3 存储桶的 ARN。

1. 对于 `--s3-storage-class`，指定您希望对象在以 Amazon S3 为传输目标时使用的存储类别。

1. 对于`--s3-config`，请指定 DataSync 需要访问您的存储桶的 IAM 角色的 ARN。

   有关更多信息，请参阅 [为创建 IAM 角色 DataSync 以访问您的 Amazon S3 位置](#create-role-manually)。

1. 对于`--subdirectory`，在 S3 存储桶中指定 DataSync 读取或写入的前缀（取决于存储桶是源位置还是目标位置）。
**警告**  
DataSync 无法传输前缀以斜杠 (`/`) 开头或包含`//``/./`、或`/../`模式的对象。例如：  
`/photos`
`photos//2006/January`
`photos/./2006/February`
`photos/../2006/March`

1. 运行 `create-location-s3` 命令。

   如果命令成功，您将收到一条响应，显示您创建位置的 ARN。例如：

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

您可以将此位置用作 DataSync 任务的来源或目的地。

## 为 S3 on Outposts 存储桶创建传输位置
<a name="create-s3-location-outposts-how-to"></a>

要创建用于传输的位置，您需要一个现有的 Amazon S3 on Outposts 存储桶。如果还没有存储桶，请参阅[《Amazon S3 on Outposts 用户指南》**](https://docs.aws.amazon.com/AmazonS3/latest/s3-outposts/S3onOutposts.html)。

你还需要一个 DataSync 代理。有关更多信息，请参阅 [在上部署基本模式代理 AWS Outposts](deploy-agents.md#outposts-agent)。

从包含大型数据集（例如数十万或数百万个对象）的 S3 on Outposts 存储桶前缀传输时，您的 DataSync 任务可能会超时。为避免这种情况，可以考虑使用[DataSync 清单](transferring-with-manifest.md)，它允许您指定需要传输的确切对象。

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

1. 打开 AWS DataSync 控制台，网址为[https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/)。

1. 在左侧导航窗格中，展开**数据传输**，然后选择 **位置**和 **创建位置**。

1. 对于**位置类型**，选择 **Amazon S3**，然后选择 **Outposts 存储桶**。

1. 对于 **S3 存储桶**，请选择一个可以访问 S3 on Outposts 存储桶的 Amazon S3 接入点。

   有关更多信息，请参阅 [https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html)。

1. 对于 **用作目标时的 S3 存储类别**，请选择您希望对象在以 Amazon S3 为传输目标时使用的存储类别。

   有关更多信息，请参阅[Amazon S3 传输的存储类别注意事项](#using-storage-classes)。 DataSync 默认情况下，在 Outposts 上使用亚马逊 S3 的 S3 Outposts 存储类。

1. 对于**代理**，请在 Outpos DataSync t 上指定代理的亚马逊资源名称 (ARN)。

1. 对于**文件夹**，在 S3 存储桶中输入 DataSync 读取或写入的前缀（取决于存储桶是源位置还是目标位置）。
**警告**  
DataSync 无法传输前缀以斜杠 (`/`) 开头或包含`//``/./`、或`/../`模式的对象。例如：  
`/photos`
`photos//2006/January`
`photos/./2006/February`
`photos/../2006/March`

1. 对于 **IAM 角色**，执行以下操作之一：
   + 选择 “**自动生成**” DataSync 以自动创建具有访问 S3 存储桶所需权限的 IAM 角色。

     如果 DataSync 之前为此 S3 存储桶创建了 IAM 角色，则默认情况下会选择该角色。
   + 选择您创建的自定义 IAM 角色。有关更多信息，请参阅 [为创建 IAM 角色 DataSync 以访问您的 Amazon S3 位置](#create-role-manually)。

1. （可选）选择**添加新标签**以标记您的 Amazon S3 位置。

   标签可帮助您管理、筛选和搜索资源。我们建议为您的位置创建一个名称标签。

1. 选择**创建位置**。

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

1. 复制以下 `create-location-s3` 命令：

   ```
   aws datasync create-location-s3 \
       --s3-bucket-arn 'bucket-access-point' \
       --s3-storage-class 'your-S3-storage-class' \
       --s3-config 'BucketAccessRoleArn=arn:aws:iam::account-id:role/role-allowing-datasync-operations' \
       --subdirectory /your-folder \
       --agent-arns 'arn:aws:datasync:your-region:account-id::agent/agent-agent-id'
   ```

1. 对于 `--s3-bucket-arn`，指定一个可访问 Amazon S3 on Outposts 存储桶的 Amazon S3 接入点。

   有关更多信息，请参阅 [https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html)。

1. 对于 `--s3-storage-class`，指定您希望对象在以 Amazon S3 为传输目标时使用的存储类别。

   有关更多信息，请参阅[Amazon S3 传输的存储类别注意事项](#using-storage-classes)。 DataSync 默认情况下，在 Outposts 上使用 S3 Outposts 存储类作为 S3。

1. 对于`--s3-config`，请指定 DataSync 需要访问您的存储桶的 IAM 角色的 ARN。

   有关更多信息，请参阅 [为创建 IAM 角色 DataSync 以访问您的 Amazon S3 位置](#create-role-manually)。

1. 对于`--subdirectory`，在 S3 存储桶中指定 DataSync 读取或写入的前缀（取决于存储桶是源位置还是目标位置）。
**警告**  
DataSync 无法传输前缀以斜杠 (`/`) 开头或包含`//``/./`、或`/../`模式的对象。例如：  
`/photos`
`photos//2006/January`
`photos/./2006/February`
`photos/../2006/March`

1. 对于`--agent-arns`，请指定前哨基地上 DataSync 特工的 ARN。

1. 运行 `create-location-s3` 命令。

   如果命令成功，您将收到一条响应，显示您创建位置的 ARN。例如：

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

您可以将此位置用作 DataSync 任务的来源或目的地。

## 亚马逊 S3 跨境传输 AWS 账户
<a name="create-s3-location-cross-transfers"></a>

使用 DataSync，您可以将数据移入或移出[不同 AWS 账户](working-with-locations.md#working-with-locations-across-accounts)的 S3 存储桶。有关更多信息，请参阅以下教程：
+ [将数据从本地存储传输到 Amazon S3 AWS 账户](s3-cross-account-transfer.md)
+ [将数据从亚马逊 S3 传输到亚马逊 S3 AWS 账户](tutorial_s3-s3-cross-account-transfer.md)

## Amazon S3 在商业版和商业版之间转移 AWS GovCloud (US) Regions
<a name="create-s3-location-govcloud"></a>

默认情况下， DataSync 不会在商业版和 S3 存储桶之间进行传输。 AWS GovCloud (US) Regions但您仍然可以在传输中为一个 S3 存储桶创建对象存储位置，从而设置这种传输。无论使用不使用代理，都可以执行这种类型的传输。如果使用代理，必须将任务配置为**基本**模式。要在没有代理的情况下进行传输，就必须使用**增强**模式。

**开始之前**：请确保了解在区域间进行传输的成本影响。有关更多信息，请参阅[AWS DataSync 定价](https://aws.amazon.com/datasync/pricing/)。

**Contents**
+ [提供对您的对象存储位置的存储桶的 DataSync 访问权限](#create-s3-location-govcloud-iam)
+ [创建您的 DataSync 代理（可选）](#create-s3-location-govcloud-create-agent)
+ [为 S3 存储桶创建对象存储位置](#create-s3-location-govcloud-how-to)

### 提供对您的对象存储位置的存储桶的 DataSync 访问权限
<a name="create-s3-location-govcloud-iam"></a>

在为此转移创建对象存储位置时，您必须提供有权访问 DataSync 该位置的 S3 存储桶的 IAM 用户的证书。有关更多信息，请参阅 [所需的权限](#create-s3-location-required-permissions)。

**警告**  
IAM 用户具有长期凭证，这会带来安全风险。为帮助减轻这种风险，我们建议仅向这些用户提供执行任务所需的权限，并在不再需要这些用户时将其移除。

### 创建您的 DataSync 代理（可选）
<a name="create-s3-location-govcloud-create-agent"></a>

如果要使用**基本**模式运行传输，就需要使用代理。由于您要在商业版和之间进行转移 AWS GovCloud (US) Region，因此您可以将 DataSync 代理作为 Amazon EC2 实例部署到其中一个区域。我们建议您的代理使用 VPC 服务端点，以避免将数据传输至公共互联网时产生的费用。有关更多信息，请参阅 [Amazon EC2 数据传输定价](https://aws.amazon.com/ec2/pricing/on-demand/#Data_Transfer)。

选择以下情景之一，描述如何根据您计划运行 DataSync 任务的区域创建代理。

#### 在商业区域运行 DataSync 任务时
<a name="using-datasync-in-commercial"></a>

下图显示了您的 DataSync 任务和代理位于商业区域的转移。

![\[部署在商业区域的 DataSync 代理，用于跨区域传输到中的 S3 存储桶。 AWS GovCloud (US) Region\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/images/s3-task-in-commercial.png)



| 参考 | 说明 | 
| --- | --- | 
| 1 | 在您运行 DataSync任务的商业区域中，数据从源 S3 存储桶传输。源存储桶配置为商业区域中的 [Amazon S3 位置](#create-s3-location-how-to)。 | 
| 2 | 通过代理传输数据， DataSync 代理位于 VPC 服务终端节点和[网络接口所在的 VPC 和子网](required-network-interfaces.md)中。 | 
| 3 | 数据传输至 AWS GovCloud (US) Region中的目标 S3 存储桶。目标存储桶配置为商业区域中的[对象存储位置](#create-s3-location-govcloud-how-to)。 | 

您也可以使用相同的设置将相反的方向从转移 AWS GovCloud (US) Region 到商业区域。

**创建您的 DataSync 代理**

1. 在您的商业区域[部署 Amazon EC2 代理](deploy-agents.md#ec2-deploy-agent-how-to)。

1. 将您的代理配置为使用 [VPC 服务端点](choose-service-endpoint.md#datasync-in-vpc)。

1. [激活您的代理](activate-agent.md)。

#### 在 GovCloud （美国）地区运行 DataSync 任务时
<a name="using-datasync-in-govcloud-1"></a>

下图显示了您的 DataSync 任务和代理所在的转移 AWS GovCloud (US) Region。

![\[部署在 AWS GovCloud (US) Region 或跨区域中的 DataSync 代理传输到同 AWS GovCloud (US) Region一个存储桶中的 S3 存储桶。\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/images/s3-task-in-govcloud-1.png)



| 参考 | 说明 | 
| --- | --- | 
| 1 | 数据从商业区域的源 S3 存储桶传输到您正在运行 DataSync 任务 AWS GovCloud (US) Region 的地方。源存储桶配置为 AWS GovCloud (US) Region中的[对象存储位置](#create-s3-location-govcloud-how-to)。 | 
| 2 | 在中 AWS GovCloud (US) Region，通过 VPC 服务终端节点和[网络接口所在的同一 VPC 和子网](required-network-interfaces.md)中的 DataSync 代理进行数据传输。 | 
| 3 | 数据传输至 AWS GovCloud (US) Region中的目标 S3 存储桶。目标存储桶被配置为 AWS GovCloud (US) Region中的 [Amazon S3 位置](#create-s3-location-how-to)。 | 

您也可以使用相同的设置将相反的方向从转移 AWS GovCloud (US) Region 到商业区域。

**创建您的 DataSync 代理**

1. 在您的@@ [中部署 Amazon EC2 代理](deploy-agents.md#ec2-deploy-agent-how-to) AWS GovCloud (US) Region。

1. 将您的代理配置为使用 [VPC 服务端点](choose-service-endpoint.md#datasync-in-vpc)。

1. [激活您的代理](activate-agent.md)。

如果您的数据集具有高度可压缩性，您可以在商业区域创建代理，同时在 AWS GovCloud (US) Region运行任务，这样可能会降低成本。与通常情况相比，创建此代理需要进行更多的设置，包括为在商业区域使用代理做好准备。有关为此设置创建代理的信息，请参阅[AWS GovCloud (US) 使用迁入和移出数据 AWS DataSync](https://aws.amazon.com/blogs/publicsector/move-data-in-out-aws-govcloud-datasync/)博客。

### 为 S3 存储桶创建对象存储位置
<a name="create-s3-location-govcloud-how-to"></a>

您需要为未运行 DataSync 任务的区域中的 S3 存储桶设置一个对象存储位置。

#### 使用控制 DataSync 台
<a name="create-s3-location-govcloud-how-to-console"></a>

1. 打开 AWS DataSync 控制台，网址为[https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/)。

1. 确保您处于计划运行任务的同一区域。

1. 在左侧导航窗格中，展开**数据传输**，然后选择 **位置**和 **创建位置**。

1. 对于 **位置类型**，选择 **对象存储**。

1. 对于**代理**，请选择您为此转移创建的 DataSync 代理。

1. 对于**服务器**，使用以下格式之一为存储桶输入 Amazon S3 端点：
   + **商业区域存储桶：**`s3.your-region.amazonaws.com`
   + **AWS GovCloud (US) Region 存储桶**：`s3.your-gov-region.amazonaws.com`

   有关 Amazon S3 端点的列表，请参阅 *[AWS 一般参考](https://docs.aws.amazon.com/general/latest/gr/s3.html)*。

1. 对于**存储桶**名称，请输入 S3 存储桶的名称。

1. 对于**文件夹**，在 S3 存储桶中输入 DataSync 读取或写入的前缀（取决于存储桶是源位置还是目标位置）。
**警告**  
DataSync 无法传输前缀以斜杠 (`/`) 开头或包含`//``/./`、或`/../`模式的对象。例如：  
`/photos`
`photos//2006/January`
`photos/./2006/February`
`photos/../2006/March`

1. 选择**需要凭证**，然后执行以下操作：
   + 对于**访问密钥**，输入可以访问存储桶的 [IAM 用户](#create-s3-location-govcloud-iam)的访问密钥。
   + 对于**私有密钥**，输入同一 IAM 用户的私有密钥。

1. （可选）选择 **添加标签**来标记您的位置。

   标签可帮助您管理、筛选和搜索资源。我们建议为您的位置创建一个名称标签。

1. 选择**创建位置**。

#### 使用 AWS CLI
<a name="create-s3-location-govcloud-how-to-cli"></a>

1. 复制以下 `create-location-object-storage` 命令：

   ```
   aws datasync create-location-object-storage \
       --server-hostname s3-endpoint \
       --bucket-name amzn-s3-demo-bucket \
       --agent-arns arn:aws:datasync:your-region:123456789012:agent/agent-01234567890deadfb
   ```

1. 对于 `--server-hostname` 参数，使用以下格式之一，为存储桶指定 Amazon S3 端点：
   + **商业区域存储桶：**`s3.your-region.amazonaws.com`
   + **AWS GovCloud (US) Region 存储桶**：`s3.your-gov-region.amazonaws.com`

   对于端点中的区域，确保指定的区域与计划运行任务的区域相同。

   有关 Amazon S3 端点的列表，请参阅 *[AWS 一般参考](https://docs.aws.amazon.com/general/latest/gr/s3.html)*。

1. 对于 `--bucket-name` 参数，指定 S3 存储桶的名称。

1. 在`--agent-arns`参数中，指定您为此传输创建的 DataSync代理。

1. 对于 `--access-key` 参数，指定可以访问存储桶的 [IAM 用户](#create-s3-location-govcloud-iam)的访问密钥。

1. 对于 `--secret-key` 参数，输入同一 IAM 用户的私有密钥。

1. （可选）在`--subdirectory`参数中，在 S3 存储桶中指定 DataSync 读取或写入的前缀（取决于存储桶是源位置还是目标位置）。
**警告**  
DataSync 无法传输前缀以斜杠 (`/`) 开头或包含`//``/./`、或`/../`模式的对象。例如：  
`/photos`
`photos//2006/January`
`photos/./2006/February`
`photos/../2006/March`

1. （可选）对于 `--tags` 参数，指定代表位置资源标签的键值对。

   标签可帮助您管理、筛选和搜索资源。我们建议为您的位置创建一个名称标签。

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

   您会收到一条回复，表明您刚刚创建的位置 ARN。

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

您可以将此位置用作 DataSync 任务的来源或目的地。对于此传输中的其他 S3 存储桶，[创建一个 Amazon S3 位置](#create-s3-location-how-to)。

## 后续步骤
<a name="create-s3-location-next-steps"></a>

后续可能采取的一些步骤包括：

1. 如果需要，创建其他位置。有关更多信息，请参阅 [我可以在哪里传输我的数据 AWS DataSync？](working-with-locations.md)。

1. [配置 DataSync 任务设置](task-options.md)，例如要传输哪些文件、如何处理元数据以及其他选项。

1. 为您的 DataSync任务@@ [设定时间表](task-scheduling.md)。

1. 为您的 DataSync 任务@@ [配置监控](monitoring-overview.md)。

1. [开始](run-task.md)任务。

# 使用 Amazon EFS 配置 AWS DataSync 传输
<a name="create-efs-location"></a>

要将数据传输到您的 Amazon EFS 文件系统或从中传输数据，您必须创建一个 AWS DataSync 传输*位置*。 DataSync 可以将此位置用作传输数据的源或目的地。

## 提供 DataSync 对 Amazon EFS 文件系统的访问权限
<a name="create-efs-location-access"></a>

[创建位置](#create-efs-location-how-to)需要了解 DataSync 如何访问您的存储空间。对于 Amazon EFS，使用[网络接口](required-network-interfaces.md)以根用户身份从虚拟私有云 (VPC) DataSync 挂载您的文件系统。

**Contents**
+ [确定挂载目标的子网和安全组](#create-efs-location-mount-target)
+ [访问受限文件系统](#create-efs-location-iam)
  + [为文件系统访问创建 DataSync IAM 角色](#create-efs-location-iam-role)
  + [允许 DataSync 访问的文件系统策略示例](#create-efs-location-iam-policy)

### 确定挂载目标的子网和安全组
<a name="create-efs-location-mount-target"></a>

创建位置时，您可以指定允许连接 DataSync 到 Amazon EFS 文件系统的[挂载目标](https://docs.aws.amazon.com/efs/latest/ug/accessing-fs.html)之一的子网和安全组。

指定的子网必须位于：
+ 文件系统所在的相同 VPC 中。
+ 文件系统至少一个挂载目标所在的相同可用区中。

**注意**  
您无需指定包含文件系统挂载目标的子网。

您指定的安全组必须允许网络文件系统（NFS）端口 2049 上的入站流量。有关为挂载目标创建和更新安全组的信息，请参阅 [https://docs.aws.amazon.com/efs/latest/ug/network-access.html](https://docs.aws.amazon.com/efs/latest/ug/network-access.html)。

**指定与挂载目标相关联的安全组**  
您可以指定与文件系统挂载目标之一相关联的安全组。从网络管理的角度来看，我们推荐这种方法。

**指定与挂载目标无关联的安全组**  
您还可以指定与文件系统的挂载目标无关联的安全组。但是，此安全组必须能够与挂载目标的安全组进行通信。  
例如，您可以通过以下方式在安全组 D（用于 DataSync）和安全组 M（用于挂载目标）之间创建关系：  
+ 您在创建位置时指定的安全组 D 必须具有一条规则，允许 NFS 端口 2049 上与安全组 M 的出站连接。
+ 与挂载目标相关联的安全组 M 必须允许安全组 D 通过 NFS 端口 2049 进行的入站访问。

**查找挂载目标的安全组**

以下说明可以帮助您识别要 DataSync 用于传输的 Amazon EFS 文件系统挂载目标的安全组。

1. 在中 AWS CLI，运行以下`describe-mount-targets`命令。

   ```
   aws efs describe-mount-targets \
       --region file-system-region  \
       --file-system-id file-system-id
   ```

   此命令将返回有关文件系统挂载目标的信息（与以下示例输出类似）。

   ```
   {
       "MountTargets": [
           {
               "OwnerId": "111222333444",
               "MountTargetId": "fsmt-22334a10",
               "FileSystemId": "fs-123456ab",
               "SubnetId": "subnet-f12a0e34",
               "LifeCycleState": "available",
               "IpAddress": "11.222.0.123",
               "NetworkInterfaceId": "eni-1234a044"
           }
       ]
   }
   ```

1. 记下要使用的 `MountTargetId` 值。

1. 使用 `MountTargetId` 运行以下 `describe-mount-target-security-groups` 命令，查看挂载目标的安全组。

   ```
   aws efs describe-mount-target-security-groups \
       --region file-system-region \
       --mount-target-id mount-target-id
   ```

在[创建位置](#create-efs-location-how-to)时，指定此安全组。

### 访问受限文件系统
<a name="create-efs-location-iam"></a>

DataSync 可以与限制通过接入[点和 [IAM 策略](https://docs.aws.amazon.com/efs/latest/ug/iam-access-control-nfs-efs.html)进行访问](https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html)的 Amazon EFS 文件系统进行传输或传出。

**注意**  
[如果通过[强制 DataSync 使用用户身份](https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html#enforce-identity-access-points)的接入点访问目标文件系统，则如果将 DataSync 任务配置 IDs 为复制所有权，则不会保留源数据的 POSIX 用户和组。](configure-metadata.md)而是将传输的文件和文件夹设置为接入点的用户和群组 IDs。发生这种情况时，任务验证会失败，因为 DataSync 检测到源位置和目标位置的元数据不匹配。

**Contents**
+ [为文件系统访问创建 DataSync IAM 角色](#create-efs-location-iam-role)
+ [允许 DataSync 访问的文件系统策略示例](#create-efs-location-iam-policy)

#### 为文件系统访问创建 DataSync IAM 角色
<a name="create-efs-location-iam-role"></a>

如果您的 Amazon EFS 文件系统通过 IAM 策略限制访问，则可以创建一个 IAM 角色来提供从文件系统读取或写入数据的 DataSync 权限。然后，您可能需要在[文件系统策略](#create-efs-location-iam-policy)中指定该角色。

**创建 DataSync IAM 角色**

1. 使用 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 打开 IAM 控制台。

1. 在左侧导航窗格的**访问管理**下，选择**角色**，然后选择**创建角色**。

1. 在**选择可信实体**中的**可信实体类型**下，选择**自定义信任策略**。

1. 将以下 JSON 粘贴到策略编辑器中：

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [{
           "Effect": "Allow",
           "Principal": {
               "Service": "datasync.amazonaws.com"
           },
           "Action": "sts:AssumeRole"
       }]
   }
   ```

------

1. 选择**下一步**。在**添加权限**页面上，选择**下一步**。

1. 输入角色名称，然后选择**创建角色**。

请在[创建位置](#create-efs-location-how-to)时指定此角色。

#### 允许 DataSync 访问的文件系统策略示例
<a name="create-efs-location-iam-policy"></a>

以下示例文件系统策略显示了如何限制对 Amazon EFS 文件系统的访问（在策略中标识为`fs-1234567890abcdef0`），但仍允许 DataSync 通过名为的 IAM 角色进行访问`MyDataSyncRole`：

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "ExampleEFSFileSystemPolicy",
    "Statement": [{
        "Sid": "AccessEFSFileSystem",
        "Effect": "Allow",
        "Principal": {
            "AWS": "arn:aws:iam::111122223333:role/MyDataSyncRole"
        },
        "Action": [
            "elasticfilesystem:ClientMount",
            "elasticfilesystem:ClientWrite",
            "elasticfilesystem:ClientRootAccess"
        ],
        "Resource": "arn:aws:elasticfilesystem:us-east-1:111122223333:file-system/fs-1234567890abcdef0",
        "Condition": {
            "Bool": {
                "aws:SecureTransport": "true"
            },
            "StringEquals": {
                "elasticfilesystem:AccessPointArn": "arn:aws:elasticfilesystem:us-east-1:111122223333:access-point/fsap-abcdef01234567890"
            }
        }
    }]
}
```

------
+ `Principal`— 指定一个授予文件系统访问 DataSync 权限的 [IAM 角色](#create-efs-location-iam)。
+ `Action`— 授予 DataSync root 用户访问权限并允许其读取和写入文件系统。
+ `aws:SecureTransport`：要求 NFS 客户端在连接到文件系统时使用 TLS。
+ `elasticfilesystem:AccessPointArn`：仅允许通过特定的接入点访问文件系统。

## Amazon EFS 传输的网络注意事项
<a name="efs-network-considerations"></a>

VPCs 与一起使用的 DataSync 必须具有默认租期。 VPCs 不支持专用租赁。

## Amazon EFS 传输的性能注意事项
<a name="efs-considerations"></a>

Amazon EFS 文件系统的吞吐量模式可能会在传输期间影响传输持续时长和文件系统性能。请考虑以下事项：
+ 为了获得最佳效果，建议使用弹性吞吐量模式。如果不使用弹性吞吐量模式，传输可能需要更长的时间。
+ 如果您使用突增吞吐量模式，则文件系统应用程序的性能可能会受到影响，因为会 DataSync 消耗文件系统的突发积分。
+ 如何[配置 DataSync 以验证传输的数据](configure-data-verification-options.md)可能会影响文件系统的性能和数据访问成本。

有关更多信息，请参阅《Amazon Elastic File System 用户指南》**中的 [Amazon EFS 性能](https://docs.aws.amazon.com/efs/latest/ug/performance.html)，以及 [Amazon EFS 定价](https://aws.amazon.com/efs/pricing/)页面。

## 创建您的 Amazon EFS 传输位置
<a name="create-efs-location-how-to"></a>

要创建传输位置，您需要一个现有的 Amazon EFS 文件系统。如果您还没有 Amazon EFS 文件系统，请参阅《Amazon Elastic File System 用户指南》**中的 [Amazon EFS 入门](https://docs.aws.amazon.com/efs/latest/ug/getting-started.html)。

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

1. 打开 AWS DataSync 控制台，网址为[https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/)。

1. 在左侧导航窗格中，展开**数据传输**，然后选择 **位置**和 **创建位置**。

1. 对于**位置类型**，请选择 **Amazon EFS 文件系统**。

   您可在稍后将此位置配置为源或目标。

1. 对于**文件系统**，选择要用作端点的 Amazon EFS 文件系统。

1. 对于**挂载路径**，输入 Amazon EFS 文件系统的挂载路径。

   这指定了文件系统上 DataSync 读取或写入数据的位置（取决于这是源位置还是目标位置）。

   默认情况下， DataSync 使用根目录（如果您为 **EFS [接入点](https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html)设置提供了一个接入点，则使用接入点**）。也可以使用正斜杠指定子目录（例如，`/path/to/directory`）。

1. 对于**子网**，请选择 DataSync 要在其中创建用于管理数据传输流量的[网络接口](required-network-interfaces.md)的子网。

   子网必须位于：
   + 文件系统所在的相同 VPC 中。
   + 与至少一个文件系统挂载目标位于同一可用区中。
**注意**  
您无需指定包含文件系统挂载目标的子网。

1. 对于**安全组**，选择与您的 Amazon EFS 文件系统的挂载目标相关联的安全组。您可以选择多个安全组。
**注意**  
您指定的安全组必须允许 NFS 端口 2049 上的入站流量。有关更多信息，请参阅 [确定挂载目标的子网和安全组](#create-efs-location-mount-target)。

1. 对于**传输中加密**，请选择在 DataSync 向文件系统传输数据或从文件系统传输数据时是否要使用传输层安全 (TLS) 加密。
**注意**  
您必须启用此设置，才能在您的 Amazon EFS 位置配置接入点、IAM 角色或两者。

1. （可选）对于 **EFS 接入点**，请选择 DataSync 可用于装载文件系统的接入点。

   有关更多信息，请参阅 [访问受限文件系统](#create-efs-location-iam)。

1. （可选）对于 **IAM 角色**，请指定 DataSync 允许访问您的文件系统的角色。

   有关创建该角色的信息，请参阅[为文件系统访问创建 DataSync IAM 角色](#create-efs-location-iam-role)。

1. （可选）选择**添加标签**来标记您的文件系统。

   *标签*是帮助您管理、筛选和搜索位置的键值对。

1. 选择**创建位置**。

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

1. 复制以下 `create-location-efs` 命令：

   ```
   aws datasync create-location-efs \
       --efs-filesystem-arn 'arn:aws:elasticfilesystem:region:account-id:file-system/file-system-id' \
       --subdirectory /path/to/your/subdirectory \
       --ec2-config SecurityGroupArns='arn:aws:ec2:region:account-id:security-group/security-group-id',SubnetArn='arn:aws:ec2:region:account-id:subnet/subnet-id' \
       --in-transit-encryption TLS1_2 \
       --access-point-arn 'arn:aws:elasticfilesystem:region:account-id:access-point/access-point-id' \
       --file-system-access-role-arn 'arn:aws:iam::account-id:role/datasync-efs-access-role
   ```

1. 对于 `--efs-filesystem-arn`，指定要向其传输数据或从中传出数据的 Amazon EFS 文件系统的 Amazon 资源名称（ARN）。

1. 对于 `--subdirectory`，指定文件系统的挂载路径。

   这是在文件系统上 DataSync 读取或写入数据的地方（取决于这是源位置还是目标位置）。

   默认情况下， DataSync 使用根目录（或[接入点](https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html)，如果您提供了接入点`--access-point-arn`）。也可以使用正斜杠指定子目录（例如，`/path/to/directory`）。

1. 对于 `--ec2-config`，执行以下操作：
   + 对于 `SecurityGroupArns`，指定与文件系统挂载目标相关联的安全组 ARN。您可以指定多个安全组。
**注意**  
您指定的安全组必须允许 NFS 端口 2049 上的入站流量。有关更多信息，请参阅 [确定挂载目标的子网和安全组](#create-efs-location-mount-target)。
   + 对于`SubnetArn`，请指定 DataSync 要在其中创建用于管理数据传输流量的[网络接口](required-network-interfaces.md)的子网的 ARN。

     子网必须位于：
     + 文件系统所在的相同 VPC 中。
     + 与至少一个文件系统挂载目标位于同一可用区中。
**注意**  
您无需指定包含文件系统挂载目标的子网。

1. 对于`--in-transit-encryption`，请指定在传输层安全 (TLS) DataSync 向文件系统传输数据或从文件系统传输数据时是否要使用传输层安全 (TLS) 加密。
**注意**  
您必须将其设置为 `TLS1_2`，才能在您的 Amazon EFS 位置配置接入点、IAM 角色或两者。

1. （可选）对于`--access-point-arn`，请指定 DataSync 可用于挂载文件系统的接入点的 ARN。

   有关更多信息，请参阅 [访问受限文件系统](#create-efs-location-iam)。

1. （可选）对于`--file-system-access-role-arn`，请指定允许 DataSync 访问您的文件系统的 IAM 角色的 ARN。

   有关创建该角色的信息，请参阅[为文件系统访问创建 DataSync IAM 角色](#create-efs-location-iam-role)。

1. 运行 `create-location-efs` 命令。

   如果命令成功，您将收到一条响应，显示您创建位置的 ARN。例如：

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

# 使用为 Window FSx s 文件服务器配置传输
<a name="create-fsx-location"></a>

要将数据传输到您的 Amazon f FSx or Windows 文件服务器文件系统或从中传输数据，您必须创建一个 AWS DataSync 传输*位置*。 DataSync 可以将此位置用作传输数据的源或目的地。

## FSx 为 Windows 文件服务器文件系统提供 DataSync 访问权限
<a name="create-fsx-location-access"></a>

DataSync 使用服务器消息块 (SMB) 协议连接到 FSx 适用于 Windows 的文件服务器文件系统，并使用[网络](required-network-interfaces.md)接口将其从您的虚拟私有云 (VPC) 挂载。

**注意**  
VPCs 与一起使用的 DataSync 必须具有默认租期。 VPCs 不支持专用租赁。

**Topics**
+ [所需的权限](#create-fsx-windows-location-permissions)
+ [所需的身份验证协议](#configuring-fsx-windows-authentication-protocols)
+ [DFS 命名空间](#configuring-fsx-windows-location-dfs)

### 所需的权限
<a name="create-fsx-windows-location-permissions"></a>

您必须 DataSync 为用户提供必要的权限才能装载和访问您 FSx 的 Windows 文件服务器文件、文件夹和文件元数据。

建议使用属于 Microsoft Active Directory 组的用户，以便管理文件系统。该组的具体情况取决于您的 Active Directory 设置：
+ 如果你在 Windows 文件服务器中 AWS Directory Service for Microsoft Active Directory 使用 FSx 和，则该用户必须是**AWS 委派 FSx 管理员**组的成员。
+ 如果你使用的是 Windows 文件服务器的自我管理的 Active Directory，则该用户必须是以下两个群组之一的成员： FSx 
  + **域管理员**组，这是默认的委派管理员组。
  + 一个自定义的委派管理员组，其用户权限 DataSync 允许复制对象所有权权限和 Windows 访问控制列表 (ACLs)。
**重要**  
部署文件系统后，无法更改委派管理员组。您必须重新部署文件系统或从备份中恢复文件系统，才能使用具有以下用户权限的自定义委派管理员组来复制元数据。 DataSync     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/create-fsx-location.html)
+ 如果要复制 Windows， ACLs 并且要在 SMB 文件服务器和 Windows 文件服务器文件系统之间 FSx 进行传输，或者在 Windows 文件服务器文件系统之间 FSx 进行传输，则您提供的用户 DataSync 必须属于同一 Active Directory 域或者其域之间具有 Active Directory 信任关系。

**警告**  
您 FSx 的 Windows 文件服务器文件系统的系统用户必须对文件系统中的所有文件夹具有**完全控制**权限。请勿更改此用户在您的文件夹上的 NTFS ACL 权限。如果这样做，则 DataSync 可以更改文件系统的权限，从而使您的文件共享无法访问并阻止文件系统备份可用。有关文件和文件夹级访问的更多信息，请参阅 A *[mazon for Window FSx s 文件服务器用户指南](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/limit-access-file-folder.html)*。

### 所需的身份验证协议
<a name="configuring-fsx-windows-authentication-protocols"></a>

你 FSx 的 Windows 文件服务器必须使用 NTLM 身份验证 DataSync 才能访问它。 DataSync无法访问使用 Kerberos 身份验证的文件服务器。

### DFS 命名空间
<a name="configuring-fsx-windows-location-dfs"></a>

DataSync 不支持 Microsoft 分布式文件系统 (DFS) 命名空间。我们建议您在创建 DataSync 位置时改为指定底层文件服务器或共享。

有关更多信息，请参阅《A *mazon for Windows 文件服务器用户指南》中的使用 DFS 命名空间对多个文件系统 FSx 进行*[分组](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/group-file-systems.html)。

## 创建你 FSx 的 Windows 文件服务器传输位置
<a name="create-fsx-location-how-to"></a>

在开始之前，请确保您的文件服务器中已有 FSx 适用于 Windows 的文件服务器 AWS 区域。有关更多信息，请参阅[亚马逊 *Windows 文件服务器用户指南 FSx 中的亚马逊 FSx *入门](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/getting-started.html)。

### 使用控制 DataSync 台
<a name="create-fsx-location-access-how-to-console"></a>

1. 打开 AWS DataSync 控制台，网址为[https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/)。

1. 在左侧导航窗格中，展开**数据传输**，然后选择 **位置**和 **创建位置**。

1. 对于**位置类型**，请选择 **Amazon FSx**。

1. 对于**FSx 文件系统**， FSx 请选择要用作位置的 Windows 文件服务器文件系统。

1. 在 “**共享名称**” 中，使用正斜杠输入适用 FSx 于 Windows 文件服务器的挂载路径。

   这指定了 DataSync 读取或写入数据的路径（取决于这是源位置还是目标位置）。

   您也可以包括子目录（例如，`/path/to/directory`）。

1. 对于**安全组**，最多选择五个 Amazon EC2 安全组，这些安全组提供对文件系统首选子网的访问权限。

   您选择的安全组必须能够与文件系统的安全组通信。有关为文件系统访问配置安全组的信息，请参阅 [https://docs.aws.amazon.com/fsx/latest/WindowsGuide/limit-access-security-groups.html](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/limit-access-security-groups.html)。
**注意**  
如果您选择的安全组不允许从其自身进行连接，请执行以下操作之一：  
将安全组配置为允许其在自身内部进行通信。
选择可与挂载目标的安全组进行通信的其他安全组。

1. 在 “**用户**” 中，输入可以访问您的 Windows 文件服务器 FSx 的用户名。

   有关更多信息，请参阅 [所需的权限](#create-fsx-windows-location-permissions)。

1. 对于**密码**，输入上述用户名所对应的密码。

1. （可选）在 “**域**” 中，输入您 FSx 的 Windows 文件服务器文件系统所属的 Windows 域的名称。

   如果您的环境中有多个 Active Directory 域，则配置此设置可确保这些域 DataSync 连接到正确的文件系统。

1. （可选）在 “**密钥**” 和 “**值**” 字段中输入值 FSx 以标记 Windows 文件服务器。

   标签可帮助您管理、筛选和搜索 AWS 资源。我们建议至少为您的位置创建一个名称标签。

1. 选择**创建位置**。

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

**要创建 FSx 适用于 Windows 文件服务器的位置，请使用 AWS CLI**
+ 使用以下命令创建 Amazon FSx 营业地点。

  ```
  aws datasync create-location-fsx-windows \
      --fsx-filesystem-arn arn:aws:fsx:region:account-id:file-system/filesystem-id \
      --security-group-arns arn:aws:ec2:region:account-id:security-group/group-id \
      --user smb-user --password password
  ```

  在 `create-location-fsx-windows` 命令中，执行以下操作：
  + `fsx-filesystem-arn`：指定要向其传输或从中传出数据的文件系统的 Amazon 资源名称（ARN）。
  + `security-group-arns`：指定最多五个 Amazon EC2 安全组的 ARN，这些安全组提供对文件系统首选子网的访问权限。

    您指定的安全组必须能够与文件系统的安全组通信。有关为文件系统访问配置安全组的信息，请参阅 [https://docs.aws.amazon.com/fsx/latest/WindowsGuide/limit-access-security-groups.html](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/limit-access-security-groups.html)。
**注意**  
如果您选择的安全组不允许从其自身进行连接，请执行以下操作之一：  
将安全组配置为允许其在自身内部进行通信。
选择可与挂载目标的安全组进行通信的其他安全组。
  +  AWS 区域 — 您指定的区域就是您的目标 Amazon FSx 文件系统所在的区域。

上一命令返回一个如下所示的位置 ARN。

```
{ 
    "LocationArn": "arn:aws:datasync:us-west-2:111222333444:location/loc-07db7abfc326c50fb" 
}
```

# 为 Lustr FSx e 配置 DataSync 传输
<a name="create-lustre-location"></a>

要将数据传输到或传出您的 Amazon FSx for Lustre 文件系统，您必须创建一个 AWS DataSync 传输*位置*。 DataSync 可以将此位置用作传输数据的源或目的地。

## FSx 为 Lustre 文件系统提供 DataSync 访问权限
<a name="create-lustre-location-access"></a>

DataSync 使用 Lustre 客户端访问你 FSx 的 for Lustre 文件系统。 DataSync需要访问您 FSx 的 for Lustre 文件系统上的所有数据。要获得此级别的访问权限，请使用用户 ID (UID) 和组 ID (GID) 以 root 用户身份 DataSync 装载文件系统。`0`

DataSync 使用[网络接口](required-network-interfaces.md)从您的虚拟私有云 (VPC) 挂载您的文件系统。 DataSync 代表您全面管理这些网络接口的创建、使用和删除。

**注意**  
VPCs 与一起使用的 DataSync 必须具有默认租期。 VPCs 不支持专用租赁。

## 创建您的 f FSx or Lustre 接送地点
<a name="create-lustre-location-how-to"></a>

要创建传输位置，您需要一个现有 FSx 的 For Lustre 文件系统。有关更多信息，请参阅《亚马逊 for [Lustre *用户指南》中的 Ama FSx z FSx on for Lustre* 入门](https://docs.aws.amazon.com/fsx/latest/LustreGuide/getting-started.html)。

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

1. 打开 AWS DataSync 控制台，网址为[https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/)。

1. 在左侧导航窗格中，展开**数据传输**，然后选择 **位置**和 **创建位置**。

1. 对于**位置类型**，请选择 **Amazon FSx**。

   您可在稍后将此位置配置为源或目标。

1. 对于**FSx 文件系统**，请选择要用作位置的 Lustre 文件系统。 FSx 

1. 在**装载路径**中，输入 for Lustre 文件系统的装载路径。 FSx 

   该路径可包含子目录。当该位置用作源时，会从装载路径 DataSync 读取数据。将该位置用作目标时， DataSync 会将所有数据写入装载路径。如果未提供子目录，则 DataSync 使用根目录 (`/`)。

1. 对于**安全组**，最多可选择五个安全组来访问您 FSx 的 for Lustre 文件系统。

   安全组必须能够访问文件系统的端口。文件系统还必须允许来自安全组的访问。

   有关安全组的更多信息，请参阅 [Amazon for *Lustre 用户指南中的使用 Amazon VPC FSx 进行*文件系统访问控制](https://docs.aws.amazon.com/fsx/latest/LustreGuide/limit-access-security-groups.html)。

1. （可选）在 “**密钥**” 和 “**值**” 字段中输入值以标记 Lustre 文件系统。 FSx 

   标签可帮助您管理、筛选和搜索 AWS 资源。我们建议至少为您的位置创建一个名称标签。

1. 选择**创建位置**。

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

**要创建 fo FSx r Lustre 位置，请使用 AWS CLI**
+ 使用以下命令创建 for Lustre 位置。 FSx 

  ```
  aws datasync create-location-fsx-lustre \
      --fsx-filesystem-arn arn:aws:fsx:region:account-id:file-system:filesystem-id \
      --security-group-arns arn:aws:ec2:region:account-id:security-group/group-id
  ```

  `create-location-fsx-lustre` 命令需要使用以下参数。
  + `fsx-filesystem-arn` – 要在其中读取或写入的文件系统的完全限定的 Amazon 资源名称 (ARN)。
  + `security-group-arns` – 将应用于文件系统首选子网的[网络接口](required-network-interfaces.md)的 Amazon EC2 安全组的 ARN。

上一命令返回位置 ARN，如下所示。

```
{
    "LocationArn": "arn:aws:datasync:us-west-2:111222333444:location/loc-07sb7abfc326c50fb"
}
```

# 为 OpenZFS 配置与亚马逊 FSx 的 DataSync 转账
<a name="create-openzfs-location"></a>

*要将数据传输到或传出您的亚马逊版 FSx OpenZFS 文件系统，您必须创建一个 AWS DataSync 传输位置。* DataSync 可以将此位置用作传输数据的源或目的地。

## FSx 为 OpenZFS 文件系统提供 DataSync 访问权限
<a name="create-openzfs-access"></a>

DataSync [使用网络接口从您的 FSx 虚拟私有云 (VPC) 挂载您的 for OpenZFS 文件系统。](required-network-interfaces.md) DataSync代表您全面管理这些网络接口的创建、使用和删除。

**注意**  
VPCs 与一起使用的 DataSync 必须具有默认租期。 VPCs 不支持专用租赁。

## 配置 O FSx penZFS 文件系统授权
<a name="configure-openzfs-authorization"></a>

DataSync 以 NFS 客户端 FSx 的身份访问你的 for OpenZFS 文件系统，以 root 用户身份挂载文件系统，用户 ID (UID) 和组 ID (GID) 为。`0`

 DataSync 要复制所有文件元数据，必须使用`no_root_squash`在文件系统卷上配置 NFS 导出设置。但是，您可以将此级别的访问权限限制为仅限于特定的 DataSync 任务。

有关更多信息，请参阅 *Amazon FSx for OpenZFS 用户*指南中的[卷属性](https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/managing-volumes.html#volume-properties)。

### 配置特定于 DataSync （推荐）的 NFS 导出
<a name="configure-nfs-export-recommended"></a>

您可以为每个只能由您的 DataSync 任务访问的卷配置 NFS 导出。对您在 FSx 创建 for OpenZFS 位置时指定的装载路径的最新祖先卷执行此操作。

**要配置特定于 NFS 导出 DataSync**

1. 创建您的[DataSync任务](create-task-how-to.md)。

   这将创建您将在 NFS 导出设置中指定的任务的网络接口。

1. 使用 Amazon EC2 控制台或者，找到任务网络接口的私有 IP 地址 AWS CLI。

1. 对 FSx 于 OpenZFS 文件系统卷，请为任务的每个网络接口配置以下 NFS 导出设置：
   + **客户端地址**：输入网络接口的私有 IP 地址（例如 `10.24.34.0`）。
   + **NFS 选项**：输入 `rw,no_root_squash`。

### 为所有客户端配置 NFS 导出
<a name="configure-nfs-export-general"></a>

您可以指定允许所有客户端进行根访问的 NFS 导出。

**为所有客户端配置 NFS 导出**
+ 对于适用于 O FSx penZFS 的文件系统卷，请配置以下 NFS 导出设置：
  + **客户端地址**：输入 `*`。
  + **NFS 选项**：输入 `rw,no_root_squash`。

## FSx 为你的 OpenZFS 创建转账地点
<a name="create-openzfs-location-how-to"></a>

要创建该位置，您需要一个现有 FSx 的 OpenZFS 文件系统。如果你还没有，请参阅《亚马逊版 [OpenZFS 用户指南》中的 Ama FSx zon for O *penZ* FS 入门](https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/getting-started.html)。 FSx 

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

1. 打开 AWS DataSync 控制台，网址为[https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/)。

1. 在左侧的导航窗格中，选择**位置**，然后选择**创建位置**。

1. 对于**位置类型**，请选择 **Amazon FSx**。

   您可在稍后将此位置配置为源或目标。

1. 对于**FSx 文件系统**，请选择要用作位置的 OpenZFS 文件系统。 FSx 

1. 在**装载路径**中，输入您 FSx 的 for OpenZFS 文件系统的装载路径。

   路径必须以 `/fsx` 开头，并且可以是文件系统中任何现有的目录路径。当该位置用作源时，会从装载路径 DataSync 读取数据。将该位置用作目标时， DataSync 会将所有数据写入装载路径。如果未提供子目录，则 DataSync 使用根卷目录（例如`/fsx`）。

1. 对于**安全组**，最多可选择五个安全组，为你 FSx 的 openZFS 文件系统提供网络访问权限。

   安全组必须提供对用于 OpenZFS 文件系统的网络端口 FSx 的访问权限。文件系统必须允许来自安全组的网络访问。

   有关安全组的更多信息，请参阅亚马逊版 *OpenZFS 用户指南中的使用 Amazon VPC FSx 进行*[文件系统访问控制](https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/limit-access-security-groups.html)。

1. （可选）展开**其他设置**，对于 **NFS 版本**，选择用于访问文件系统的 DataSync NFS 版本。

   默认情况下， DataSync 使用 NFS 版本 4.1。

1. （可选）在 “**密钥**” 和 “值” 字段中输入**值**以标记 OpenZFS 文件系统。 FSx 

   标签可帮助您管理、筛选和搜索位置。我们建议至少为您的位置创建一个名称标签。

1. 选择**创建位置**。

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

**要创建 FSx 适用于 OpenZFS 的位置，请使用 AWS CLI**

1. 复制以下 `create-location-fsx-open-zfs` 命令：

   ```
   aws datasync create-location-fsx-open-zfs \
      --fsx-filesystem-arn arn:aws:fsx:region:account-id:file-system/filesystem-id \
      --security-group-arns arn:aws:ec2:region:account-id:security-group/group-id \
      --protocol NFS={}
   ```

1. 在命令中指定以下必要的选项：
   + 对于 `fsx-filesystem-arn`，请指定位置文件系统的完全限定的 Amazon 资源名称（ARN）。这包括您的文件系统所在 AWS 区域 的位置 AWS 账户、您的和文件系统 ID。
   + 对于`security-group-arns`，请指定 Amazon EC2 安全组的 ARN，该安全组提供对 OpenZFS 文件系统首选 FSx 子网的[网络接口](required-network-interfaces.md)的访问权限。这包括您的 Amazon EC2 实例所在的位置 AWS 账户、您的和安全组 ID。 AWS 区域 

     有关安全组的更多信息，请参阅《[亚马逊版 *OpenZFS 用户指南》中的 Amazon FSx * VPC 文件系统访问控制](https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/limit-access-security-groups.html)。
   + 对于`protocol`，请指定 DataSync用于访问您的文件系统的协议。 （DataSync 目前仅支持 NFS。）

1. 运行 命令。您会收到一条回复，表明您刚刚创建的位置。

   ```
   { 
       "LocationArn": "arn:aws:datasync:us-west-2:123456789012:location/loc-abcdef01234567890" 
   }
   ```

# 在 AMAZON 上 FSx 为 NetApp ONTAP 配置传输
<a name="create-ontap-location"></a>

要将数据传输到或传出您的 Amazon FSx for NetApp ONTAP 文件系统，您必须创建一个 AWS DataSync 传输*位置*。 DataSync 可以将此位置用作传输数据的源或目的地。

## FSx 为 ONTAP 文件系统提供 DataSync 访问权限
<a name="create-ontap-location-access"></a>

要访问 FSx 适用于 ONTAP 的文件系统，请使用虚拟私有云 (VPC) 中的[网络接口](required-network-interfaces.md)在文件系统上 DataSync 安装存储虚拟机 (SVM)。 DataSync 只有在创建包含您的 for ONTAP 位置的任务时，才会在文件系统的首选子网中创建这些网络接口。 FSx 

**注意**  
VPCs 与一起使用的 DataSync 必须具有默认租期。 VPCs 不支持专用租赁。

DataSync 可以使用网络文件系统 (NFS) 或服务器消息块 (SMB) 协议连接到 for ONTAP 文件系统的 SVM 并复制数据。 FSx 

**Topics**
+ [使用 NFS 协议](#create-ontap-location-supported-protocols)
+ [使用 SMB 协议](#create-ontap-location-smb)
+ [协议不受支持](#create-ontap-location-unsupported-protocols)
+ [选择正确的协议](#create-ontap-location-choosing-protocol)
+ [访问 SnapLock 卷](#create-ontap-location-snaplock)

### 使用 NFS 协议
<a name="create-ontap-location-supported-protocols"></a>

在 NFS 协议中， DataSync 使用用户 ID (UID) 和组 ID (GID) 为`AUTH_SYS`的安全机制向您的 SVM `0` 进行身份验证。

**注意**  
DataSync 目前仅支持 NFS 版本 3 和 ONTAP 位置。 FSx 

### 使用 SMB 协议
<a name="create-ontap-location-smb"></a>

在 SMB 协议中， DataSync 使用您提供的凭据对 SVM 进行身份验证。

**支持的 SMB 版本**  
默认情况下，根据与 SMB 文件服务器的协商 DataSync 自动选择 SMB 协议的版本。您也可以配置 DataSync 为使用特定版本，但我们建议只有 DataSync 在无法自动与 SMB 文件服务器协商时才这样做。出于安全起见，建议使用 SMB 版本 3.0.2 或更高版本。  
有关 DataSync 控制台和 API 中使用您的 for ONTAP 位置配置 SMB 版本的选项列表， FSx 请参阅下表：      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/create-ontap-location.html)

**所需的权限**  
您必须为 SVM 中的本地用户或 Microsoft Active Directory 中的域用户提供 DataSync 挂载和访问您的文件、文件夹和文件元数据的必要权限。  
如果您在 Active Directory 中提供用户，请注意以下事项：  
+ 如果您正在使用 AWS Directory Service for Microsoft Active Directory，则该用户必须是**AWS 委派 FSx管理员**组的成员。
+ 如果您使用的是自我管理的 Active Directory，则该用户必须属于以下两个组中的一个：
  + **域管理员**组，这是默认的委派管理员组。
  + 一个自定义的委派管理员组，其用户权限 DataSync 允许复制对象所有权权限和 Windows 访问控制列表 (ACLs)。
**重要**  
部署文件系统后，无法更改委派管理员组。您必须重新部署文件系统或从备份中恢复文件系统，才能使用具有以下用户权限的自定义委派管理员组来复制元数据。 DataSync     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/create-ontap-location.html)
+ 如果要复制 Windows ACLs 并在使用 SMB 的 ONTAP 文件系统（或其他使用 SMB 的文件系统）之间 FSx 进行传输，则您提供的用户 DataSync必须属于同一 Active Directory 域或其域之间具有 Active Directory 信任关系。

**所需的身份验证协议**  
 DataSync 要访问您的 SMB 共享，您的 FSx for ONTAP 文件系统必须使用 NTLM 身份验证。 DataSync 无法访问 FSx 使用 Kerberos 身份验证的 ONTAP 文件系统。

**DFS 命名空间**  
DataSync 不支持 Microsoft 分布式文件系统 (DFS) 命名空间。我们建议您在创建 DataSync 位置时改为指定底层文件服务器或共享。

### 协议不受支持
<a name="create-ontap-location-unsupported-protocols"></a>

DataSync 无法使用 iSCSI（互联网小型计算机系统接口）协议访问 FSx ONTAP 文件系统。

### 选择正确的协议
<a name="create-ontap-location-choosing-protocol"></a>

要在 ONTAP 迁移中 FSx 保留文件元数据，请将 DataSync源位置和目标位置配置为使用相同的协议。在支持的协议之间，SMB 保留保真度最高的元数据（有关详细信息，请参阅 [了解如何 DataSync 处理文件和对象元数据](metadata-copied.md)）。

从通过 NFS 为用户提供服务的 Unix (Linux) 服务器或网络附属存储（NAS）共享迁移时，请执行以下操作：

1. 为 Unix (Linux) 服务器或 NAS 共享[创建一个 NFS 位置](create-nfs-location.md)。（这将是您的源位置。）

1. 使用 Un FSx i [x 安全模式配置要将数据传输到的 ONTAP 卷。](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/managing-volumes.html#volume-security-style)

1.  FSx 为您的 for ONTAP 文件系统创建一个为 NFS 配置的位置。（这将是您的目标位置。）

从通过 SMB 为用户提供服务的 Windows 服务器或 NAS 共享迁移时，请执行以下操作：

1. 为 Windows 服务器或 NAS 共享[创建一个 SMB 位置](create-smb-location.md)。（这将是您的源位置。）

1. 使用 [NTFS 安全](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/managing-volumes.html#volume-security-style)模式配置要将数据传输到的 ONTAP 卷。 FSx 

1.  FSx 为您的 onTAP 文件系统创建一个为 SMB 配置的位置。（这将是您的目标位置。）

如果您 FSx 的 onTAP 环境使用多个协议，我们建议您与 AWS 存储专家合作。要了解多协议访问的最佳实践，请参阅使用 [Amazon for ONTAP 启用多协议工作负载 FSx 。 NetApp](https://aws.amazon.com/blogs/storage/enabling-multiprotocol-workloads-with-amazon-fsx-for-netapp-ontap/)

### 访问 SnapLock 卷
<a name="create-ontap-location-snaplock"></a>

如果您要将数据传输到 for ONTAP 文件系统上的[SnapLock 卷](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/snaplock.html)，请确保在传输期间该**卷上禁用了**自动提交**和卷追加模式**的 SnapLock 设置。 FSx 完成数据传输后，可以重新启用这些设置。

## FSx 为 ONTAP 创建您的传输位置
<a name="create-ontap-location-how-to"></a>

要创建该位置，您需要一个现有的 F FSx or ONTAP 文件系统。如果您没有，请参阅《亚马逊版 ONTAP *用户指南》中的亚马 FSx 逊 NetApp ONTA NetApp P FSx 版*[入门](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/getting-started.html)。

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

1. 打开 AWS DataSync 控制台，网址为[https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/)。

1. 在左侧导航窗格中，展开**数据传输**，然后选择 **位置**和 **创建位置**。

1. 对于**位置类型**，请选择 **Amazon FSx**。

   您可在稍后将此位置配置为源或目标。

1. 对于**FSx 文件系统**，请 FSx 选择要用作位置的 ONTAP 文件系统。

1. 对于**存储虚拟机**，选择要将数据复制到或从中复制数据的文件系统中的存储虚拟机（SVM）。

1. 对于**挂载路径**，指定您将在其中复制数据的指向该 SVM 中的文件共享路径。

   您可以指定连接路径（也称为挂载点）、qtree 路径（用于 NFS 文件共享）或共享名称（用于 SMB 文件共享）。例如，您的挂载路径可能是 `/vol1`、`/vol1/tree1` 或 `/share1`。
**提示**  
不要在 SVM 的根卷中指定路径。有关更多信息，请参阅《*Amazon FSx FSx for ONTAP 用户指南》中的管理 NetApp ONTAP* [存储虚拟机](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/managing-svms.html)。

1. 对于**安全组**，最多选择五个 Amazon EC2 安全组，这些安全组提供对文件系统首选子网的访问权限。

   安全组必须允许以下端口的出站流量（取决于您使用的协议）：
   + **NFS** — TCP 端口 111、635 和 2049 
   + **SMB** — TCP 端口 445

   文件系统的安全组还必须允许同一端口上的入站流量。

1. 对于**协议**，选择 DataSync 用于访问文件系统 SVM 的数据传输协议。

   有关更多信息，请参阅 [选择正确的协议](#create-ontap-location-choosing-protocol)。

------
#### [ NFS ]

   DataSync 使用 NFS 版本 3。

------
#### [ SMB ]

   配置 SMB 版本、用户、密码和 Active Directory 域名（如需要），以访问 SVM。
   + （可选）展开**其他设置**并选择 DataSync 要在访问 **SVM 时使用的 SMB 版本**。

     默认情况下，根据与 SMB 文件服务器的协商 DataSync 自动选择版本。有关更多信息，请参阅 [使用 SMB 协议](#create-ontap-location-smb)。
   + 对于**用户**，输入一个用户名称，该用户可以挂载和访问 SVM 中要传输的文件、文件夹和元数据。

     有关更多信息，请参阅 [使用 SMB 协议](#create-ontap-location-smb)。
   + 对于**密码**，输入您指定可访问 SVM 的用户的密码。
   + （可选）对于 **Active Directory 域名**，请输入 SVM 所属的 Active Directory 的完全限定域名 (FQDN)。

     如果您的环境中有多个域，则配置此设置 DataSync 可确保连接到正确的 SVM。

------

1. （可选）在 “**密钥**” 和 “**值**” 字段中输入值 FSx 以标记 ONTAP 文件系统。

   标签可帮助您管理、筛选和搜索 AWS 资源。我们建议至少为您的位置创建一个名称标签。

1. 选择**创建位置**。

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

**要创建 FSx 适用于 ONTAP 的位置，请使用 AWS CLI**

1. 复制以下 `create-location-fsx-ontap` 命令：

   ```
   aws datasync create-location-fsx-ontap \
      --storage-virtual-machine-arn arn:aws:fsx:region:account-id:storage-virtual-machine/fs-file-system-id \
      --security-group-arns arn:aws:ec2:region:account-id:security-group/group-id \
      --protocol data-transfer-protocol={}
   ```

1. 在命令中指定以下必要的选项：
   + 对于 `storage-virtual-machine-arn`，请指定您要向其或从其数据复制的文件系统中的存储虚拟机（SVM）的完全限定的 Amazon 资源名称（ARN）。

     此 ARN 包括您的文件系统所在 AWS 区域 的位置、您的 AWS 账户、文件系统和 SVM。 IDs
   + 对于 `security-group-arns`，请指定 Amazon EC2 安全组的 ARN，这些安全组提供对文件系统首选子网的 [网络接口](required-network-interfaces.md) 的访问权限。

     这包括您的 Amazon EC2 实例所在的位置 AWS 账户、您的和您的安全组 IDs。 AWS 区域 您最多可以指定五个安全组 ARNs。

     有关安全组的更多信息，请参阅《[Amazon for * NetApp ONTAP 用户指南》中的使用 Amazon VPC FSx 进行*文件系统访问控制](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/limit-access-security-groups.html)。
   + 对于`protocol`，请配置 DataSync 用于访问文件系统 SVM 的协议。
     + 对于 NFS，您可以使用以下默认配置：

       `--protocol NFS={}`
     + 对于 SMB，您必须指定可以访问 SVM 的用户名和密码：

       `--protocol SMB={User=smb-user,Password=smb-password}`

1. 运行命令。

   您会收到一条回复，表明您刚刚创建的位置。

   ```
   { 
       "LocationArn": "arn:aws:datasync:us-west-2:123456789012:location/loc-abcdef01234567890" 
   }
   ```

# 使用其他云存储进行传入或传出其他云存储 AWS DataSync
<a name="transferring-other-cloud-storage"></a>

使用 AWS DataSync，您可以在其他一些云提供商和 AWS 存储服务之间传输数据。有关更多信息，请参阅[我可以在哪里传输数据 DataSync？](working-with-locations.md)

**Topics**
+ [计划传入或传出第三方云存储系统](third-party-cloud-transfer-considerations.md)
+ [使用谷歌云存储配置 AWS DataSync 传输](tutorial_transfer-google-cloud-storage.md)
+ [配置使用 Microsoft Azure Blob Storage 的传输](creating-azure-blob-location.md)
+ [使用 Microsoft Azure Files SMB 共享配置 AWS DataSync 传输](transferring-azure-files.md)
+ [配置使用其他云对象存储的 传输](creating-other-cloud-object-location.md)

# 计划传入或传出第三方云存储系统
<a name="third-party-cloud-transfer-considerations"></a>

在计划跨云数据传输时，请考虑以下几点：
+ **使用代理：**只有在使用基本模式任务时，才需要代理来访问其他云中的存储。[增强模式任务](https://docs.aws.amazon.com/datasync/latest/userguide/choosing-task-mode.html)无需代理。如果决定使用代理，在从云提供商的 S3 兼容对象存储中进行传输时可以将代理部署为 [Amazon EC2 实例](https://docs.aws.amazon.com/datasync/latest/userguide/deploy-agents.html#ec2-deploy-agent)，或分别作为 Google 计算引擎或 Azure 虚拟机，用于从这些特定的存储服务进行传输。从 Google 和 Azure 中的文件系统进行传输时，建议将代理部署为 Google 或 Azure 虚拟机，以使代理尽可能靠近文件系统。此外，还可以将代理中的数据 DataSync 压缩到 AWS，这有助于降低出口成本。 DataSync 提供了[经过验证的云位置列表，这些位置](https://docs.aws.amazon.com/datasync/latest/userguide/creating-other-cloud-object-location.html)提供了所需的 [Amazon S3 API 兼容性](https://docs.aws.amazon.com/datasync/latest/userguide/creating-other-cloud-object-location.html#other-cloud-access)。
+ **其他云的对象存储端点：**第三方云提供商的存储端点通常是特定区域或账户专属的。区域终端节点与指定的存储桶名称一起用作 DataSync 对象存储位置的服务器。
+ **源对象的存储类别：**与 Amazon S3 一样，一些云提供商支持使用存档层，要求先进行还原操作才能访问存档对象。例如，必须检索 Azure Blob 存档层中的对象以进行标准访问，然后才能进行数据传输。Google Cloud Storage 存档层中的对象可立即访问且无需恢复，但是直接访问存档层会产生检索费用。在开始数据传输之前，请查阅跨云存储类别文档，确定访问要求和检索费用。有关在 Amazon S3 中还原已归档对象的更多信息，请参阅《Amazon Simple Storage Service 用户指南》**中的[恢复已归档的对象](https://docs.aws.amazon.com/AmazonS3/latest/userguide/restoring-objects.html)。
+ **对象存储访问权限：**在第三方云提供商之间传输数据需要通过身份验证密钥的形式，访问其他云的对象存储。例如，要提供对 Google Cloud Storage 的访问权限，您需要配置一个 DataSync 对象存储位置，该位置连接到 [Google Cloud Storage XML API](https://cloud.google.com/storage/docs/xml-api/overview)，并使用[基于哈希的消息身份验证码 (HMAC) 密钥](https://docs.aws.amazon.com/datasync/latest/userguide/tutorial_transfer-google-cloud-storage.html#transfer-google-cloud-storage-create-hmac-key)为您的服务帐号进行身份验证。[对于 Azure Blob 存储，你可以配置一个专用 [Azure Blob DataSync 位置，该位置](https://docs.aws.amazon.com/datasync/latest/userguide/creating-azure-blob-location.html#creating-azure-blob-location-how-to)使用 SAS 令牌进行身份验证。](https://docs.aws.amazon.com/datasync/latest/userguide/creating-azure-blob-location.html#azure-blob-access) DataSync AWS Secrets Manager 用于安全存储您的对象存储凭证。有关更多信息，请参阅[保护存储位置凭证](https://docs.aws.amazon.com/datasync/latest/userguide/location-credentials.html)。
+ **对象标签支持：**
  + 与 Amazon S3 不同，并非所有云提供商都支持[对象标签](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-tagging.html)。 DataSync 如果云提供商不支持通过 Amazon S3 API 进行对象标签，或者您提供的凭证不足以检索标签，则在尝试从源位置读取标签时，任务可能会失败。 DataSync提供了一个任务选项，用于在不支持[对象标签或您不想保留对象标签时关闭对对象标签的读取和复制](https://docs.aws.amazon.com/datasync/latest/userguide/API_Options.html#DataSync-Type-Options-ObjectTags)。请查阅云提供商文档确定是否支持对象标签，并在验证传输任务的对象标签设置后再启动传输。
  + 可使用 Amazon S3 API 来检查云提供商是否会返回 `get-object-tagging` 请求。有关更多信息，请参阅《AWS CLI 命令参考》**中的 [get-object-tagging](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/get-object-tagging.html)。

    支持对象标签的云提供商将返回类似以下示例的响应：

    ```
    aws s3api get-object-tagging --bucket BUCKET_NAME --endpoint- url=https://BUCKET_ENDPOINT --key prefix/file1
                                        
    {
    
        "TagSet": []
    
    }
    ```

    不支持 `get-object-tagging` 的云提供商将返回以下消息：

    ```
    aws s3api get-object-tagging --bucket BUCKET_NAME --endpoint- url=https://BUCKET_ENDPOINT --key prefix/file1
    
    An error occurred (OperationNotSupported) when calling the GetObjectTagging operation: The operation is not supported for this resource
    ```
+ **请求和数据传出的相关费用：**从云对象存储传输数据会产生与数据读取和传出相关的[请求和传出费用](https://docs.aws.amazon.com/datasync/latest/userguide/creating-other-cloud-object-location.html#other-cloud-considerations-costs)。不同云提供商以及不同存储类别（如果适用）的请求费用会有所不同。请查阅云提供商文档，了解与计划读取的存储类别相关的请求的具体费用。有关数据传输的请求费用的 DataSync 概述，请参阅[使用时评估 S3 请求费用 DataSync](https://docs.aws.amazon.com/datasync/latest/userguide/create-s3-location.html#create-s3-location-s3-requests)和[AWS DataSync 定价](https://aws.amazon.com/datasync/pricing/)。从特定的云提供商传出数据会产生传出费用。数据传输成本因云提供商而异，此外也取决于存储数据的区域。
+ **对象存储请求速率：**云提供商对象存储平台的性能和请求速率特征各不相同。请查看其他云提供商的请求速率，确定请求限制的适用范围。对于由多个代理组成的高度并行化传输，需要提前规划，以满足特定的分区需求或性能提升要求。

  Amazon S3 记录了请求速率，您可以据此构建解决方案。Amazon S3 的请求速率按分区前缀计算，并且可以跨多个前缀扩展。有关更多信息，请参阅《Amazon Simple Storage Service 用户指南》**中的[最佳实践设计模式：优化 Amazon S3 性能](https://docs.aws.amazon.com/AmazonS3/latest/userguide/optimizing-performance.html)。

# 使用谷歌云存储配置 AWS DataSync 传输
<a name="tutorial_transfer-google-cloud-storage"></a>

借 AWS DataSync助，您可以在 Google 云存储空间和以下 AWS 存储服务之间传输数据：
+ Amazon S3
+ Amazon EFS
+  FSx 适用于 Windows 文件服务器的亚马逊
+ 亚马逊 f FSx or Lustre
+  FSx 适用于 OpenZFS 的亚马逊
+  FSx 适用于 NetApp ONTAP 的亚马逊

要开始传输设置，请为 Google Cloud Storage 创建一个位置。此位置可以用作传输源或传输目标位置。仅当您在谷歌云存储与 Amazon EFS 或 Amazon 之间传输数据时 FSx，或者使用**基本模式**任务时，才需要 DataSync 代理。Google Cloud Storage 和 Amazon S3 之间的**增强模式**数据传输不需要代理。

**注意**  
要在 Google Cloud Storage 与之间建立私有云连接 AWS，请使用带代理的基本模式。

## 概述
<a name="transfer-google-cloud-storage-overview"></a>

DataSync 使用[谷歌云存储 XML API](https://cloud.google.com/storage/docs/xml-api/overview) 进行数据传输。此 API 提供了兼容 Amazon S3 的接口，用于通过 Google Cloud Storage 存储桶读取和写入数据。

使用基本模式进行传输时，可以在 Google Cloud Storage 或 Amazon VPC 中部署代理。

------
#### [ Agent in Google Cloud ]

1. 您在自己的 Google 云环境中部署 DataSync 代理。

1. 代理使用 HMAC 散列消息认证码（HMAC）密钥读取 Google Cloud Storage 存储桶。

1. Google Cloud Storage 存储分区中的对象使用公共终端节点通过 TLS 1.3 安全地传输到中。 AWS 云 

1. 该 DataSync 服务将数据写入您的 S3 存储桶。

下图说明了该传输。

![\[DataSync 传输示例显示了对象数据如何从 Google Cloud Storage 存储分区传输到 S3 存储桶。首先， DataSync 代理部署在您的 Google Cloud 环境中。然后， DataSync 代理读取 Google 云存储桶。数据通过公共终端节点安全地移动到 AWS，在那里将对象 DataSync 写入与您正在使用的 AWS 区域 位置相同的 S3 存储桶 DataSync。\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/images/diagram-transfer-google-cloud-storage-public.png)


------
#### [ Agent in your VPC ]

1. 您在 AWS 环境中的虚拟私有云 (VPC) 中部署 DataSync 代理。

1. 代理使用 HMAC 散列消息认证码（HMAC）密钥读取 Google Cloud Storage 存储桶。

1. 您的 Google 云存储分区中的对象使用私有 VPC 终端节点通过 TLS 1.3 安全地传输到中。 AWS 云 

1. 该 DataSync 服务将数据写入您的 S3 存储桶。

下图说明了该传输。

![\[DataSync 传输示例显示了对象数据如何从 Google Cloud Storage 存储分区传输到 S3 存储桶。首先， DataSync 代理部署在中的 VPC 中 AWS。然后， DataSync 代理读取 Google 云存储桶。数据通过 VPC 终端节点安全地移动到 AWS，在那里将对象 DataSync 写入与 VPC AWS 区域 相同的 S3 存储桶。\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/images/diagram-transfer-google-cloud-storage.png)


------

## 成本
<a name="transfer-google-cloud-storage-cost"></a>

与此迁移相关的可能费用包括：
+ 运行 Google [Compute En](https://cloud.google.com/compute/all-pricing) gine 虚拟机 (VM) 实例（如果您在 Google Cloud 中部署 DataSync 代理）
+ 运行 A [mazon EC2](https://aws.amazon.com/ec2/pricing/) 实例（如果您在其中的 VPC 中部署 DataSync 代理 AWS）
+ 使用传输数据 [DataSync](https://aws.amazon.com/datasync/pricing/)，包括与 [Google 云存储](https://cloud.google.com/storage/pricing)和 [Amazon S3](create-s3-location.md#create-s3-location-s3-requests) 相关的请求费用（如果 S3 是您的传输地点之一）
+ 将数据从 [Google Cloud Storage](https://cloud.google.com/storage/pricing) 中传出
+ 在 [Amazon S3](https://aws.amazon.com/s3/pricing/) 中存储数据

## 先决条件
<a name="transfer-google-cloud-storage-prerequisites"></a>

开始之前，请完成以下先决条件（如果尚未完成）：
+ 使用要传入 AWS的对象，[创建 Google Cloud Storage 存储桶](https://cloud.google.com/storage/docs/creating-buckets)。
+ [注册 AWS 账户](https://portal.aws.amazon.com/billing/signup)。
+ [创建 Amazon S3 存储桶](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html)，用于在对象存入 AWS后存储这些对象。

## 为 Google Cloud Storage 存储桶创建 HMAC 密钥
<a name="transfer-google-cloud-storage-create-hmac-key"></a>

DataSync 使用与您的 Google 服务帐号关联的 HMAC 密钥对您要从中传输数据的存储桶进行身份验证和读取。（有关如何创建 HMAC 密钥的详细说明，请参阅 [Google Cloud Storage 文档](https://cloud.google.com/storage/docs/authentication/hmackeys)。）

**创建 HMAC 密钥**

1. 为您的 Google 服务帐号创建 HMAC 密钥。

1. 请确保您的 Google 服务帐号至少具有 `Storage Object Viewer` 权限。

1. 将 HMAC 密钥访问 ID 和私有密钥存储在安全位置。

   稍后您将需要这些物品来配置您的 DataSync 来源位置。

## 第 2 步：配置网络
<a name="transfer-google-cloud-storage-configure-network"></a>

仅当使用 DataSync 代理进行传输时，才需要进行网络配置。此迁移的网络要求取决于您选择部署代理的位置。

### 对于谷歌云端的 DataSync 代理
<a name="transfer-google-cloud-storage-configure-public"></a>

如果您想在 Google Cloud 中托管 DataSync 代理，请将您的网络配置为[允许通过公共端点进行 DataSync 传输](datasync-network.md#using-public-endpoints)。

### 对于您的 VPC 中的 DataSync 代理
<a name="transfer-google-cloud-storage-configure-vpc"></a>

如果要在中托管代理 AWS，则需要一个带有接口终端节点的 VPC。 DataSync 使用 VPC 终端节点来促进传输。

**为 VPC 端点配置您的网络**

1. 如果您没有 VPC，请在与您的 S3 存储桶 AWS 区域 相同的 [VPC 中创建](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html#Create-VPC)。

1. [为 VPC 创建私有子网](https://docs.aws.amazon.com/vpc/latest/userguide/create-subnets.html)。

1. [为创建 VPC 服务终端节点](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html) DataSync。

1. 将您的网络配置为[允许通过 VPC 服务终端节点进行 DataSync 传输](datasync-network.md#using-vpc-endpoint)。

   为此，请修改与 VPC 服务端点关联的[安全组](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-security-groups.html)。

## 步骤 3：创建 DataSync 代理（可选）
<a name="transfer-google-cloud-storage-create-agent"></a>

只有在使用**基本**模式任务时才需要 DataSync 代理。如果使用**增强**模式在 Google Cloud Storage（GCS）和 Amazon S3 之间进行传输，则无需代理。如果您想使用**基本**模式，则需要一个可以访问您的 GCS 存储桶的 DataSync 代理。

### 对于 Google Cloud
<a name="transfer-google-cloud-storage-choose-endpoint"></a>

在这种情况下， DataSync 代理将在您的 Google Cloud 环境中运行。

**开始之前**：[安装 Google Cloud CLI](https://cloud.google.com/sdk/docs/install)。

**为 Google Cloud 创建代理**

1. 打开 AWS DataSync 控制台，网址为[https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/)。

1. 在左侧的导航窗格中，选择 **代理**，然后选择 **创建代理**。

1. 对于 **Hypervisor **VMware ESXi****，选择，然后选择 “**下载映像**” 以下载包含代理的`.zip`文件。

1. 打开终端。运行以下命令来对映像解压缩：

   ```
   unzip AWS-DataSync-Agent-VMWare.zip
   ```

1. 运行以下命令提取以 `aws-datasync` 开头的代理 `.ova` 文件中的内容：

   ```
   tar -xvf aws-datasync-2.0.1655755445.1-x86_64.xfs.gpt.ova
   ```

1. 运行以下 Google Cloud CLI 命令，将代理的 `.vmdk` 文件导入到 Google Cloud 中：

   ```
   gcloud compute images import aws-datasync-2-test \
      --source-file INCOMPLETE-aws-datasync-2.0.1655755445.1-x86_64.xfs.gpt-disk1.vmdk \
      --os centos-7
   ```
**注意**  
导入 `.vmdk` 文件最多可能需要两个小时。

1. 为您刚刚导入的代理映像创建并启动 VM 实例。

   该实例需要为代理进行以下配置。（有关如何创建实例的详细说明，请参阅 [Google 云计算引擎文档](https://cloud.google.com/compute/docs/instances)。）
   + 对于计算机类型，请选择下列选项之一：
     + **e2-standard-8** — 适用于处理多达 2000 万个对象的 DataSync任务执行。
     + **e2-standard-16** — 适用于处理超过 2000 万个对象的 DataSync任务执行。
   + 对于启动磁盘设置，请转到自定义映像部分。然后选择您刚刚导入的 DataSync 代理映像。
   + 对于服务帐号设置，请选择 Google 服务帐号（与您在[第 1 步](#transfer-google-cloud-storage-create-hmac-key) 中使用的帐号相同）。
   + 对于防火墙设置，请选择允许 HTTP（端口 80）通信的选项。

     要激活您的 DataSync 代理，必须在代理上打开端口 80。不要求该端口可供公开访问。激活后， DataSync 关闭端口。

1. VM 实例运行后，记录其公有 IP 地址。

   您需要此 IP 地址来激活代理。

1. 返回 DataSync 控制台。在下载代理映像的 **创建代理**屏幕上，执行以下操作以激活代理：
   + 对于**端点类型**，选择公共服务端点选项（例如，**美国东部俄亥俄州的公共服务端点**）。
   + 对于**激活密钥**，选择**自动从代理处获取激活密钥**。
   + 对于**代理地址**，输入您刚创建的代理 VM 实例的公有 IP 地址。
   + 选择 **获取密钥**。

1. 为您的代理指定名称，然后选择 **创建代理**。

代理处于在线状态，可以随时传输数据。

### 对于 VPC
<a name="transfer-google-cloud-storage-deploy-agent"></a>

在这种情况下，代理在与您的关联的 VPC 中作为 Amazon EC2 实例运行 AWS 账户。

**开始之前**：[设置 AWS Command Line Interface （AWS CLI）](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html)。

**为 VPC 创建代理**

1. 打开终端。请务必将您的 AWS CLI 个人资料配置为使用与您的 S3 存储桶关联的账户。

1. 复制以下 命令。将 `vpc-region` 替换为您的 VPC 所在的 AWS 区域 （例如，`us-east-1`）。

   ```
   aws ssm get-parameter --name /aws/service/datasync/ami --region vpc-region
   ```

1. 运行命令。在输出中，记录 `"Value"` 属性。

   此值是您指定区域的 DataSync 亚马逊系统映像 (AMI) ID。例如，AMI ID 可能类似于 `ami-1234567890abcdef0`。

1. 复制以下 URL。再次将 `vpc-region` 替换为您的 VPC 所在的 AWS 区域 。接着，将 `ami-id` 替换为您在上一步中记录的 AMI ID。

   ```
   https://console.aws.amazon.com/ec2/v2/home?region=vpc-region#LaunchInstanceWizard:ami=ami-id
   ```

1. 将该 URL 粘贴到浏览器中。

   屏幕上 AWS 管理控制台 显示了 Amazon EC2 实例启动页面。

1. 对于**实例类型**，请为[ DataSync代理选择一个推荐的 Amazon EC2 实例](agent-requirements.md#ec2-instance-types)。

1. 对于**密钥对**，选择现有密钥对或新建一个密钥对。

1. 对于**网络设置**，选择要部署代理的 VPC 和子网。

1. 选择 **启动实例**。

1. 在 Amazon EC2 实例运行后，[选择您的 VPC 端点](choose-service-endpoint.md#datasync-in-vpc)。

1. [激活您的代理](activate-agent.md)。

## 第 4 步：为您的 Google 云存储分区创建 DataSync 源位置
<a name="transfer-google-cloud-storage-create-source"></a>

要为您的 Google Cloud Storage 存储分区设置 DataSync 位置，您需要在[步骤 1](#transfer-google-cloud-storage-create-hmac-key) 中创建的 HMAC 密钥的访问权限 ID 和密钥。

**创建 DataSync 源位置**

1. 打开 AWS DataSync 控制台，网址为[https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/)。

1. 在左侧导航窗格中，展开**数据传输**，然后选择 **位置**和 **创建位置**。

1. 对于 **位置类型**，选择 **对象存储**。

1. 对于**服务器**，输入 **storage.googleapis.com**。

1. 对于**存储桶名称**，输入您的 Google Cloud Storage 存储桶的名称。

1. 对于 **文件夹**，请输入对象前缀。

   DataSync 仅复制带有此前缀的对象。

1. 如果传输需要代理，请选择**使用代理**，然后选择在[步骤 3](#transfer-google-cloud-storage-create-agent) 中创建的代理。

1. 展开**其他设置**。对于**服务器协议**，请选择 **HTTPS**。对于**服务器端口**，请选择 **443**。

1. 向下滚动到**身份验证**部分。确保选中 **需要凭据**复选框，然后执行以下操作：
   + 对于**访问密钥**，输入您的 HMAC 密钥访问 ID。
   + 对于**密钥**，可以直接输入 HMAC 密钥的密钥，也可以指定包含 AWS Secrets Manager 密钥的密钥。有关更多信息，请参阅[为存储位置提供凭证](https://docs.aws.amazon.com/datasync/latest/userguide/location-credentials.html)。

1. 选择**创建位置**。

## 步骤 5：为您的 S3 存储桶创建 DataSync 目标位置
<a name="transfer-google-cloud-storage-create-destination"></a>

你需要一个 DataSync 位置来存放你想要的数据存放位置。

**创建 DataSync 目标位置**

1. 打开 AWS DataSync 控制台，网址为[https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/)。

1. 在左侧导航窗格中，展开**数据传输**，然后选择 **位置**和 **创建位置**。

1. [为 S3 存储桶创建 DataSync 位置](create-s3-location.md)。

   如果您在您的 VPC 中部署了 DataSync 代理，则本教程假定 S3 存储桶与您的 VPC 和 DataSync 代理位于同一 AWS 区域 位置。

## 步骤 6：创建并启动 DataSync 任务
<a name="transfer-google-cloud-storage-start-task"></a>

配置好源位置和目标位置后，就可以开始将数据移入 AWS了。

**创建并启动 DataSync 任务**

1. 打开 AWS DataSync 控制台，网址为[https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/)。

1. 在左侧导航窗格中，展开**数据传输**，然后选择**任务**，然后选择**创建任务**。

1. 在**配置源位置**页面上，执行以下操作：

   1. 选择 **选择现有位置**。

   1. 选择您在[第 4 步](#transfer-google-cloud-storage-create-source) 中创建的源位置，然后选择 **下一步**。

1. 在**配置目标位置**页面上，执行以下操作：

   1. 选择 **选择现有位置**。

   1. 选择您在[第 5 步](#transfer-google-cloud-storage-create-destination) 中创建的目标位置，然后选择 **下一步**。

1. 在 **配置设置** 页面上，执行以下操作：

   1. 在 **数据传输配置**下，展开 **其他设置**，然后清除 **复制对象标签**复选框。
**重要**  
由于 Google Cloud Storage XML API 不支持读取或写入对象标签，因此如果您尝试复制对象标签，您的 DataSync 任务可能会失败。

   1. 配置所需的任何其他任务设置，然后选择 **下一步**。

1. 在 **审核**页面上，审核您的设置，然后选择 **创建任务**。

1. 在任务的详细信息页面上，选择**开始**，然后选择以下选项之一：
   + 如需运行任务而不进行修改，请选择**从默认值开始**。
   + 如需修改任务再运行，请选择**使用覆盖选项开始**。

任务完成后，您会在 S3 存储桶中看到 Google Cloud Storage 存储桶中的对象。

# 配置使用 Microsoft Azure Blob Storage 的传输
<a name="creating-azure-blob-location"></a>

使用 AWS DataSync，您可以在Microsoft Azure Blob Storage（包括 Azure Data Lake Storage Gen2 blob 存储）和以下 AWS 存储服务之间传输数据：
+ [Amazon S3](create-s3-location.md)
+ [Amazon EFS](create-efs-location.md)
+ [ FSx 适用于 Windows 文件服务器的亚马逊](create-fsx-location.md)
+ [亚马逊 f FSx or Lustre](create-lustre-location.md)
+ [ FSx 适用于 OpenZFS 的亚马逊](create-openzfs-location.md)
+ [ FSx 适用于 NetApp ONTAP 的亚马逊](create-ontap-location.md)

要设置此类传输，您需要为您的 Azure Blob Storage 创建一个[位置](how-datasync-transfer-works.md#sync-locations)。您可以将此位置用作传输源或传输目标位置。只有在 Azure Blob 和 Amazon EFS 或 Amazon 之间传输数据时 FSx，或者使用**基本**模式任务时，才需要 DataSync 代理。使用**增强**模式在 Azure Blob 和 Amazon S3 之间传输数据时不需要代理。

## 提供对您的 DataSync 访问权限 Azure Blob Storage
<a name="azure-blob-access"></a>

您的 DataSync 访问方式Azure Blob Storage取决于多个因素，包括您是向 blob 存储传输还是从 blob 存储进行传输，以及您使用的[共享访问签名 (SAS) 令牌](#azure-blob-sas-tokens)的类型。您的对象还必须位于 DataSync 可以[使用的访问层](#azure-blob-access-tiers)中。

**Topics**
+ [SAS 令牌](#azure-blob-sas-tokens)
+ [访问层](#azure-blob-access-tiers)

### SAS 令牌
<a name="azure-blob-sas-tokens"></a>

SAS 令牌指定您的 blob 存储的访问权限。（有关 SAS 的详细信息，请参阅 [Azure Blob Storage文档](https://learn.microsoft.com/azure/storage/common/storage-sas-overview)。）

您可以生成 SAS 令牌以提供不同级别的访问权限。 DataSync 支持具有以下访问权限级别的令牌：
+ Account
+ Container

 DataSync 所需的访问权限取决于您的令牌的范围。没有正确的权限可能会导致您的传输失败。例如，如果您要将带有标签的对象移至 Azure Blob Storage，但您的 SAS 令牌没有标签权限，则传输将不会成功。

**Topics**
+ [用于账户级访问的 SAS 令牌权限](#account-sas-tokens)
+ [容器级访问的 SAS 令牌权限](#container-sas-tokens)
+ [SAS 过期策略](#azure-blob-sas-expiration-policies)

#### 用于账户级访问的 SAS 令牌权限
<a name="account-sas-tokens"></a>

DataSync 需要具有以下权限的账户级访问令牌（取决于您是向还是从中Azure Blob Storage转移）。

------
#### [ Transfers from blob storage ]
+ **允许的服务** – Blob
+ **允许的资源类型** - 容器、对象

  如果您不包括这些权限，则 DataSync 无法传输您的对象元数据，包括[对象标签](#azure-blob-considerations-object-tags)。
+ **允许的权限** - 读取、列出
+ **允许的 blob 索引权限** — Read/Write （如果 DataSync 要复制[对象标签](#azure-blob-considerations-object-tags)）

------
#### [ Transfers to blob storage ]
+ **允许的服务** – Blob
+ **允许的资源类型** - 容器、对象

  如果您不包括这些权限，则 DataSync 无法传输您的对象元数据，包括[对象标签](#azure-blob-considerations-object-tags)。
+ **允许的权限**-读取、写入、列出、删除（如果您 DataSync 想移除传输源中不存在的文件）
+ **允许的 blob 索引权限** — Read/Write （如果 DataSync 要复制[对象标签](#azure-blob-considerations-object-tags)）

------

#### 容器级访问的 SAS 令牌权限
<a name="container-sas-tokens"></a>

DataSync 需要具有以下权限的容器级访问令牌（取决于您是向还是从中Azure Blob Storage转移）。

------
#### [ Transfers from blob storage ]
+ 读取
+ 列表
+ 标签（如果 DataSync 要复制[对象标签](#azure-blob-considerations-object-tags)）
**注意**  
在 Azure 门户中生成 SAS 令牌时，您无法添加标签权限。要添加标签权限，请改为使用 [https://learn.microsoft.com/en-us/azure/vs-azure-tools-storage-manage-with-storage-explorer](https://learn.microsoft.com/en-us/azure/vs-azure-tools-storage-manage-with-storage-explorer) 应用程序生成令牌或生成[提供账户级访问权限的 SAS 令牌](#account-sas-tokens)。

------
#### [ Transfers to blob storage ]
+ 读取
+ 写入
+ 列表
+ 删除（如果您 DataSync 要删除不在传输源中的文件）
+ 标签（如果 DataSync 要复制[对象标签](#azure-blob-considerations-object-tags)）
**注意**  
在 Azure 门户中生成 SAS 令牌时，您无法添加标签权限。要添加标签权限，请改为使用 [https://learn.microsoft.com/en-us/azure/vs-azure-tools-storage-manage-with-storage-explorer](https://learn.microsoft.com/en-us/azure/vs-azure-tools-storage-manage-with-storage-explorer) 应用程序生成令牌或生成[提供账户级访问权限的 SAS 令牌](#account-sas-tokens)。

------

#### SAS 过期策略
<a name="azure-blob-sas-expiration-policies"></a>

在您预计完成传输之前，请确保您的 SAS 不会过期。有关配置 SAS 过期策略的信息，请参阅 [Azure Blob Storage 文档](https://learn.microsoft.com/en-us/azure/storage/common/sas-expiration-policy)。

如果 SAS 在转移期间过期，则 DataSync 无法再访问您的Azure Blob Storage位置。（您可能会看到无法打开目录错误。） 如果发生这种情况，[请使用新的 SAS 令牌更新您的位置](#azure-blob-update-location)并重新启动 DataSync 任务。

### 访问层
<a name="azure-blob-access-tiers"></a>

从中传输时Azure Blob Storage， DataSync 可以复制热层和冷层中的对象。对于存档访问层中的对象，必须先将这些对象重新水合到热层或冷层，然后才能复制它们。

传输到时Azure Blob Storage， DataSync 可以将对象复制到热、冷和存档访问层。如果您要将对象复制到存档访问层中，如果您正在尝试验证[目标中的所有数据，则 DataSync 无法验证](configure-data-verification-options.md)传输。

DataSync 不支持冷访问层。有关访问层的更多信息，请参阅 [Azure Blob Storage文档](https://learn.microsoft.com/en-us/azure/storage/blobs/access-tiers-overview?tabs=azure-portal)。

## 使用 Azure Blob Storage 传输的注意事项
<a name="azure-blob-considerations"></a>

在计划使用或从中Azure Blob Storage传输数据时 DataSync，需要记住一些注意事项。

**Topics**
+ [成本](#azure-blob-considerations-costs)
+ [Blob 类型](#blob-types)
+ [AWS 区域 可用性](#azure-blob-considerations-regions)
+ [复制对象标签](#azure-blob-considerations-object-tags)
+ [传输到 Amazon S3](#azure-blob-considerations-s3)
+ [删除传输目标中的目录](#azure-blob-considerations-deleted-files)
+ [限制](#azure-blob-limitations)

### 成本
<a name="azure-blob-considerations-costs"></a>

将数据移入或移出 Azure Blob Storage 的相关费用可能包括：
+ 运行[Azure虚拟机 (VM)](https://azure.microsoft.com/en-us/pricing/details/virtual-machines/linux/)（如果您在中部署 DataSync 代理Azure）
+ 运行 A [mazon EC2](https://aws.amazon.com/ec2/pricing/) 实例（如果您在其中的 VPC 中部署 DataSync 代理 AWS）
+ 使用传输数据 [DataSync](https://aws.amazon.com/datasync/pricing/)，包括与[https://azure.microsoft.com/en-us/pricing/details/storage/blobs/](https://azure.microsoft.com/en-us/pricing/details/storage/blobs/)和 [Amazon S3](create-s3-location.md#create-s3-location-s3-requests) 相关的请求费用（如果 S3 是您的传输地点之一）
+ 将数据传入或传出 [https://azure.microsoft.com/en-us/pricing/details/storage/blobs/](https://azure.microsoft.com/en-us/pricing/details/storage/blobs/)
+ 将数据存储在支持的[AWS 存储服务](working-with-locations.md)中 DataSync

### Blob 类型
<a name="blob-types"></a>

 DataSync 如何处理 blob 类型取决于你是转移到还是从中Azure Blob Storage传输。将数据移入 blob 存储时， DataSync 传输的对象或文件只能是块 blob。将数据移出 Blob 存储空间时， DataSync 可以传输块、页面和附加 blob。

有关 Blob 类型的更多信息，请参阅 [Azure Blob Storage文档](https://learn.microsoft.com/en-us/rest/api/storageservices/understanding-block-blobs--append-blobs--and-page-blobs)。

### AWS 区域 可用性
<a name="azure-blob-considerations-regions"></a>

您可以在[支持的](https://docs.aws.amazon.com/general/latest/gr/datasync.html#datasync-region)任意AWS 区域 位置创建Azure Blob Storage转账地点 DataSync。

### 复制对象标签
<a name="azure-blob-considerations-object-tags"></a>

在传 DataSync 入或传出时保留对象标签的能力Azure Blob Storage取决于以下因素：
+ **对象标签的大小 — DataSync 无法传输标签**超过 2 KB 的对象。
+ ** DataSync 是否配置为复制对象标签** — 默认情况下 DataSync [复制对象标签](configure-metadata.md)。
+ **您的Azure存储账户使用的命名空间 — 如果您的Azure存储账户使用**平面命名空间，则 DataSync 可以复制对象标签，但如果您的账户使用分层命名空间（的一项功能Azure Data Lake Storage Gen2），则无法复制对象标签。如果您尝试复制对象标签并且您的存储帐户使用分层命名空间，则 DataSync 任务将失败。
+ **您的 SAS 令牌是否授权标记** – 复制对象标签所需的权限因令牌提供的访问级别而异。如果您尝试复制对象标签，但您的令牌没有正确的标记权限，则任务将失败。有关更多信息，请查看[账户级访问令牌](#account-sas-tokens)或[容器级访问令牌](#container-sas-tokens)的权限要求。

### 传输到 Amazon S3
<a name="azure-blob-considerations-s3"></a>

传输到 Amazon S3 时， DataSync 不会传输Azure Blob Storage大于 5 TB 的对象或元数据大于 2 KB 的对象。

### 删除传输目标中的目录
<a name="azure-blob-considerations-deleted-files"></a>

传输到时Azure Blob Storage， DataSync 可以[移除 blob 存储中传输源中不存在的对象](configure-metadata.md)。（您可以通过在 DataSync 控制台中清除 “**保留已删除的文件**” 设置来配置此选项。 您的 [SAS 令牌](#azure-blob-sas-tokens)还必须具有删除权限。）

以这种方式配置传输时，如果您的存储帐户使用的是分层命名空间，则 DataSync 不会删除 blob Azure 存储中的目录。在这种情况下，必须手动删除目录（例如使用 [https://learn.microsoft.com/en-us/azure/storage/blobs/data-lake-storage-explorer](https://learn.microsoft.com/en-us/azure/storage/blobs/data-lake-storage-explorer)）。

### 限制
<a name="azure-blob-limitations"></a>

在与 Azure Blob Storage 互相传输数据时，请记住以下限制：
+ DataSync 在某个位置[创建一些目录](filtering.md#directories-ignored-during-transfers)以帮助您进行传输。如果Azure Blob Storage是目标位置，并且您的存储帐户使用分层命名空间，则您可能会注意到该文件夹中存在特定于任务的子目录（例如`task-000011112222abcde`）。`/.aws-datasync` DataSync 通常会在传输后删除这些子目录。如果不这样做，只要任务未运行，您就可以自己删除这些特定任务的目录。
+ DataSync 不支持使用 SAS 令牌仅访问Azure Blob Storage容器中的特定文件夹。
+ 您不能提供 DataSync 用于访问您的 blob 存储空间的用户委托 SAS 令牌。

## 创建您的 DataSync 代理（可选）
<a name="azure-blob-creating-agent"></a>

只有在 Azure Blob 和 Amazon EFS 或 Amazon 之间传输数据时 FSx，或者使用**基本**模式任务时，才需要 DataSync 代理。使用**增强**模式在 Azure Blob 和 Amazon S3 之间传输数据时不需要代理。本部分介绍如何部署和激活代理。

**提示**  
尽管您可以在 Amazon EC2 实例上部署代理，但使用 Microsoft Hyper-V 代理可能会减少网络延迟并提高数据压缩率。

### Microsoft Hyper-V 代理
<a name="azure-blob-creating-agent-hyper-v"></a>

您可以使用Microsoft Hyper-V映像直接在中Azure部署 DataSync 代理。

**提示**  
在继续之前，请考虑使用可以帮助您更快地在 Azure 中部署 Hyper-V 代理的 Shell 脚本。您可以获取更多信息并下载代码[GitHub](https://github.com/aws-samples/aws-datasync-deploy-agent-azure)。  
如果您使用脚本，则可以向前跳至有关 [获取代理的激活密钥](#azure-blob-creating-agent-hyper-v-3) 的部分。

**Topics**
+ [先决条件](#azure-blob-creating-agent-hyper-v-0)
+ [正在下载并准备您的代理](#azure-blob-creating-agent-hyper-v-1)
+ [在 Azure 中部署您的代理](#azure-blob-creating-agent-hyper-v-2)
+ [获取代理的激活密钥](#azure-blob-creating-agent-hyper-v-3)
+ [激活您的代理](#azure-blob-creating-agent-hyper-v-4)

#### 先决条件
<a name="azure-blob-creating-agent-hyper-v-0"></a>

要准备 DataSync 代理并将其部署到中Azure，必须执行以下操作：
+ 在本地机器上启用 Hyper-V。
+ 安装 [https://learn.microsoft.com/en-us/powershell/scripting/install/installing-powershell?view=powershell-7.3&viewFallbackFrom=powershell-7.1](https://learn.microsoft.com/en-us/powershell/scripting/install/installing-powershell?view=powershell-7.3&viewFallbackFrom=powershell-7.1)（包括 Hyper-V Module）。
+ 安装 [Azure CLI](https://learn.microsoft.com/en-us/cli/azure/install-azure-cli)。
+ 安装 [https://learn.microsoft.com/en-us/azure/storage/common/storage-use-azcopy-v10?toc=%2Fazure%2Fstorage%2Fblobs%2Ftoc.json&bc=%2Fazure%2Fstorage%2Fblobs%2Fbreadcrumb%2Ftoc.json](https://learn.microsoft.com/en-us/azure/storage/common/storage-use-azcopy-v10?toc=%2Fazure%2Fstorage%2Fblobs%2Ftoc.json&bc=%2Fazure%2Fstorage%2Fblobs%2Fbreadcrumb%2Ftoc.json)。

#### 正在下载并准备您的代理
<a name="azure-blob-creating-agent-hyper-v-1"></a>

从 DataSync 控制台下载代理。在 Azure 中部署代理之前，必须将其转换为固定大小的虚拟硬盘 (VHD)。有关详情，请参阅 [Azure 文档](https://learn.microsoft.com/en-us/azure/virtual-machines/windows/prepare-for-upload-vhd-image)。

**下载并准备您的代理**

1. 打开 AWS DataSync 控制台，网址为[https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/)。

1. 在左侧的导航窗格中，选择 **代理**，然后选择 **创建代理**。

1. 对于 **虚拟机监控器**，选择 **Microsoft Hyper-V**，然后选择 **下载映像**。

   代理下载到包含 `.vhdx` 文件的 `.zip` 文件中。

1. 在本地机器上解压缩 `.vhdx` 文件。

1. 打开 PowerShell 并执行以下操作：

   1. 复制以下 `Convert-VHD` cmdlet：

      ```
      Convert-VHD -Path .\local-path-to-vhdx-file\aws-datasync-2.0.1686143940.1-x86_64.xfs.gpt.vhdx `
      -DestinationPath .\local-path-to-vhdx-file\aws-datasync-2016861439401-x86_64.vhd -VHDType Fixed
      ```

   1. 将 `local-path-to-vhdx-file` 的每个实例替换为本地计算机上的 `.vhdx` 文件位置。

   1. 运行 命令。

   您的代理现在是固定大小的 VHD（采用 `.vhd` 文件格式），可以部署到 Azure 中。

#### 在 Azure 中部署您的代理
<a name="azure-blob-creating-agent-hyper-v-2"></a>

在中部署 DataSync 代理涉Azure及：
+ 在 Azure 中创建托管磁盘
+ 将您的代理上传到该托管磁盘
+ 将托管磁盘连接到 Linux 虚拟机

**要在 Azure 中部署您的代理**

1. 在 PowerShell 中，转到包含您的代理 `.vhd` 文件的目录。

1. 运行 `ls` 命令并保存 `Length` 值（例如 `85899346432`）。

   这是代理映像的大小（以字节为单位），在创建可以容纳映像的托管磁盘时，您需要使用该大小。

1. 执行以下操作来创建托管磁盘：

   1. 复制以下 Azure CLI 命令：

      ```
      az disk create -n your-managed-disk `
      -g your-resource-group `
      -l your-azure-region `
      --upload-type Upload `
      --upload-size-bytes agent-size-bytes `
      --sku standard_lrs
      ```

   1. 将 `your-managed-disk` 替换为您的托管磁盘的名称。

   1. 将 `your-resource-group` 替换为您的存储账户所属 Azure 资源组的名称。

   1. 将 `your-azure-region` 替换为资源组所在的 Azure 区域。

   1. 将 `agent-size-bytes` 替换为代理映像的大小。

   1. 运行 命令。

   此命令会创建一个带有[标准 SKU](https://learn.microsoft.com/en-us/rest/api/storagerp/srp_sku_types) 的空托管磁盘，您可以在其中上传 DataSync代理。

1. 要生成允许对托管磁盘进行写入访问的共享访问签名 (SAS)，请执行以下操作：

   1. 复制以下 Azure CLI 命令：

      ```
      az disk grant-access -n your-managed-disk `
      -g your-resource-group `
      --access-level Write `
      --duration-in-seconds 86400
      ```

   1. 将 `your-managed-disk` 替换为您创建的托管磁盘的名称。

   1. 将 `your-resource-group` 替换为您的存储账户所属 Azure 资源组的名称。

   1. 运行命令。

      在输出中，记录 SAS URI。将代理上传到 Azure 时需要此 URI。

   SAS 允许您向磁盘写入长达一个小时。这意味着您有一小时的时间将代理上传到托管磁盘。

1. 要在 Azure 中将代理上传到托管磁盘，请执行以下操作：

   1. 复制以下 `AzCopy` 命令：

      ```
      .\azcopy copy local-path-to-vhd-file sas-uri --blob-type PageBlob
      ```

   1. 将 `local-path-to-vhd-file` 替换为代理 `.vhd` 文件在本地计算机上的位置。

   1. 将 `sas-uri` 替换为运行 `az disk grant-access` 命令时获得的 SAS URI。

   1. 运行命令。

1. 代理上传完成后，撤消对托管磁盘的访问权限。要执行这项操作，请复制以下 Azure CLI 命令：

   ```
   az disk revoke-access -n your-managed-disk -g your-resource-group
   ```

   1. 将 `your-resource-group` 替换为您的存储账户所属 Azure 资源组的名称。

   1. 将 `your-managed-disk` 替换为您创建的托管磁盘的名称。

   1. 运行 命令。

1. 执行以下操作将托管磁盘连接到新的 Linux 虚拟机：

   1. 复制以下 Azure CLI 命令：

      ```
      az vm create --resource-group your-resource-group `
      --location eastus `
      --name your-agent-vm `
      --size Standard_E4as_v4 `
      --os-type linux `
      --attach-os-disk your-managed-disk
      ```

   1. 将 `your-resource-group` 替换为您的存储账户所属 Azure 资源组的名称。

   1. 将 `your-agent-vm` 替换为您可以记住的虚拟机名称。

   1. 将 `your-managed-disk` 替换为您要装载到虚拟机的托管磁盘的名称。

   1. 运行 命令。

您已经部署了代理。必须先激活代理，然后才能开始配置数据传输。

#### 获取代理的激活密钥
<a name="azure-blob-creating-agent-hyper-v-3"></a>

要手动获取 DataSync 代理的激活密钥，请按照以下步骤操作。

或者，[DataSync 可以自动为您获取激活密钥](activate-agent.md)，但是这种方法需要一些网络配置。

**获取代理的激活密钥**

1. 在 Azure 门户中，通过选择 **启用自定义存储账户**设置并指定您的 Azure 存储账户，[为代理启用虚拟机的启动诊断](https://learn.microsoft.com/en-us/azure/virtual-machines/boot-diagnostics)。

   为代理启用虚拟机的启动诊断后，您可以访问代理的本地控制台以获取激活密钥。

1. 仍在 Azure 门户网站时，前往您的虚拟机并选择 **串行控制台**。

1. 在代理的本地控制台中，使用以下默认凭证登录：
   + **用户名** – **admin**
   + **密码** – **password**

   我们建议在某个时候至少更改代理的密码。在代理的本地控制台中，在主菜单上输入 **5**，然后使用 `passwd` 命令更改密码。

1. 输入 **0** 以获取代理的激活密钥。

1. 输入你正在使用 AWS 区域 的地方 DataSync （例如，**us-east-1**）。

1. 选择代理将用于连接的[服务端点](choose-service-endpoint.md) AWS。

1. 保存 `Activation key` 输出的值。

#### 激活您的代理
<a name="azure-blob-creating-agent-hyper-v-4"></a>

获得激活密钥后，即可完成 DataSync代理的创建。

**激活您的代理**

1. 打开 AWS DataSync 控制台，网址为[https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/)。

1. 在左侧的导航窗格中，选择 **代理**，然后选择 **创建代理**。

1. 对于 **虚拟机监控器**，选择 **Microsoft Hyper-V**。

1. 对于 **Endp** oint 类型，请选择您在获取代理激活密钥时指定的相同类型的服务端点（例如，**在中选择公共服务终端节点 *Region name***）。

1. 将您的网络配置为与您的代理正在使用的服务端点类型配合使用。有关服务端点网络要求，请参阅以下主题：
   + [VPC 端点](datasync-network.md#using-vpc-endpoint)
   + [公有端点](datasync-network.md#using-public-endpoints)
   + [美国联邦信息处理标准 (FIPS) 端点](datasync-network.md#using-public-endpoints)

1. 对于 **激活密钥**，执行以下操作：

   1. 选择 **手动输入代理的激活密钥**。

   1. 输入您从代理的本地控制台获得的激活密钥。

1. 选择 **Create agent (创建代理)**。

您的代理已准备好与您的 Azure Blob Storage 连接。有关更多信息，请参阅 [创建您的 Azure Blob Storage 传输位置](#creating-azure-blob-location-how-to)。

### Amazon EC2 代理
<a name="azure-blob-creating-agent-ec2"></a>

您可以在 Amazon EC2 实例上部署您的 DataSync 代理。

**创建 Amazon EC2 代理**

1. [部署 Amazon EC2 代理](deploy-agents.md#ec2-deploy-agent)。

1. [选择代理用来与 AWS通信的服务端点](choose-service-endpoint.md)。

   在这种情况下，我们建议使用虚拟私有云（VPC）服务端点。

1. 将您的网络配置为使用 [VPC 服务端点](datasync-network.md#using-vpc-endpoint)。

1. [激活代理](https://docs.aws.amazon.com/datasync/latest/userguide/activate-agent.html)。

## 创建您的 Azure Blob Storage 传输位置
<a name="creating-azure-blob-location-how-to"></a>

您可以配置 DataSync 为使用您的Azure Blob Storage传输源或目的地。

**开始前的准备工作**  
确保您[知道 DataSync 访问](#azure-blob-access)[层Azure Blob Storage和 [blob](#blob-types) 类型的访问](#azure-blob-access-tiers)方式和使用方式。您还需要一个可以连接到您的Azure Blob Storage容器的[DataSync 代理](#azure-blob-creating-agent)。

### 使用控制 DataSync 台
<a name="creating-azure-blob-location-console"></a>

1. 打开 AWS DataSync 控制台，网址为[https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/)。

1. 在左侧导航窗格中，展开**数据传输**，然后选择 **位置**和 **创建位置**。

1. 对于 **位置类型**，请选择 **Microsoft Azure Blob Storage**

1. 对于 **容器 URL**，输入涉及传输的容器的 URL。

1. 或者，对于 **用作目标的访问层级**，请选择要将对象或文件传输到的[访问层级](#azure-blob-access-tiers)。

1. 对于 **文件夹**，如果要将传输限制到容器中的虚拟目录（例如 `/my/images`），请输入路径段。

1. 如果您的转移需要代理，请选择**使用代理**，然后选择可以与您的Azure Blob Storage容器连接的 DataSync 代理。

1. 对于 **SAS 令牌**，请提供访问您的 DataSync blob 存储所需的凭据。Azure Blob 存储上的某些公共数据集不需要凭证。您可以直接输入 SAS 令牌，也可以指定包含该令牌的 AWS Secrets Manager 密钥。有关更多信息，请参阅[为存储位置提供凭证](https://docs.aws.amazon.com/datasync/latest/userguide/location-credentials.html)。

   SAS 令牌是 SAS URI 字符串的一部分，位于存储资源 URI 和问号（`?`）之后。令牌如下所示：

   ```
   sp=r&st=2023-12-20T14:54:52Z&se=2023-12-20T22:54:52Z&spr=https&sv=2021-06-08&sr=c&sig=aBBKDWQvyuVcTPH9EBp%2FXTI9E%2F%2Fmq171%2BZU178wcwqU%3D
   ```

1. （可选）在**键**和**值**字段中输入值以标记位置。

   标签可帮助您管理、筛选和搜索 AWS 资源。我们建议至少为您的位置创建一个名称标签。

1. 选择**创建位置**。

### 使用 AWS CLI
<a name="creating-azure-blob-location-cli"></a>

1. 复制以下 `create-location-azure-blob` 命令：

   ```
   aws datasync create-location-azure-blob \
     --container-url "https://path/to/container" \
     --authentication-type "SAS" \
     --sas-configuration '{
         "Token": "your-sas-token"
       }' \
     --agent-arns my-datasync-agent-arn \
     --subdirectory "/path/to/my/data" \
     --access-tier "access-tier-for-destination" \
     --tags [{"Key": "key1","Value": "value1"}]
   ```

1. 对于 `--container-url` 参数，请指定传输中涉及的 Azure Blob Storage 容器的 URL。

1. 对于 `--authentication-type` 参数，请指定 `SAS`。如果访问不需要身份验证的公共数据集，请指定 `NONE`。

1. 对于`--sas-configuration`参数的`Token`选项，请指定允许 DataSync访问您的 blob 存储的 SAS 令牌。

   您还可以使用 AWS Secrets Manager提供其他参数来保护密钥。有关更多信息，请参阅[为存储位置提供凭证](https://docs.aws.amazon.com/datasync/latest/userguide/location-credentials.html)。

   SAS 令牌是 SAS URI 字符串的一部分，位于存储资源 URI 和问号（`?`）之后。令牌如下所示：

   ```
   sp=r&st=2023-12-20T14:54:52Z&se=2023-12-20T22:54:52Z&spr=https&sv=2021-06-08&sr=c&sig=aBBKDWQvyuVcTPH9EBp%2FXTI9E%2F%2Fmq171%2BZU178wcwqU%3D
   ```

1. （可选）在`--agent-arns`参数中，指定可以连接到您的容器的 DataSync 代理的 Amazon 资源名称 (ARN)。

   下面是一个示例代理 ARN：`arn:aws:datasync:us-east-1:123456789012:agent/agent-01234567890aaabfb`

   您可以指定多个代理。有关更多信息，请参阅 [使用多个 DataSync 代理](do-i-need-datasync-agent.md#multiple-agents)。

1. 对于 `--subdirectory` 参数，如果要将传输限制到容器中的虚拟目录（例如 `/my/images`），请指定路径段。

1. 或者，对于 `--access-tier` 参数，指定要将对象或文件传输到的[访问层级](#azure-blob-access-tiers)（`HOT`、`COOL` 或 `ARCHIVE`）。

   此参数仅适用于使用该位置作为传输目标的情况。

1. 或者，对于 `--tags` 参数，指定可帮助您管理、筛选和搜索位置的键值对。

   我们建议为您的位置创建一个名称标签。

1. 运行 `create-location-azure-blob` 命令。

   如果命令成功，您将收到一条响应，显示您创建位置的 ARN。例如：

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

## 查看您的 Azure Blob Storage 传输位置
<a name="azure-blob-view-location"></a>

您可以获取有关您的现有 DataSync 转账地点的详细信息Azure Blob Storage。

### 使用控制 DataSync 台
<a name="azure-blob-view-location-console"></a>

1. 打开 AWS DataSync 控制台，网址为[https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/)。

1. 在左侧导航窗格中，展开**数据传输**，然后选择**位置**。

1. 选择您的 Azure Blob Storage 位置。

   您可以查看有关您所在位置的详细信息，包括使用该位置的所有 DataSync 转移任务。

### 使用 AWS CLI
<a name="azure-blob-view-location-cli"></a>

1. 复制以下 `describe-location-azure-blob` 命令：

   ```
   aws datasync describe-location-azure-blob \
     --location-arn "your-azure-blob-location-arn"
   ```

1. 对于 `--location-arn` 参数，指定您创建 Azure Blob Storage 位置的 ARN（例如 `arn:aws:datasync:us-east-1:123456789012:location/loc-12345678abcdefgh`）。

1. 运行 `describe-location-azure-blob` 命令。

   您会收到一条回复，显示有关您所在位置的详细信息。例如：

   ```
   {
       "LocationArn": "arn:aws:datasync:us-east-1:123456789012:location/loc-12345678abcdefgh",
       "LocationUri": "azure-blob://my-user.blob.core.windows.net/container-1",
       "AuthenticationType": "SAS",
       "Subdirectory": "/my/images",
       "AgentArns": ["arn:aws:datasync:us-east-1:123456789012:agent/agent-01234567890deadfb"],
   }
   ```

## 更新您的 Azure Blob Storage 传输位置
<a name="azure-blob-update-location"></a>

如有必要，您可以在控制台或使用 AWS CLI修改位置的配置。

### 使用 AWS CLI
<a name="azure-blob-update-location-cli"></a>

1. 复制以下 `update-location-azure-blob` 命令。

   ```
   aws datasync update-location-azure-blob \
     --location-arn "your-azure-blob-location-arn" \
     --authentication-type "SAS" \
     --sas-configuration '{
         "Token": "your-sas-token"
       }' \
     --agent-arns my-datasync-agent-arn \
     --subdirectory "/path/to/my/data" \
     --access-tier "access-tier-for-destination"
   ```

1. 对于 `--location-arn` 参数，请指定要更新的 Azure Blob Storage 位置的 ARN（例如 `arn:aws:datasync:us-east-1:123456789012:location/loc-12345678abcdefgh`）。

1. 对于 `--authentication-type` 参数，请指定 `SAS`。

1. 对于`--sas-configuration`参数的`Token`选项，请指定允许 DataSync访问您的 blob 存储的 SAS 令牌。

   该令牌是 SAS URI 字符串的一部分，位于存储资源 URI 和问号 (`?`) 之后。令牌如下所示：

   ```
   sp=r&st=2022-12-20T14:54:52Z&se=2022-12-20T22:54:52Z&spr=https&sv=2021-06-08&sr=c&sig=qCBKDWQvyuVcTPH9EBp%2FXTI9E%2F%2Fmq171%2BZU178wcwqU%3D
   ```

1. 对于`--agent-arns`参数，请指定要连接到容器的 DataSync 代理的 Amazon 资源名称 (ARN)。

   下面是一个示例代理 ARN：`arn:aws:datasync:us-east-1:123456789012:agent/agent-01234567890aaabfb`

   您可以指定多个代理。有关更多信息，请参阅 [使用多个 DataSync 代理](do-i-need-datasync-agent.md#multiple-agents)。

1. 对于 `--subdirectory` 参数，如果要将传输限制到容器中的虚拟目录（例如 `/my/images`），请指定路径段。

1. 或者，对于 `--access-tier` 参数，指定要将对象传输到的[访问层级](#azure-blob-access-tiers)（`HOT`、`COOL` 或 `ARCHIVE`）。

   此参数仅适用于使用该位置作为传输目标的情况。

## 后续步骤
<a name="create-azure-blob-location-next-steps"></a>

为你的 DataSync 位置创建完毕后Azure Blob Storage，你可以继续设置接送服务。下面是要考虑的一些后续步骤：

1. 如果您还没有准备好，请[创建另一个您计划将数据传入或传出 Azure Blob Storage 的位置](working-with-locations.md)。

1. 了解如何 DataSync [处理元数据和特殊文件](metadata-copied.md)，尤其是在您的传输地点没有类似的元数据结构的情况下。

1. 配置您数据的传输方式。例如，您可以[只传输数据子集](filtering.md)或删除 blob 存储中不在源位置的文件（只要您的 [SAS 令牌](#azure-blob-sas-tokens)具有删除权限）。

1. [开始传输](run-task.md)。

# 使用 Microsoft Azure Files SMB 共享配置 AWS DataSync 传输
<a name="transferring-azure-files"></a>

您可以配置 AWS DataSync 为向服务器消息块 (SMB) 共享传输数据或从Microsoft Azure Files服务器消息块 (SMB) 共享中传输数据。

**提示**  
有关将数据从 Azure 文件 SMB 共享移动到的完整演练 AWS，请参阅[AWS 存储](https://aws.amazon.com/blogs/storage/how-to-move-data-from-azure-files-smb-shares-to-aws-using-aws-datasync/)博客。

## 提供对中小型企业股票的 DataSync 访问权限
<a name="configuring-smb-azure-files"></a>

DataSync 使用 SMB 协议连接到您的 SMB 共享，并使用您提供的凭据进行身份验证。

**Topics**
+ [支持的 SMB 协议版本](#configuring-smb-version-azure-files)
+ [所需的权限](#configuring-smb-permissions-azure-files)

### 支持的 SMB 协议版本
<a name="configuring-smb-version-azure-files"></a>

默认情况下，根据与 SMB 文件服务器的协商 DataSync 自动选择 SMB 协议的版本。

您也可以配置 DataSync 为使用特定的 SMB 版本，但我们建议只有 DataSync 在无法自动与 SMB 文件服务器协商时才这样做。 DataSync 支持 SMB 版本 1.0 及更高版本。出于安全起见，建议使用 SMB 版本 3.0.2 或更高版本。早期版本（例如 SMB 1.0）包含已知的安全漏洞，攻击者可以借此来窃取您的数据。

有关 DataSync控制台和 API 中的选项列表，请参阅下表：


| 控制台选项 | API 选项 | 说明 | 
| --- | --- | --- | 
| 自动 |  `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。 | 

### 所需的权限
<a name="configuring-smb-permissions-azure-files"></a>

DataSync 需要有权装载和访问您的 SMB 位置的用户。此用户可以是 Windows File Server 上的本地用户或 Microsoft Active Directory 中定义的域用户。

要设置对象所有权， DataSync 需要权限，该`SE_RESTORE_NAME`权限通常授予内置 Active Directory 组的成**员 Backup** Operators 和 **Domain Admins**。为用户提供此 DataSync 权限还有助于确保对文件、文件夹和文件元数据的足够权限，NTFS 系统访问控制列表除外 (SACLs)。

需要其他权限才能复制 SACLs。此操作特别需要 Windows `SE_SECURITY_NAME`权限，该权限授予**域管理员**组的成员。如果将任务配置为复制 SACLs，请确保用户具有所需的权限。要了解有关配置要复制的任务的更多信息 SACLs，请参阅[配置文件、对象和元数据的处理方式](configure-metadata.md)。

在 SMB 文件服务器和 Amazon FSx for Windows 文件服务器文件系统之间复制数据时，源位置和目标位置必须属于相同的 Microsoft Active Directory 域，或者它们的域之间必须有 Active Directory 信任关系。

## 使用控制台创建 Azure 文件传输位置
<a name="create-azure-files-smb-location-how-to"></a>

1. 打开 AWS DataSync 控制台，网址为[https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/)。

1. 在左侧导航窗格中，展开**数据传输**，然后选择 **位置**和 **创建位置**。

1. 对于 **位置类型**，选择 **Server Message Block (SMB) (服务器消息块 (SMB))**。

   您可在稍后将此位置配置为源或目标。

1. 对于**代理**，请选择一个或多个要连接到 SMB 共享的 DataSync 代理。

   如果您选择多个代理，请确保您了解如何[对位置使用多个代理](do-i-need-datasync-agent.md#multiple-agents)。

1. 对**于 SMB 服务器**，输入您的 DataSync 代理将挂载的 SMB 共享的域名系统 (DNS) 名称或 IP 地址。
**注意**  
您无法指定 IP 版本 6 (IPv6) 地址。

1. 在**共享名称**中，输入您的 SMB 共享导出的共享名称，该共享 DataSync 将在其中读取或写入数据。

   您可以在共享路径中包含子目录（例如，‭`/path/to/subdirectory`）。确保网络中的其他 SMB 客户端也可以挂载此路径。

   要复制子目录中的所有数据， DataSync 必须能够装载 SMB 共享并访问其所有数据。有关更多信息，请参阅 [所需的权限](create-smb-location.md#configuring-smb-permissions)。

1. （可选）展开 **“其他设置”**，然后选择 DataSync 要在访问您的 **SMB 共享时使用的 SMB 版本**。

   默认情况下，根据与 SMB 共享的协商 DataSync 自动选择版本。有关信息，请参阅[支持的 SMB 版本](create-smb-location.md#configuring-smb-version)。

1. 对于**用户**，输入可挂载 SMB 共享并有权访问传输中涉及文件和文件夹的用户名。

   有关更多信息，请参阅 [所需的权限](create-smb-location.md#configuring-smb-permissions)。

1. 对于**密码**，输入可挂载 SMB 共享并有权访问传输中涉及文件和文件夹的用户的密码。

1. （可选）对于**域**，输入 SMB 共享所属的 Windows 域名。

   如果您的环境中有多个域，则配置此设置 DataSync 可确保这些域连接到正确的共享。

1. （可选）选择 **添加标签**来标记您的位置。

   *标签* 是帮助您管理、筛选和搜索位置的键值对。我们建议至少为您的位置创建一个名称标签。

1. 选择**创建位置**。

# 配置使用其他云对象存储的 传输
<a name="creating-other-cloud-object-location"></a>

借 AWS DataSync助，您可以在[AWS 存储服务](transferring-aws-storage.md)与以下云对象存储提供商之间传输数据：
+ [https://docs.wasabi.com/](https://docs.wasabi.com/)
+ [https://docs.digitalocean.com/](https://docs.digitalocean.com/)
+ [https://docs.oracle.com/iaas/Content/home.htm](https://docs.oracle.com/iaas/Content/home.htm)
+ [https://developers.cloudflare.com/r2/](https://developers.cloudflare.com/r2/)
+ [https://www.backblaze.com/docs/cloud-storage](https://www.backblaze.com/docs/cloud-storage)
+ [https://guide.ncloud-docs.com/docs/](https://guide.ncloud-docs.com/docs/)
+ [https://www.alibabacloud.com/help/en/oss/product-overview/what-is-oss](https://www.alibabacloud.com/help/en/oss/product-overview/what-is-oss)
+ [https://cloud.ibm.com/docs/cloud-object-storage?topic=cloud-object-storage-getting-started-cloud-object-storage](https://cloud.ibm.com/docs/cloud-object-storage?topic=cloud-object-storage-getting-started-cloud-object-storage)
+ [https://help.lyvecloud.seagate.com/en/product-features.html](https://help.lyvecloud.seagate.com/en/product-features.html)

只有在其他云中的存储系统与 Amazon EFS 或 Amazon 之间传输数据时 FSx，或者使用**基本**模式任务时，才需要 DataSync 代理。使用**增强**模式在其他云中的存储系统和 Amazon S3 之间传输数据时不需要代理。

无论您是否使用代理，都必须为云对象存储创建一个传输[位置](how-datasync-transfer-works.md#sync-locations)（特别是**对象存储**位置）。 DataSync 可以将此位置用作转账的来源或目的地。

## 提供对其他云对象存储的 DataSync 访问权限
<a name="other-cloud-access"></a>

如何 DataSync 访问您的云对象存储取决于多个因素，包括您的存储是否与 Amazon S3 API 兼容，以及访问存储 DataSync 所需的权限和证书。

**Topics**
+ [Amazon S3 API 兼容性](#other-cloud-s3-compatibility)
+ [存储权限和端点](#other-cloud-permissions)
+ [存储凭证](#other-cloud-credentials)

### Amazon S3 API 兼容性
<a name="other-cloud-s3-compatibility"></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="other-cloud-permissions"></a>

您必须配置允许 DataSync 访问您的云对象存储的权限。如果您的对象存储是源位置，则 DataSync 需要对从中传输数据的存储桶具有读取和列出权限。如果您的对象存储是目标位置，则 DataSync 需要存储桶的读取、列出、写入和删除权限。

DataSync 还需要一个端点（或服务器）才能连接到您的存储。下表描述了 DataSync 可用于访问其他云对象存储的终端节点：


| 其他云提供商 | 端点 | 
| --- | --- | 
| Wasabi Cloud Storage |  `S3.region.wasabisys.com`  | 
| DigitalOcean Spaces |  `region.digitaloceanspaces.com`  | 
| Oracle Cloud Infrastructure Object Storage |  `namespace.compat.objectstorage.region.oraclecloud.com`  | 
|  Cloudflare R2 Storage  |  `account-id.r2.cloudflarestorage.com`  | 
|  Backblaze B2 Cloud Storage  |  `S3.region.backblazeb2.com`  | 
| NAVER Cloud Object Storage |  `region.object.ncloudstorage.com`（大多数地区）  | 
| Alibaba Cloud Object Storage Service | `region.aliyuncs.com` | 
| IBM Cloud Object Storage | `s3.region.cloud-object-storage.appdomain.cloud` | 
| Seagate Lyve Cloud | `s3.region.lyvecloud.seagate.com` | 

**重要**  
有关如何配置存储桶权限的详细信息以及存储端点的更新信息，请参阅您的云提供商的文档。

### 存储凭证
<a name="other-cloud-credentials"></a>

DataSync 还需要凭证才能访问传输中涉及的对象存储桶。凭证可能是访问密钥和私有密钥或类似的东西，具体取决于您的云存储提供商如何引用这些凭证。

有关更多信息，请参阅您的云提供商的文档。

## 从其他云对象存储传输时的注意事项
<a name="other-cloud-considerations"></a>

在计划通过使用向其他云存储提供商传输对象或从其他云存储提供商传输对象时 DataSync，需要记住一些注意事项。

**Topics**
+ [成本](#other-cloud-considerations-costs)
+ [存储类](#other-cloud-considerations-storage-classes)
+ [对象标签](#other-cloud-considerations-object-tags)
+ [传输到 Amazon S3](#other-cloud-considerations-s3)

### 成本
<a name="other-cloud-considerations-costs"></a>

与将数据移动入和移出其他云存储提供商相关的费用可能包括：
+ 为您的 DataSync 代理运行 A [mazon EC2](https://aws.amazon.com/ec2/pricing/) 实例
+ 使用传输数据 [DataSync](https://aws.amazon.com/datasync/pricing/)，包括与您的云对象存储和 [Amazon S3](create-s3-location.md#create-s3-location-s3-requests)（如果 S3 是您的传输目的地）相关的请求费用
+ 将数据传入或传出您的云存储（请查看您的云提供商的定价）
+ 将数据存储在支持的[AWS 存储服务](transferring-aws-storage.md)中 DataSync
+ 将数据存储在其他云提供商中（请查看您的云提供商的定价）

### 存储类
<a name="other-cloud-considerations-storage-classes"></a>

一些云存储提供商的存储类别（类似于 [Amazon S3](create-s3-location.md#using-storage-classes)），如果不先恢复，则 DataSync 无法读取。例如，Oracle Cloud Infrastructure Object Storage 具有档案存储类别。您需要先恢复该存储类别中的对象，然后 DataSync 才能传输它们。有关更多信息，请参阅您的云提供商的文档。

### 对象标签
<a name="other-cloud-considerations-object-tags"></a>

并非所有云提供商都支持对象标签。即使支持对象标签，部分云提供商可能也不允许通过 Amazon S3 API 查询标签。无论哪种情况，如果您尝试复制对象标签，您的 DataSync 传输任务都可能失败。

您可以通过在创建、启动或更新任务时清除 DataSync 控制台中的 “**复制对象标签**” 复选框来避免这种情况。

### 传输到 Amazon S3
<a name="other-cloud-considerations-s3"></a>

传输到 Amazon S3 时， DataSync 无法传输大于 5 TB 的对象。 DataSync也只能复制最多 2 KB 的对象元数据。

## 创建您的 DataSync 代理
<a name="other-cloud-creating-agent"></a>

只有在其他云中的存储系统与 Amazon EFS 或 Amazon 之间传输数据时 FSx，或者使用**基本**模式任务时，才需要 DataSync 代理。使用**增强**模式在其他云中的存储系统和 Amazon S3 之间传输数据时不需要代理。本部分介绍了如何在 AWS中的虚拟私有云（VPC）中的 Amazon EC2 实例上部署和激活代理。

**创建 Amazon EC2 代理**

1. [部署 Amazon EC2 代理](deploy-agents.md#ec2-deploy-agent)。

1. [选择代理用来与之通信的服务端点](choose-service-endpoint.md) AWS。

   在这种情况下，我们建议使用 VPC 服务端点。

1. 将您的网络配置为使用 [VPC 服务端点](datasync-network.md#using-vpc-endpoint)。

1. [激活代理](activate-agent.md)。

## 为您的其他云对象存储创建传输位置
<a name="creating-other-cloud-location-how-to"></a>

您可以配置 DataSync 为使用云对象存储作为源位置或目标位置。

**开始前的准备工作**  
确保您知道[如何 DataSync 访问您的云对象存储](#other-cloud-access)。您还需要一个可以连接到您的云对象存储的[DataSync 代理](#other-cloud-creating-agent)。

1. 打开 AWS DataSync 控制台，网址为[https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/)。

1. 在左侧导航窗格中，展开**数据传输**，然后选择 **位置**和 **创建位置**。

1. 对于 **位置类型**，选择 **对象存储**。

1. 对于 **Server**，输入 DataSync 可用于访问您的云对象存储的[终端节点](#other-cloud-permissions)：
   + **Wasabi Cloud Storage** – `S3.region.wasabisys.com`
   + **DigitalOcean Spaces** – `region.digitaloceanspaces.com`
   + **Oracle Cloud Infrastructure Object Storage** – `namespace.compat.objectstorage.region.oraclecloud.com`
   + **Cloudflare R2 Storage** – `account-id.r2.cloudflarestorage.com`
   + **Backblaze B2 Cloud Storage** – `S3.region.backblazeb2.com`
   + **NAVER Cloud Object Storage** — `region.object.ncloudstorage.com`（大多数地区）
   + **Alibaba Cloud Object Storage Service** – `region.aliyuncs.com`
   + **IBM Cloud Object Storage** – `s3.region.cloud-object-storage.appdomain.cloud`
   + **Seagate Lyve Cloud** – `s3.region.lyvecloud.seagate.com`

1. 在**存储桶名称**中，输入您要向其传输数据或从中传输数据的对象存储桶的名称。

1. 对于 **“文件夹**”，输入对象前缀。 DataSync 仅传输带有此前缀的对象。

1. 如果您的转移需要代理，请选择**使用代理**，然后选择可以与您的云对象存储连接的 DataSync 代理。

1. 展开**其他设置**。对于**服务器协议**，请选择 **HTTPS**。对于**服务器端口**，请选择 **443**。

1. 向下滚动到**身份验证**部分。确保选中 “**需要凭据**” 复选框，然后提供 DataSync 您的[存储凭据](#other-cloud-credentials)。
   + 在**访问密钥**中，输入用于访问您的云对象存储的 ID。
   + 在**私有密钥**中，提供用于访问您的云对象存储的私有密钥。您可以直接输入密钥，也可以指定包含 AWS Secrets Manager 密钥的密钥。有关更多信息，请参阅[为存储位置提供凭证](https://docs.aws.amazon.com/datasync/latest/userguide/location-credentials.html)。

1. （可选）在**键**和**值**字段中输入值以标记位置。

   标签可帮助您管理、筛选和搜索 AWS 资源。我们建议至少为您的位置创建一个名称标签。

1. 选择**创建位置**。

## 后续步骤
<a name="other-cloud-location-next-steps"></a>

创建完云对象存储 DataSync 位置后，您可以继续设置传输。下面是要考虑的一些后续步骤：

1. 如果您还没有准备好，请[创建另一个您计划将数据传入或传出 AWS的位置](transferring-aws-storage.md)。

1. 了解如何 DataSync [处理对象存储位置的元数据和特殊文件](metadata-copied.md)。

1. 配置您数据的传输方式。例如，也许您只想[传输数据的子集](filtering.md)。
**重要**  
确保正确配置 DataSync 复制对象标签的方式。有关更多信息，请参阅有关[对象标签](#other-cloud-considerations-object-tags)的注意事项。

1. [开始传输](run-task.md)。

 

# 创建一个传输数据的任务
<a name="create-task-how-to"></a>

*任务*描述了数据 AWS DataSync 传输的地点和方式。任务包括以下部分：
+ [**源位置**](working-with-locations.md)-从中 DataSync 传输数据的存储系统或服务。
+ [**目标位置**](working-with-locations.md)-将数据 DataSync 传输到的存储系统或服务。
+ [**任务选项**](task-options.md) — 诸如要传输哪些文件、如何验证数据、任务何时运行等设置。
+ [**任务执行**](run-task.md) — 当您运行任务时，它被称为*任务执行*。

## 创建 任务
<a name="create-task-steps"></a>

创建 DataSync 任务时，需要指定源位置和目标位置。您还可以通过选择要传输的文件、处理元数据的方式，并设置时间表等，对任务进行自定义。

在创建任务之前，请务必[了解 DataSync 转移的工作原](how-datasync-transfer-works.md#transferring-files)理并查看[任务配额](datasync-limits.md#task-hard-limits)。

**重要**  
如果您计划在 Amazon S3 地点之间传输数据，请在开始之前查看[ DataSync 如何影响您的 S3 请求费用](create-s3-location.md#create-s3-location-s3-requests)和[DataSync 定价页面](https://aws.amazon.com/datasync/pricing/)。

### 使用控制 DataSync 台
<a name="create-task-console"></a>

1. 打开 AWS DataSync 控制台，网址为[https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/)。

1. 确保您位于计划传输数据 AWS 区域 的地点之一。

1. 在左侧导航窗格中，展开**数据传输**，然后选择**任务**，然后选择**创建任务**。

1. 在**配置源位置**页面，[创建](transferring-data-datasync.md)或选择一个源位置，然后选择**下一步**。

1. 在**配置目标位置**页面，[创建](transferring-data-datasync.md)或选择一个目标位置，然后选择**下一步**。

1. （推荐）在**配置设置**页面，为任务指定一个您可以记住的名称。

1. 同样在**配置设置**页面，选择任务选项，或使用默认设置。

   您可能对以下一些选项感兴趣：
   + 指定要使用的[任务模式](choosing-task-mode.md)。
   + 使用[清单](transferring-with-manifest.md)或[筛选条件](filtering.md)指定要传输的数据。
   + 配置如何[处理文件元数据](configure-metadata.md)和[验证数据完整性](configure-data-verification-options.md)。
   + 通过[任务报告](task-reports.md)或 [Amazon](monitor-datasync.md) 监控您的转账 CloudWatch。我们建议为任务设置某种监控。

   完成此操作后，选择**下一步**。

1. 检查任务配置，然后选择**创建任务**。

您已经准备好，可以[开始任务](run-task.md)。

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

[创建 DataSync 源位置和目标位置](transferring-data-datasync.md)后，即可创建任务。

1. 在你的 AWS CLI 设置中，确保你使用的是你计划传输数据的 AWS 区域 其中一个位置。

1. 复制以下 `create-task` 命令：

   ```
   aws datasync create-task \
     --source-location-arn "arn:aws:datasync:us-east-1:account-id:location/location-id" \
     --destination-location-arn "arn:aws:datasync:us-east-1:account-id:location/location-id" \
     --name "task-name"
   ```

1. 对于 `--source-location-arn`，指定源位置的 Amazon 资源名称（ARN）。

1. 对于 `--destination-location-arn`，指定目标位置的 ARN。

   如果您要跨 AWS 区域 账户转账，请确保 ARN 包含其他地区或账户 ID。

1. （推荐）对于 `--name`，请为任务指定一个您可以记住的名称。

1. 根据需要指定其他任务选项。您可能对以下一些选项感兴趣：
   + 使用[清单](transferring-with-manifest.md)或[筛选条件](filtering.md)指定要传输的数据。
   + 配置如何[处理文件元数据](configure-metadata.md)和[验证数据完整性](configure-data-verification-options.md)。
   + 通过[任务报告](task-reports.md)或 [Amazon](monitor-datasync.md) 监控您的转账 CloudWatch。我们建议为任务设置某种监控。

   有关更多选项，请参阅 [create-task](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/datasync/create-task.html)。以下是指定了多个选项的 `create-task` 命令示例：

   ```
   aws datasync create-task \
     --source-location-arn "arn:aws:datasync:us-east-1:account-id:location/location-id" \
     --destination-location-arn "arn:aws:datasync:us-east-1:account-id:location/location-id" \
     --cloud-watch-log-group-arn "arn:aws:logs:region:account-id" \
     --name "task-name" \
     --options VerifyMode=NONE,OverwriteMode=NEVER,Atime=BEST_EFFORT,Mtime=PRESERVE,Uid=INT_VALUE,Gid=INT_VALUE,PreserveDevices=PRESERVE,PosixPermissions=PRESERVE,PreserveDeletedFiles=PRESERVE,TaskQueueing=ENABLED,LogLevel=TRANSFER
   ```

1. 运行 `create-task` 命令。

   如果命令成功，您将收到一条响应，显示所创建任务的 ARN。例如：

   ```
   { 
       "TaskArn": "arn:aws:datasync:us-east-1:111222333444:task/task-08de6e6697796f026" 
   }
   ```

您已经准备好，可以[开始任务](run-task.md)。

## 任务状态
<a name="understand-task-creation-statuses"></a>

创建 DataSync 任务时，您可以检查其状态以查看其是否已准备好运行。


| 控制台状态 | API 状态 | 说明 | 
| --- | --- | --- | 
| Available |  `AVAILABLE`  |  任务准备就绪，可以开始传输数据。  | 
| 运行 |  `RUNNING`  | 任务正在执行中。有关更多信息，请参阅 [任务执行状态](run-task.md#understand-task-execution-statuses)。 | 
|  不可用  |  `UNAVAILABLE`  |  任务使用的 DataSync 代理处于脱机状态。有关更多信息，请参阅 [如果我的代理处于离线状态，我该怎么办？](troubleshooting-datasync-agents.md#troubleshoot-agent-offline)。  | 
|  已排队  |  `QUEUED`  |  另一个使用相同 DataSync 代理的任务正在执行中。有关更多信息，请参阅 [了解任务何时排队](run-task.md#queue-task-execution)。  | 

## 使用多个任务对大型数据集进行分区
<a name="multiple-tasks-large-dataset"></a>

如果您要传输大型数据集，例如[迁移](datasync-large-migration.md)数百万个文件或对象，我们建议您使用 DataSync 增强模式进行传输，该模式可以传输文件数量几乎不受限制的数据集。对于包含数十亿个文件的超大型数据集，您应该考虑使用多个 DataSync 任务对数据集进行分区。将数据分成多个任务（可能还有[代理](do-i-need-datasync-agent.md#multiple-agents)，具体取决于您所在的位置）有助于缩短 DataSync 准备和传输数据所需的时间。

考虑一下将大型数据集分成多个 DataSync任务的一些方法：
+ 创建传输单独文件夹的任务。例如，可以在源存储中分别创建两个以 `/FolderA` 和 `/FolderB` 为目标的任务。
+ 使用[清单](transferring-with-manifest.md)或[筛选条件](filtering.md)创建任务，传输文件、对象和文件夹的子集。

请注意，这种方法可能会增加存储 I/O 操作并影响网络带宽。有关更多信息，请参阅关于[如何使用横向 DataSync 扩展架构加速数据传输的](https://aws.amazon.com/blogs/storage/how-to-accelerate-your-data-transfers-with-aws-datasync-scale-out-architectures/)博客。

## 通过多个任务来分割传输的数据
<a name="multiple-tasks-organize-transfer"></a>

如果要将不同的数据集传输到同一目标，您可以创建多个任务来帮助分割要传输的数据。

例如，如果要传输到名为 `MyBucket` 的同一个 S3 存储桶，您可以在存储桶中创建与每个任务相对应的不同前缀。这种方法可以防止数据集的文件名冲突，并允许您为每个前缀设置不同的权限。下面是设置方法：

1. 在目标 `MyBucket` 中创建三个前缀，分别命名为 `task1`、`task2` 和 `task3`：
   + `s3://MyBucket/task1`
   + `s3://MyBucket/task2`
   + `s3://MyBucket/task3`

1. 创建三个名为`task1``task2`、的 DataSync 任务`task3`，并将它们转移到中相应的前缀`MyBucket`。

# 为数据传输选择任务模式
<a name="choosing-task-mode"></a>

您的 AWS DataSync 任务可以在以下模式之一下运行：
+ **增强模式**-传输几乎无限数量的文件或对象，其性能高于基本模式。增强模式任务通过并行列示、准备、传输和验证数据来优化数据传输过程。增强模式目前可用于在 Amazon S3 位置之间进行传输，在没有代理的情况下在 Amazon S3 之间Azure Blob进行传输，在没有代理的情况下在其他云和 Amazon S3 之间传输，以及使用增强模式代理在 NFS 或 SMB 文件服务器与 Amazon S3 之间传输。
+ **基本模式**-在 AWS 存储和所有其他支持的 DataSync 位置之间传输文件或对象。基本模式任务在数据集中文件、对象和目录数量方面存在[配额](datasync-limits.md)限制。基本模式按顺序准备、传输和验证数据，因此对于大多数工作负载来说，基本模式的处理速度慢于增强模式。

## 了解任务模式的差异
<a name="task-mode-differences"></a>

以下信息有助于您确定使用哪种任务模式。


| 能力 | 增强模式行为 | 基本模式行为 | 
| --- | --- | --- | 
| [性能](how-datasync-transfer-works.md#transferring-files) | DataSync 并行列出、准备、传输和验证您的数据。对于大多数工作负载（例如传输大型对象），可提供比基本模式更高的性能 | DataSync 按顺序准备、传输和验证您的数据。对于大多数工作负载，性能比增强模式更慢 | 
| 数据集中每次执行任务时 DataSync 可以处理的项目数 |  对象数量几乎不受限制  |  适用[配额](datasync-limits.md#task-hard-limits)  | 
|  数据传输[计数器](transfer-performance-counters.md)和[指标](monitor-datasync.md)  |  与 “基本” 模式相比，计数器和指标更多，例如在源位置 DataSync找到的对象数量、每次任务执行期间准备的对象数量，以及类似于文件和对象计数器的文件夹计数器  |  计数器和指标低于增强模式  | 
|  [日志记录](configure-logging.md)  | 结构化日志（JSON 格式） | 非结构化日志 | 
|  [支持的位置](working-with-locations.md)  | 目前用于在 Amazon S3 位置之间进行传输，在没有代理的情况下在 Amazon S3 Azure Blob 和 Amazon S3 之间传输，在没有代理的情况下在其他云和 Amazon S3 之间传输，以及使用增强模式代理在 NFS 或 SMB 文件服务器与 Amazon S3 之间传输。 |  适用于所有 DataSync 支持的地点之间的传输  | 
|  [数据验证选项](configure-data-verification-options.md)  | DataSync 仅验证传输的数据 | DataSync 默认情况下会验证所有数据 | 
| 成本 | 如需了解更多信息，请参阅定[DataSync 价](https://aws.amazon.com/datasync/pricing)页面 | 如需了解更多信息，请参阅定[DataSync 价](https://aws.amazon.com/datasync/pricing)页面 | 
| 处理不支持的对象标签时失败 | 云存储传入或传出不支持对象标记的位置时，如果 ObjectTags 选项未指定或设置为 PRESERVE，任务执行会立即失败。 | 云存储传入或传出不支持对象标记的位置时，任务执行会正常运行，但如果 ObjectTags 选项未指定或设置为 PRESERVE，则会逐对象报告已标记对象的故障。 | 

## 选择任务模式
<a name="choosing-task-mode-how-to"></a>

您只能为 Amazon S3 位置之间的传输、在没有代理的情况下在 Amazon S3 之间Azure Blob进行传输、在没有代理的情况下在其他云和 Amazon S3 之间传输以及使用增强模式代理在 NFS 或 SMB 文件服务器与 Amazon S3 之间的传输选择增强模式。否则，必须使用基本模式。例如，从本地 [HDFS 位置](create-hdfs-location.md)传输到 S3 位置需要基本模式。

根据所选择的任务模式，任务选项和性能可能有所不同。一旦创建任务后，就无法更改任务模式。

**所需的权限**  
要创建增强模式任务，与之 DataSync 配合使用的 IAM 角色必须具有`iam:CreateServiceLinkedRole`权限。  
要获得 DataSync 用户权限，请考虑使用[AWSDataSyncFullAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-awsdatasyncfullaccess)。这是一项 AWS 托管策略，可为用户提供对其依赖项的完全访问权限 DataSync 和最少访问权限。

### 使用控制 DataSync 台
<a name="choosing-task-mode-console"></a>

1. 打开 AWS DataSync 控制台，网址为[https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/)。

1. 在左侧导航窗格中，展开**数据传输**，然后选择**任务**，然后选择**创建任务**。

1. 配置您任务的源位置和目标位置。

   有关更多信息，请参阅 [我可以在哪里传输我的数据 AWS DataSync？](working-with-locations.md)。

1. 对于**任务模式**，请选择下列选项之一：
   + **增强型**
   + **基本**

   有关更多信息，请参阅 [了解任务模式的差异](#task-mode-differences)。

1. 同样在**配置设置**页面，选择其他任务选项，或使用默认设置。

   您可能对以下一些选项感兴趣：
   + 使用[清单](transferring-with-manifest.md)或[筛选条件](filtering.md)指定要传输的数据。
   + 配置如何[处理文件元数据](configure-metadata.md)和[验证数据完整性](configure-data-verification-options.md)。
   + 使用[任务报告](task-reports.md)或 [Amazon CloudWatch 日志](monitor-datasync.md)监控您的转账。

   完成此操作后，选择**下一步**。

1. 检查任务配置，然后选择**创建任务**。

### 使用 AWS CLI
<a name="choosing-task-mode-cli"></a>

1. 在你的 AWS CLI 设置中，确保你使用的是你计划传输数据的 AWS 区域 位置之一。

1. 复制以下 `create-task` 命令：

   ```
   aws datasync create-task \
     --source-location-arn "arn:aws:datasync:us-east-1:account-id:location/location-id" \
     --destination-location-arn "arn:aws:datasync:us-east-1:account-id:location/location-id" \
     --task-mode "ENHANCED-or-BASIC"
   ```

1. 对于 `--source-location-arn`，指定源位置的 Amazon 资源名称（ARN）。

1. 对于 `--destination-location-arn`，指定目标位置的 ARN。

   如果您要跨 AWS 区域 账户转账，请确保 ARN 包含其他地区或账户 ID。

1. 对于 `--task-mode`，指定 `ENHANCED` 或 `BASIC`。

   有关更多信息，请参阅 [了解任务模式的差异](#task-mode-differences)。

1. 根据需要指定其他任务选项。您可能对以下一些选项感兴趣：
   + 使用[清单](transferring-with-manifest.md)或[筛选条件](filtering.md)指定要传输的数据。
   + 配置如何[处理文件元数据](configure-metadata.md)和[验证数据完整性](configure-data-verification-options.md)。
   + 使用[任务报告](task-reports.md)或 [Amazon CloudWatch 日志](monitor-datasync.md)监控您的转账。

   有关更多选项，请参阅 [create-task](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/datasync/create-task.html)。以下是指定了增强模式和其他多个选项的 `create-task` 命令示例：

   ```
   aws datasync create-task \
     --source-location-arn "arn:aws:datasync:us-east-1:account-id:location/location-id" \
     --destination-location-arn "arn:aws:datasync:us-east-1:account-id:location/location-id" \
     --name "task-name" \
     --task-mode "ENHANCED" \
     --options TransferMode=CHANGED,VerifyMode=ONLY_FILES_TRANSFERRED,ObjectTags=PRESERVE,LogLevel=TRANSFER
   ```

1. 运行 `create-task` 命令。

   如果命令成功，您将收到一条响应，显示所创建任务的 ARN。例如：

   ```
   { 
       "TaskArn": "arn:aws:datasync:us-east-1:111222333444:task/task-08de6e6697796f026" 
   }
   ```

### 使用 DataSync API
<a name="choosing-task-mode-api"></a>

您可以通过在[CreateTask](https://docs.aws.amazon.com/datasync/latest/userguide/API_CreateTask.html)操作中配置`TaskMode`参数来指定 DataSync 任务模式。

# 选择什么 AWS DataSync 转账
<a name="task-options"></a>

AWS DataSync 允许您选择要传输的内容以及如何处理数据。一些选项包括：
+ 使用清单传输确切的文件或对象列表。
+ 使用筛选条件在传输中包含或排除某些类型的数据。
+ 对于周期性传输，仅移动自上次传输以来发生变化的数据
+ 覆盖目标位置的数据，使其与源位置中的数据匹配。
+ 选择要在存储位置之间保留的文件或对象元数据。

**Topics**
+ [使用清单传输特定的文件或对象](transferring-with-manifest.md)
+ [使用筛选条件传输特定文件、对象和文件夹](filtering.md)
+ [了解如何 DataSync 处理文件和对象元数据](metadata-copied.md)
+ [由复制的链接和目录 AWS DataSync](special-files-copied.md)
+ [配置文件、对象和元数据的处理方式](configure-metadata.md)

# 使用清单传输特定的文件或对象
<a name="transferring-with-manifest"></a>

*清单*是您要传输的文件或对象 AWS DataSync 的列表。例如，不必传输可能包含数百万个对象的 S3 存储桶中的所有内容，而是只 DataSync 传输您在清单中列出的对象。

清单与[筛选条件](filtering.md)类似，但清单可让您准确确定要传输的文件或对象，而不是符合筛选模式的数据。

**注意**  
增强模式任务清单文件允许的最大大小为 20 GB。

## 创建清单
<a name="transferring-with-manifest-create"></a>

清单是逗号分隔值 (CSV) 格式的文件，它列出了源位置中要 DataSync 传输的文件或对象。如果源位置是 S3 存储桶，您还可以包含要传输的对象版本。

**Topics**
+ [指南要求](#transferring-with-manifest-guidelines)
+ [示例清单](#manifest-examples)

### 指南要求
<a name="transferring-with-manifest-guidelines"></a>

使用这些指南来帮助您创建适用于的清单 DataSync。

------
#### [ Do ]
+ 指定要传输的每个文件或对象的完整路径。

  您不能只指定一个目录或文件夹，然后希望传输其中的所有内容。对于这种情况，请考虑使用[包含筛选条件](filtering.md)，而不是清单。
+ 确保每个文件或对象路径都与您在配置 DataSync 源位置时指定的挂载路径、文件夹、目录或前缀相关。

  例如，假设您[配置了一个 S3 位置](create-s3-location.md#create-s3-location-how-to)，其前缀名为 `photos`。该前缀包括一个要传输的对象 `my-picture.png`。然后，在清单中，您只需要指定对象（`my-picture.png`），而不是前缀和对象（`photos/my-picture.png`）。
+ 要指定 Amazon S3 对象版本 IDs，请使用逗号分隔对象的路径和版本 ID。

  下面的示例展示了包含两个字段的清单条目。第一个字段包含一个名为 `picture1.png` 的对象。第二个字段用逗号分隔，包含版本 ID `111111`：

  ```
  picture1.png,111111
  ```
+ 在以下情况下使用引号：
  + 当路径包含特殊字符（逗号、引号和行尾）时：

    `"filename,with,commas.txt"`
  + 当路径跨越多行时：

    ```
    "this
    is
    a
    filename.txt"
    ```
  + 当路径包含引号时：

    `filename""with""quotes.txt`

    这表示名为 `filename"with"quotes.txt` 的路径。

  这些引号规则也适用于版本 ID 字段。通常，如果清单字段有引号，必须使用另一个引号将其转义。
+ 用新行分隔每个文件或对象条目。

  您可以使用 Linux 风格的换行（换行符或回车符）或 Windows 风格的换行（回车符后跟换行符）来分隔行。
+ 保存您的清单（例如，`my-manifest.csv` 或 `my-manifest.txt`）。
+ 将清单上传到[DataSync 可以访问](#transferring-with-manifest-access)的 S3 存储桶。

  此存储桶不必位于您正在使用的同一个 AWS 区域 或账户中 DataSync。

------
#### [ Don't ]
+ 只指定一个目录或文件夹，然后希望传输其中的所有内容。

  清单只能包含要传输的文件或对象的完整路径。如果您将源位置配置为使用特定的挂载路径、文件夹、目录或前缀，您不必在清单中包含这些内容。
+ 指定超过 4096 个字符的文件或对象路径。
+ 指定超过 1024 字节的文件路径、对象路径或 Amazon S3 对象版本 ID。
+ 指定重复的文件或对象路径。
+ 包含对象版本 ID（如果您的源位置不是 S3 存储桶）。
+ 在一个清单条目中包含两个以上的字段。

  一个条目只能包含一个文件或对象路径，以及一个 Amazon S3 对象版本 ID（如适用）。
+ 包含不符合 UTF-8 编码的字符。
+ 在条目字段中，在引号外包含非预期的空格。

------

### 示例清单
<a name="manifest-examples"></a>

使用这些示例来帮助您创建适用于的清单 DataSync。

**包含完整文件或对象路径的清单**  
下面的示例展示了带有完整文件或对象传输路径的清单。  

```
photos/picture1.png
photos/picture2.png
photos/picture3.png
```

**仅包含对象键的清单**  
下面的示例展示了一份清单，其中列出了要从 Amazon S3 源位置传输的对象。由于[位置已配置](create-s3-location.md#create-s3-location-how-to)了前缀 `photos`，因此仅指定了对象键。  

```
picture1.png
picture2.png
picture3.png
```

**包含对象路径和版本的清单 IDs**  
以下清单示例中的前两个条目包括要传输的特定 Amazon S3 对象版本。  

```
photos/picture1.png,111111
photos/picture2.png,121212
photos/picture3.png
```

**包含 UTF-8 字符的清单**  
以下示例展示了包含 UTF-8 字符的文件清单。  

```
documents/résumé1.pdf
documents/résumé2.pdf
documents/résumé3.pdf
```

## 提供对清单的 DataSync 访问权限
<a name="transferring-with-manifest-access"></a>

您需要一个 AWS Identity and Access Management (IAM) 角色来授予对其 S3 存储桶中清单的 DataSync 访问权限。此角色必须包括以下权限：
+ `s3:GetObject`
+ `s3:GetObjectVersion`

您可以在 DataSync 控制台中自动生成此角色，也可以自己创建该角色。

**注意**  
如果您的清单位于不同的清单中 AWS 账户，则必须手动创建此角色。

### 自动创建 IAM 角色
<a name="creating-manfiest-role-automatically"></a>

在控制台中创建或启动转移任务时， DataSync 可以为您创建一个 IAM 角色，该角色具有访问清单所需的`s3:GetObject`和`s3:GetObjectVersion`权限。

**自动创建角色所需的权限**  
要自动创建角色，请确保您用于访问 DataSync 控制台的角色具有以下权限：  
+ `iam:CreateRole`
+ `iam:CreatePolicy`
+ `iam:AttachRolePolicy`

### 创建 IAM 角色（同一账户）
<a name="creating-manfiest-role-automatically-same-account"></a>

您可以手动创建访问清单 DataSync 所需的 IAM 角色。以下说明假设您 AWS 账户 所在的使用位置相同， DataSync 并且清单的 S3 存储桶位于同一位置。

1. 使用 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 打开 IAM 控制台。

1. 在左侧导航窗格的**访问管理**下，选择**角色**，然后选择**创建角色**。

1. 在**选择可信实体**页面中，为**可信实体类型**选择 **AWS 服务**。

1. 对于 “**用例**”，**DataSync**在下拉列表中进行选择，然后选择**DataSync**。选择**下一步**。

1. 在**添加权限**页面上，选择**下一步**。输入角色名称，然后选择**创建角色**。

1. 在**角色**页面上，搜索您刚刚创建的角色并选择其名称。

1. 在角色的详情页面上，选择**权限**选项卡。选择**添加权限**，然后选择**创建内联策略**。

1. 选择 **JSON** 选项卡，然后将以下示例策略粘贴到策略编辑器中：

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [{
           "Sid": "DataSyncAccessManifest",
           "Effect": "Allow",
           "Action": [
               "s3:GetObject",
               "s3:GetObjectVersion"
           ],
           "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/my-manifest.csv"
       }]
   }
   ```

------

1. 在刚才粘贴的示例策略中，将以下值替换为您自己的值：

   1. 将 `amzn-s3-demo-bucket` 替换为托管清单的 S3 存储桶名称。

   1. 将 `my-manifest.csv` 替换为清单的文件名称。

1. 选择**下一步**。为您的策略输入名称，然后选择**创建策略**。

1. （推荐）为防止出现[跨服务混淆代理问题](cross-service-confused-deputy-prevention.md)，请执行以下操作：

   1. 在角色的详情页面上，选择**信任关系**选项卡。选择**编辑信任策略**。

   1. 使用以下示例更新信任策略，其中包括 `aws:SourceArn` 和 `aws:SourceAccount` 全局条件上下文键：

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
            {
              "Effect": "Allow",
              "Principal": {
                  "Service": "datasync.amazonaws.com"
              },
              "Action": "sts:AssumeRole",
              "Condition": {
                  "StringEquals": {
                  "aws:SourceAccount": "555555555555"
                  },
                  "ArnLike": {
                  "aws:SourceArn": "arn:aws:datasync:us-east-1:555555555555:*"
                  }
              }
            }
        ]
      }
      ```

------
      + 将每个实例`account-id`替换为您正在使用的 AWS 账户 ID DataSync。
      + `region`替换为你正在使用 AWS 区域 的地方 DataSync。

   1. 选择**更新策略**。

您已经创建了一个允许 DataSync 访问清单的 IAM 角色。在[创建](#manifest-creating-task)或[启动](#manifest-starting-task)任务时指定此角色。

### 创建 IAM 角色（不同账户）
<a name="creating-manfiest-role-automatically-different-account"></a>

如果您的清单位于属于不同的 S3 存储桶中 AWS 账户，则必须手动创建 DataSync 用于访问清单的 IAM 角色。然后，在清单 AWS 账户 所在的位置中，您需要在 S3 存储桶策略中包含该角色。

#### 创建角色
<a name="creating-manfiest-role-automatically-different-account-1"></a>

1. 使用 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 打开 IAM 控制台。

1. 在左侧导航窗格的**访问管理**下，选择**角色**，然后选择**创建角色**。

1. 在**选择可信实体**页面中，为**可信实体类型**选择 **AWS 服务**。

1. 对于 “**用例**”，**DataSync**在下拉列表中进行选择，然后选择**DataSync**。选择**下一步**。

1. 在**添加权限**页面上，选择**下一步**。输入角色名称，然后选择**创建角色**。

1. 在**角色**页面上，搜索您刚刚创建的角色并选择其名称。

1. 在角色的详情页面上，选择**权限**选项卡。选择**添加权限**，然后选择**创建内联策略**。

1. 选择 **JSON** 选项卡，然后将以下示例策略粘贴到策略编辑器中：

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [{
           "Sid": "DataSyncAccessManifest",
           "Effect": "Allow",
           "Action": [
               "s3:GetObject",
               "s3:GetObjectVersion"
           ],
           "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/my-manifest.csv"
       }]
   }
   ```

------

1. 在刚才粘贴的示例策略中，将以下值替换为您自己的值：

   1. 将 `amzn-s3-demo-bucket` 替换为托管清单的 S3 存储桶名称。

   1. 将 `my-manifest.csv` 替换为清单的文件名称。

1. 选择**下一步**。为您的策略输入名称，然后选择**创建策略**。

1. （推荐）为防止出现[跨服务混淆代理问题](cross-service-confused-deputy-prevention.md)，请执行以下操作：

   1. 在角色的详情页面上，选择**信任关系**选项卡。选择**编辑信任策略**。

   1. 使用以下示例更新信任策略，其中包括 `aws:SourceArn` 和 `aws:SourceAccount` 全局条件上下文键：

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
            {
              "Effect": "Allow",
              "Principal": {
                  "Service": "datasync.amazonaws.com"
              },
              "Action": "sts:AssumeRole",
              "Condition": {
                  "StringEquals": {
                  "aws:SourceAccount": "000000000000"
                  },
                  "ArnLike": {
                  "aws:SourceArn": "arn:aws:datasync:us-east-1:000000000000:*"
                  }
              }
           }
        ]
      }
      ```

------
      + 将的`account-id`每个实例替换为您正在使用的 AWS 账户 ID DataSync。
      + `region`替换为你正在使用 AWS 区域 的地方 DataSync。

   1. 选择**更新策略**。

您创建了可以包含在 S3 存储桶策略中的 IAM 角色。

#### 更新 S3 存储桶策略以包含角色
<a name="creating-manfiest-role-automatically-different-account-2"></a>

创建 IAM 角色后，必须将其添加到清单 AWS 账户 所在的另一个存储桶策略中的 S3 存储桶策略中。

1. 在中 AWS 管理控制台，切换到包含你的 manfiest 的 S3 存储桶的账户。

1. 打开 Amazon S3 控制台，网址为 [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 在存储桶的详情页面上，选择**权限**选项卡。

1. 在 **存储桶策略**下，选择 **编辑**并执行以下操作来修改您的 S3 存储桶策略：

   1. 更新编辑器中的内容，以包含以下策略声明：

------
#### [ JSON ]

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Sid": "DataSyncAccessManifestBucket",
            "Effect": "Allow",
            "Action": [
              "s3:GetObject",
              "s3:GetObjectVersion"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket"
          }
        ]
      }
      ```

------

   1. `account-id`替换为您正在使用的账户 DataSync 的 AWS 账户 ID。

   1. `datasync-role`替换为您刚刚创建的 DataSync 允许访问清单的 IAM 角色。

   1. 将 `amzn-s3-demo-bucket` 替换为在其他 AWS 账户中托管清单的 S3 存储桶名称。

1. 选择**保存更改**。

您已经创建了一个 IAM 角色， DataSync 允许您在其他账户中访问您的清单。在[创建](#manifest-creating-task)或[启动](#manifest-starting-task)任务时指定此角色。

## 在创建任务时指定清单
<a name="manifest-creating-task"></a>

您可以指定 DataSync 要在创建任务时使用的清单。

### 使用控制 DataSync 台
<a name="manifest-creating-task-console"></a>

1. 打开 AWS DataSync 控制台，网址为[https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/)。

1. 在左侧导航窗格中，选择**任务**，然后选择**创建任务**。

1. 配置您任务的源位置和目标位置。

   有关更多信息，请参阅 [我可以在哪里传输我的数据 AWS DataSync？](working-with-locations.md)。

1. 对于**要扫描的内容**，请选择**特定文件、对象和文件夹**，然后选择**使用清单**。

1. 对于 **S3 URI**，请选择托管在 S3 存储桶上的清单。

   或者，您也可以输入 URI（例如，`s3://bucket/prefix/my-manifest.csv`）。

1. 对于**对象版本**，请选择 DataSync 要使用的清单版本。

   默认情况下， DataSync 使用对象的最新版本。

1. 对于**清单访问角色**，执行下列操作之一：
   + 选择 “**自动生成**” DataSync 以自动创建一个 IAM 角色，该角色具有访问其 S3 存储桶中的清单所需的权限。
   + 选择可以访问清单的现有 IAM 角色。

   有关更多信息，请参阅 [提供对清单的 DataSync 访问权限](#transferring-with-manifest-access)。

1. 配置所需的任何其他任务设置，然后选择**下一步**。

1. 选择**创建任务**。

### 使用 AWS CLI
<a name="manifest-creating-task-cli"></a>

1. 复制以下 `create-task` 命令：

   ```
   aws datasync create-task \
     --source-location-arn arn:aws:datasync:us-east-1:123456789012:location/loc-12345678abcdefgh \
     --destination-location-arn arn:aws:datasync:us-east-1:123456789012:location/loc-abcdefgh12345678 \
     --manifest-config {
         "Source": {
           "S3": {
               "ManifestObjectPath": "s3-object-key-of-manifest",
               "BucketAccessRoleArn": "bucket-iam-role",
               "S3BucketArn": "amzn-s3-demo-bucket-arn",
               "ManifestObjectVersionId": "manifest-version-to-use" 
           }
         }
     }
   ```

1. 对于 `--source-location-arn` 参数，指定数据传输源位置的 Amazon 资源名称（ARN）。

1. 对于 `--destination-location-arn` 参数，指定数据传输目标位置的 ARN。

1. 对于 `--manifest-config` 参数，请执行以下操作：
   + `ManifestObjectPath`：指定清单的 S3 对象键。
   + `BucketAccessRoleArn`— 指定允许 DataSync 访问其 S3 存储桶中的清单的 IAM 角色。

     有关更多信息，请参阅 [提供对清单的 DataSync 访问权限](#transferring-with-manifest-access)。
   + `S3BucketArn`：指定托管清单的 S3 存储桶的 ARN。
   + `ManifestObjectVersionId`— 指定 DataSync 要使用的清单版本。

     默认情况下， DataSync 使用对象的最新版本。

1. 运行 `create-task` 命令来创建您的任务。

准备就绪后，您可以[启动传输任务](run-task.md)。

## 在启动任务时指定清单
<a name="manifest-starting-task"></a>

您可以指定 DataSync 要在执行任务时使用的清单。

### 使用控制 DataSync 台
<a name="manifest-starting-task-console"></a>

1. 打开 AWS DataSync 控制台，网址为[https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/)。

1. 在左侧导航窗格中，选择**任务**，然后选择要启动的任务。

1. 在任务概览页面，选择**开始**，然后选择**使用覆盖选项开始**。

1. 对于**要扫描的内容**，请选择**特定文件、对象和文件夹**，然后选择**使用清单**。

1. 对于 **S3 URI**，请选择托管在 S3 存储桶上的清单。

   或者，您也可以输入 URI（例如，`s3://bucket/prefix/my-manifest.csv`）。

1. 对于**对象版本**，请选择 DataSync 要使用的清单版本。

   默认情况下， DataSync 使用对象的最新版本。

1. 对于**清单访问角色**，执行下列操作之一：
   + 选择 “**自动生成**” DataSync 以自动创建 IAM 角色来访问其 S3 存储桶中的清单。
   + 选择可以访问清单的现有 IAM 角色。

   有关更多信息，请参阅 [提供对清单的 DataSync 访问权限](#transferring-with-manifest-access)。

1. 选择**开始**，以开始传输。

### 使用 AWS CLI
<a name="manifest-starting-task-cli"></a>

1. 复制以下 `start-task-execution` 命令：

   ```
   aws datasync start-task-execution \
     --task-arn arn:aws:datasync:us-east-1:123456789012:task/task-12345678abcdefgh \
     --manifest-config {
         "Source": {
           "S3": {
               "ManifestObjectPath": "s3-object-key-of-manifest",
               "BucketAccessRoleArn": "bucket-iam-role",
               "S3BucketArn": "amzn-s3-demo-bucket-arn",
               "ManifestObjectVersionId": "manifest-version-to-use" 
           }
         }
     }
   ```

1. 对于 `--task-arn` 参数，请指定要启动的任务的 Amazon 资源名称（ARN）。

1. 对于 `--manifest-config` 参数，请执行以下操作：
   + `ManifestObjectPath`：指定清单的 S3 对象键。
   + `BucketAccessRoleArn`— 指定允许 DataSync 访问其 S3 存储桶中的清单的 IAM 角色。

     有关更多信息，请参阅 [提供对清单的 DataSync 访问权限](#transferring-with-manifest-access)。
   + `S3BucketArn`：指定托管清单的 S3 存储桶的 ARN。
   + `ManifestObjectVersionId`— 指定 DataSync 要使用的清单版本。

     默认情况下， DataSync 使用对象的最新版本。

1. 运行 `start-task-execution` 命令开始传输。

## 限制
<a name="transferring-with-manifest-limitations"></a>
+ 您不能将清单与[筛选条件](filtering.md)一起使用。
+ 您不能只指定一个目录或文件夹，然后希望传输其中的所有内容。对于这种情况，请考虑使用[包含筛选条件](filtering.md)，而不是清单。
+ 您不能使用 “**保留已删除文件**” 任务选项（`PreserveDeletedFiles`在 [API](https://docs.aws.amazon.com/datasync/latest/userguide/API_Options.html#DataSync-Type-Options-PreserveDeletedFiles) 中）来[维护目标中不在源中的文件或对象](configure-metadata.md)。 DataSync 仅传输清单中列出的内容，不会删除目的地中的任何内容。

## 问题排查
<a name="manifests-troubleshooting"></a>

**与 `HeadObject` 或 `GetObjectTagging` 相关的错误**  
如果您要 IDs 从 S3 存储桶传输具有特定版本的对象，则可能会看到与`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`

如果您需要更新角色，使其具有这些权限，请参阅 [为创建 IAM 角色 DataSync 以访问您的 Amazon S3 位置](create-s3-location.md#create-role-manually)。

**错误：`ManifestFileDoesNotExist`**  
此错误表示在源中找不到清单中的文件。查看创建清单的[指南](#transferring-with-manifest-guidelines)。

## 后续步骤
<a name="manifests-next-steps"></a>

如果尚未开始，请[启动任务](run-task.md)。否则，[请监视任务的活动](monitoring-overview.md)。

# 使用筛选条件传输特定文件、对象和文件夹
<a name="filtering"></a>

AWS DataSync 允许您应用筛选器在传输中包含或排除来自源位置的数据。例如，如果您不想传输以 `.tmp` 结尾的临时文件，可以创建一个排除筛选条件，这些文件就不会传输到目标位置。

您可以在同一个传输任务中组合使用排除和包含筛选条件。如果您修改了任务的筛选条件，这些更改将在下次运行该任务时生效。

## 筛选术语、定义和语法
<a name="filter-overview"></a>

熟悉与筛选相关的概念： DataSync 

**筛选条件 **  
构成特定筛选条件的整个字符串（例如，`*.tmp``|``*.temp` 或 `/folderA|/folderB`）。  
筛选条件由使用管道符（\$1）分隔的模式组成。在 DataSync 控制台中添加模式时不需要分隔符，因为每个模式都是单独添加的。  
筛选区分大小写。例如，筛选条件 `/folderA` 与 `/FolderA` 不匹配。

**模式**  
筛选条件中的模式。例如，`*.tmp` 是一个模式，它是 `*.tmp``|``*.temp` 筛选条件的组成部分。如果您的筛选条件有多个模式，则使用管道符（\$1）划分各个模式。

**文件夹**  
+ 所有筛选条件都相对于源位置路径。例如，假设您在创建源位置和任务时指定 `/my_source/` 作为源路径，并要求包含筛选条件 `/transfer_this/`。在这种情况下，仅 DataSync 传输目录`/my_source/transfer_this/`及其内容。
+ 要指定直接位于源位置下的文件夹，请在文件夹名称前面加入一个正斜杠 (/) 。在上述示例中，模式使用 `/transfer_this`，而不是 `transfer_this`。
+ DataSync 以相同的方式解释以下模式，并匹配文件夹及其内容。

  `/dir` 

  `/dir/`
+ 当您从 Amazon S3 存储桶传输数据或将数据传输到 Amazon S3 存储桶时，会将对象密钥中的`/`字符 DataSync视为文件系统上的文件夹。

**特殊字符**  
以下是用于筛选的特殊字符。      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/filtering.html)

## 示例筛选条件：
<a name="sample-filters"></a>

以下示例显示了您可以使用的常用过滤器 DataSync。

**注意**  
筛选条件的字符数是有限制的。有关更多信息，请参阅 [DataSync 配额](datasync-limits.md#task-hard-limits)。

**排除源位置中的某些文件夹**  
在某些情况下，您可能需要排除源位置中的文件夹，以防止将它们复制到目标位置。例如，如果您有临时 work-in-progress文件夹，则可以使用类似以下筛选器的内容：

`*/.temp`

要排除内容相似的文件夹（例如 `/reports2021` 和 `/reports2022)`），您可以使用与下述类似的排除筛选条件：

`/reports*`

要排除文件层次结构中任何级别的文件夹，您可以使用排除筛选条件，如下所示。

`*/folder-to-exclude-1`\$1`*/folder-to-exclude-2`

要排除源位置的顶级文件夹，您可以使用排除筛选条件，如下所示。

`/top-level-folder-to-exclude-1`\$1`/top-level-folder-to-exclude-2`

**包含源位置中的文件夹子集**  
在某些情况下，您的源位置可能是大型共享的，并且您需要传输根文件夹下的文件夹子集。要包含特定文件夹，使用如下所示的包含筛选条件开始任务执行。

`/folder-to-transfer/*`

**排除特定文件类型**  
要从传输中排除某些文件类型，您可以使用诸如 `*.temp` 的排除筛选条件创建一个任务执行。

**传输您指定的个别文件**  
要传输个别文件的列表，使用如下所示的包含筛选条件开始任务执行：“`/folder/subfolder/file1.txt`\$1`/folder/subfolder/file2.txt`\$1`/folder/subfolder/file2.txt`”

## 创建包含筛选条件
<a name="include-filters"></a>

包含筛选器定义要 DataSync 传输的文件、对象和文件夹。您可以在创建、编辑或启动任务时配置以包括这些筛选条件。

DataSync 仅扫描和传输与包含过滤器匹配的文件和文件夹。例如，要包括源文件夹的子集，您可以指定 `/important_folder_1`\$1`/important_folder_2`。

**注意**  
包括筛选条件仅支持将通配符 (\$1) 字符用作模式中最右侧的字符。例如，支持 `/documents*`\$1`/code*`，但不支持 `*.txt`。

### 使用控制 DataSync 台
<a name="include-filters-console"></a>

1. 打开 AWS DataSync 控制台，网址为[https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/)。

1. 在左侧导航窗格中，选择**任务**，然后选择**创建任务**。

1. 配置您任务的源位置和目标位置。

   有关更多信息，请参阅 [我可以在哪里传输我的数据 AWS DataSync？](working-with-locations.md)。

1. 对于**要扫描的内容**，请选择**特定文件、对象和文件夹**，然后选择**使用筛选条件**。

1. 对于**包含**，输入您的筛选条件（例如，输入 `/important_folders` 以包含重要目录），然后选择**添加模式**。

1. 根据需要，添加其他包含筛选条件。

### 使用 AWS CLI
<a name="include-filters-cli"></a>

使用时 AWS CLI，必须在筛选器周围使用单引号 (`'`)，如果有多个筛选器，则必须使用\$1（竖线）作为分隔符。

以下示例指定了运行 `create-task` 命令时使用的两个包含筛选条件 `/important_folder1` 和 `/important_folder2`。

```
aws datasync create-task
   --source-location-arn 'arn:aws:datasync:region:account-id:location/location-id' \
   --destination-location-arn 'arn:aws:datasync:region:account-id:location/location-id' \
   --includes FilterType=SIMPLE_PATTERN,Value='/important_folder1|/important_folder2'
```

## 创建排除筛选条件
<a name="exclude-filters"></a>

排除过滤器定义源位置中您不想 DataSync 传输的文件、对象和文件夹。您可以在创建、编辑或启动任务时配置这些筛选条件。

**Topics**
+ [默认排除的数据](#directories-ignored-during-transfers)

### 默认排除的数据
<a name="directories-ignored-during-transfers"></a>

DataSync 自动将某些数据排除在传输范围之外：
+ `.snapshot`— DataSync 忽略任何以结尾的路径`.snapshot`，该路径通常用于存储系统的文件或目录的 point-in-time快照。
+ `/.aws-datasync`和 `/.awssync` — 在您所在的位置 DataSync创建这些文件夹，以方便您进行传输。
+ `/.zfs`— 你可能会在 Amazon FSx 上看到这个文件夹，里面有 OpenZFS 位置。

### 使用控制 DataSync 台
<a name="adding-exclude-filters"></a>

1. 打开 AWS DataSync 控制台，网址为[https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/)。

1. 在左侧导航窗格中，选择**任务**，然后选择**创建任务**。

1. 配置您任务的源位置和目标位置。

   有关更多信息，请参阅 [我可以在哪里传输我的数据 AWS DataSync？](working-with-locations.md)。

1. 对于**排除**，输入您的筛选条件（例如，输入 `*/temp` 以排除临时文件夹），然后选择**添加模式**。

1. 根据需要，添加其他排除筛选条件。

1. 如果需要，添加[包含筛选条件](#include-filters)。

### 使用 AWS CLI
<a name="adding-exclude-filters-cli"></a>

使用时 AWS CLI，必须在筛选器周围使用单引号 (`'`)，如果有多个筛选器，则必须使用\$1（竖线）作为分隔符。

以下示例指定了运行 `create-task` 命令时使用的两个排除筛选条件 `*/temp` 和 `*/tmp`。

```
aws datasync create-task \
   --source-location-arn 'arn:aws:datasync:region:account-id:location/location-id' \
   --destination-location-arn 'arn:aws:datasync:region:account-id:location/location-id' \
   --excludes FilterType=SIMPLE_PATTERN,Value='*/temp|*/tmp'
```

# 了解如何 DataSync 处理文件和对象元数据
<a name="metadata-copied"></a>

AWS DataSync 可以在数据传输期间保留您的文件或对象元数据。如何复制元数据取决于您的传输位置以及这些位置是否使用类似类型的元数据。

## 系统级元数据
<a name="metadata-copied-system-level"></a>

通常， DataSync 不会复制系统级元数据。例如，从 SMB 文件服务器传输时，您在文件系统级别配置的权限不会复制到目标存储系统。

有一些例外。在 Amazon S3 和其他对象存储之间传输时， DataSync 会复制一些[系统定义的对象元数据](#metadata-copied-between-object-s3)。

## 在 Amazon S3 传输中复制的元数据
<a name="metadata-copied-amazon-s3"></a>

下表描述了当传输涉及 Amazon S3 位置时 DataSync 可以复制哪些元数据。

**Topics**
+ [到 Amazon S3](#metadata-copied-to-s3)
+ [在 Amazon S3 和其他对象存储之间](#metadata-copied-between-object-s3)
+ [在 Amazon S3 和 HDFS 之间](#metadata-copied-between-hdfs-s3)

### 到 Amazon S3
<a name="metadata-copied-to-s3"></a>


| 从其中一个位置复制时 | 到此位置 | DataSync 可以复制 | 
| --- | --- | --- | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/metadata-copied.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/metadata-copied.html)  |  以下是 Amazon S3 用户元数据： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/metadata-copied.html) 存储在 Amazon S3 用户元数据中的文件元数据可使用 AWS Storage Gateway与文件网关上 NFS 共享互操作。文件网关支持从本地网络对复制到 Amazon S3 的数据进行低延迟访问。 DataSync此元数据也可以与 Lustre 互操作 FSx 。 将包含此元数据的对象 DataSync 复制回 NFS 服务器时，文件元数据将被恢复。还原元数据要求向 NFS 服务器授予提升的权限。有关更多信息，请参阅 [使用 NFS 文件服务器配置 AWS DataSync 传输](create-nfs-location.md)。  | 

### 在 Amazon S3 和其他对象存储之间
<a name="metadata-copied-between-object-s3"></a>

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/metadata-copied.html)

### 在 Amazon S3 和 HDFS 之间
<a name="metadata-copied-between-hdfs-s3"></a>


| 在这些位置之间复制时 | DataSync 可以复制 | 
| --- | --- | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/metadata-copied.html)  | 以下是 Amazon S3 用户元数据：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/metadata-copied.html)HDFS 使用字符串来存储文件和文件夹的用户和群组所有权，而不是数字标识符，例如 UIDs 和 GIDs。 | 

## 在 NFS 传输中复制的元数据
<a name="metadata-copied-nfs"></a>

下表描述了 DataSync 可以在使用网络文件系统 (NFS) 的位置之间复制哪些元数据。


| 在这些位置之间复制时 | DataSync 可以复制 | 
| --- | --- | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/metadata-copied.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/metadata-copied.html)  | 

## 在 SMB 传输中复制的元数据
<a name="metadata-copied-smb"></a>

下表描述了 DataSync 可以在使用服务器消息块 (SMB) 的位置之间复制哪些元数据。


| 在这些位置之间复制时 | DataSync 可以复制 | 
| --- | --- | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/metadata-copied.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/metadata-copied.html)  | 

## 在其他传输场景中复制的元数据
<a name="metadata-copied-different"></a>

DataSync 在这些存储系统（其中大多数具有不同的元数据结构）之间进行复制时，使用以下方式处理元数据。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/metadata-copied.html)

## 了解何时以及如何 DataSync 应用默认 POSIX 元数据
<a name="POSIX-metadata"></a>

DataSync 在以下情况下应用默认 POSIX 元数据：
+ 当传输的源位置和目标位置不具有类似的元数据结构时
+ 当源位置缺少元数据时

下表描述了在这些类型的传输期间如何 DataSync 应用默认 POSIX 元数据：


| 来源 | 目标位置 | 文件权限 | 文件夹权限 | UID | GID | 
| --- | --- | --- | --- | --- | --- | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/metadata-copied.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/metadata-copied.html)  |  0755  | 0755 |  65534  |  65534  | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/metadata-copied.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/metadata-copied.html)  |  0644  |  0755  |  65534  |  65534  | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/metadata-copied.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/metadata-copied.html)  |  0644  |  0755  |  65534  |  65534  | 

1 如果对象没有先前应用的元数据 DataSync。

# 由复制的链接和目录 AWS DataSync
<a name="special-files-copied"></a>

AWS DataSync 根据传输中涉及的存储位置，硬链接、符号链接和目录的处理方式会有所不同。

## 硬链接
<a name="special-files-copied-hard-links"></a>

以下是在一些常见的传输场景中 DataSync 处理硬链接的方法：
+ 在 **NFS 文件服务器、Lustre、 FSx OpenZFS、 FSx FSx ONTAP（使用 NFS）和 Amazon EFS 之间传输时，**会保留硬链接。
+ **传输到 Amazon S3 时**，硬链接引用的每个底层文件仅传输一次。在增量传输期间，将在您的 S3 存储桶中创建单独的对象。如果 Amazon S3 中的硬链接未更改，则在传输到 NFS 文件服务器、Lustre、OpenZFS、 FSx ONTAP（使用 NFS）或 Amazon EFS 文件系统时，硬链接会正确恢复。 FSx FSx 
+ **传输到 Microsoft Azure Blob Storage 时**，硬链接引用的每个底层文件仅传输一次。在增量传输期间，如果源中有新的引用，则会在您的 blob 存储中创建单独的对象。从中传输时Azure Blob Storage，将硬链接当作单个文件进行 DataSync 传输。
+ 在 **SMB 文件服务器、 FSx Windows 文件服务器和 FSx ONTAP（使用 SMB）之间传输时**，不支持硬链接。如果在这些情况下 DataSync 遇到硬链接，则传输任务完成时会出现错误。要了解更多信息，请查看您的 CloudWatch 日志。
+ **传输到 HDFS 时**，不支持硬链接。 CloudWatch 日志显示这些链接已跳过。

## 符号链接
<a name="special-files-copied-symbolic-links"></a>

以下是在一些常见的传输场景中如何 DataSync 处理符号链接：
+ 在 **NFS 文件服务器、Lustre、 FSx OpenZFS、 FSx ONTAP（使用 NFS）和 Amazon EFS 之间传输时，符号链接**会保留。 FSx 
+ **在传输到 Amazon S3 时**，链接目标路径将存储在 Amazon S3 对象中。在传输到 NFS 文件服务器、Lustre、OpenZFS、 FSx ONTAP 或 Amazon EFS 文件系统时， FSx 链接可以正确恢复。 FSx 
+ **传输到时 Azure Blob Storage**，不支持符号链接。 CloudWatch 日志显示这些链接已跳过。
+ 在 **SMB 文件服务器、 FSx Windows 文件服务器和 FSx ONTAP（使用 SMB）之间传输时**，不支持符号链接。 DataSync 不会传输符号链接本身，而是传输符号链接引用的文件。要识别重复文件并使用符号链接去重，您必须在目标文件系统上配置去重。
+ **传输到 HDFS 时**，不支持符号链接。 CloudWatch 日志显示这些链接已跳过。

## 目录
<a name="special-files-copied-directories"></a>

通常，在存储系统之间传输时会 DataSync 保留目录。以下情况并非如此：
+ **传输到 Amazon S3 时**，目录表示为带有前缀的空对象，并以正斜杠（`/`）结尾。
+ **在传输到没有分层名称空间的 Azure Blob Storage 时**，目录不存在。看起来像目录的内容只是对象名称的一部分。

# 配置文件、对象和元数据的处理方式
<a name="configure-metadata"></a>

您可以配置在不同位置之间传输时如何 AWS DataSync 处理文件、对象及其关联的元数据。

例如，对于定期传输，您可能希望使用源中的更改覆盖目标中的文件，以保持位置同步。您可以复制诸如文件和文件夹的 POSIX 权限、与对象关联的标签以及访问控制列表 (ACLs) 之类的属性。

## 传输模式选项
<a name="task-option-transfer-mode"></a>

您可以配置是仅 DataSync 传输初始副本后更改的数据（包括元数据），还是每次运行任务时传输所有数据。如果计划进行定期传输，则可能仅需要传输自上次执行任务以来发生更改的内容。


| 控制台中的选项 | API 中的选项 | 说明 | 
| --- | --- | --- | 
|  **仅传输更改的数据**  |  [TransferMode](https://docs.aws.amazon.com/datasync/latest/userguide/API_Options.html#DataSync-Type-Options-TransferMode) 设置为 `CHANGED`  | 初次完全传输后，仅 DataSync 复制源位置和目标位置不同的数据和元数据。 | 
|  **传输所有数据**  |  [TransferMode](https://docs.aws.amazon.com/datasync/latest/userguide/API_Options.html#DataSync-Type-Options-TransferMode) 设置为 `ALL`  |  DataSync 将源中的所有内容复制到目的地，而不比较位置之间的差异。  | 

## 文件和对象处理选项
<a name="task-option-file-object-handling"></a>

您可以控制如何 DataSync 处理目标位置中的文件或对象的某些方面。例如， DataSync 可以删除目标中不在源中的文件。


| 控制台中的选项 | API 中的选项 | 说明 | 
| --- | --- | --- | 
|  **保留已删除数据**  |  [PreserveDeletedFiles](https://docs.aws.amazon.com/datasync/latest/userguide/API_Options.html#DataSync-Type-Options-PreserveDeletedFiles)  |  指定是否在目标位置 DataSync 维护源中不存在的文件或对象。 如果将任务配置为从 Amazon S3 存储桶中删除对象，则可能会为某些存储类产生最低存储持续时间费用。有关详细信息，请参阅 [Amazon S3 传输的存储类别注意事项](create-s3-location.md#using-storage-classes)。  无法将任务配置为删除目标中的数据，同时又[传输所有数据](#task-option-transfer-mode)。当您传输所有数据时， DataSync不会扫描您的目标位置，也不知道要删除什么。   | 
|  **覆盖文件**  |  [OverwriteMode](https://docs.aws.amazon.com/datasync/latest/userguide/API_Options.html#DataSync-Type-Options-OverwriteMode)  |  指定在源数据或元数据发生更改时是否 DataSync 修改目标位置的数据。如果未将任务配置为覆盖数据，即使源数据不同，目标数据也不会覆盖。 如果您的任务覆盖对象，则您可能需要为某些存储类别（例如检索或提前删除）支付额外费用。有关详细信息，请参阅 [Amazon S3 传输的存储类别注意事项](create-s3-location.md#using-storage-classes)。  | 

## 元数据处理选项
<a name="task-option-metadata-handling"></a>

DataSync 可以在传输过程中保留文件和对象的元数据。 DataSync 可以保留的元数据取决于所涉及的存储系统以及这些系统是否使用类似的元数据结构。

在配置任务之前，请务必了解在源位置和目标位置之间传输时如何 DataSync 处理[元数据](metadata-copied.md)和[特殊文件](special-files-copied.md)。

**重要**  
DataSync 支持与某些第三方云存储系统（例如 Google Cloud Storage 和 IBM Cloud Object Storage）之间的传输，这些系统以不完全兼容 S3 的方式处理系统元数据。对于这些传 DataSync 输，会尽力复制元数据属性 `ContentType` `ContentEncoding``ContentLanguage`，例如、、和`CacheControl`。如果目标存储系统未应用这些属性，则在任务验证过程中会将其忽略。


| 控制台中的选项 | API 中的选项 | 说明 | 
| --- | --- | --- | 
|  **副本所有权**  | [https://docs.aws.amazon.com/datasync/latest/userguide/API_Options.html#DataSync-Type-Options-Gid](https://docs.aws.amazon.com/datasync/latest/userguide/API_Options.html#DataSync-Type-Options-Gid) |  指定是否 DataSync 复制 POSIX 文件和文件夹所有权，例如文件所有者的组 ID 和文件所有者的用户 ID。  | 
|  **复制权限**  | [PosixPermissions](https://docs.aws.amazon.com/datasync/latest/userguide/API_Options.html#DataSync-Type-Options-PosixPermissions) |  指定是否 DataSync 将文件和文件夹的 POSIX 权限从源复制到目标。  | 
| 复制时间戳 | [Atime](https://docs.aws.amazon.com/datasync/latest/userguide/API_Options.html#DataSync-Type-Options-Atime) 和 [Mtime](https://docs.aws.amazon.com/datasync/latest/userguide/API_Options.html#DataSync-Type-Options-Mtime) |  指定是否 DataSync 将时间戳元数据从源复制到目标。当您需要多次运行任务时，必须使用这些选项。  | 
| 复制对象标签 | [ObjectTags](https://docs.aws.amazon.com/datasync/latest/userguide/API_Options.html#DataSync-Type-Options-ObjectTags) |  指定在对象存储系统之间传输时是否 DataSync 保留与您的对象关联的标签。  | 
| 副本所有权 DACLs、和 SACLs | [SecurityDescriptorCopyFlags ](https://docs.aws.amazon.com/datasync/latest/userguide/API_Options.html#DataSync-Type-Options-SecurityDescriptorCopyFlags) 设置为 OWNER\$1DACL\$1SACL |  DataSync 复制以下内容： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/configure-metadata.html)  | 
| 副本所有权和 DACLs | [SecurityDescriptorCopyFlags ](https://docs.aws.amazon.com/datasync/latest/userguide/API_Options.html#DataSync-Type-Options-SecurityDescriptorCopyFlags) 设置为 OWNER\$1DACL |  DataSync 复制以下内容： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/configure-metadata.html) DataSync 选择此选项 SACLs 时不会复制。  | 
| 不要复制所有权或 ACLs | [SecurityDescriptorCopyFlags ](https://docs.aws.amazon.com/datasync/latest/userguide/API_Options.html#DataSync-Type-Options-SecurityDescriptorCopyFlags) 设置为 NONE |  DataSync 不复制任何所有权或权限数据。 DataSync 写入目标位置的对象归提供访问目标的凭证 DataSync的用户所有。目标对象权限是根据目标服务器上配置的权限确定的。  | 

## 配置文件、对象和元数据处理选项
<a name="configure-file-metadata-options"></a>

您可以配置在创建、编辑或启动传输任务时如何 DataSync 处理文件、对象和元数据。

### 使用控制 DataSync 台
<a name="configure-metadata-console"></a>

以下说明介绍了如何在创建任务时配置文件、对象和元数据处理选项。

1. 打开 AWS DataSync 控制台，网址为[https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/)。

1. 在左侧导航窗格中，展开**数据传输**，然后选择**任务**，然后选择**创建任务**。

1. 配置您任务的源位置和目标位置。

   有关更多信息，请参阅 [我可以在哪里传输我的数据 AWS DataSync？](working-with-locations.md)。

1. 对于**传输方式**，请选择下列选项之一：
   + **仅传输更改的数据**
   + **传输所有数据**

   有关这些选项的详细信息，请参阅[传输模式选项](#task-option-transfer-mode)。

1. 如果 DataSync 要在目标位置维护源中不存在的文件或对象，请选择 “**保留已删除**的文件”。

   如果您不选择此选项，并且您的任务从 Amazon S3 存储桶中删除对象，则可能会为某些存储类产生最低存储持续时间费用。有关详细信息，请参阅 [Amazon S3 传输的存储类别注意事项](create-s3-location.md#using-storage-classes)。
**警告**  
您不能取消选择此选项并启用**传输所有数据**。当您传输所有数据时， DataSync 不会扫描您的目标位置，也不知道要删除什么。

1. 如果 DataSync要在源数据或元数据发生更改时修改目标位置的数据，请选择 “**覆盖文件**”。

   如果您的任务覆盖对象，则您可能需要为某些存储类别（例如检索或提前删除）支付额外费用。有关详细信息，请参阅 [Amazon S3 传输的存储类别注意事项](create-s3-location.md#using-storage-classes)。

   如果不选择此选项，即使源数据不同，目标数据也不会被覆盖。

1. 在 “**传输选项**” 下，选择 DataSync 要如何处理元数据。有关选项的更多信息，请参阅[元数据处理选项](#task-option-metadata-handling)。
**重要**  
控制台中的选项取决于任务的源位置和目标位置。您可能需要展开**其他设置**，才能看到部分选项。
   + **副本所有权**
   + **复制权限**
   + **复制时间戳**
   + **复制对象标签**
   + **副本所有权 DACLs、和 SACLs**
   + **副本所有权和 DACLs**
   + **不要复制所有权或 ACLs**

### 使用 DataSync API
<a name="configure-file-metadata-options-api"></a>

可通过在以下任何操作中使用 `Options` 参数来配置文件、对象和元数据处理选项：
+ [CreateTask](https://docs.aws.amazon.com/datasync/latest/userguide/API_CreateTask.html)
+ [StartTaskExecution](https://docs.aws.amazon.com/datasync/latest/userguide/API_StartTaskExecution.html)
+ [UpdateTask](https://docs.aws.amazon.com/datasync/latest/userguide/API_UpdateTask.html)

# 配置如何 AWS DataSync 验证数据完整性
<a name="configure-data-verification-options"></a>

在传输过程中， AWS DataSync 使用校验和验证来验证您在不同位置之间复制的数据的完整性。您还可以配置 DataSync 为在传输结束时执行其他验证。

## 数据验证选项
<a name="data-verification-options"></a>

使用以下信息来帮助您决定是否以及 DataSync 如何执行这些额外检查。


| 控制台选项 | API 选项 | 说明 | 
| --- | --- | --- | 
|  **仅验证传输数据**（推荐）  |  [VerifyMode](https://docs.aws.amazon.com/datasync/latest/userguide/API_Options.html#DataSync-Type-Options-VerifyMode) 设置为 `ONLY_FILES_TRANSFERRED`  |  DataSync 计算源位置传输的数据（包括元数据）的校验和。在传输结束时， DataSync 将此校验和与在目的地根据相同数据计算的校验和进行比较。 在传输到 S3 Glacier Flexible Retrieval 或 S3 Glacier Deep Archive 存储类时，推荐使用此选项。有关更多信息，请参阅 [Amazon S3 传输的存储类别注意事项](create-s3-location.md#using-storage-classes)。  | 
|  **验证所有数据**  |  [VerifyMode](https://docs.aws.amazon.com/datasync/latest/userguide/API_Options.html#DataSync-Type-Options-VerifyMode) 设置为 `POINT_IN_TIME_CONSISTENT`  |  传输结束时， DataSync 检查整个来源和目的地，以验证两个位置是否完全同步。  当任务使用[增强模式](choosing-task-mode.md)时不支持。  如果您使用[清单](transferring-with-manifest.md)，则 DataSync 仅扫描和验证清单中列出的内容。 在传输到 S3 Glacier Flexible Retrieval 或 S3 Glacier Deep Archive 存储类时，不支持此选项。有关更多信息，请参阅 [Amazon S3 传输的存储类别注意事项](create-s3-location.md#using-storage-classes)。  | 
| 传输后不要验证数据 |  [VerifyMode](https://docs.aws.amazon.com/datasync/latest/userguide/API_Options.html#DataSync-Type-Options-VerifyMode) 设置为 `NONE`  | DataSync 仅在传输期间执行数据完整性检查。与其他选项不同，在传输结束时没有额外验证。 | 

## 配置数据验证
<a name="configure-data-verification"></a>

可在创建任务、更新任务或开始执行任务时配置数据验证选项。

### 使用控制 DataSync 台
<a name="configure-data-verification-options-console"></a>

以下说明介绍了如何在创建任务时配置数据验证选项。

**使用控制台配置数据验证**

1. 打开 AWS DataSync 控制台，网址为[https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/)。

1. 在左侧导航窗格中，展开**数据传输**，然后选择**任务**，然后选择**创建任务**。

1. 配置您任务的源位置和目标位置。

   有关更多信息，请参阅 [我可以在哪里传输我的数据 AWS DataSync？](working-with-locations.md)。

1. 对于**验证**，请选择下列选项之一：
   + **仅验证传输数据**（推荐）
   + **验证所有数据**
   + **传输后不要验证数据**

### 使用 DataSync API
<a name="configure-data-verification-options-api"></a>

您可以通过将`VerifyMode`参数与以下任一操作一起使用来配置 DataSync 验证数据的方式：
+ [CreateTask](https://docs.aws.amazon.com/datasync/latest/userguide/API_CreateTask.html)
+ [UpdateTask](https://docs.aws.amazon.com/datasync/latest/userguide/API_UpdateTask.html)
+ [StartTaskExecution](https://docs.aws.amazon.com/datasync/latest/userguide/API_StartTaskExecution.html)

# 为 AWS DataSync 任务设置带宽限制
<a name="configure-bandwidth"></a>

您可以为 AWS DataSync 任务及其每次执行配置网络带宽限制。

## 限制任务带宽
<a name="configure-bandwidth-create"></a>

创建、编辑或启动任务时设置带宽限制。

### 使用控制 DataSync 台
<a name="configure-bandwidth-create-console"></a>

以下说明介绍了如何在创建任务时为其配置带宽限制。

1. 打开 AWS DataSync 控制台，网址为[https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/)。

1. 在左侧导航窗格中，展开**数据传输**，然后选择**任务**，然后选择**创建任务**。

1. 配置您任务的源位置和目标位置。

   有关更多信息，请参阅 [我可以在哪里传输我的数据 AWS DataSync？](working-with-locations.md)。

1. 在**带宽限制**中，选择以下选项之一：
   + 选择**使用可用**可将所有可用网络带宽用于每个任务执行。
   + 选择 “**设置带宽限制 (MiB/s)**”，然后输入 DataSync 要用于每次任务执行的最大带宽。

### 使用 DataSync API
<a name="configure-bandwidth-create-api"></a>

您可以通过在以下任何操作中使用 `BytesPerSecond` 参数配置带宽：
+ [CreateTask](https://docs.aws.amazon.com/datasync/latest/userguide/API_CreateTask.html)
+ [UpdateTask](https://docs.aws.amazon.com/datasync/latest/userguide/API_UpdateTask.html)
+ [StartTaskExecution](https://docs.aws.amazon.com/datasync/latest/userguide/API_StartTaskExecution.html)

## 限制任务执行带宽
<a name="adjust-bandwidth-throttling"></a>

您可以修改正在运行或排队的任务执行的带宽限制。

### 使用控制 DataSync 台
<a name="adjust-bandwidth-throttling-console"></a>

1. 打开 AWS DataSync 控制台，网址为[https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/)。

1. 在左侧导航窗格中，展开**数据传输**，然后选择**任务**。

1. 选择任务，然后选择**历史记录**以查看任务的执行情况。

1. 选择要修改的任务执行，然后选择**编辑**。

1. 在对话框中，执行下列操作之一：
   + 选择**使用可用**可将所有可用网络带宽用于任务执行。
   + 选择 “**设置带宽限制 (MiB/s)**”，然后输入 DataSync 要用于执行任务的最大带宽。

1. 选择**保存更改**。

   新的带宽限值将在 60 秒内生效。

### 使用 DataSync API
<a name="adjust-bandwidth-throttling-api"></a>

您可以通过在[UpdateTaskExecution](https://docs.aws.amazon.com/datasync/latest/userguide/API_UpdateTaskExecution.html)操作中使用`BytesPerSecond`参数来修改正在运行或排队的任务执行的带宽限制。

# 计划 AWS DataSync 任务的运行时间
<a name="task-scheduling"></a>

您可以设置 AWS DataSync 任务计划，定期在存储位置之间传输数据。

## DataSync 任务计划的工作方式
<a name="how-task-scheduling-works"></a>

计划的 DataSync 任务按您指定的频率运行，最小间隔为 1 小时。您可以使用 cron 或 rate 表达式创建任务计划。

**重要**  
您无法将任务安排为以快于 1 小时的间隔运行。

**使用 cron 表达式**  
对于在特定时间和日期运行的任务计划，请使用 cron 表达式。例如，下面展示了如何在 AWS CLI 中配置任务计划，使其在每周日和周三中午 12:00（UTC 时间）运行。  

```
cron(0 12 ? * SUN,WED *)
```

**使用 rate 表达式**  
对定期运行的任务计划（例如每 12 小时运行一次），请使用 rate 表达式。例如，下面展示了如何在 AWS CLI 中配置任务计划，使其每 12 小时运行一次。  

```
rate(12 hours)
```

**提示**  
有关 cron 和 rate 表达式语法的更多信息，请参阅 [https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-cron-expressions.html](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-cron-expressions.html)。

## 创建 DataSync 任务计划
<a name="configure-task-schedule"></a>

您可以使用 DataSync 控制台、AWS CLI、或 DataSync API 安排任务的运行频率。

### 使用 DataSync 控制台
<a name="configure-task-schedule-console"></a>

以下说明介绍了在创建任务时，如何设置计划。稍后，在编辑任务时，您还可以修改计划。

在控制台中，一些计划选项允许您指定任务运行的确切时间（例如每天晚上 10:30）。如果不为这些选项指定时间，将在您创建（或更新）任务的时间运行该任务。

1. 打开 AWS DataSync 控制台，地址：[https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/)。

1. 在左侧导航窗格中，展开**数据传输**，然后选择**任务**，然后选择**创建任务**。

1. 配置您任务的源位置和目标位置。

   有关更多信息，请参阅 [我可以在哪里传输我的数据 AWS DataSync？](working-with-locations.md)。

1. 对于计划**频率**，执行以下操作之一：
   + 如果不想按计划运行任务，请选择**未计划**。
   + 选择**每小时**，然后选择要在一小时中的哪一分钟运行任务。
   + 选择**每天**，然后输入要运行任务的 UTC 时间。
   + 选择**每周**和一周中的某一天，然后输入要运行任务的 UTC 时间。
   + 选择**周中日期**，选择具体的一天或数天，然后以 HH:MM 格式输入应运行任务的 UTC 时间。
   + 选择**自定义**，然后选择 **Cron 表达式**或 **Rate 表达式**。输入任务计划，最小时间间隔为 1 小时。

### 使用 AWS CLI
<a name="configure-task-schedule-api"></a>

您可以在 `create-task`、`update-task` 或 `start-task-execution` 命令中使用 `--schedule` 参数，为 DataSync 任务创建计划。

以下说明介绍了如何使用 `create-task` 命令执行此操作。

1. 复制以下 `create-task` 命令：

   ```
   aws datasync create-task \
     --source-location-arn arn:aws:datasync:us-east-1:123456789012:location/loc-12345678abcdefgh \
     --destination-location-arn arn:aws:datasync:us-east-1:123456789012:location/loc-abcdefgh12345678 \
     --schedule '{
       "ScheduleExpression": "cron(0 12 ? * SUN,WED *)"
     }'
   ```

1. 对于 `--source-location-arn` 参数，指定数据传输源位置的 Amazon 资源名称（ARN）。

1. 对于 `--destination-location-arn` 参数，指定数据传输目标位置的 ARN。

1. 对于 `--schedule` 参数，为您的计划指定 cron 或 rate 表达式。

   在示例中，cron 表达式 `cron(0 12 ? * SUN,WED *)` 设置了在每周日和每周三中午 12:00（UTC 时间）运行的任务计划。

1. 运行 `create-task` 命令创建带有计划的任务。

## 暂停 DataSync 任务计划
<a name="pause-task-schedule"></a>

在某些情况下，您可能需要暂停 DataSync 任务计划。例如，您可能需要暂时禁用定期传输，以修复任务中的问题，或对存储系统进行维护。

出于以下原因，DataSync 可能会自动禁用您的任务计划：
+ 您的任务因相同错误反复失败。
+ 任务正在使用的 [AWS 区域 被禁用](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-regions.html)。

### 使用 DataSync 控制台
<a name="pause-scheduled-task-console"></a>

1. 打开 AWS DataSync 控制台，地址：[https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/)。

1. 在左侧导航窗格中，展开**数据传输**，然后选择**任务**。

1. 选择要暂停计划的任务，然后选择**编辑**。

1. 在**计划**中，关闭**启用计划**。选择**保存更改**。

### 使用 AWS CLI
<a name="pause-scheduled-task-cli"></a>

1. 复制以下 `update-task` 命令：

   ```
   aws datasync update-task \
     --task-arn arn:aws:datasync:us-east-1:123456789012:task/task-12345678abcdefgh \
     --schedule '{
       "ScheduleExpression": "cron(0 12 ? * SUN,WED *)",
       "Status": "DISABLED"
     }'
   ```

1. 对于 `--task-arn` 参数，指定要暂停其计划的任务 ARN。

1. 对于 `--schedule` 参数，请执行以下操作：
   + 对于 `ScheduleExpression`，为计划指定一个 cron 或 rate 表达式。

     在示例中，表达式 `cron(0 12 ? * SUN,WED *)` 设置了在每周日和每周三中午 12:00（UTC 时间）运行的任务计划。
   + 对于 `Status`，指定 `DISABLED` 以暂停任务计划。

1. 运行 `update-task` 命令。

1. 要恢复计划，请运行相同的 `update-task` 命令，并将 `Status` 设置为 `ENABLED`。

## 检查 DataSync 任务计划的状态
<a name="check-scheduled-task"></a>

您可以查看 DataSync 任务计划是否已启用。

### 使用 DataSync 控制台
<a name="check-scheduled-task-console"></a>

1. 打开 AWS DataSync 控制台，地址：[https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/)。

1. 在左侧导航窗格中，展开**数据传输**，然后选择**任务**。

1. 在**计划**列中，检查任务的计划是启用还是禁用。

### 使用 AWS CLI
<a name="check-scheduled-task-cli"></a>

1. 复制以下 `describe-task` 命令：

   ```
   aws datasync describe-task \
     --task-arn arn:aws:datasync:us-east-1:123456789012:task/task-12345678abcdefgh
   ```

1. 对于 `--task-arn` 参数，请指定您想要了解其信息的任务 ARN。

1. 运行 `describe-task` 命令。

您将收到提供任务详细信息的响应，其中包括任务的计划。（下面的示例主要关注任务计划配置，不显示完整的 `describe-task` 响应）。

该示例显示任务的计划已手动禁用。如果 DataSync `SERVICE` 禁用了计划，则会显示 `DisabledReason` 的错误消息，帮助您了解任务不断失败的原因。有关更多信息，请参阅 [疑难解答 AWS DataSync 问题](troubleshooting-datasync.md)。

```
{
    "TaskArn": "arn:aws:datasync:us-east-1:123456789012:task/task-12345678abcdefgh",
    "Status": "AVAILABLE",
    "Schedule": {
        "ScheduleExpression": "cron(0 12 ? * SUN,WED *)",
        "Status": "DISABLED",
        "StatusUpdateTime": 1697736000,
        "DisabledBy": "USER",
        "DisabledReason": "Manually disabled by user."
    },
    ...
}
```

# 为你的 AWS DataSync 任务加标签
<a name="tagging-tasks"></a>

*标签*是键值对，可帮助您管理、筛选和搜索 AWS DataSync 资源。您最多可以为每个 DataSync 任务和任务执行添加 50 个标签。

例如，您可以为大型数据迁移创建任务，并使用密钥**Project**和值标记任务**Large Migration**。若要进一步组织迁移，您可以使用密钥**Transfer Date**和值**May 2021**标记任务的一次运行（后续任务执行可能会被标记**June 2021**、**July 2021**等）。

## 给你的 DataSync 任务加标签
<a name="tagging-tasks-console"></a>

只有在创建 DataSync 任务时才能为任务添加标签。

### 使用控制 DataSync 台
<a name="tagging-tasks-console-steps"></a>

1. 打开 AWS DataSync 控制台，网址为[https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/)。

1. 在左侧导航窗格中，展开**数据传输**，然后选择**任务**，然后选择**创建任务**。

1. 配置您任务的源位置和目标位置。

   有关更多信息，请参阅 [我可以在哪里传输我的数据 AWS DataSync？](working-with-locations.md)。

1. 在**配置设置**页面，选择**添加新标签**来标记您的任务。

### 使用 AWS CLI
<a name="tagging-tasks-cli-steps"></a>

1. 复制以下 `create-task` 命令：

   ```
   aws datasync create-task \
       --source-location-arn 'arn:aws:datasync:region:account-id:location/source-location-id' \
       --destination-location-arn 'arn:aws:datasync:region:account-id:location/destination-location-id' \
       --tags Key=tag-key,Value=tag-value
   ```

1. 指定命令中的以下参数：
   + `--source-location-arn` – 指定传输中源位置的 Amazon 资源名称（ARN）。
   + `--destination-location-arn` – 请指定传输中目标位置的 ARN。
   + `--tags` – 指定要应用于任务的标签。

     对于多个标签，请用空格分隔密钥值对。

1. （可选）指定适用于您传输场景的其他参数。

   有关`--options`列表，请参阅 [create-task](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/datasync/create-task.html)命令。

1. 运行 `create-task` 命令。

   您会收到一条回复，表明您刚刚创建的任务。

   ```
   {
       "TaskArn": "arn:aws:datasync:us-east-2:123456789012:task/task-abcdef01234567890"
   }
   ```

要查看您为此任务添加的标签，可以使用[list-tags-for-resource](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/datasync/list-tags-for-resource.html)命令。

## 为 DataSync 任务执行添加标签
<a name="tagging-task-executions-console"></a>

您可以为 DataSync 任务的每一次运行添加标签。

如果您的任务已有标签，请记住以下有关任务执行中使用标签的信息：
+ 如果您使用控制台启动任务，其用户创建的标签将自动应用于任务执行。但是，系统创建的以开头的标签 `aws:`不适用。
+ 如果您使用 DataSync API 或启动任务 AWS CLI，则其标签不会自动应用于任务执行。

### 使用控制 DataSync 台
<a name="tagging-task-executions-console"></a>

要在任务执行中添加、编辑或移除标签，必须通过覆盖选项启动任务。

1. 打开 AWS DataSync 控制台，网址为[https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/)。

1. 在左侧导航窗格中，展开**数据传输**，然后选择**任务**。

1. 选择任务。

1. 选择**开始**，然后选择下列选项之一：
   + **从默认值开始**-应用与您的任务关联的所有标签。
   + 从@@ **覆盖选项开始** — 允许您添加、编辑或删除此特定任务执行的标签。

### 使用 AWS CLI
<a name="tagging-task-executions-cli"></a>

1. 复制以下 `start-task-execution` 命令：

   ```
   aws datasync start-task-execution \
       --task-arn 'arn:aws:datasync:region:account-id:task/task-id' \
       --tags Key=tag-key,Value=tag-value
   ```

1. 指定命令中的以下参数：
   + `--task-arn` – 指定要启动的任务的 ARN。
   + `--tags` – 指定要应用于此特定任务运行的标签。

     对于多个标签，请用空格分隔密钥值对。

1. （可选）指定对您有意义的其他参数。

   有关更多信息，请参阅 [start-task-execution](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/datasync/start-task-execution.html) 命令。

1. 运行 `start-task-execution` 命令。

   您会收到一条回复，其中显示了您刚刚开始的任务执行情况。

   ```
   {
       "TaskExecutionArn": "arn:aws:datasync:us-east-2:123456789012:task/task-abcdef01234567890"
   }
   ```

要查看您为此任务添加的标签，可以使用[list-tags-for-resource](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/datasync/list-tags-for-resource.html)命令。

# 启动传输数据的任务
<a name="run-task"></a>

创建 AWS DataSync传输任务后，就可以开始移动数据了。每次任务运行都称为*任务执行*。若要了解任务执行中会发生的事情，请参阅[如何 DataSync 传输文件、对象和目录](how-datasync-transfer-works.md#transferring-files)。

**重要**  
如果您计划向或从某个 Amazon S3 位置传输数据，请在开始之前先查看[DataSync 会如何影响您的 S3 请求费用](create-s3-location.md#create-s3-location-s3-requests)以及[DataSync 定价页面](https://aws.amazon.com/datasync/pricing/)。

## 开始您的任务
<a name="starting-task"></a>

创建任务后，您可立即开始移动数据。

### 使用 DataSync 控制台
<a name="starting-task-console"></a>

1. 打开 AWS DataSync 控制台，地址：[https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/)。

1. 在左侧导航窗格中，展开**数据传输**，然后选择**任务**。

1. 选择您想要运行的任务。

   确保任务处于**可用**状态。您也可以选择多个任务。

1. 选择**操作**，然后选择下列选项之一：
   + **开始** - 运行任务（如果您选择了多个任务，则运行任务）。
   + **从覆盖选项开始** - 允许您在开始移动数据之前修改某些任务设置。准备就绪后，选择 **开始**。

1. 选择**查看执行详细信息** 以查看有关正在运行的任务执行的详细信息。

### 使用 AWS CLI
<a name="start-task-execution"></a>

要启动 DataSync 任务，您只需指定您要运行的任务的 Amazon 资源名称（ARN）。以下是一个示例 `start-task-execution` 命令：

```
aws datasync start-task-execution \
    --task-arn 'arn:aws:datasync:region:account-id:task/task-id'
```

以下示例使用一些与任务默认设置不同的设置来启动任务：

```
aws datasync start-task-execution \
    --override-options VerifyMode=NONE,OverwriteMode=NEVER,PosixPermissions=NONE
```

该命令为任务执行返回一个 ARN，类似于以下示例：

```
{ 
    "TaskExecutionArn": "arn:aws:datasync:us-east-1:209870788375:task/task-08de6e6697796f026/execution/exec-04ce9d516d69bd52f"
}
```

**注意**  
每个代理每次可以运行单个任务。

### 使用 DataSync API
<a name="starting-task-api"></a>

你可以使用[StartTaskExecution](https://docs.aws.amazon.com/datasync/latest/userguide/API_StartTaskExecution.html)运算开始你的任务。使用[DescribeTaskExecution](https://docs.aws.amazon.com/datasync/latest/userguide/API_DescribeTaskExecution.html)运算获取有关正在运行的任务执行的详细信息。

启动后，您可以在 DataSync 复制数据时[检查任务执行状态](#understand-task-execution-statuses)。如果需要，您还可以[限制任务执行带宽](configure-bandwidth.md#adjust-bandwidth-throttling)。

## 任务执行状态
<a name="understand-task-execution-statuses"></a>

当您启动数据同步任务时，可能会看到这些状态。（[任务状态](create-task-how-to.md#understand-task-creation-statuses)与任务执行状态不同。）


| 控制台状态 | API 状态 | 描述 | 
| --- | --- | --- | 
|  排队  |  `QUEUED`  |  另一项任务正在执行，并使用相同的 DataSync 代理。有关更多信息，请参阅 [了解任务何时排队](#queue-task-execution)。  | 
|  正在启动  |  `LAUNCHING`  |  DataSync 正在初始化任务执行。此状态通常很快就会结束，但也可能需要几分钟。  | 
| 已启动 | `LAUNCHED` | DataSync 已启动任务执行。 | 
|  正在准备  |  `PREPARING`  |  DataSync 正在确定要传输哪些数据。 准备过程可能只需要几分钟，也可能需要几个小时甚至更长时间，具体取决于两个位置的文件、对象或目录的数量，以及任务的配置方式。准备方式还取决于具体任务模式。有关更多信息，请参阅 [如何 DataSync 准备数据传输](how-datasync-transfer-works.md#how-datasync-prepares)。  | 
|  正在传输  |  `TRANSFERRING`  |  DataSync 正在执行实际数据传输。  | 
|  正在验证  |  `VERIFYING`  |  在传输结束时，DataSync 验证数据的完整性。  | 
|  成功  |  `SUCCESS`  |  任务执行成功。  | 
|  正在取消  |  `CANCELLING`  | 正在取消任务的执行。 | 
|  错误  |  `ERROR`  |  任务执行失败。  | 

## 了解任务何时排队
<a name="queue-task-execution"></a>

运行多个任务时（例如，[传输大型数据集](create-task-how-to.md#multiple-tasks-large-dataset)时），DataSync 可能会将任务放入队列，按序列连续运行（先进先出）。发生这种情况的一些示例包括：
+ 运行使用相同 DataSync 代理的不同任务。虽然您可以将同一个代理用于多个任务，但一个代理一次只能运行一个任务。
+ 任务正在执行，您使用不同的[筛选条件](filtering.md)或[清单](transferring-with-manifest.md)开始再次执行同一个任务。

在各个示例中，队列中的任务在前面的任务完成之前不会启动。

## 取消执行任务
<a name="cancel-running-task"></a>

 您可以停止执行任何正在运行或排队的 DataSync 任务。

**使用控制台取消执行任务**

1. 打开 AWS DataSync 控制台，地址：[https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/)。

1. 在左侧导航窗格中，展开**数据传输**，然后选择**任务**。

1. 为要监控的正在运行的任务选择 **任务 ID**。

   任务状态应为**正在运行**。

1. 选择**历史记录**以查看任务的执行情况。

1. 选择要停止的任务执行，然后选择**停止**。

1. 在对话框中，选择**停止**。

要使用 DataSync API 取消正在运行或排队的任务，请参阅[CancelTaskExecution](https://docs.aws.amazon.com/datasync/latest/userguide/API_CancelTaskExecution.html)。

### 自动取消卡住的任务
<a name="auto-cancel-stuck-tasks"></a>

有时，正在运行的 DataSync 任务执行可能会卡滞。