使用 Amazon EBS 多重附加将卷附加到多个实例 - Amazon Elastic Compute Cloud

使用 Amazon EBS 多重附加将卷附加到多个实例

通过 Amazon EBS 多重挂载,您可以将单个预置 IOPS SSD (io1) 卷连接到位于同一可用区中的多达 16 个基于 Nitro 的实例。您可以将多个启用多重挂载的卷附加到一个实例或一组实例。卷附加到的每个实例都对共享卷拥有完全读取和写入权限。通过多重挂载,您可以更轻松地在管理并发写入操作的聚集 Linux 应用程序中实现更高的应用程序可用性。

注意事项和限制

  • 启用多重挂载的卷最多可以连接到位于同一可用区内的基于 Nitro 系统构建的 16 个 Linux 实例。您可以将启用多重挂载的卷挂载到 Windows 实例,但操作系统无法识别在实例之间共享的卷上的数据。

  • 仅在预置 IOPS SSD (io1) 卷上才支持多重挂载。预置 IOPS SSD (io2) 卷不支持它。

  • 仅在 us-east-1us-west-2eu-west-1ap-northeast-2 区域中提供多重挂载。

  • 启用多重挂载的卷不支持 I/O 隔离栏。I/O 隔离栏协议控制共享存储环境中的写入访问,以保持数据一致性。您的应用程序必须为附加的实例提供写入顺序,以保持数据一致性。

  • 无法将启用多重挂载的卷创建为引导卷。

  • 可以将启用多重挂载的卷附加到每个实例的一个块储存设备映射。

  • 您无法在创建卷后启用或禁用多重挂载。

  • 您无法更改启用了多重挂载的卷的卷类型、大小或预置 IOPS。

  • 无法在实例启动过程中使用 Amazon EC2 控制台或 RunInstances API 启用多重挂载。

  • 在 Amazon EBS 基础结构层存在问题的启用多重挂载的卷对于所有附加的实例都不可用。Amazon EC2 或网络层的问题可能仅影响某些附加的实例。

性能

每个附加的实例都能够将其最大 IOPS 性能提升到卷的最大预置性能。但是,所有附加的实例的总体性能不能超过卷的最大预置性能。如果附加实例的 IOPS 需求高于卷的预置 IOPS,则卷不会超过其预置性能。

例如,假设您使用 50,000 预置 IOPS 创建启用了 io1 多重挂载的卷,然后将其附加到 m5.8xlarge 实例和 c5.12xlarge 实例。m5.8xlargec5.12xlarge 实例分别支持最大 40,000 IOPS 和 30,000 IOPS。每个实例都可以提升其最大 IOPS,因为它小于卷的预置 IOPS 50,000。但是,如果两个实例同时提升对卷的 I/O ,则其组合 IOPS 不能超过卷的预置性能 50,000 IOPS。卷不会超过 50,000 IOPS。

为了实现一致的性能,最佳做法是在启用多重挂载的卷的扇区间平衡由附加实例提升的 I/O。

使用多重挂载

启用了多重挂载的卷的管理方式与管理任何其他 Amazon EBS 卷的方式大致相同。但是,为了使用多重挂载功能,您必须为卷启用它。当您创建新卷时,默认情况下,多重挂载处于禁用状态。

启用多重挂载

您只能在创建期间为 Amazon EBS 卷启用多重挂载功能。

使用以下方法之一在创建过程中为 Amazon EBS 卷启用多重挂载功能。

Console

在卷创建过程中启用多重挂载

  1. 打开 Amazon EC2 控制台 https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择 Volumes

  3. 选择 Create Volume

  4. 对于 Volume Type (卷类型),选择 Provisioned IOPS SSD (io1) (预置 IOPS SSD (io1))

  5. 对于 Size (大小)IOPS,选择所需的卷大小和要预置的 IOPS 数。

  6. 对于 Availability Zone (可用区),请选择实例所在的相同可用区。

  7. 对于 Multi-Attach (多重挂载),请选择 Enable (启用)

  8. 选择 Create Volume

Command line

在卷创建过程中启用多重挂载

使用 create-volume 命令并指定 --multi-attach-enabled 参数。

$ aws ec2 create-volume --volume-type io1 --multi-attach-enabled --size 100 --iops 2000 --region us-west-2 --availability-zone us-west-2b

将卷附加到实例

您可以将启用多重挂载的卷附加到实例,方式与挂载任何其他 EBS 卷相同。有关更多信息,请参阅 将 Amazon EBS 卷附加到实例

终止时删除

如果最后一个附加的实例终止,并且该实例配置为在终止时删除卷,则启用多重挂载的卷将在实例终止时被删除。如果卷附加到多个实例,而这些实例在其卷块储存设备映射中具有不同的终止时删除设置,则最后一个附加的实例的块储存设备映射设置决定终止时删除行为。

要确保对终止行为进行可预测删除,为卷挂载到的所有实例启用或禁用“终止时删除”。

默认情况下,当卷附加到实例时,块储存设备映射的终止时删除设置会设为 false。如果要对启用多重挂载的卷开启终止时删除功能,请修改块储存设备映射。

如果您希望在终止附加的实例时删除卷,请在块储存设备映射中为所有附加的实例启用终止时删除。如果您要在附加的实例终止后保留卷,请在块储存设备映射中为所有附加的实例禁用终止时删除操作。有关更多信息,请参阅 在实例终止时保留 Amazon EBS 卷

您可以在启动时或启动后修改实例的终止时删除设置。如果您在实例启动期间启用或禁用终止时删除功能,则设置仅应用于在启动时附加的卷。如果您在启动后将卷附加到实例,则必须显式设置该卷的终止时删除行为。

您只能使用命令行工具修改实例的终止时删除设置。

修改现有实例的终止时删除设置

使用 modify-instance-attribute 命令并在 --block-device-mappings option 中指定 DeleteOnTermination 属性。

aws ec2 modify-instance-attribute --instance-id i-1234567890abcdef0 --block-device-mappings file://mapping.json

mapping.json 中指定以下内容。

[ { "DeviceName": "/dev/sdf", "Ebs": { "DeleteOnTermination": true|false } } ]

监控

您可以使用 Amazon EBS 卷的 CloudWatch 指标监控启用了多重挂载的卷。有关更多信息,请参阅Amazon EBS 的 Amazon CloudWatch 指标

在所有附加的实例之间聚合数据。您无法监控单个附加的实例的指标。

定价和计费

使用 Amazon EBS 多重挂载不会产生额外费用。您需要按照适用于预置 IOPS SSD (io1) 卷的标准计费。有关更多信息,请参阅 Amazon EBS 定价