【阿里云云计算工程师 ACP 认证】02、弹性块存储 EBS

目录

一、弹性块存储 EBS

1.1 块存储概述

1.2 块存储的性能指标

1.3 丰富的产品类型

1.4 数据备份能力

1.5 数据加密功能

1.6 块存储的创建与删除

1.7 快照的创建与管理

1.8 镜像的使用与注意事项

1.9 云盘性能指标横向对比图


一、弹性块存储 EBS

1.1 块存储概述

        块存储顾名思义就是支持块接口的云上虚拟存储设备,其实就是自己平时的笔记本或者物理服务器上操作系统如何去使用这些磁盘,云服务器 ECS 中也是用相同的一模一样的接口使用磁盘,所以块存储就是模拟了传统的块设备的产品,相当于平常如何使用磁盘在 ECS 中就如何使用存储设备。

        这里画了一个简单的示意图,块存储和其他几个产品之间的关系,最右边的箭头表示完全百分之百的兼容传统块设备的接口,所以操作系统只要支持对应的块设备的文件协议,一定就能够识别出来块存储设备,一般作为磁盘挂载在云服务器上,磁盘在上节课了解到了一般会有且只有一个系统盘,以及不超过 16 块数据盘,云浮器在正常情况下还会与计算,存储进行分离,因为块设备放在 ECS 中云上希望有更好的架构,更推荐将计算和存储进行分离,有一些对 io 要求更高的更独立的像数据库,文件下载这样的一些服务和应用也可以将其分离出去,不一定非要放在 esc 中的块设备中,但是如果架构比较简单,就需要有一个比较大的磁盘存储这些文件都是没有问题的,这些能力都是有提供的,阿里云为云服务器 ECS 提供了丰富的块存储产品类型,现在主要是有云盘和本地盘这两大类,原来还有共享块存储,由于产品的调整,现在已经变成了其他形式存在,所以现在理解块儿设备磁盘或者云盘这种块存储产品一般就是云盘和本地盘这两种大的类型,从名字就可以直接看出来,云盘采用了阿里云飞天盘古的存储技术,能够利用盘古自带的三副本技术为数据提供比较高的可靠性这样的虚拟云盘设备,另外一种本地盘其实本质上底下的物理介质就是物理磁盘,物理磁盘经过接口的模拟在ECS可以直接进行使用,使用本地盘相比于云盘性能更好,但是弱点也是很明显的,像普通情况下云盘在盘古里有一些三副本高数据可靠性能力,本地盘不具备这种能力,本地盘是拿一个本地的磁盘做一些接口转换,虽然性能更好但是可靠性低一些。

1.2 块存储的性能指标

IOPS 性能指标

描述

备注

总 IOPS

OPS 每秒执行的 I/O 操作总次数

随机读 IOPS

每秒执行的随机读 I/O 操作的平均次数

对硬盘存储位置的不连续访问

随机写 IOPS

每秒执行的随机写 I/O 操作的平均次数

顺序读 IOPS

每秒执行的顺序读 I/O 操作的平均次数

对硬盘存储位置的连续访问

顺序写 IOPS

每秒执行的顺序写 I/O 操作的平均次数

        这张表主要是讨论几个指标,如何衡量一个块设备的好坏,通常衡量那些块儿存储设备性能指标主要包括了三个部分,一个是 IOPS,一个是吞吐量,另一个是访问延迟,也就是 rt 时间。传统的物理磁盘主要衡量性能指标其实也是这样的,IOPS 其实是(input output Per second)每一秒能够处理的 io 个数,这个对于块设备是非常重要的,一般用于标识块设备的输入输出的能力,也就是读和写的能力,吞吐量是指在单位时间内可以被成功传输的数据总量,访问延迟是指块存储处理一个 io 输入输出所需要的时间,这几个参数可以算出来rt时间乘以 IO 就是吞吐量,基本可以这样算出来,下面讲解如何测试出块儿存储的性能能否打到他标出来的数值,或者所理想的数值,可以采用一些性能测试的方法,有兴趣的同学可以去帮助文档进行搜索,一般情况下在 ECS 下对磁盘做性能测试,常见的软件有这样几个,Linux 系统中可以使用 DD,Fio 这样的一些工具,Windows 中也可以使用 Fio 基本上都是比较常见的。

1.3 丰富的产品类型

