

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

# 复制 EFS 文件系统
<a name="efs-replication"></a>

为了增强韧性和数据保护，您可以在 AWS 区域中复制 EFS 文件系统。在 EFS 文件系统上启用复制功能时，Amazon EFS 会自动以透明的方式将源文件系统上的数据和元数据复制到目标文件系统。在发生灾难或进行游戏日练习时，您可以失效转移至副本文件系统。要恢复操作，您可以通过失效自动恢复功能恢复到主文件系统。

为了管理创建目标文件系统并使其与源文件系统保持同步的过程，Amazon EFS 使用*复制配置*。

创建复制配置后，Amazon EFS 会自动使源文件系统和目标文件系统保持同步。对源文件系统所做的更改不会以 point-in-time一致的方式传输到目标文件系统。相反，它们是根据复制的**上次同步时间**进行传输的。**上次同步时间**表示源和目标之间最后一次成功同步的完成时间。上次同步时对源文件系统所做的更改将复制到目标文件系统，但可能无法复制在上次同步时间之后对源文件系统所做的更改。有关更多信息，请参阅 [查看复制详细信息](monitoring-replication-status.md)。

所有提供 Amazon EFS 的 AWS 区域 地区均可进行复制。要复制默认情况下禁用的某个区域中的 EFS 文件系统，必须首先选择加入该区域。有关更多信息，请参阅《AWS General Reference Guide》**中的 [Specify which AWS 区域 your account can use](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-regions.html#rande-manage-enable)。如果以后选择退出区域，Amazon EFS 会暂停该区域的所有复制活动。要恢复该地区的复制活动，请 AWS 区域 再次选择加入。

**注意**  
复制不支持将标签用于基于属性的访问权限控制 (ABAC)。

**Topics**
+ [成本](#efs-replication-costs)
+ [复制性能](#efs-replication-performance)
+ [所需的 IAM 权限](#efs-replication-permissions)
+ [配置到新 EFS 文件系统的复制](create-replication.md)
+ [配置到现有 EFS 文件系统的复制](replicate-existing-destination.md)
+ [跨 AWS 账户复制 EFS 文件系统](cross-account-replication.md)
+ [查看复制详细信息](monitoring-replication-status.md)
+ [删除复制配置](delete-replications.md)
+ [使用副本](replication-fail-over.md)

## 成本
<a name="efs-replication-costs"></a>

为便于复制，Amazon EFS 会在目标文件系统上创建隐藏的目录和元数据。这相当于大约 12 兆字节（MiB）的计量数据，您需要为其付费。有关为文件系统存储计量的更多信息，请参阅[Amazon EFS 如何报告文件系统和对象大小](metered-sizes.md)。

## 复制性能
<a name="efs-replication-performance"></a>

当您在失效自动恢复过程中创建新的复制或反转现有复制的方向时，Amazon EFS 会执行初始同步，其中包括一系列支持复制的一次性设置操作。只有在初始同步完成后，才能在目标文件系统中访问复制的数据。完成初始同步所需的时间量取决于源文件系统的大小和其中的文件数等因素。

初始复制完成后，Amazon EFS 将大多数文件系统的恢复点目标 (RPO) 保持在 15 分钟。但是，如果源文件系统的文件更改频繁且文件超过 1 亿个，或者文件大于 100GB，则复制所需的时间可能超过 15 分钟。有关监控上次复制成功完成的时间的信息，请参见[查看复制详细信息](monitoring-replication-status.md)。

您可以使用控制台、 AWS Command Line Interface (AWS CLI)、API 和 Amazon 监控上次成功同步的时间 CloudWatch。在中 CloudWatch，使用 E [TimeSinceLastSync](efs-metrics.md)FS 指标。有关更多信息，请参阅 [查看复制详细信息](monitoring-replication-status.md)。

## 所需的 IAM 权限
<a name="efs-replication-permissions"></a>

Amazon EFS 使用名为 `AWSServiceRoleForAmazonElasticFileSystem` 的 EFS 服务相关角色或您指定的 IAM 角色，来在源文件系统和目标文件系统之间同步复制操作。要提供 IAM 角色，创建复制配置的 IAM 用户或角色必须拥有 `iam:PassRole` 权限。有关更多信息，请参阅《[用户*指南》中的授予AWS Identity and Access Management 用户*向 AWS 服务传递角色的权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html)。
+ 有关 `iam:CreateServiceLinkedRole` 的更多信息，请参阅[对 Amazon EFS 使用服务相关角色](using-service-linked-roles.md)中的示例。
+ 有关自定义 IAM 角色的更多信息，请参阅[创建具有自定义信任策略的 IAM 角色](cross-account-replication.md#replication-create-iam-role)。

**注意**  
如果要执行跨账户复制，则在创建复制配置时必须提供 IAM 角色。严禁使用服务相关角色。有关更多信息，请参阅 [跨 AWS 账户复制 EFS 文件系统](cross-account-replication.md)。

您在创建复制配置时提供的服务相关角色或 IAM 角色必须具有以下复制权限。
+ `elasticfilesystem:DescribeFileSystems`
+ `elasticfilesystem:CreateFileSystem`
+ `elasticfilesystem:CreateReplicationConfiguration`
+ `elasticfilesystem:DeleteReplicationConfiguration`
+ `elasticfilesystem:DescribeReplicationConfigurations`

可以使用 `AmazonElasticFileSystemFullAccess` 托管式策略自动获取所有必需的 EFS 权限。有关更多信息，请参阅 [AWS 托管策略： AmazonElasticFileSystemFullAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonElasticFileSystemFullAccess)。

# 配置到新 EFS 文件系统的复制
<a name="create-replication"></a>

Amazon EFS 会自动创建新的文件系统，并将源文件系统上的数据和元数据复制到您选择的新的只读目标文件系统。 AWS 区域 复制到新的文件系统时，您可以选择用于加密的文件系统类型和 AWS Key Management Service (AWS KMS) 密钥。而且，Amazon EFS 在创建目标文件系统时不会创建任何挂载目标。创建复制配置后，必须[创建一个或多个挂载目标](accessing-fs.md)来[挂载目标文件系统](efs-mount-helper.md)。

**注意**  
一个文件系统只能属于一个复制配置。不能在其他复制配置中将目标文件系统用作源文件系统。
+ **文件系统类型** – 文件系统类型决定了 Amazon EFS 文件系统在 AWS 区域中存储数据的可用性和持久性。
  + 选择**区域性**可创建一个文件系统，该文件系统可跨 AWS 区域中的所有可用区以冗余方式存储数据和元数据。
  + 选择**单区**可创建一个文件系统，该文件系统在单个可用区内以冗余方式存储数据和元数据。

  有关文件系统类型的更多信息，请参阅[EFS 文件系统类型](features.md#file-system-type)。
+ **加密** – 所有目标文件系统都是在启用静态加密的情况下创建的。您可以指定用于加密目标文件系统的密 AWS KMS 钥。如果不指定 KMS 密钥，则使用您的 Amazon EFS 的服务托管式 KMS 密钥。
**重要**  
创建目标文件系统后，无法更改 KMS 密钥。

目标文件系统使用基于源文件系统的默认设置创建。额外设置可在创建后更改。
+ **自动备份** – 对于使用单区存储的目标文件系统，默认情况下启用自动备份。创建文件系统后，可以更改自动备份设置。有关更多信息，请参阅 [管理 EFS 文件系统的自动备份](automatic-backups.md)。
+ **性能模式** – 目标文件系统的**性能模式**与源文件系统的性能模式相匹配，除非目标文件系统使用单区存储。在这种情况下，将使用**通用**模式。无法更改性能模式。
+ **吞吐量模式** – 目标文件系统的**吞吐量模式**与源文件系统的吞吐量模式相匹配。创建文件系统后，可以更改模式。

  如果源文件系统的吞吐量模式为**预置**，则目标文件系统的预置吞吐量与源文件系统的预置吞吐量相匹配，除非源文件的预置量超过目标文件系统区域的限制。如果源文件系统的预配置量超过目标文件系统的区域限制，则目标文件系统的预配置吞吐量为区域限制。有关更多信息，请参阅 [您可以提高的 Amazon EFS 配额](limits.md#soft-limits)。
+ **生命周期管理** – 未在目标文件系统上启用生命周期管理。创建目标文件系统后，您可以启用它。有关更多信息，请参阅 [管理存储生命周期](lifecycle-management-efs.md)。

## 步骤 1：创建复制配置
<a name="create-replication-new"></a>

复制到新文件系统的第一步是创建复制配置。只有在初始同步完成后，才能访问复制到目标文件系统的数据。初始同步所用时长取决于源文件系统的大小和其中所含文件数等因素。有关复制性能的更多信息，请参阅[复制性能](efs-replication.md#efs-replication-performance)。

### 使用控制台
<a name="replicate-new-console"></a>

1. 登录 AWS 管理控制台 并打开 Amazon EFS 控制台，网址为[ https://console.aws.amazon.com/efs/](https://console.aws.amazon.com/efs/)。

1. 打开要复制的文件系统：

   1. 在左侧导航窗格中，选择**文件系统**。

   1. 在**文件系统**列表中，选择要复制的文件系统。选择的文件系统不能是现有复制配置中的源文件系统或目标文件系统。

1. 选择**复制**选项卡。

1. 在**复制**部分，选择**创建复制**。

1. 在**复制设置**部分，定义复制设置：

   1. 对于**复制配置**，选择是要复制到新文件系统还是现有文件系统。

   1. 在**目标**中 AWS 区域，选择要 AWS 区域 在其中复制文件系统的目标。

1. 在**目标文件系统设置**部分中，定义目标文件系统设置。

   1. 对于**文件系统类型**，选择文件系统的存储选项：
      + **要创建文件系统，在中多个地理位置分隔的可用区中冗余存储数据 AWS 区域，请选择区域。**
      + 要创建在中的单个可用区内以冗余方式存储数据的文件系统 AWS 区域，请选择**一个区域**，然后选择该可用区。

        有关更多信息，请参阅 [EFS 文件系统类型](features.md#file-system-type)。
**注意**  
在提供 Amazon EFS 的 AWS 区域 中，并非所有可用区都提供单区文件系统。

   1. 对于**加密**，在目标文件系统上自动启用静态数据加密。默认情况下，Amazon EFS 使用您的 AWS Key Management Service (AWS KMS) 服务密钥 (`aws/elasticfilesystem`)。要使用其它 KMS 密钥，请选择 KMS 密钥或输入密钥的 Amazon 资源名称（ARN）。
**重要**  
创建文件系统后，无法更改 KMS 密钥。

### 创建复制配置（AWS CLI）
<a name="replicate-new-cli"></a>

本节提供了在 AWS CLI 中使用 `create-replication-configuration` 命令创建复制配置的示例。等效的 API 命令是 [CreateReplicationConfiguration](API_CreateReplicationConfiguration.md)。

**Example ：为区域性目标文件系统创建复制配置**  
以下示例为文件系统 `fs-0123456789abcdef1` 创建复制配置。该示例使用`Region`参数在中创建目标文件系统`eu-west-2` AWS 区域。`KmsKeyId` 参数指定加密目标文件系统时要使用的 KMS 密钥 ID：  

```
aws efs create-replication-configuration \
--source-file-system-id fs-0123456789abcdef1 \
--destinations "[{\"Region\":\"eu-west-2\", \"KmsKeyId\":\"arn:aws:kms:us-east-2:111122223333:key\/abcd1234-ef56-ab78-cd90-1111abcd2222\"}]"
```
 AWS CLI 答案如下：  

```
         {
    "SourceFileSystemArn": "arn:aws:elasticfilesystem:us-east-1:111122223333:file-system/fs-0123456789abcdef1", 
    "SourceFileSystemRegion": "us-east-1", 
    "Destinations": [
        {
            "Status": "ENABLING", 
            "FileSystemId": "fs-0123456789abcde22", 
            "Region": "eu-west-2"
        }
    ], 
    "SourceFileSystemId": "fs-0123456789abcdef1", 
    "CreationTime": 1641491892.0, 
    "OriginalSourceFileSystemArn": "arn:aws:elasticfilesystem:us-east-1:111122223333:file-system/fs-0123456789abcdef1"
}
```

**Example ：为单区目标文件系统创建复制配置**  
以下示例为文件系统 *`fs-0123456789abcdef1`* 创建复制配置。此示例使用 `AvailabilityZoneName` 参数在 `us-west-2a` 可用区中创建一个单区目标文件系统。由于未指定 KMS 密钥，因此使用账户的默认 AWS KMS 服务密钥（`aws/elasticfilesystem`）对目标文件系统进行加密。  

```
aws efs create-replication-configuration \
--source-file-system-id fs-0123456789abcdef1 \
--destinations AvailabilityZoneName=us-west-2a
```

## 步骤 2：挂载目标文件系统
<a name="replication-create-mount-target"></a>

Amazon EFS 在创建目标文件系统时不会创建任何挂载目标。要挂载目标文件系统，必须创建一个或多个挂载目标。有关更多信息，请参阅 [挂载 EFS 文件系统](mounting-fs.md)。

# 配置到现有 EFS 文件系统的复制
<a name="replicate-existing-destination"></a>

Amazon EFS 会将源文件系统上的数据和元数据复制到您选择 AWS 区域 的目标文件系统。在复制过程中，Amazon EFS 会识别文件系统之间的数据差异，并将差异应用于目标文件系统。



要复制到现有文件系统，请执行以下步骤。

**Topics**
+ [步骤 1：禁用文件系统的复制覆盖保护功能](#replication-overwrite)
+ [步骤 2：创建复制配置](#replicate-existing-step)

**注意**  
一个文件系统只能属于一个复制配置。不能在其他复制配置中将目标文件系统用作源文件系统。

## 步骤 1：禁用文件系统的复制覆盖保护功能
<a name="replication-overwrite"></a>

创建 Amazon EFS 文件系统时，将默认启用其复制覆盖保护功能。复制覆盖保护功能可防止在复制配置中将文件系统用作目标。在复制配置中使用文件系统作为目标之前，必须先禁用保护功能。如果您删除复制配置，则文件系统的复制覆盖保护功能将重新启用，文件系统将变为可写状态。

Amazon EFS 文件系统的复制覆盖保护功能的状态可以具有下表中描述的值之一。


| 文件系统状态  | 说明 | 
| --- | --- | 
| 已启用 | 文件系统不能用作复制配置中的目标文件系统。文件系统是可写的。默认情况下，复制覆盖保护功能处于 ENABLED 状态。 | 
| DISABLED | 文件系统可以用作复制配置中的目标文件系统。 | 
| 复制 | 文件系统正用作复制配置中的目标文件系统。文件系统是只读的，只有 Amazon EFS 在复制期间才能对其进行修改。 | 

### 所需的权限
<a name="disable-protection-permission"></a>

禁用复制覆盖保护功能需要 `elasticfilesystem:UpdateFileSystemProtection` 操作的权限。有关更多信息，请参阅 [AWS 托管策略： AmazonElasticFileSystemFullAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonElasticFileSystemFullAccess)。

### 使用控制台
<a name="replication-overwrite-disable"></a>

1. 登录 AWS 管理控制台 并打开 Amazon EFS 控制台，网址为[ https://console.aws.amazon.com/efs/](https://console.aws.amazon.com/efs/)。

1. 在左侧导航窗格中，选择**文件系统**。

1. 在**文件系统**列表中，选择要在复制配置中用作目标文件系统的 Amazon EFS 文件系统。

1. 在**文件系统保护**部分中，关闭**复制覆盖保护**。

### 禁用复制覆盖保护功能（AWS CLI）
<a name="replication-overwrite-disable-cli"></a>

在以下示例中，`update-file-system-protection` CLI 命令禁用了对指定文件系统的复制覆盖保护。等效的 API 命令是[ UpdateFileSystemProtection](https://docs.aws.amazon.com/efs/latest/ug/limits.html#API_UpdateFileSystemProtection)。

```
aws efs update-file-system-protection
 --file-system-id fs-0a8b2be428114d97c
 --replication-overwrite-protection DISABLED
```

 AWS CLI 答案如下。

```
{
    "ReplicationOverwriteProtection": "DISABLED"
}
```

## 步骤 2：创建复制配置
<a name="replicate-existing-step"></a>

在目标文件系统上禁用复制覆盖保护功能后，可以创建复制配置。复制到现有文件系统时，目标文件系统可以与源文件系统使用相同的账户或不同的账户。

在为 Amazon EFS 创建复制配置之前，请查看以下重要要求和注意事项：
+ 如果源文件系统已加密，也必须对目标文件系统进行加密。此外，如果源文件未加密而目标文件系统已加密，则在执行失效转移后无法失效自动恢复到源目标。有关加密的更多信息，请参阅[Amazon EFS 中的数据加密](encryption.md)。
+ 当您最初为现有文件系统配置复制时，Amazon EFS 会在目标文件系统中写入数据或删除现有数据，以与源文件系统中的数据相匹配。如果您不想更改目标文件系统中的数据，则应改为复制到新的文件系统。有关更多信息，请参阅 [配置到新 EFS 文件系统的复制](create-replication.md)。
+ 只有在初始同步完成后，才能访问复制到目标文件系统的数据。同步所用时长取决于源文件系统的大小和其中所含文件数等因素。有关复制性能的更多信息，请参阅[复制性能](efs-replication.md#efs-replication-performance)。

### 先决条件
<a name="replication-existing-fs-reqs"></a>

拥有要使用的目标文件系统 ID（用于同账户复制）或目标文件系统 ARN（用于跨账户复制）的副本。

如果目标文件系统与源文件系统 AWS 账户 不同，请创建一个 IAM 角色以允许 Amazon EFS 执行复制并为文件系统分配资源策略。有关更多信息，请参阅 [跨 AWS 账户复制 EFS 文件系统](cross-account-replication.md)。

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

1. 登录 AWS 管理控制台 并打开 Amazon EFS 控制台，网址为[ https://console.aws.amazon.com/efs/](https://console.aws.amazon.com/efs/)。

1. 打开要复制的文件系统：

   1. 在左侧导航窗格中，选择**文件系统**。

   1. 在**文件系统**列表中，选择要复制的 Amazon EFS 文件系统。选择的文件系统不能是现有复制配置中的源文件系统或目标文件系统。

1. 选择**复制**选项卡。

1. 在**复制**部分，选择**创建复制**。

1. 对于**复制配置**，请选择现有文件系统。

1. 选择目标文件系统。
   + 要复制到与源文件系统 AWS 账户 相同的文件系统，请执行以下操作：

     1. 选择 “**选择此帐户中的文件系统**”，然后在 “**目标**” 中 AWS 区域，选择 AWS 区域 要将文件系统复制到哪个。

     1. 选择**浏览 EFS**，然后选择文件系统。目标文件系统的路径显示在**目标**框中。
   + 要复制到与源文件系统 AWS 账户 不同的文件系统，请执行以下操作：

     1. 选择**在另一个账户中指定文件系统**。

     1. 对于**目标文件系统 ARN**，输入目标文件系统的 Amazon 资源名称（ARN）。
**注意**  
如果文件系统上启用了复制覆盖保护功能，则会显示一条警告。选择**禁用保护**，在新选项卡中打开文件系统并关闭其**复制覆盖保护**功能。禁用保护功能后，请返回**创建复制**选项卡，并单击**刷新**按钮以清除消息。

1. 对于 **IAM 角色**，请输入支持 Amazon EFS 复制到目标文件系统的 IAM 角色的 ARN。对于同账户复制，此为可选项；但对于跨账户复制，此为必填项。有关更多信息，请参阅 [跨 AWS 账户复制 EFS 文件系统](cross-account-replication.md)。

1. 选择**创建复制**，在确认消息输入框中键入 **confirm**，然后选择**创建复制**。**复制**部分将显示复制详细信息。

### 创建复制配置（AWS CLI）
<a name="create-replication-cli"></a>

本节提供了在 AWS CLI 中使用 `create-replication-configuration` 命令创建复制配置的示例。等效的 API 命令是 [CreateReplicationConfiguration](API_CreateReplicationConfiguration.md)。

**Example 为另一区域中的现有目标文件系统创建复制配置**  
以下示例创建了一个复制配置，其中文件系统 ID `fs-0123456789abcdef1` 被复制到**fs-0a8b2be428114d97c**中的文件系统 ID `eu-west-2` AWS 区域。  

```
aws efs create-replication-configuration \
--source-file-system-id fs-0123456789abcdef1 \
--destinations "[{\"Region\":\"eu-west-2\",\"FileSystemId\":\"fs-0a8b2be428114d97c\"}]"
```
 AWS CLI 答案如下：  

```
{
    "SourceFileSystemId": "fs-0123456789abcdef1",
    "SourceFileSystemRegion": "us-east-1",
    "SourceFileSystemArn": "arn:aws:elasticfilesystem:us-east-1:111122223333:file-system/fs-0123456789abcdef1",
    "OriginalSourceFileSystemArn": "arn:aws:elasticfilesystem:us-east-1:111122223333:file-system/fs-0123456789abcdef1",
    "CreationTime": "2024-10-20T20:40:13+00:00",
    "Destinations": [
        {
            "Status": "ENABLING",
            "FileSystemId": "fs-0a8b2be428114d97c",
            "Region": "eu-west-2",
            "OwnerId": "123456789012,
         }
    ],
    "SourceFileSystemOwnerId": "123456789012"
}
```

**Example 创建跨账户复制配置**  
以下示例创建了一个复制配置，其中源文件系统和目标文件系统位于不同的位置 AWS 账户。账户*`fs-0123456789abcdef1`*中的源文件系统 ID 将复制到账户*555666777888**`fs-0a8b2be428114d97c`*中的文件系统 ID *123456789012*。此示例指定了目标文件系统的 Amazon 资源名称（ARN）和源账户中支持 Amazon EFS 代表其执行复制的 IAM 角色的 ARN。由于未指定 KMS 密钥，因此使用账户的默认 AWS KMS 服务密钥 (`aws/elasticfilesystem`) 对目标文件系统进行加密。  

```
aws efs
--region $REGION 
--endpoint $ENDPOINT create-replication-configuration 
--source-file-system-id fs-0123456789abcdef1 
--destinations Region=eu-west-2,FileSystemId=arn:aws:elasticfilesystem:eu-west-2:123456789012:file-system/fs-0a8b2be428114d97c,RoleArn=arn:aws:iam::555666777888:role/cross-account-replication
```
 AWS CLI 答案如下：  

```
{
    "SourceFileSystemId": "fs-0123456789abcdef1",
    "SourceFileSystemRegion": "us-east-1",
    "SourceFileSystemArn": "arn:aws:elasticfilesystem:us-east-1:555666777888:file-system/fs-0123456789abcdef1",
    "OriginalSourceFileSystemArn": "arn:aws:elasticfilesystem:us-east-1:555666777888:file-system/fs-0123456789abcdef1",
    "CreationTime": "2024-10-20T20:40:13+00:00",
    "Destinations": [
        {
            "Status": "ENABLING",
            "FileSystemId": "fs-0a8b2be428114d97c",
            "Region": "eu-west-2",
            "OwnerId": "123456789012,
            "RoleArn": "arn:aws:iam::555666777888:role/cross-account-replication"
        }
    ],
    "SourceFileSystemOwnerId": "555666777888"
}
```

# 跨 AWS 账户复制 EFS 文件系统
<a name="cross-account-replication"></a>

您可以跨 AWS 账户复制 EFS 文件系统。跨账户复制可增强灾难恢复（DR）策略的整体弹性和可靠性，并且可以帮助您满足公司的合规要求。

例如，合规策略可能要求您在不同的环境 [例如生产、暂存和灾难恢复（DR）] 中使用不同的账户。或者，您可能会发现，跨不同的复制可以 AWS 账户 提供更强的隔离、对权限和访问策略的更精细的控制，以及更直接的资源审计。如果生产账户遭到入侵（例如出现安全漏洞、配置错误或内部威胁），则将灾难恢复服务器放在单独的账户中可以防止攻击者访问它们，缩小安全事件的爆炸半径，并大幅降低发生未经授权更改的风险。

跨复制 AWS 账户 需要额外的安全设置和策略设置。您必须创建使 Amazon EFS 有权在目标账户中执行复制操作的 IAM 角色，而不是使用服务相关角色来执行跨账户复制。您还需要在要跨账户共享的文件系统上创建策略。创建 IAM 角色和文件系统策略后，可以创建复制配置。

**Topics**
+ [创建具有自定义信任策略的 IAM 角色](#replication-create-iam-role)
+ [在源文件系统和目标文件系统上创建策略](#replication-assign-fs-policies)
+ [创建复制配置](#xar-create-replication-configuration)

## 创建具有自定义信任策略的 IAM 角色
<a name="replication-create-iam-role"></a>

为了让 Amazon EFS 能够代表源账户执行跨账户复制，必须在源账户上创建 IAM 角色。该角色必须拥有 `elasticfilesystem.amazonaws.com` 信任策略，以支持 Amazon EFS 代入该角色并充当服务主体。该角色必须包含执行复制所需的全部 IAM 权限（请参阅[所需的 IAM 权限](efs-replication.md#efs-replication-permissions)），并授予向目标账户中文件系统进行复制的显式权限。

### 先决条件
<a name="replication-iam-role-prereqs"></a>

您必须在复制配置中同时创建源文件系统和目标文件系统，然后才能为源账户创建 IAM 角色。在复制过程中，Amazon EFS 无法为您创建目标文件系统。此外，您还必须知道并提供每个文件系统的 Amazon 资源名称（ARN）。

**创建 IAM 角色来进行跨账户复制**

以下是使用自定义信任策略创建用于执行 Amazon EFS 跨账户复制的 IAM 角色的一般步骤。有关创建 IAM 角色的 step-by-step说明，请参阅*AWS Identity and Access Management 用户指南*中的[使用自定义信任策略创建角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-custom.html)。

1. 在源账户的 AWS Identity and Access Management 控制台中，创建使用以下信任策略的 IAM 角色。相关说明，请参阅《AWS Identity and Access Management 用户指南》**中的[使用自定义信任策略创建角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-custom.html)。

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

****  

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

------

1. 创建该角色后，为该角色分配以下权限。将 `arn:aws:elasticfilesystem:us-east-1:111122223333:file-system/fs-0123456789abcdef1` 替换为目标文件系统的 ARN，并将 `arn:aws:elasticfilesystem:us-east-1:444455556666:file-system/fs-5678910112hijkqr1` 替换为源文件系统的 ARN。有关为角色分配权限的说明，请参阅[使用 JSON 编辑器创建策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html#access_policies_create-json-editor)。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action":[
                   "elasticfilesystem:DescribeFileSystems",
                   "elasticfilesystem:CreateReplicationConfiguration",
                   "elasticfilesystem:DescribeReplicationConfigurations",
                   "elasticfilesystem:DeleteReplicationConfiguration",
                   "elasticfilesystem:ReplicationWrite"
               ],
               "Resource": "arn:aws:elasticfilesystem:us-east-1:111122223333:file-system/fs-0123456789abcdef1"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "elasticfilesystem:ReplicationRead",
                   "elasticfilesystem:DescribeFileSystems"
               ],
               "Resource": "arn:aws:elasticfilesystem:us-east-1:444455556666:file-system/fs-5678910112hijkqr1"
           }
       ]
   }
   ```

------

1. 复制或输入 IAM 角色的 ARN。创建复制配置时，您需要提供此 ARN。

## 在源文件系统和目标文件系统上创建策略
<a name="replication-assign-fs-policies"></a>

要在 Amazon EFS 中跨账户共享文件系统，必须为目标文件系统和源文件系统分配策略。这些策略授予或限制跨账户访问其应用到的文件系统。只有有权编辑文件系统的账户所有者才能为其账户中的文件系统分配策略。

除了授予或限制跨账户访问权限外，这些策略还需要授予客户端使用文件系统所需的其他权限，例如 `elasticfilesystem:ClientMount`。否则，客户端可能无法访问文件系统。

**重要**  
您无法限制通过 TLS 连接进行的资源访问。如果您在语句中包含 `"aws:SecureTransport": "false"` 条件，NFS 客户端连接将失败。

### 用于目标文件系统的策略
<a name="replication-assign-policy-destination"></a>

要授予源账户向目标文件系统执行复制操作的权限，以及从目标账户删除复制配置的权限，必须在目标文件系统上创建以下策略。将 `arn:aws:iam::444455556666:root` 替换为拥有源文件系统的账户的 ID。将 `arn:aws:elasticfilesystem:us-east-1:111122223333:file-system/fs-0123456789abcdef1` 替换为目标文件系统的 ARN 

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

****  

```
{ 
  "Version":"2012-10-17",		 	 	  
  "Statement": [ 
     { 
        "Sid": "AllowSourceAccountReplicationActions", 
        "Effect": "Allow",
        "Principal": { 
        "AWS": "arn:aws:iam::444455556666:root"
      }, 
    "Action": [ 
         "elasticfilesystem:DescribeFileSystems", 
         "elasticfilesystem:CreateReplicationConfiguration", 
         "elasticfilesystem:DescribeReplicationConfigurations",
         "elasticfilesystem:DeleteReplicationConfiguration", 
         "elasticfilesystem:ReplicationWrite" 
         ], 
     "Resource": "arn:aws:elasticfilesystem:us-east-1:111122223333:file-system/fs-0123456789abcdef1"
     },
     {
        "Sid": "AllowReadOnlyClientAccess",
        "Effect": "Allow",
        "Principal": {
            "AWS": "arn:aws:iam::111122223333:role/EfsReadOnly"
        },
        "Action": [
            "elasticfilesystem:ClientMount"
        ],
        "Resource": "arn:aws:elasticfilesystem:us-east-1:111122223333:file-system/fs-0123456789abcdef1"            
     }
   ]
}
```

------

### 用于源文件系统的策略
<a name="replication-assign-policy-source"></a>

要授予目标账户从源账户中删除复制配置的权限，必须将以下策略分配给源文件系统。将 `arn:aws:iam::111122223333:root` 替换为拥有目标文件系统的账户的 ID。将 ` arn:aws:elasticfilesystem:us-east-1:444455556666:file-system/fs-5678910112hijkqr1` 替换为源文件系统的 ARN。

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

****  

```
{  
    "Version":"2012-10-17",		 	 	 
    "Id": "efs-policy-wizard-15ad9567-2546-4bbb-8168-5541b6fc0e55",
    "Statement": [
        {
            "Sid": "AllowDestinationAccountToDeleteReplication",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:root"
            },
            "Action": "elasticfilesystem:DeleteReplicationConfiguration",
            "Resource": "arn:aws:elasticfilesystem:us-east-1:444455556666:file-system/fs-5678910112hijkqr1"
        },
        {
            "Sid": "AllowClientAccess",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/EfsReadOnly"
            },
            "Action": [
                "elasticfilesystem:ClientMount",
                "elasticfilesystem:ClientWrite",
                "elasticfilesystem:ClientRootAccess"
            ],
            "Resource": "arn:aws:elasticfilesystem:us-east-1:444455556666:file-system/fs-5678910112hijkqr1",
            "Condition": {
               "Bool": {
                   "elasticfilesystem:AccessedViaMountTarget": "true"
               }
           }            
        }
    ]
}
```

------

**创建文件系统策略**

使用上一节中创建的策略，对目标文件系统和源文件系统执行以下步骤。

1.  AWS 管理控制台 使用拥有文件系统的账户登录，然后在 Amazon EFS 控制台上打开 Amaz [on EFS 控制台](https://console.aws.amazon.com/efs/)。

1. 打开文件系统：

   1. 在左侧导航窗格中，选择**文件系统**。

   1. 在**文件系统**列表中，选择所需文件系统。

1. 在**文件系统策略** 选项卡中，选择**编辑**。

1. 将策略粘贴到**策略编辑器 \$1Json\$1** 中，然后选择**保存**。

## 创建复制配置
<a name="xar-create-replication-configuration"></a>

创建 IAM 角色并将文件系统策略添加到源文件系统和目标文件系统后，请按照[配置到现有 EFS 文件系统的复制](replicate-existing-destination.md)中的说明创建复制配置。

# 查看复制详细信息
<a name="monitoring-replication-status"></a>

可以监控复制配置中上次成功完成同步的时间。在此时间之前对源文件系统上的数据所做的任何更改都已成功复制到目标文件系统。在此时间之后发生的任何更改都可能无法完全复制。要监控上次复制的成功完成时间，您可以使用 Amazon EFS 控制台 AWS CLI、API 或亚马逊 CloudWatch。
+ **在 EFS 控制台中** – **文件系统详细信息** > **复制**部分中的**上次同步**属性显示源和目标之间上次成功同步完成的时间。
+ **在 AWS CLI 或 API** 中 — `Destination` 对象中的`LastReplicatedTimestamp`属性显示上次成功完成同步的时间。要访问此属性，请使用 `describe-replication-configurations` CLI 命令。[DescribeReplicationConfigurations](API_DescribeReplicationConfigurations.md) 是等效的 API 操作。
+ **在 CloudWatch** — Amazon EFS 的`TimeSinceLastSync` CloudWatch指标显示自上次成功完成同步以来经过的时间。有关更多信息，请参阅 [CloudWatch 亚马逊 EFS 的指标](efs-metrics.md)。

复制配置可以具有下表中所述的状态值。


| 复制状态  | 说明 | 
| --- | --- | 
|  `ENABLED`  |  复制配置处于正常状态，可供使用。  | 
|  `ENABLING`  |  Amazon EFS 正在创建复制配置。  | 
|  `DELETING`  |  Amazon EFS 正在删除复制配置，以响应用户发起的删除请求。  | 
|  `PAUSING`  | Amazon EFS 正在暂停复制。 | 
|  `PAUSED`  | 由于配置问题，复制已暂停。提供了有关问题的其他信息。导致复制暂停的一些问题包括：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/efs/latest/ug/monitoring-replication-status.html) | 
|  `ERROR`  |  复制配置处于故障状态且无法恢复。必须删除现有的复制配置，然后创建一个新的复制配置。 提供了有关问题的其他信息。对于跨账户或跨区域复制，错误可能是因为复制配置已从另一个 AWS 账户 或中删除。 AWS 区域  | 

## 使用控制台
<a name="view-replications-console"></a>

1. 打开 Amazon Elastic File System 控制台，网址为[https://console.aws.amazon.com/efs/](https://console.aws.amazon.com/efs/)。

1. 在左侧导航窗格中，选择**文件系统**。

1. 从列表中选择文件系统。

1. 选择**复制**选项卡以显示**复制**部分。

   在**复制**部分中，可以看到以下复制配置信息：
   + **复制状态**可能为**正在启用**、**已启用**、**正在删除**、**正在暂停**、**已暂停**或**错误**。Amazon EFS 会显示有关**已暂停**或**错误**状态的详细原因。
   + **复制方向**显示复制数据的方向。列出的第一个文件系统是源文件系统，正在将其数据复制*到*列出的第二个文件系统，即目标文件系统。
   + **上次同步**显示目标文件系统上次成功同步的时间。在此时间之前对源文件系统上的数据所做的任何更改都已成功复制到目标文件系统。在此时间之后发生的任何更改都可能无法完全复制。
   + **复制文件系统**按其文件系统 ID、其在复制配置中的角色（源或目标）、所在位置及其**权限**列出复制配置 AWS 区域 中的每个文件系统。源文件系统具有**可写**权限，目标文件系统具有**只读**权限。

## 使用 AWS CLI
<a name="view-replications-cli"></a>

要查看复制配置，请使用 `describe-replication-configurations` 命令。您可以查看特定文件系统的复制配置，也可以查看 AWS 账户 中特定文件系统的所有复制配置 AWS 区域。等效的 API 命令是 [DescribeReplicationConfigurations](API_DescribeReplicationConfigurations.md)。

如果复制配置的状态为 `PAUSED` 或 `ERROR`，则 `StatusMessage` 参数将返回有关问题原因以及如何修复问题的信息。

**Example ：查看特定文件系统的复制配置**  
以下示例描述了文件系统 `fs-0123456789abcdef1` 的复制配置。  

```
aws efs describe-replication-configurations --file-system-id fs-0123456789abcdef1
```
 AWS CLI 答案如下。  

```
{
    "Replications": [
        {
            "SourceFileSystemArn": "arn:aws:elasticfilesystem:eu-west-1:111122223333:file-system/fs-abcdef0123456789a", 
            "CreationTime": 1641491892.0,
            "SourceFileSystemRegion": "eu-west-1", 
            "OriginalSourceFileSystemArn": "arn:aws:elasticfilesystem:eu-west-1:111122223333:file-system/fs-abcdef0123456789a", 
            "SourceFileSystemId": "fs-abcdef0123456789a", 
            "Destinations": [
                {
                    "Status": "ENABLED", 
                    "FileSystemId": "fs-0123456789abcdef1", 
                    "Region": "us-east-1"
                }
            ]
        }
    ]
}
```

**Example ：查看某个账户中的所有复制配置**  
以下示例描述了文件系统中账户的所有复制配置 AWS 区域 的复制配置。  

```
        aws efs describe-replication-configurations
```
 AWS CLI 答案如下。  

```
     {
    "Replications": [
        {
            "SourceFileSystemArn": "arn:aws:elasticfilesystem:eu-west-1:555555555555:file-system/fs-0123456789abcdef1", 
            "CreationTime": 1641491892.0, 
            "SourceFileSystemRegion": "eu-west-1", 
            "OriginalSourceFileSystemArn": "arn:aws:elasticfilesystem:eu-west-1:555555555555:file-system/fs-0123456789abcdef1", 
            "SourceFileSystemId": "fs-0123456789abcdef1", 
            "Destinations": [
                {
                    "Status": "ENABLED", 
                    "FileSystemId": "fs-abcdef0123456789a", 
                    "Region": "us-east-1",
                    "LastReplicatedTimestamp": 1641491802.375
                }
            ]
        }, 
        {
            "SourceFileSystemArn": "arn:aws:elasticfilesystem:eu-west-1:555555555555:file-system/fs-021345abcdef6789a", 
            "CreationTime": 1641491822.0, 
            "SourceFileSystemRegion": "eu-west-1", 
            "OriginalSourceFileSystemArn": "arn:aws:elasticfilesystem:eu-west-1:555555555555:file-system/fs-021345abcdef6789a", 
            "SourceFileSystemId": "fs-021345abcdef6789a", 
            "Destinations": [
                {
                    "Status": "ENABLED", 
                    "FileSystemId": "fs-012abc3456789def1", 
                    "Region": "us-east-1", 
                    "LastReplicatedTimestamp": 1641491823.575
                }
            ]
        }
    ]
}
```

# 删除复制配置
<a name="delete-replications"></a>

如果需要故障转移到目标文件系统，请删除其所属的复制配置。删除复制配置后，目标文件系统变为可写状态，其复制覆盖保护功能将重新启用。有关更多信息，请参阅 [使用副本](replication-fail-over.md)。

删除复制配置并将目标文件系统更改为可写，可能需要几分钟才能完成。删除配置后，Amazon EFS 可能会使用以下命名约定将一些数据写入目标文件系统根目录中的 `lost+found` 目录中：

```
efs-replication-lost+found-source-file-system-id-TIMESTAMP
```

**注意**  
无法删除属于复制配置的文件系统。在删除文件系统之前，必须先删除复制配置。

您可以使用 Amazon EFS 控制台、或 API 从源文件系统或目标文件系统中 AWS CLI删除现有复制配置。

对于跨账户或跨区域复制，Amazon EFS 会从源账户和目标账户或者源区域和目标区域中删除复制配置。如果存在配置或权限问题，导致 Amazon EFS 无法同时从两端删除复制配置，则只能从本地端（执行删除操作的账户或区域）删除配置。删除本地配置会使其他账户或区域中的配置无法恢复。

## 使用控制台
<a name="delete-replications-console"></a>

1. 打开 Amazon Elastic File System 控制台，网址为[https://console.aws.amazon.com/efs/](https://console.aws.amazon.com/efs/)。

1. 在左侧导航窗格中，选择**文件系统**。

1. 选择复制配置中要删除的源文件系统或目标文件系统。

1. 选择**复制**选项卡以显示**复制**部分。

1. 选择**删除复制**以删除复制配置。提示时，确认选择。

   如果您要删除跨账户复制配置，并且存在无法同时从源端和目标端删除配置的问题，则可以选择仅删除此文件系统的配置。
**注意**  
仅当 Amazon EFS 无法同时删除源账户和目标账户或者源区域和目标区域中的复制配置时，才删除文件系统的配置。删除本地配置会使其他账户或区域中的配置无法恢复。

## 使用 AWS CLI
<a name="delete-replications-cli"></a>

要删除复制配置，请使用 `delete-replication-configuration` CLI。等效的 API 命令是 [DeleteReplicationConfiguration](API_DeleteReplicationConfiguration.md)。

以下示例删除了源文件系统 `fs-0123456789abcdef1` 的复制配置。

```
aws efs --region us-west-2 delete-replication-configuration \
--source-file-system-id fs-0123456789abcdef1
```

如果存在配置或权限问题，导致 Amazon EFS 无法同时从两端删除复制配置，则只能从本地端（执行删除操作的账户或区域）删除配置。删除本地配置会使其他账户或区域中的配置无法恢复。等效的 API 参数为 `DeletionMode`，值为 `LOCAL_CONFIGURATION_ONLY`。

以下示例仅*fs-0123456789abcdef1*从本地删除源文件系统的复制配置。

```
aws efs --region us-west-2 delete-replication-configuration \
--source-file-system-id fs-0123456789abcdef1
--deletion-mode LOCAL_CONFIGURATION_ONLY
```

# 使用副本
<a name="replication-fail-over"></a>

在发生灾难或进行游戏日练习时，您可以通过删除副本文件系统的复制配置来失效转移至副本文件系统。删除复制配置后，副本将变为可写状态，您可以开始在应用程序工作流程中使用它。灾难缓解或游戏日练习结束后，您可以继续使用副本作为主文件系统，也可以执行失效自动恢复以恢复对原始主文件系统的操作。

在失效自动恢复过程中，您可以选择放弃对副本文件系统所做的更改，也可以通过将其复制回主文件系统来保留这些更改。
+ 要丢弃在失效转移期间对副本所做的更改，请在主文件系统上重新创建原始复制配置，其中副本文件系统是复制目标。在复制过程中，Amazon EFS 通过更新副本文件系统的数据以与主文件系统的数据相匹配，从而同步文件系统。
+ 要复制在失效转移期间对副本所做的更改，请在副本文件系统上创建复制配置，其中主文件系统是复制目标。在复制过程中，Amazon EFS 会识别副本文件系统的差异并将其传输回主文件系统。复制完成后，您可以通过重新创建原始复制配置或创建新配置来继续复制主文件系统。

Amazon EFS 完成复制过程所需的时间量各不相同，具体取决于文件系统的大小和其中的文件数量等因素。有关更多信息，请参阅 [复制性能](efs-replication.md#efs-replication-performance)。