云硬盘(Elastic Volume Service,EVS)可以为裸金属服务器提供高可靠、高性能、规格丰富并且可弹性扩展的块存储服务,满足不同场景的业务需求,适用于分布式文件系统、开发测试、数据仓库以及高性能计算等场景。
裸金属服务器支持挂载云硬盘,解决了传统物理服务器受限于本地硬盘容量的问题。支持共享云硬盘,由多台服务器并发读写访问,满足您企业核心系统集群部署的需求。
云硬盘(Elastic Volume Service, EVS)可以为 云服务器 提供高可靠、高性能、规格丰富并且可弹性扩展的块存储服务,可满足不同场景的业务需求,适用于分布式文件系统、开发测试、数据仓库以及高性能计算等场景。云服务器包括弹性云服务器和裸金属服务器。
云硬盘简称为磁盘。
图1 云硬盘架构
功能特点
云硬盘为 云服务器 提供规格丰富、安全可靠、可弹性扩展的硬盘资源,具体功能特性如下:
- 规格丰富
EVS提供多种规格的云硬盘,可挂载至 云服务器 用作数据盘和系统盘,您可以根据应用程序及费用预算选择适合业务场景的云硬盘。
- 弹性扩展
您可以创建的单个云硬盘最小容量为10 GB,最大容量为 32 TB,即,10 GB ≤ 云硬盘容量 ≤ 32 TB。若您已有的云硬盘容量不足以满足业务增长对数据存储空间的需求,您可以根据需求进行扩容,最小扩容步长为1GB,单个云硬盘最大可扩容至32 TB。同时支持平滑扩容,无需暂停业务。
扩容云硬盘时还会受容量总配额影响,系统会显示您当前的剩余容量配额,新扩容的容量不能超过剩余容量配额。您可以申请足够的配额满足业务需求。
- 安全可靠
- 系统盘和数据盘均支持数据加密,保护数据安全。
- 云硬盘支持备份、快照等数据备份保护功能,为存储在云硬盘中的数据提供可靠保障,防止应用异常、黑客攻击等情况造成的数据错误。
- 实时监控
配合云监控( Cloud Eye),帮助您随时掌握云硬盘健康状态,了解云硬盘运行状况。
云硬盘、弹性文件服务、对象存储服务的区别
目前可供您选择的有三种数据存储服务,分别是云硬盘,弹性文件服务(Scalable File Service, SFS)以及对象存储服务(Object Storage Service, OBS),这三种数据存储的区别主要如下:
服务名称 | 总体介绍 | 典型应用场景 | 存储容量 |
---|---|---|---|
云硬盘 | 云硬盘可以为云服务器提供高可靠、高性能、规格丰富并且可弹性扩展的块存储服务。 |
| 云硬盘支持按需扩容,最小扩容步长为1GB,单个云硬盘可由10 GB扩展至32 TB。 |
弹性文件服务 | 弹性文件服务可以为您的云服务器提供一个完全托管的共享文件存储,它提供标准文件协议,能够弹性伸缩至PB规模,具备可扩展的性能,为海量数据、高带宽型应用提供有力支持。 |
| 弹性文件服务可随业务动态扩展或缩小,容量最高可达10 PB。 |
对象存储服务 | 对象存储是一种可存储文档、图片、影音视频等非结构化数据的云存储服务。支持多种上云方式,为海量的云端数据提供低成本、高可靠访问存储。 |
| 对象存储服务没有容量限制,存储资源可无限扩展。 |
云硬盘类型
裸金属服务器使用的云硬盘类型有如下几种:
- 普通IO:该类型云硬盘的最大IOPS为2200,适用于大容量、读写速率中等、事务性处理较少的应用场景,例如企业的日常办公应用或者小型测试等。
- 高IO:该类型云硬盘的最大IOPS可达5000,最低读写时延为1ms,适用于主流的高性能、高可靠应用场景,例如企业应用、大型开发测试以及Web服务器日志等。
- 超高IO:该类型云硬盘的最大IOPS可达33000,最低读写时延为1ms,适用于超高IO,超大带宽的读写密集型应用场景,例如高性能计算应用场景,用来部署分布式文件系统,或者I/O密集型应用场景,用来部署各类NoSQL/关系型数据库。
云硬盘性能
云硬盘性能的主要指标有IO读写时延、IOPS和吞吐量。
- IOPS:云硬盘每秒进行读写的操作次数。
- 吞吐量:云硬盘每秒成功传送的数据量,即读取和写入的数据量。
- IO读写时延:云硬盘连续两次进行读写操作所需要的最小时间间隔。
云硬盘性能指标的详细介绍请参见《 云硬盘产品介绍 》。
云硬盘的磁盘模式
裸金属服务器当前仅支持SCSI(小型计算机系统接口,Small Computer System Interface)磁盘模式的云硬盘。
您可以通过管理控制台创建SCSI类型的云硬盘,该类型的云硬盘支持SCSI指令透传,允许裸金属服务器操作系统直接访问底层存储介质。除了简单的SCSI读写命令,SCSI类型的云硬盘还可以支持更高级的SCSI命令。
说明:
裸金属服务器公共镜像的操作系统中已经预安装了使用SCSI类型云硬盘所需的驱动,无需再安装。您也可以参考《裸金属服务器私有镜像制作指南》的“ 安装SDI卡驱动 ”章节了解驱动安装的详细操作。
什么是三副本技术?
云硬盘的存储系统采用三副本机制来保证数据的可靠性,即针对某份数据,默认将数据分为1 MB大小的数据块,每一个数据块被复制为3个副本,然后按照一定的分布式存储算法将这些副本保存在集群中的不同节点上。
云硬盘三副本技术的主要特点如下:
- 存储系统自动确保3个数据副本分布在不同服务器的不同物理磁盘上,单个硬件设备的故障不会影响业务。
- 存储系统确保3个数据副本之间的数据强一致性。
例如,对于服务器A的物理磁盘A上的数据块P1,系统将它的数据备份为服务器B的物理磁盘B上的P1''和服务器C的物理磁盘C上的P1',P1、P1'和P1''共同构成了同一个数据块的三个副本。若P1所在的物理磁盘发生故障,则P1'和P1''可以继续提供存储服务,确保业务不受影响。
图1 数据块存储示意图
三副本技术怎样确保数据一致性?
数据一致性表示当应用成功写入一份数据到存储系统时,存储系统中的3个数据副本必须一致。当应用无论通过哪个副本再次读取这些数据时,该副本上的数据和之前写入的数据都是一致的。
云硬盘三副本技术主要通过以下机制确保数据一致性:
- 写入数据时,同时在3个副本执行写入操作
当应用写入数据时,存储系统会同步对3个副本执行写入数据的操作,并且只有当多个副本的数据都写入完成时,才会向应用返回数据写入成功的响应。
- 读取数据失败时,自动修复损坏的副本
当应用读数据失败时,存储系统会判断错误类型。如果是物理磁盘扇区读取错误,则存储系统会自动从其他节点保存的副本中读取数据,然后在物理磁盘扇区错误的节点上重新写入数据,从而保证数据副本总数不减少以及副本数据一致性。
三副本技术怎样实现数据快速重建?
存储系统的每个物理磁盘上都保存了多个数据块,这些数据块的副本按照一定的策略分散存储在集群中的不同节点上。当存储系检测到硬件(服务器或者物理磁盘)发生故障时,会自动启动数据修复。由于数据块的副本分散存储在不同的节点上,数据修复时,将会在不同的节点上同时启动数据重建,每个节点上只需重建一小部分数据,多个节点并行工作,有效避免了单个节点重建大量数据所产生的性能瓶颈,将对上层业务的影响做到最小化。
数据重建流程如 图2 所示。
图2 数据自动重建流程
数据重建原理如 图3 所示,例如当集群中的服务器F硬件发生故障时,物理磁盘上的数据块会在其他节点的磁盘上并行重建恢复。
图3 数据重建原理
三副本技术和云硬盘备份、快照有啥区别?
三副本技术是云硬盘存储系统为了确保数据高可靠性提供的技术,主要用来应对硬件设备故障导致的数据丢失或不一致的情况。
云硬盘备份、快照不同于三副本技术,主要应对人为误操作、病毒以及黑客攻击等导致数据丢失或不一致的情况。我们建议您在日常操作中,采用云硬盘备份、快照功能,定期备份云硬盘中数据。
更新时间: 2019/05/22 11:59
查看PDF
分享
根据IO性能划分云硬盘的磁盘类型,各种类型的云硬盘具体介绍如下。不同类型云硬盘的性能和价格有所不同,您可根据应用程序要求选择您所需的云硬盘。
云硬盘性能
云硬盘性能的主要指标有IO读写时延、IOPS和吞吐量。
- IOPS:云硬盘每秒进行读写的操作次数。
- 吞吐量:云硬盘每秒成功传送的数据量,即读取和写入的数据量。
- IO读写时延:云硬盘连续两次进行读写操作所需要的最小时间间隔。
不同类型云硬盘的单队列访问时延如下:
- 普通IO:5 ms ~ 10 ms
- 高IO:1 ms ~ 3 ms
- 超高IO:1 ms
参数 | 普通IO | 高IO | 超高IO |
---|---|---|---|
云硬盘最大容量 |
|
|
|
最大IOPS | 2200 | 5000 | 33000 |
最大吞吐量 | 90 MB/s | 150 MB/s | 350 MB/s |
IOPS突发上限 | 2200 | 5000 | 16000 |
云硬盘IOPS性能计算公式 | IOPS = min (2200, 500 +2 × 容量) | IOPS = min (5000, 1200 + 6 × 容量) | IOPS = min (33000, 1500 + 50 × 容量) |
API名称 说明: 此处API名称为云硬盘API接口中“volume_type”参数的取值,不代表底层存储设备的硬件类型。 | SATA | SAS | SSD |
典型应用场景 | 适用于大容量、读写速率中等、事务性处理较少的应用场景,例如企业的日常办公应用或者小型测试等。 如果应用需要更高的IO性能,建议您选择超高IO或高IO云硬盘。 | 适用于主流的高性能、高可靠应用场景,例如大型开发测试、Web服务器日志以及企业应用。典型的企业应用有SAP、Microsoft Exchange 和 Microsoft SharePoint等。 | 适用于超高IO,超大带宽的读写密集型应用场景,例如高性能计算应用场景,用来部署分布式文件系统,或者I/O密集型应用场景,用来部署各类NoSQL/关系型数据库。典型的数据库有MongoDB、Oracle、SQL Server、MySQL 和PostgreSQL等。 |
云硬盘IOPS性能计算公式举例说明
单个云硬盘IOPS性能 =“最大IOPS”与“基线IOPS + 每GB云硬盘的IOPS × 云硬盘容量”的最小值。
以超高IO云硬盘为例,单个超高IO云硬盘的最大IOPS为33000。
- 假如云硬盘容量为100 GB,则该云硬盘IOPS性能 = min (33000, 1500 + 50 × 100 ),取33000与6500中的最小值,即该云硬盘IOPS性能为6500。
- 假如云硬盘容量为1000 GB,则该云硬盘IOPS性能 = min (33000, 1500 + 50 × 1000 ),取33000与51500中的最小值,即该云硬盘IOPS性能为33000。
云硬盘突发能力及原理
突发能力是指小容量云硬盘可以在一定时间内达到IOPS突发上限,超过IOPS上限的能力。此处IOPS上限为单个云硬盘的性能。
突发能力适用于 云服务器 启动场景,一般系统盘容量较小,以50 GB的超高IO云硬盘为例,如果没有突发能力,云硬盘IOPS上限只能达到4000(1500 + 50 × 50),但使用突发能力后,IOPS可高达16000,从而提升云服务器的启动速度。
以超高IO云硬盘为例,单个超高IO云硬盘的IOPS突发上限为16000。
- 容量为100 GB的云硬盘,其IOPS上限为6500,IOPS突发上限为16000,因此在一定时间内该云硬盘的最大IOPS可达到16000。
- 容量为1000 GB的云硬盘,其IOPS上限为33000,但是IOPS突发上限仅为16000,云硬盘的IOPS上限已经超过了突发IOPS,因此该云硬盘无需突发能力。
以下介绍云硬盘突发IOPS的消耗原理和储蓄原理。
突发的实现基于令牌桶,令牌桶中的初始令牌数量 = 突发时间 × IOPS突发上限,此处突发时间固定为1800 s。
以100 GB的超高IO云硬盘为例,令牌桶容量为28800000个令牌(1800 s × 16000 )。
- 令牌的生成速度:该桶以6500个/s的速度生成令牌,其中6500为该云硬盘的IOPS上限。
- 令牌的消耗速度:根据实际IO使用情况而定,每个IO会消耗一个令牌,最大消耗速度为16000个/s,此处取突发IOPS上限和云硬盘IOPS上限的较大值。
消耗原理
当令牌消耗速度大于令牌的生成速度时,令牌数量会逐渐减少,最后IOPS会维持跟桶生成令牌的速度一致,即云硬盘的IOPS上限。本示例中,可以维持突发IOPS的时间为3032 s ≈ 28800000 / (16000 - 6500) 。
储蓄原理
当令牌的消耗速度小于令牌的生成速度时,桶中的令牌会逐渐增加,之后又可以拥有突发能力。本示例中,如果云硬盘暂停使用4431 s ≈ 28800000 / 6500,令牌桶就可以存满。
说明:
桶中的令牌数量只要大于零,云硬盘就具有突发能力。
本示例中令牌的消耗和储蓄原理如 图1 所示。蓝色柱状表示云硬盘IOPS的使用情况,绿色虚线为IOPS上限,红色虚线为IOPS突发上限,黑色曲线表示令牌数量的变化趋势。
- 当令牌数量大于零时,IOPS可以突破6500,即具有达到IOPS突发上限16000的能力。
- 当令牌数为零时,此时不具备突发能力,IOPS最大为6500。
- 当实际IOPS小于6500时,令牌数量开始增加,可以恢复突发能力。
图1 突发能力原理图
性能测试方法
测试云硬盘性能参数的具体测试方法请参见“ 怎样测试云硬盘的性能 ”。
什么是磁盘模式
根据是否支持高级的SCSI命令来划分云硬盘的磁盘模式,分为VBD(虚拟块存储设备 , Virtual Block Device)类型和SCSI (小型计算机系统接口, Small Computer System Interface) 类型。
- VBD类型:云硬盘的磁盘模式默认为VBD类型。VBD类型的云硬盘只支持简单的SCSI读写命令。
- SCSI类型:SCSI类型的云硬盘支持SCSI指令透传,允许 云服务器 操作系统直接访问底层存储介质。除了简单的SCSI读写命令,SCSI类型的云硬盘还可以支持更高级的SCSI命令。
SCSI云硬盘的常见使用场景和建议
- SCSI云硬盘:BMS仅支持使用SCSI云硬盘,用作系统盘和数据盘。
- SCSI共享云硬盘:当您使用共享云硬盘时,需要结合分布式文件系统或者集群软件使用。由于多数常见集群需要使用SCSI锁,例如Windows MSCS集群、Veritas VCS集群和CFS集群,因此建议您结合SCSI使用共享云硬盘。
如果将SCSI共享云硬盘挂载至ECS时,需要结合云服务器组的反亲和性一同使用,SCSI锁才会生效,关于更多共享云硬盘的内容,请参见 共享云硬盘及使用方法 。
使用SCSI类型云硬盘需要安装驱动吗
使用SCSI的云硬盘时,需要为某些 云服务器 操作系统安装驱动,具体如下:
- BMS
BMS的Windows和Linux镜像操作系统中已经预安装了使用SCSI云硬盘所需的驱动,即SDI卡驱动,因此无需再安装。
- KVM ECS
当您使用SCSI云硬盘时,推荐您配合虚拟化类型为KVM的ECS一同使用。因为KVM ECS的Linux操作系统内核中已经包含了驱动,Windows操作系统中也包含了驱动,无需您再额外安装驱动,使用便捷。
说明:
ECS的虚拟化类型分为KVM和XEN,想了解您所使用的ECS虚拟化类型,请参见 规格清单 。
- XEN ECS
由于驱动和操作系统支持的限制,不建议您一同使用SCSI云硬盘与虚拟化类型为XEN的ECS。
然而,当前有一部分Windows和Linux操作系统支持SCSI云硬盘,详情请参见 表1 。
说明:
当XEN ECS的操作系统已满足SCSI云硬盘的要求时,需要根据以下情况判断是否安装SCSI驱动。
表1 SCSI云硬盘支持的操作系统 虚拟机化类型
操作系统
XEN
Windows
请参见“公共镜像”中的Window操作系统。
查看方法:登录管理控制台,选择“镜像服务 > 公共镜像 > ECS 系统盘镜像 > Windows”,即可查看操作系统列表。
Linux
- SUSE Linux Enterprise Server 11 SP4 64bit (内核版本号为3.0.101-68-default or 3.0.101-80-default)
- SUSE Linux Enterprise Server 12 64bit (内核版本号为3.12.51-52.31-default)
- SUSE Linux Enterprise Server 12 SP1 64bit (内核版本号为3.12.67-60.64.24-default)
- SUSE Linux Enterprise Server 12 SP2 64bit (内核版本号为4.4.74-92.35.1-default)
- Windows公共镜像的操作系统中已经预安装Paravirtual SCSI (PVSCSI) 驱动,无需再安装。
- Windows私有镜像的操作系统中未安装PVSCSI驱动,请您自行下载并安装驱动。
具体方法请参见“镜像服务用户指南”中的“优化Windows私有镜像(可选)”小节。
- Linux操作系统中未安装PVSCSI驱动,请在 https://github.com/UVP-Tools/SAP-HANA-Tools 下载源码并编译安装。
更新时间: 2019/06/03 16:47
查看PDF
分享
根据是否支持挂载至多台 云服务器 可以将云硬盘分为非共享云硬盘和共享云硬盘。一个非共享云硬盘只能挂载至一台 云服务器 ,而一个共享云硬盘可以同时挂载至多台 云服务器 。
什么是共享云硬盘
共享云硬盘是一种支持多个 云服务器 并发读写访问的数据块级存储设备,具备多挂载点、高并发性、高性能、高可靠性等特点。
说明:
- 一块共享云硬盘最多可同时挂载至16台 云服务器 ,这些 云服务器 必须与共享云硬盘位于同一个可用区。
- 共享云硬盘同时或者先后挂载的多台 云服务器 只能为Windows或Linux操作系统中的一种。比如:
共享云硬盘首次同时挂载至多台Windows 云服务器 ,则卸载后,也不能挂载至Linux 云服务器 。因为Windows和Linux支持的文件系统不同,无法识别云硬盘原有文件系统,如果操作不当会导致原有文件系统被破坏。
- 共享云硬盘只适用于数据盘,不支持系统盘。
图1 共享云硬盘使用场景
共享云硬盘的应用场景和使用注意事项
共享云硬盘主要应用于需要支持集群、HA(High Available,指高可用集群)能力的关键企业应用场景,需要多个 云服务器 可同时访问一个云硬盘。如果您将共享云硬盘挂载到多个 云服务器 ,首先请根据应用场景选择不同的磁盘模式,包括VBD和SCSI。由于多数常见集群需要使用SCSI锁,例如Windows MSCS集群、Veritas VCS集群和CFS集群,因此建议您结合SCSI模式使用共享云硬盘。使用SCSI云硬盘,您可能需要为某些 云服务器 安装驱动,具体请参见 磁盘模式及使用方法 。
您可以创建VBD类型的共享云硬盘和SCSI类型的共享云硬盘。建议将共享云硬盘挂载至位于同一个反亲和性云服务器组内的ECS,以提高业务可靠。
- VBD类型的共享云硬盘:创建的共享云硬盘默认为VBD类型,该类型云硬盘可提供虚拟块存储设备,不支持SCSI锁。当您部署的应用需要使用SCSI锁时,则需要创建SCSI类型的共享云硬盘。
- SCSI类型的共享云硬盘:SCSI类型的共享云硬盘支持SCSI锁。
注意:
反亲和性和SCSI锁的相关概念:
- 云服务器组的反亲和性:ECS在创建时,将会分散地创建在不同的物理主机上,从而提高业务的可靠性。您只能在创建ECS的时候选择虚拟机组,对于现有的ECS,不支持添加云服务器组的操作。
关于云服务器组,更多详情请参见 管理云服务器组 。
- SCSI锁的实现机制:通过SCSI Reservation命令来进行SCSI锁的操作。如果一台ECS给云硬盘传输了一条SCSI Reservation命令,则这个云硬盘对于其他ECS就处于锁定状态,避免了多台ECS同时对云硬盘执行读写操作而导致的数据损坏。
- 云服务器组和SCSI锁的关系:同一个云硬盘的SCSI锁无法区分单个物理主机上的多台ECS,因此只有当ECS位于不同物理主机上时才可以支持SCSI锁,因此建议您结合云服务器组的反亲和性一起使用SCSI锁命令。
- 为了提升数据的安全性,建议您结合云服务器组的反亲和性一同使用SCSI锁,即将SCSI类型的共享云硬盘挂载给同一个反亲和性云服务器组内的ECS。
- 如果ECS不属于任何一个反亲和性云服务器组,则不建议您为该ECS挂载SCSI类型的共享云硬盘,否则SCSI锁无法正常使用并且则会导致您的数据存在风险。
- 云服务器组的反亲和性:ECS在创建时,将会分散地创建在不同的物理主机上,从而提高业务的可靠性。您只能在创建ECS的时候选择虚拟机组,对于现有的ECS,不支持添加云服务器组的操作。
共享云硬盘的主要优势
- 多挂载点:单个共享云硬盘最多可同时挂载给16个 云服务器 。
- 高性能:多台 云服务器 并发访问超高IO共享云硬盘时,随机读写IOPS可高达160000。
- 高可靠:共享云硬盘支持自动和手动备份功能,提供高可靠的数据存储。
- 应用场景广泛:可应用于只需要VBD类型共享云硬盘的Linux RHCS集群系统,同时也可应用于需要支持SCSI指令的共享云硬盘的场景,如Windows MSCS集群和Veritas VCS集群应用。
共享云硬盘的规格性能
云硬盘性能的主要指标有IO读写时延、IOPS和吞吐量。
- IOPS:云硬盘每秒进行读写的操作次数。
- 吞吐量:云硬盘每秒成功传送的数据量,即读取和写入的数据量。
- IO读写时延:云硬盘连续两次进行读写操作所需要的最小时间间隔。
不同类型云硬盘的单队列访问时延如下:
- 普通IO:5 ms ~ 10 ms
- 高IO:1 ms ~ 3 ms
- 超高IO:1 ms
参数 | 普通IO | 高IO | 超高IO |
---|---|---|---|
云硬盘最大容量 |
|
|
|
最大IOPS | 2200 | 5000 | 33000 |
最大吞吐量 | 90 MB/s | 150 MB/s | 350 MB/s |
IOPS突发上限 | 2200 | 5000 | 16000 |
云硬盘IOPS性能计算公式 说明: 以单块超高IO云硬盘为例,基线为1500 IOPS,每GB增加50 IOPS,最高为33000 IOPS。 | IOPS = min (2200, 500 +2 × 容量) | IOPS = min (5000, 1200 + 6 × 容量) | IOPS = min (33000, 1500 + 50 × 容量) |
API名称 说明: 此处API名称为云硬盘API接口中“volume_type”参数的取值,不代表底层存储设备的硬件类型。 | SATA | SAS | SSD |
数据持久性 | 99.9999999% | ||
挂载 云服务器 数量 | 最大可同时挂载至16台 云服务器 |
说明:
测试共享云硬盘性能时,必须满足以下要求:
- 共享云硬盘必须同时挂载至多台云服务器(弹性云服务器或者裸金属服务器)。
- 当共享云硬盘挂载至多台弹性云服务器时,这些弹性云服务器必须位于同一个策略为“反亲和性”的云服务器组内。
如果弹性云服务器不满足反亲和性,则共享云硬盘性能无法达到最优。
共享云硬盘的数据共享原理和常见的使用误区
共享云硬盘本质是将同一块云硬盘挂载给多个 云服务器 使用,类似于将一块物理硬盘挂载给多台物理服务器,每一台服务器均可以对该硬盘任意区域的数据进行读取和写入。如果这些服务器之间没有相互约定读写数据的规则,比如读写次序和读写意义,将会导致这些服务器读写数据时相互干扰或者出现其他不可预知的错误。
共享云硬盘为 云服务器 提供共享访问的块存储设备,但其本身并不具备集群管理能力,因此需要您自行部署集群系统来管理共享云硬盘,如企业应用中常见的Windows MSCS集群、Linux RHCS集群、Veritas VCS集群和CFS集群应用等。
如果在使用共享云硬盘过程中未通过集群系统进行管理,可能会导致以下问题:
- 读写冲突导致数据不一致
当一个共享云硬盘同时挂载给两台 云服务器 时, 云服务器 A和 云服务器 B相互之间无法感知另一个 云服务器 已使用的存储空间, 云服务器 A可能会对该云硬盘上已被 云服务器 B使用的空间进行重复分配,从而发生空间分配冲突导致数据出错的情况。
比如,将一块共享云硬盘格式化为ext3文件系统后挂载给 云服务器 A和 云服务器 B, 云服务器 A在某一时刻向云硬盘上的区域 R和区域 G写了文件系统的元数据,下一时刻 云服务器 B又向区域 E和区域 G写了自己的元数据,则 云服务器 A写入的数据将会被替换,随后读取区域 G的元数据时即会出现错误。
- 数据缓存导致数据不一致
当一个共享云硬盘同时挂载给两台 云服务器 时,若 云服务器 A上的应用读取区域 R和区域 G的数据后将数据记录在缓存中,此时 云服务器 A上的其他进程或线程访问该部分数据时,直接访问缓存中的数据即可。如果此时 云服务器 B上的应用修改区域 R和区域 G中的数据,则 云服务器 A上的应用无法感知该部分数据已被修改,依旧从缓存中读取数据,用户通过 云服务器 A无法看到已修改的新数据。
比如,将一块共享云硬盘格式化为ext3文件系统后挂载给 云服务器 A和 云服务器 B,两台 云服务器 均将文件系统的元数据进行了缓存,此后用户在 云服务器 A中创建了一个新的文件 F,但 云服务器 B并无法感知该修改,依旧从缓存中读取数据,导致用户在 云服务器 B中无法看到文件F。
如果您将共享云硬盘挂载到多个 云服务器 ,首先请根据不同的应用选择不同的磁盘模式,包括VBD和SCSI。SCSI类型的共享云硬盘支持SCSI锁,但是需要在 云服务器 系统中安装驱动并保证镜像在兼容性列表中。
注意:
直接将共享云硬盘挂载给多台 云服务器 无法实现文件共享功能,如需在多台 云服务器 之间共享文件,需要搭建共享文件系统或类似的集群管理系统。搭建集群的方法,具体请参见 共享云硬盘最佳实践 。