使用 Amazon EBS 多重挂载将卷挂载到多个实例
通过 Amazon EBS 多重挂载,您可以将单个预置 IOPS SSD(io1
或 io2
)卷挂载到位于同一可用区中的多个实例。您可以将多个启用多重挂载的卷附加到一个实例或一组实例。卷附加到的每个实例都对共享卷拥有完全读取和写入权限。通过多重挂载,您可以更轻松地在管理并发写入操作的应用程序中实现更高的应用程序可用性。
注意事项和限制
-
启用多重挂载的卷最多可以连接到位于同一可用区内的基于 Nitro 系统构建的 16 个 Linux 实例。
-
您可以挂载到实例的最大 Amazon EBS 卷数取决于实例类型和实例规模。有关更多信息,请参阅实例卷限制。
-
仅在预置的 IOPS SSD (io1 和 io2) 卷上才支持多重挂载。
-
io1
卷的多重挂载仅在以下区域可用:美国东部(弗吉尼亚州北部)、美国西部(俄勒冈州)和亚太地区(首尔)。适用于
io2
和io2
Block Express 卷的多重挂载功能已在所有支持这些卷类型的区域开放。注意
为了以更低的成本获得更好的性能、一致性和耐用性,我们建议您使用
io2
卷。 -
您无法同时将某个启用多重挂载的
io2
卷挂载到支持 Block Express 的实例类型和不支持 Block Express 的实例类型。有关更多信息,请参阅io2 Block Express 卷。 -
支持 io2 Block Express 的实例类型不支持启用了多重附加的
io1
卷。要将多重附加与这些实例类型结合使用,必须使用 io2 卷。 -
标准文件系统(例如 XFS 和 EXT4)不能被多个服务器(例如 EC2 实例)同时访问。您应使用集群文件系统来确保生产工作负载的数据恢复能力和可靠性。
-
启用多重挂载的
io2
卷支持 I/O 隔离栏。I/O 隔离栏协议控制共享存储环境中的写入访问,以保持数据一致性。您的应用程序必须为附加的实例提供写入顺序,以保持数据一致性。有关更多信息,请参阅NVMe 预留。启用多重挂载的
io1
卷不支持 I/O 隔离栏。 -
无法将启用多重挂载的卷创建为引导卷。
-
可以将启用多重挂载的卷附加到每个实例的一个块储存设备映射。
-
无法在实例启动过程中使用 Amazon EC2 控制台或 RunInstances API 启用多重挂载。
-
在 Amazon EBS 基础结构层存在问题的启用多重挂载的卷对于所有附加的实例都不可用。Amazon EC2 或网络层的问题可能仅影响某些挂载的实例。
-
下表显示了创建后对启用多重挂载的
io1
和io2
卷的卷修改支持。io2
卷io1
卷修改卷类型 ✗ ✗ 修改卷大小 ✓ ✗ 修改预置 IOPS ✓ ✗ 启用多重挂载 ✓ * ✗ 禁用多重挂载 ✓ * ✗ *当卷挂载到实例时,您无法启用或禁用多重挂载。
性能
每个附加的实例都能够将其最大 IOPS 性能提升到卷的最大预置性能。但是,所有附加的实例的总体性能不能超过卷的最大预置性能。如果附加实例的 IOPS 需求高于卷的预置 IOPS,则卷不会超过其预置性能。
例如,假设您使用 io2
预置 IOPS 创建 80,000
启用了多重挂载的卷,然后将其挂载到最高支持 40,000
IOPS 的 m7g.large
实例和最高支持 60,000
IOPS 的 r7g.12xlarge
实例。每个实例都可以提升其最大 IOPS,因为它小于卷的预置 IOPS 80,000
。但是,如果两个实例同时提升对卷的 I/O,则其组合 IOPS 不能超过卷的预置性能 80,000
IOPS。
为了实现一致的性能,最佳做法是在启用多重挂载的卷的扇区间平衡由附加实例提升的 I/O。
使用多重挂载
启用了多重挂载的卷的管理方式与管理任何其他 Amazon EBS 卷的方式大致相同。但是,为了使用多重挂载功能,您必须为卷启用它。当您创建新卷时,默认情况下,多重挂载处于禁用状态。
启用多重挂载
您可以在创建期间启用多重挂载功能。使用以下方法之一。
您还可以在创建 io2
卷之后,仅在这些卷没有挂载到任何实例的情况下,为其启用多重挂载。
注意
在创建之后,您不能为 io1
卷启用多重挂载。
使用以下方法之一为已创建的 io2
卷启用多重挂载功能。
禁用多重挂载
只有当 io2
卷挂载到不超过一个实例时,您才能对其禁用多重挂载。
注意
在创建之后,您不能为 io1
卷禁用多重挂载。
使用以下方法之一为 io2
卷禁用多重挂载。
将卷挂载到实例
您可以将启用多重挂载的卷附加到实例,方式与挂载任何其他 EBS 卷相同。有关更多信息,请参阅将 Amazon EBS 卷挂载到实例。
终止时删除
如果最后一个附加的实例终止,并且该实例配置为在终止时删除卷,则启用多重挂载的卷将在实例终止时被删除。如果卷附加到多个实例,而这些实例在其卷块储存设备映射中具有不同的终止时删除设置,则最后一个附加的实例的块储存设备映射设置决定终止时删除行为。
要确保对终止行为进行可预测删除,为卷挂载到的所有实例启用或禁用“终止时删除”。
默认情况下,当卷挂载到实例时,数据块设备映射的终止时删除设置会设为 false。如果要对启用多重挂载的卷开启终止时删除功能,请修改块储存设备映射。
如果您希望在终止附加的实例时删除卷,请在块储存设备映射中为所有附加的实例启用终止时删除。如果您要在附加的实例终止后保留卷,请在块储存设备映射中为所有附加的实例禁用终止时删除操作。有关更多信息,请参阅在实例终止时保留 Amazon EBS 卷。
您可以在启动时或启动后修改实例的终止时删除设置。如果您在实例启动期间启用或禁用终止时删除功能,则设置仅应用于在启动时附加的卷。如果您在启动后将卷附加到实例,则必须显式设置该卷的终止时删除行为。
您只能使用命令行工具修改实例的终止时删除设置。
修改现有实例的终止时删除设置
使用 modify-instance-attribute 命令并在 DeleteOnTermination
中指定 --block-device-mappings option
属性。
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
和 io2
)卷的标准计费。有关更多信息,请参阅 Amazon EBS 定价