当需要多台ECS实例并发读写访问同一块云盘,实现高效数据共享、快速故障转移时,您可以通过多重挂载功能将单个ESSD云盘或ESSD AutoPL云盘挂载至同一可用区内支持NVMe协议的多台ECS实例。本文介绍如何通过多重挂载功能将单块云盘挂载至多台ECS实例。
应用场景
云盘多重挂载主要有以下应用场景:
数据共享
NVMe最简单的应用场景为数据共享,当数据被写入云盘后,其他节点均可以访问该数据,从而有效节省成本并提升读写性能。例如,在云上容器镜像场景,同一套系统的镜像通常相似,因此多个不同实例可以读取加载同一份镜像。
高可用故障转移
业务高可用是共享盘最常见的应用场景之一。传统基于SAN的数据库,例如Oracle RAC、SAP HANA以及云原生高可用数据库等场景中,实际业务使用过程中可能存在单点故障,确保故障情况下业务连续性是高可用系统的核心能力,在云上存储和网络具备极高的可用性。而计算节点则经常受断电、宕机、硬件故障等影响,所以业务通常搭建主备模式解决计算的高可用问题。
例如数据库场景,当主库故障时迅速切换到备库对外提供服务,实例切换后,可以通过NVMe PR命令释放旧实例的写入权限,从而确保旧实例不再写入数据确保数据一致性。如图所示,故障转移流程说明如下:
说明 PR(PersistentReservation)属于NVMe协议的一部分,PR可精确地控制某个云盘的读写权限,从而确保计算端按照预期写入数据。更多信息,请参见NVMe PR协议。
数据库主实例1故障,导致业务停止。
下发NVMe PR命令,禁止数据库实例1继续写入数据,允许数据库实例2写入数据。
数据库实例2通过日志回放等方式恢复到和数据库实例1一致的状态。
切换数据库实例2为主实例,继续对外提供服务。
分布式缓存加速
开启多重挂载功能的云盘具备较高的IOPS和吞吐性能,可以为其他中低速的存储系统提供性能加速能力。例如数据湖场景,数据湖通常基于OSS搭建,可同时被多个客户端访问,同时具备较高的顺序读吞吐和追加写吞吐能力,但是其顺序读写吞吐和延迟较差,其随机读写性能较差。通过在计算节点上挂载高速云盘作为缓存,可以极大地提升数据湖等场景的访问性能。
机器学习
在分布式机器学习训练中,将样本标注写入后,会将数据集分割成小块分发到多个计算节点上并行处理。云盘多重挂载使得每个计算节点都能直接访问共享的存储资源,无需通过网络频繁传输数据,减少了数据传输的延迟,从而加速了模型训练过程。云盘的高性能与多重挂载功能相结合,为机器学习场景提供了一个高效、灵活的存储解决方案,特别是针对需要高速数据访问和处理的大规模模型训练任务,能够显著提升整个机器学习流程的效率和效果。
使用限制
使用多重挂载功能存在如下限制条件:
资源 | 限制说明 |
云盘 | 仅支持在单独创建云盘时开启多重挂载功能,不支持对存量云盘开启或关闭多重挂载功能。 仅数据盘支持开启多重挂载,系统盘不支持开启多重挂载。 仅支持按量付费的ESSD云盘和ESSD AutoPL云盘。 当您将单块云盘同时挂载到多台ECS实例时,所有ECS实例的性能总和不能超过该云盘的性能上限。 开启多重挂载功能的云盘还不支持以下操作: 随实例释放 云盘扩容(仅支持离线扩容) 控制台分区
说明 您只能登录实例内部分区格式化并挂载文件系统。具体操作,请参见初始化数据盘。 转换云盘计费方式 重新初始化云盘 变更云盘类型 修改ESSD云盘性能级别 快照一致性组
|
地域及可用区 | 与对应支持的实例规格族的售卖地域及可用区相同。 |
ECS实例 | |
镜像 | 镜像需要包含NVMe驱动。 |
操作步骤
步骤1:创建云盘时开启多重挂载功能
登录ECS管理控制台。
在左侧导航栏,选择。
在云盘页签中,单击创建云盘。
在创建云盘页面中,配置云盘参数。
说明 本步骤仅描述创建云盘时如何为云盘开启多重挂载功能,更多参数说明,请参见创建云盘。
参数 | 说明 |
是否挂载 | 选择暂不挂载,只创建云盘,不挂载到ECS实例。 |
地域及可用区 | 选择支持多重挂载功能的地域和可用区。 |
云盘付费方式 | 选择按量付费。 |
存储 | 设置云盘存储信息并开启多重挂载功能。 |
创建成功后,在云盘列表页面查看新建云盘的多重挂载列已标识为支持。
步骤2:将开启多重挂载功能的云盘挂载至多台ECS实例
在左侧导航栏,选择。
在实例列表中获取支持NVMe协议的ECS实例ID。
在左侧导航栏,选择。
找到目标云盘,在操作列中单击挂载。
在挂载云盘对话框中,设置挂载云盘相关参数。
说明 本步骤仅描述如何将开启多重挂载功能的云盘挂载至多台ECS实例,更多参数说明,请参见挂载数据盘。
登录ECS实例对云盘分区格式化并挂载文件系统。
具体操作,请参见初始化数据盘。
重要 开启多重挂载功能的云盘并挂载至多台ECS实例后,如果使用ext3、ext4、xfs、ntfs等单节点文件系统,多实例间数据无法同步,会导致数据不一致等问题,建议您自行创建适用于业务的集群文件系统。集群文件系统能确保写入的数据、创建的文件、修改的元数据能够实时同步到所有挂载节点,从而在文件系统层保证数据的一致性,常用的集群文件系统包括OCFS2、GFS2、Veritas CFS、Oracle ACFS和DBFS等。具体操作,请参见基于NVMe共享盘部署集群文件系统。
(可选)根据需要重复步骤2~步骤5,将云盘挂载至其他多台支持NVMe协议的ECS实例。
成功挂载后,您可以在云盘页面,查看云盘的状态变更为使用中。此时您可以将鼠标悬浮至挂载实例列的实例ID或实例名称处,查看云盘在一台或多台ECS实例的挂载信息。