接着查看块存储的类型,现在在阿里云设备的块存储类型:

        从图上来看,主要分为云盘和本地盘两大家族,从使用场景的角度讲,或者用户的构成比例讲,使用云盘的场景是更多的,本地盘一般是用在比较特殊的场景中,这里所讨论的可靠性,高性能,弹性以及安全这四个特性更主要的是面向云盘进行讨论,但是本地盘作为块存储家族的一份子在可靠性,性能,弹性,安全上其实也存在一些覆盖到的地方,但是本地盘的角度有所不同,例如一样谈数据的可靠性,云盘数据的可靠性一定是高于本地盘数据的可靠性。

        云盘是因为有飞天盘古的三副本技术,三副本技术其实在前面所讲的整体架构有看到一个图,飞天架构中有一个叫做盘古的神仙,主要的作用是在整个飞天体系中作为分布式文件系统而存在,是整个飞天存储的基座,本地盘是个独立的存在,大部分与云有关的服务,例如云盘,后面所讲的 oss,或者一些其他的存储产品但凡是在云范畴中的,最终都会将云盘中的数据分成一个一个的小块称之为 trunk。

        例如现在播放一个电影2G,会按照一定的单位大小将其切成一个一个的小块,这些小块以块的形式存储到盘古中,块儿从逻辑上说一个文件中的真实块,例如文件分成了1000块,真实文件是这样的,1000个小块,其实每一个小块在向盘古中进行保存时,是一式三份的,系统在保存数据的时候,会将数据库存成三个部分,三个拷贝所以叫做三副本,接下来讲解三副本如何存储到机房的机器中,盘古属于飞天分布式操作系统的一个组成部分,所以盘古在整个飞天机房中代表了对一系列负责存储机器逻辑的抽象,去访问盘古提供的服务这是云盘内部的服务,后端可能存在很多的机器让盘古保存数据,买个机器上可能有很多磁盘,是这样的架构,所以三个副本进入磁盘的时候,一般会遵循这样的机制,在机房中,服务器是放在不同的机柜上面的,机柜上可能会连在不同的交换机底下,所以三副本在一个机房里存在的情况会把数据尽可能的调度到不同交换机下等不同机跪下的不同的物理服务器上,这样三副本的故障域尽可能被隔离开。

        例如在某一个时刻其中一个副本坏了,系统会马上检查到有一个副本不能工作了,为什么会坏的原因有很多,例如磁盘坏道,机器突然间宕机了,机器突然断电了可能有各种各样的问题,系统只要检测到某一个块儿要有三份的,突然间少了一份,没有关系,还有两份是好的,所以会从两个好的一份上再去还原出新的拷贝出来,这个考贝可能在另外的一个机器上,因为有可能这个机器坏了,这时通过这种故障转移的方式就让三副本数据重新回到三副本,所以这种三副本技术在分布式存储中是非常常见的一种对数据提高可靠性成熟的技术,三副本同时能够兼容两个副本同时失效,这是最大的支持度,一般讲三副本这种工作机制是单个机房中的数据最大可靠性可以做到九个九,有些教材中可能还存放了一些过期数据,因为技术不断的在迭代进步,有一些数值是在不断的提高的,现在OSS为什么能从原来的十个九到现在的11个九到12个九,本质上讲是这三个副本被调度的区域被放开了,OSS如果是同城三机房这样的存在,将三个副本放到三个不同的机房,理论上讲数据的可靠性一定会更高。

        大家可以想象三个副本如果在一个机房中,最多是机房断电,机房的内部机柜断电或者交换机坏了,机柜坏了,物理服务器坏了,或者坏盘各种情况能够兼容到,但是如果是整个机房不能使用了,像以前支付宝出现过的光缆被挖掘机挖断了这样的事故,当整个机房所在的网络或者机房本身由于一些地震,火灾这种人力不可抗拒的自然因素导致整个机房不可访问了,这是三个副本一样都是没有用的,因为都在同一个地方,想提高数据可靠性要把故障率尽可能的再隔开,如果同城有双机房,可以将其中一个块拿到另外一个机房中这样数据可靠性就会比原来的九个九高,可能可以达到十个九或者是十一个九,如果再将一个块放到另外一个地方中,只要网络还是高速的内网网络是能够触达的没有问题,这种情况下,数据可靠性会进一步提高,得益于网络技术的发展以及系统对块儿的调动能力的提高,现在OSS能提高到12个九的数据可靠性,但是块存储数据可靠线没有达到12个九这么高,还是在九个九这样的程度,表明三个副本还是在同一个机房中,这与上节课所讲的对应上了,在一个VPC中,VPC是地域级别的资源,在VPC中可以创建不同的交换机,交换机和交换机可以在不同的可用区,其实就是在不同的机房中,VPC安全组快照镜像都可以跨机房共享,跨季访访问,但是其中有一个特殊的点是磁盘只能被同一个机房里面的ECS访问,所以不在本机房的磁盘是不能被另一个机房所访问的,因为现在的网络条件还达不到像块设备这么短时延的这种i要求情况下可以做到对数据块跨机房调度,本质的原因是这个,这就是本地盘存在的原因。

        既然都有云盘三副本,有了这么好的技术,为什么还有本地盘的存在,就是有一些业务场景还需要比现在的块存储能够提供的性能更高的要求,这时可能达不到,所以需要有本地盘的存在。本地盘的优势是性能很好,性能,弹性,安全这些都是存在的,无论是本地盘还是云盘,只要都在机房里面首先讲解为什么安全不用特意讨论,因为在整个飞天机房中,有阿里云的云安全产品叫做云盾这个产品家族,对整个机房里面所部署的底层的物理设备到上层的网络再到上层的机器甚至再到上层的虚拟的物理的资源都在云盾的保护下,所以块存储,ECS,各种云产品天然都具有云盾所赋予的至少在网络层面的这些安全能力,性能,弹性这些都是做ads服务存在的特性,可靠性根据磁盘的类型块存储的类型做区分,这里将本地盘和云盘之间的区别和联系稍微解释了一下,后面所讨论的快照基本上可以理解主要是针对云盘的,本地盘是不能自动做快照的,数据冗余的能力,需要自己提供处理,在io不是特别极限的情况下,Io要求很高也可以使用更新的ESSD这样的云盘,采用RDNA远程内存直接访问技术,结合更高速的网络,现在其实也提供了云盘更高的性能,ESSD作为增强型的SSD最高可以实现原来上一代的SSD50-100倍左右的性能,绝大多数情况下云盘能够满足业务的需求,云盘可能在需要去了解如何对云盘做一些数据上的备份

