

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

# 如何 Amazon DataSync 运作
<a name="how-datasync-transfer-works"></a>

了解与 Amazon DataSync 传输相关的关键概念和术语，包括如何从本地和云端传输数据。

## DataSync 传输架构
<a name="datasync-archtecture"></a>

下图显示了 DataSync 通常如何以及在何处传输存储数据。有关 DataSync 支持的存储系统和服务的完整列表，请参见 [我可以在哪里传输我的数据 Amazon DataSync？](working-with-locations.md)

**Topics**
+ [

### 在本地存储和之间传输 Amazon
](#onprem-aws)
+ [

### 在 Amazon 存储服务之间传输
](#in-cloud-transfer)
+ [

### 在 Amazon 存储服务与其他云中的存储系统之间传输
](#ec2-agent-in-region)

### 在本地存储和之间传输 Amazon
<a name="onprem-aws"></a>

下图简要概述了在自行管理的本地存储系统和 Amazon Web Services 服务之间 DataSync 传输文件。

![\[概述了数据从本地存储系统传输到支持的存储资源（例如 Amazon S3 Amazon 存储桶或 Amazon EFS 文件系统）的常见 DataSync 场景。\]](http://docs.amazonaws.cn/datasync/latest/userguide/images/DataSync-chart-on-prem.png)


该图说明了一个常见的 DataSync 用例：
+ 从本地存储系统复制数据的 DataSync 代理。
+ 数据传入 Amazon，使用传输层安全 (TLS) 进行加密。
+ DataSync 将数据复制到支持的 Amazon 存储服务。

### 在 Amazon 存储服务之间传输
<a name="in-cloud-transfer"></a>

下图显示了 Amazon Web Services 服务 在同一个服务器之间 DataSync 传输文件的高级概述 Amazon Web Services 账户。

![\[概述了在 Amazon 存储资源（例如 Amazon S3 存储桶或 Amazon EFS 文件系统）之间传输数据的常见 DataSync 场景。\]](http://docs.amazonaws.cn/datasync/latest/userguide/images/DataSync-chart-agentless.png)


该图说明了一个常见的 DataSync 用例：
+ DataSync 从支持的 Amazon 存储服务中复制数据。
+ 数据传输 Amazon Web Services 区域，使用 TLS 加密。
+ DataSync 将数据复制到支持的 Amazon 存储服务。

在同一帐户中的 Amazon 存储服务之间传输时（无论是在同 Amazon Web Services 区域 一个分区 Amazon Web Services 区域 中还是在同一分区中），不需要代理。您的数据仍保留在 Amazon 网络中，不会通过公共互联网。

**重要**  
您需要为两者之间传输的数据付费 Amazon Web Services 区域。此次传输按从源区域向外传输到目标区域的数据计费。有关更多信息，请参阅 [数据传输定价](https://www.amazonaws.cn/ec2/pricing/on-demand/#Data_Transfer)。

### 在 Amazon 存储服务与其他云中的存储系统之间传输
<a name="ec2-agent-in-region"></a>

使用 DataSync，您可以在其他云存储系统和之间传输数据 Amazon Web Services 服务。在这种情况下，云存储系统可包括：
+ 自我管理存储系统，例如 Amazon中虚拟私有云（VPC）的 NFS 文件服务器。

DataSync 无论是否使用代理，都可以将数据复制到其他云或从其他云中复制数据。有关何时使用代理的更多信息，请参阅[我需要 Amazon DataSync 代理吗？](https://docs.amazonaws.cn/datasync/latest/userguide/do-i-need-datasync-agent.html)。

## 概念和术语
<a name="terminology"></a>

熟悉 DataSync 传输功能。

**Topics**
+ [

### 座席
](#sync-agents)
+ [

### 位置
](#sync-locations)
+ [

### Task
](#tasks)
+ [

### 任务执行
](#task-executions)

### 座席
<a name="sync-agents"></a>

*代理*是一种虚拟机 (VM) 设备， DataSync 用于在传输过程中对存储进行读取和写入。 DataSync 提供两种类型的代理，一种处理基本模式任务，另一种处理增强模式任务。有关为您的用例选择代理的更多信息，请参阅[为您的任务模式选择代理](do-i-need-datasync-agent.md#choose-task-mode-agent)。

你可以在基于 Linux 内核的虚拟机 (KVM) VMware ESXi、Nutanix AHV（使用 KVM 代理映像）或 Microsoft Hyper-V 虚拟机管理程序上部署代理。要在中的虚拟私有云 (VPC) 中存储 Amazon，您可以将代理部署为 Amazon EC2 实例。

要了解其用法，请参阅 [我需要 Amazon DataSync 经纪人吗？](do-i-need-datasync-agent.md)

### 位置
<a name="sync-locations"></a>

*位置* 描述了您要从何处复制数据或将数据复制到何处。每次 DataSync 传输（也称为*任务*）都有源位置和目标位置。有关更多信息，请参阅 [我可以在哪里传输我的数据 Amazon DataSync？](working-with-locations.md)。

### Task
<a name="tasks"></a>

*任务*描述了 DataSync 转移。它标识源位置和目标位置，以及有关如何在这些位置之间复制数据的详细信息。您还可以指定此任务如何处理元数据、已删除的文件和权限。

### 任务执行
<a name="task-executions"></a>

*任务执行*是 DataSync 传输任务的单独运行。任务执行涉及多阶段。有关更多信息，请参阅 [任务执行状态](run-task.md#understand-task-execution-statuses)。

## 如何 DataSync 传输文件、对象和目录
<a name="transferring-files"></a>

在[任务执行](run-task.md)期间， DataSync 准备、传输和验证您的数据。这些操作的 DataSync 执行方式取决于您如何配置 DataSync 任务选项，例如[任务模式](choosing-task-mode.md)。基本模式任务按顺序准备、传输和验证数据，而增强模式任务则并行执行这些任务。

**Topics**
+ [

### 如何 DataSync 准备数据传输
](#how-datasync-prepares)
+ [

### 如何 DataSync 传输您的数据
](#how-datasync-transfers)
+ [

### 如何 DataSync 验证数据的完整性
](#how-verifying-works)
+ [

### DataSync 如何处理打开和锁定的文件
](#open-locked-files)
+ [

### 定期传输选项
](#how-recurring-transfers-work)

### 如何 DataSync 准备数据传输
<a name="how-datasync-prepares"></a>

DataSync 默认情况下，通过检查来源和目标位置来确定要传输的内容，从而为传输做准备。具体做法是扫描两个位置的内容和元数据，找出两者之间的差异。

**注意**  
如果将任务配置为[传输所有数据](configure-metadata.md#task-option-transfer-mode)，则无需准备。开始任务时，无需比较位置即可 DataSync 立即将所有内容从源头转移到目的地。

如何 DataSync 准备传输还取决于您的任务模式：


| 增强模式准备 | 基本模式准备 | 
| --- | --- | 
|  DataSync 在源位置找到对象时对其进行准备。在整个任务执行过程中，准备过程一直在进行，直至源不再列出任何对象。 与基本模式不同，每次执行任务时 DataSync 可以准备几乎无限数量的对象。  |  准备过程可能只需要几分钟，也可能需要几个小时甚至更长时间，具体取决于两个位置的文件、对象或目录的数量，以及存储的性能。 在您的来源和目的地中 DataSync 盘点的项目计入您的[任务配额](datasync-limits.md#task-hard-limits)。这些配额不是基于每次任务执行期间 DataSync 传输的项目数量。  | 

DataSync 在准备过程中可能会跳过一些文件、对象和目录。其原因可能取决于多个因素，例如您配置任务和存储系统权限的方式。下面是一些示例：
+ 一个文件存在于源位置和目标位置。自上次执行任务以来，源位置的文件未被修改。由于您[只传输已更改的数据，](configure-metadata.md#task-option-transfer-mode)因此下次运行任务时 DataSync 不会传输该文件。
+ 两个位置都存在的某个对象在源位置发生变化。运行任务时，会 DataSync 跳过目标中的此对象，因为您的任务不会[覆盖目标中的数据](configure-metadata.md#task-option-file-object-handling)。
+ DataSync 跳过源位置中使用[存档存储类](create-s3-location.md#using-storage-classes)且未恢复的对象。您必须恢复已存档的对象 DataSync 才能读取它。
+ DataSync 跳过源位置中的文件、对象或目录，因为它无法读取它。如果发生这种情况但不是预料之中的，请检查存储空间的访问权限，并确保该权限 DataSync 可以读取跳过的内容。

### 如何 DataSync 传输您的数据
<a name="how-datasync-transfers"></a>

DataSync 根据您的任务选项将您的数据（包括元数据）从源复制到目标。例如，您可以指定要复制哪些[元数据](configure-metadata.md)，[排除](filtering.md)某些文件，限制[带宽](configure-bandwidth.md) DataSync 使用量等。

如何 DataSync 传输数据还取决于您的任务模式：


| 增强模式传输 | 基本模式传输 | 
| --- | --- | 
|  DataSync 准备好每个对象后立即进行传输。  |   DataSync 准备好所有数据后，传输就开始了。  | 

DataSync在传输过程中可能会跳过一些项目。如果将任务配置为[传输所有数据](configure-metadata.md#task-option-transfer-mode)，则源位置中使用[存档存储类别](create-s3-location.md#using-storage-classes)且未恢复的对象可能会出现这种情况。

### 如何 DataSync 验证数据的完整性
<a name="how-verifying-works"></a>

DataSync 在传输过程中，始终对您的数据进行完整性检查。在传输结束时， DataSync 还可以仅对两个位置的传输数据或整个数据集执行额外检查。有关更多信息，请参阅 [配置如何 Amazon DataSync 验证数据完整性](configure-data-verification-options.md)。

检查数据完整性时， DataSync 计算和比较您所在位置的文件、对象或目录的校验和和和元数据。如果 DataSync 发现地点之间存在差异，则验证失败并显示错误。例如，您可能会看到 `Checksum failure`、`Metadata failure`、`Files were added` 或 `Files were removed` 错误。

验证的工作方式取决于您的任务模式，以及您是否配置 DataSync为在传输结束时验证数据完整性。


| 增强模式验证 | 基本模式验证 | 
| --- | --- | 
|  DataSync 在将每个对象转移到目的地时对其进行验证。 在增强模式下，[仅 DataSync 验证传输的数据](configure-data-verification-options.md)。  |  在传输结束时，请 DataSync 验证数据的完整性。 根据您[配置数据验证](configure-data-verification-options.md)的方式，处理大型数据集时，这可能会花费大量时间。  | 

### DataSync 如何处理打开和锁定的文件
<a name="open-locked-files"></a>

在尝试传输打开（使用中）或锁定的文件时，注意以下几点：
+ 通常， DataSync 可以不受限制地传输打开的文件。
+ 如果文件在传输过程中处于打开状态并正在写入，则 DataSync 可以在传输任务的验证阶段检测到这种不一致性。要获取该文件的最新版本，您必须再次运行该任务。
+ 如果文件被锁定而服务器 DataSync 阻止打开该文件，则会在传输过程中 DataSync 跳过该文件并记录错误。
+ DataSync 无法锁定或解锁文件。

### 定期传输选项
<a name="how-recurring-transfers-work"></a>

除了一次性传输外， DataSync 还可以定期传输数据。以下是适用于这些情况的一些选项：
+ [安排](task-scheduling.md)任务的执行时间。
+ 只传输自上次任务执行以来[发生更改的数据](configure-metadata.md)。
+ [删除存在于目标位置](configure-metadata.md)，但不再存在于源位置的数据。