云硬盘(Elastic Volume Service,EVS)能够为裸金属服务器提供高可靠、高性能、规格丰富而且可弹性扩展的块存储服务,知足不一样场景的业务需求,适用于分布式文件系统、开发测试、数据仓库以及高性能计算等场景。git
裸金属服务器支持挂载云硬盘,解决了传统物理服务器受限于本地硬盘容量的问题。支持共享云硬盘,由多台服务器并发读写访问,知足您企业核心系统集群部署的需求。github
云硬盘(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和吞吐量。
云硬盘性能指标的详细介绍请参见《 云硬盘产品介绍 》。
裸金属服务器当前仅支持SCSI(小型计算机系统接口,Small Computer System Interface)磁盘模式的云硬盘。
您能够经过管理控制台建立SCSI类型的云硬盘,该类型的云硬盘支持SCSI指令透传,容许裸金属服务器操做系统直接访问底层存储介质。除了简单的SCSI读写命令,SCSI类型的云硬盘还能够支持更高级的SCSI命令。
说明:
裸金属服务器公共镜像的操做系统中已经预安装了使用SCSI类型云硬盘所需的驱动,无需再安装。您也能够参考《裸金属服务器私有镜像制做指南》的“ 安装SDI卡驱动 ”章节了解驱动安装的详细操做。
云硬盘的存储系统采用三副本机制来保证数据的可靠性,即针对某份数据,默认将数据分为1 MB大小的数据块,每个数据块被复制为3个副本,而后按照必定的分布式存储算法将这些副本保存在集群中的不一样节点上。
云硬盘三副本技术的主要特色以下:
例如,对于服务器A的物理磁盘A上的数据块P1,系统将它的数据备份为服务器B的物理磁盘B上的P1''和服务器C的物理磁盘C上的P1',P一、P1'和P1''共同构成了同一个数据块的三个副本。若P1所在的物理磁盘发生故障,则P1'和P1''能够继续提供存储服务,确保业务不受影响。
图1 数据块存储示意图
数据一致性表示当应用成功写入一份数据到存储系统时,存储系统中的3个数据副本必须一致。当应用不管经过哪一个副本再次读取这些数据时,该副本上的数据和以前写入的数据都是一致的。
云硬盘三副本技术主要经过如下机制确保数据一致性:
当应用写入数据时,存储系统会同步对3个副本执行写入数据的操做,而且只有当多个副本的数据都写入完成时,才会向应用返回数据写入成功的响应。
当应用读数据失败时,存储系统会判断错误类型。若是是物理磁盘扇区读取错误,则存储系统会自动从其余节点保存的副本中读取数据,而后在物理磁盘扇区错误的节点上从新写入数据,从而保证数据副本总数不减小以及副本数据一致性。
存储系统的每一个物理磁盘上都保存了多个数据块,这些数据块的副本按照必定的策略分散存储在集群中的不一样节点上。当存储系检测到硬件(服务器或者物理磁盘)发生故障时,会自动启动数据修复。因为数据块的副本分散存储在不一样的节点上,数据修复时,将会在不一样的节点上同时启动数据重建,每一个节点上只需重建一小部分数据,多个节点并行工做,有效避免了单个节点重建大量数据所产生的性能瓶颈,将对上层业务的影响作到最小化。
数据重建流程如 图2 所示。
图2 数据自动重建流程
数据重建原理如 图3 所示,例如当集群中的服务器F硬件发生故障时,物理磁盘上的数据块会在其余节点的磁盘上并行重建恢复。
图3 数据重建原理
三副本技术是云硬盘存储系统为了确保数据高可靠性提供的技术,主要用来应对硬件设备故障致使的数据丢失或不一致的状况。
云硬盘备份、快照不一样于三副本技术,主要应对人为误操做、病毒以及******等致使数据丢失或不一致的状况。咱们建议您在平常操做中,采用云硬盘备份、快照功能,按期备份云硬盘中数据。
更新时间: 2019/05/22 11:59
查看PDF
分享
根据IO性能划分云硬盘的磁盘类型,各类类型的云硬盘具体介绍以下。不一样类型云硬盘的性能和价格有所不一样,您可根据应用程序要求选择您所需的云硬盘。
云硬盘性能的主要指标有IO读写时延、IOPS和吞吐量。
不一样类型云硬盘的单队列访问时延以下:
参数 |
普通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 + 每GB云硬盘的IOPS × 云硬盘容量”的最小值。
以超高IO云硬盘为例,单个超高IO云硬盘的最大IOPS为33000。
突发能力是指小容量云硬盘能够在必定时间内达到IOPS突发上限,超过IOPS上限的能力。此处IOPS上限为单个云硬盘的性能。
突发能力适用于 云服务器 启动场景,通常系统盘容量较小,以50 GB的超高IO云硬盘为例,若是没有突发能力,云硬盘IOPS上限只能达到4000(1500 + 50 × 50),但使用突发能力后,IOPS可高达16000,从而提高云服务器的启动速度。
以超高IO云硬盘为例,单个超高IO云硬盘的IOPS突发上限为16000。
如下介绍云硬盘突发IOPS的消耗原理和储蓄原理。
突发的实现基于令牌桶,令牌桶中的初始令牌数量 = 突发时间 × IOPS突发上限,此处突发时间固定为1800 s。
以100 GB的超高IO云硬盘为例,令牌桶容量为28800000个令牌(1800 s × 16000 )。
消耗原理
当令牌消耗速度大于令牌的生成速度时,令牌数量会逐渐减小,最后IOPS会维持跟桶生成令牌的速度一致,即云硬盘的IOPS上限。本示例中,能够维持突发IOPS的时间为3032 s ≈ 28800000 / (16000 - 6500) 。
储蓄原理
当令牌的消耗速度小于令牌的生成速度时,桶中的令牌会逐渐增长,以后又能够拥有突发能力。本示例中,若是云硬盘暂停使用4431 s ≈ 28800000 / 6500,令牌桶就能够存满。
说明:
桶中的令牌数量只要大于零,云硬盘就具备突发能力。
本示例中令牌的消耗和储蓄原理如 图1 所示。蓝色柱状表示云硬盘IOPS的使用状况,绿色虚线为IOPS上限,红色虚线为IOPS突发上限,黑色曲线表示令牌数量的变化趋势。
图1 突发能力原理图
测试云硬盘性能参数的具体测试方法请参见“ 怎样测试云硬盘的性能 ”。
根据是否支持高级的SCSI命令来划分云硬盘的磁盘模式,分为VBD(虚拟块存储设备 , Virtual Block Device)类型和SCSI (小型计算机系统接口, Small Computer System Interface) 类型。
若是将SCSI共享云硬盘挂载至ECS时,须要结合云服务器组的反亲和性一同使用,SCSI锁才会生效,关于更多共享云硬盘的内容,请参见 共享云硬盘及使用方法 。
使用SCSI的云硬盘时,须要为某些 云服务器 操做系统安装驱动,具体以下:
BMS的Windows和Linux镜像操做系统中已经预安装了使用SCSI云硬盘所需的驱动,即SDI卡驱动,所以无需再安装。
当您使用SCSI云硬盘时,推荐您配合虚拟化类型为KVM的ECS一同使用。由于KVM ECS的Linux操做系统内核中已经包含了驱动,Windows操做系统中也包含了驱动,无需您再额外安装驱动,使用便捷。
说明:
ECS的虚拟化类型分为KVM和XEN,想了解您所使用的ECS虚拟化类型,请参见 规格清单 。
因为驱动和操做系统支持的限制,不建议您一同使用SCSI云硬盘与虚拟化类型为XEN的ECS。
然而,当前有一部分Windows和Linux操做系统支持SCSI云硬盘,详情请参见 表1 。
说明:
当XEN ECS的操做系统已知足SCSI云硬盘的要求时,须要根据如下状况判断是否安装SCSI驱动。
虚拟机化类型 |
操做系统 |
|
---|---|---|
XEN |
Windows |
请参见“公共镜像”中的Window操做系统。 查看方法:登陆管理控制台,选择“镜像服务 > 公共镜像 > ECS 系统盘镜像 > Windows”,便可查看操做系统列表。 |
Linux |
具体方法请参见“镜像服务用户指南”中的“优化Windows私有镜像(可选)”小节。
更新时间: 2019/06/03 16:47
查看PDF
分享
根据是否支持挂载至多台 云服务器 能够将云硬盘分为非共享云硬盘和共享云硬盘。一个非共享云硬盘只能挂载至一台 云服务器 ,而一个共享云硬盘能够同时挂载至多台 云服务器 。
共享云硬盘是一种支持多个 云服务器 并发读写访问的数据块级存储设备,具有多挂载点、高并发性、高性能、高可靠性等特色。
说明:
共享云硬盘首次同时挂载至多台Windows 云服务器 ,则卸载后,也不能挂载至Linux 云服务器 。由于Windows和Linux支持的文件系统不一样,没法识别云硬盘原有文件系统,若是操做不当会致使原有文件系统被破坏。
图1 共享云硬盘使用场景
共享云硬盘主要应用于须要支持集群、HA(High Available,指高可用集群)能力的关键企业应用场景,须要多个 云服务器 可同时访问一个云硬盘。若是您将共享云硬盘挂载到多个 云服务器 ,首先请根据应用场景选择不一样的磁盘模式,包括VBD和SCSI。因为多数常见集群须要使用SCSI锁,例如Windows MSCS集群、Veritas VCS集群和CFS集群,所以建议您结合SCSI模式使用共享云硬盘。使用SCSI云硬盘,您可能须要为某些 云服务器 安装驱动,具体请参见 磁盘模式及使用方法 。
您能够建立VBD类型的共享云硬盘和SCSI类型的共享云硬盘。建议将共享云硬盘挂载至位于同一个反亲和性云服务器组内的ECS,以提升业务可靠。
注意:
反亲和性和SCSI锁的相关概念:
关于云服务器组,更多详情请参见 管理云服务器组 。
云硬盘性能的主要指标有IO读写时延、IOPS和吞吐量。
不一样类型云硬盘的单队列访问时延以下:
参数 |
普通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锁,可是须要在 云服务器 系统中安装驱动并保证镜像在兼容性列表中。
注意:
直接将共享云硬盘挂载给多台 云服务器 没法实现文件共享功能,如需在多台 云服务器 之间共享文件,须要搭建共享文件系统或相似的集群管理系统。搭建集群的方法,具体请参见 共享云硬盘最佳实践 。