1.4 数据备份能力

        因为可能对数据安全性有要求,可能在某一些场合例如系统要登保,有些数据有定时备份这样的需求,这种情况下快照其实是必不可少的,简单讲解一下 ECS 快照的原理,如果现在有一个云盘是 100G 的空间,每次做快照,快照也要占 100G 其实不是这样的,事实上快照是对磁盘上面的块儿进行扫描,每一次做快照时,只会记录两个快照之间产生变化的数据块

        像这个图所演示的一样,在快照一的时候系统在做这个磁盘第一个快照的时候,会先把这个磁盘上的所有块进行扫描在进行记录,先看块上有没有数据,没数据或者有什么样的数据,这样进行记录,在做快照二的时候,会将当前磁盘每一个块上的数据与上一个块上的数据作做比对,这里简化了模型,就用abcd四个块儿进行表示,在第一次做快照时,记录下来,这个磁盘是abcd四个块,在第二次做快照时,发现a和d没有变化,B变成了b1,C变成了c1,发现有两个块b和c发生变化了,所以快照二只记录了b和c这两个变化的块B1和c1这两个块,快照二指记录了这两个块,在快照三的时间点,在向前与快照二进行比对,发现a和d还是不变的,C这个块是上一个版本C1的形态,在这个时间点看也是不变的,但是B这个块儿变成了b2,所以快照三只存了b2这个数据块,是以这样的机制建立快照,基于某一个快照还原整个磁盘的数据,基于某个快照自身的记录是不够的,一定要向前追溯,追溯到自己所记录的一个块儿最新的版本是在哪一个快照中,将其中的块儿拿出来,这就是为什么利用快照不能去创建出一台一模一样的ECS而必须使用镜像,因为每一个快照都不是全量的,除了第一个快照可能是全量的数据意外,在每一个时间点第一个快照之后的任何一个时间点数据都可能是不完整的,所以快照是不能直接生成ECS的,接下来讲解如何生成一模一样的ECS,需要把每一个块的数据都找出来,将基于某一个快照寻找到这个磁盘上的每一个块儿的最新版本的数据,将其合并在一起形成一个完整的对于磁盘某个时间点的记录,这个照片就是所谓的镜像,所以从这个角度进行理解,镜像是全量的,每一个镜像包含着应该覆盖在磁盘上的每一个数据块应该是怎样的,都有记录,所以镜像和快照之间是这样的关系。

        有兴趣的同学也可以点一下,在ECS中创建一个镜像,也不是直接冲进镜像的,创建一个镜像要经过两个阶段,首先会对磁盘做快照,有了当下最新时间点记录的快照才能把要做镜像的时间这里面每一个磁盘的数据块最新版本的数据提取完全,例如这时要做一个镜像,要先有快照四,快照四要找在4这个时间点里可能有变化的数据,快手室里面有一个数据变化,A变成了a1,最终如果按照这个链条看,最终在这个镜像里所保存的这四个块完整的数据应该是a1B2C1还有D,这种增量机制带来的好处是每一次做快照的时间会短一些,因为不用每一个数据块都去拷贝,第二个是也能够减少数据存放的空间,快照是一个链式结构,这也解释了为什么在ECS的控制台里面会有快照链这种说法,因为本身的存在就是链式结构,制作快照或者制作镜像的方式有两种,一种是手动的,一种是自动的,但是镜像只有手动的,不能自动做镜像,磁盘做快照可以有手动快照和自动快照,自动快照策略可以提前设置好,让其每一天在设定的自动快照策略的时间进行执行,但是设计快照策略一个大体思路是需要评估业务的波谷时间段,因为做快照会消耗磁盘的IO,所以不能在磁盘业务高峰期此时磁盘的io访问非常频繁打快照,这是给磁盘增加性能压力,一般会选择在业务的低峰期的时候做快照。

1.5 数据加密功能

        接下来查看云盘或者块存储的加密功能,或者解密功能,是自动加密自动解密并且对性能不会有太大的影响,ECS 可以创建云盘并将其设置为加密盘,加密盘的数据是加密里面的数据快照也是加密的快照,加密的快照和加密的镜像不能给非加密的磁盘进行使用,数据需要进行一些解密提取,加密功能依赖于 kms 密钥管理服务不需要自己进行操作,直接开启加密功能会自动调用这个服务。

1.6 块存储的创建与删除

        通过前面的分析已经知道,现在由于一些性能上的要求与网络延迟的一些原因,块存储是不支持跨机房调用的,所以这个块存储设备的数据盘,云盘在同一个时刻只能够挂载在一个实例并且是同一个可用区的实例上,这句话包含了两个意思,首先不能同时被挂载。

        例如像这个图,这个磁盘被 002 机器所挂载,001 想要挂载他没有办法,因为已经被挂载上了,除非是把它先从 002 的机器上卸载掉 001 这个机器才能挂载,B 可用区的机器是没办法进行挂载的。

1.7 快照的创建与管理

        快照是某一时间点上一块儿云盘的数据状态文件给磁盘打照片,通常用于数据备份,磁盘恢复,更换操作系统和制作自定义镜像等,按类别分为手动快照和自动快照,快照是链式结构,快照链包含节点和容量这两个信息,块存储的常见应用场景包括数据日常备份,应对误操作、攻击、病毒等导致的数据丢失风险。

  • 快速数据恢复,回滚磁盘数据

  • 对生产数据创建快照,为数据挖掘、报表查询和开发测试等应用提供近实时的真实数据

  • 其实主要是存放一些数据,出于数据备份的必要创建快照

1.8 镜像的使用与注意事项

        ECS 提供了一下四种灵活多样的镜像种类:公共镜像,自定义镜像,云市场镜像,共享镜像,其实现在已经是五种了,还有社区镜像一般比较少讨论,因为社区阿里是不负责镜像的可靠性,安全性进行检查,所以这里不讨论,公共镜像是官方所提供的一些官版的镜像 Windows、Linux,特别要注意的一点,Windows 的镜像是带有正版授权的,自定义镜像是自己在上面做一些修改打出来的镜像,自定义镜像共享给别人用就是共享镜像,阿里云市场上的三方的厂商会制作一些特殊的镜像给有特殊需要的人使用经过阿里云市场的审核的。

        获取镜像的方法:根据现有的 ECS 实例创建自定义镜像;选择其他用户共享给您的镜像。

        把线下环境的镜像文件导入到ECS的集群中生成一个自定义镜像。这其实也是可以实现的,比如自己线下有一个飞镖的环境或者原来上面部署的东西希望到云上能接着使用需要重新部署,可以把线下的服务器打包成一个镜像导入到ECS集群里形成自定义镜像,这种有几种方法可以实现,一种是可以通过 p2v,或者 V2V 之类的工具可以物理打包成虚拟的阿里 ECS 所认识的工具,可以使用这样的工具进行打包,也可以直接使用SNC服务器的迁移中心这样的服务帮助做自动打包都是可以的,包出来的镜像线下是镜像上传到OSS,在导入到ECS就可以了。

        把自定义镜像复制到其他地域,实现环境和应用的跨地域一致性部署。例如镜像是定义在杭州的,想在北京用该如何操作,可以将镜像复制到北京,复制相当于杭州有一份北京也有一份了,跨地域复制的镜像并不是同一个镜像,内容是一样的但是镜像一定不是同一个。

        使用限制:除公共镜像外,阿里云的自定义镜像、云市场镜像和共享镜像是地域级别的资源,镜像资源会因为地域不同而不同。

1.9 云盘性能指标横向对比图

        云盘从性能将 ESSD 性能确实比之前的 SSD 好很多,现在最多可以达到 300 万,普通 SSD最高可以达到 25000,关于块存储就讨论这么多。

上一篇文章:【阿里云云计算工程师 ACP 认证】01、弹性计算 ECS_Stars.Sky的博客-CSDN博客

猜你喜欢

转载自blog.csdn.net/weixin_46560589/article/details/129475499