【概念】

云硬盘,又叫做“云盘”或者“云磁盘”,就是云虚拟机上可以挂载和使用的硬盘。这里,它既包含了用于承载操作系统的系统盘,也包括了承载数据的数据盘。云厂商对于云盘,不仅仅会保障数据的顺利写入,一般还会在存储端同步和保留至少三份副本的数据。所以说,云硬盘的冗余度和可用性是非常之高的,一般极少发生云硬盘数据丢失的情况。但即使如此,也非常有必要定期为云磁盘创建快照、异地备份数据文件等方式,来保护关键数据,毕竟云厂商会发生的意外没有人可以预料到。

【架构】

云硬盘与传统磁盘的真正差异在于,绝大多数的云硬盘都是远程的。通常,在计算机的体系结构中,硬盘是通过本地机器内部主板的高速总线,与硬盘等部件相连接;而在云端,硬盘则很可能并不在宿主机上,而是在专用的磁盘服务器阵列中,两者是通过数据中心内部的特有 IO 线路进行连接。没错,这也正是计算存储分离架构的一种体现。所以增加IO,更确切来说,是指优化云虚拟机与云硬盘之间的网络传输。有些云上的IO 优化实例,就是提升这个的,现在较新型号、较强性能的云虚拟机,一般都自动启用了这个优化。

【性能】

云硬盘,由于有多副本写入的开销,同时也比较依赖于远程传输,性能确实存在一些短板。当下的云硬盘经过了多次的软硬件迭代,尤其是 SSD 的迅速发展,吞吐量和随机读写能力等各项性能指标都已经不再是问题了。在现代云计算中,已经发展出了基于不同存储介质的、丰富的性能等级选择,单盘也有 IOPS 在数十万量级甚至达到百万的云硬盘产品了。解决了性能问题,我们主要思考的就是怎么挑选最适合应用场景的硬盘,权衡好成本。

1、第一个等级的云硬盘,是基于传统 HDD 硬盘构建而成的。这类云盘的性能一般,最高 IOPS 大概在数百左右。在很多的云上,已经不把它作为推荐的选择了。但它并非一无是处,成本低就是它的最大优势,在不注重性能的测试环境,或者是个人自用的服务器,它就是一个很好的选择;

2、第二个等级,往往是基于混合硬盘,也就是结合 HDD 和 SSD 硬盘构建的云硬盘。它会综合发挥 SSD 的性能优势和 HDD 的容量优势。比如它可以用 SSD 部分来承载热点区域数据,或是作为缓存,来提高响应性能。在这个等级下,典型的 IOPS 为数千左右,是很多云上创建硬盘的默认选项,比较适合像是操作系统启动盘这样的常规负载;

3、第三个等级的云硬盘,它的存储介质就是纯 SSD 硬盘了。虽然贵一些,但一分价钱一分货,这个等级下的云硬盘能够提供非常稳定的 IO 能力,IOPS 通常能够上万,也有相当不俗的吞吐量和较低的访问延时。你可以用它来承载生产环境中重要的关键业务应用,或是各类数据库等 IO 密集型应用;

4、第四个等级,也是当下业界的最高等级,就是进一步优化增强的最新 SSD 云盘。它一般会采用更新一代的企业级闪存硬件,配合自研或改进后的底层传输协议,和虚拟化技术栈的优化来提供服务。因此它能够达到惊人的性能水平,满足我们最为苛刻的性能场景需求,比如承载 SAP HANA(SAP 的高性能计算平台)、高并发 OLTP 数据库等等。这类 SSD 云盘的 IOPS 通常能够突破十万以上。

如下是各个云对于不同等级云硬盘的命名方法:

 【容量】

不论是哪种磁盘类型,它的容量大小几乎都与性能正向相关。同等的性能等级下,云硬盘的容量越大,一般来说它的性能就越高,直到达到这个等级的上限。这是由云上磁盘能力共享的底层设计所决定的。所以在某些时候,你可能需要刻意地增大所申请的云硬盘的容量,以获取更高的性能,即便这些额外的空间不一定能被用上。

【使用】

云盘的热挂载特性让它使用起来特别灵活方便,而且大小性能任你调度。挂载后的云硬盘真正使用起来,和你熟悉的硬盘操作也并没有什么两样。同时,也可以选择挂在本地磁盘,方式为:本地磁盘一般不需要自行创建,只要你选择了带有本地磁盘的机型,启动后,该型号对应大小和规格的本地磁盘就会自动被挂载。那些自带有大容量、高性能本地磁盘的虚拟机型号。它们或是配备了高性能的本地 NVMe SSD 磁盘,或是装备有高吞吐的先进 HDD,数量可能还不止一块。妥善使用这些本地磁盘,在合适的场景下,能够帮你发挥很大的作用。

一些可以考虑使用本地磁盘的场景:1)当一些应用软件系统本身考虑到了硬件的不可靠性,较少依赖云硬盘的高可用性,自身已经设计了上层的存储冗余机制时,你就可以考虑采用本地磁盘;2)对数据丢失不敏感的临时性存储的场景,也是本地磁盘可以发挥的舞台。毕竟本地磁盘性能也更好,成本有更低。但在本质上,还是易失性(Ephemeral)的存储,当机器关机或删除,以及出现硬件故障时,本地磁盘上的数据就可能损坏或丢失。这一点我们必须牢记,不适用的场合必须使用更可靠的远程云硬盘。

最新文章

  1. .net的一致性哈希实现
  2. ChartServices Dev图形封装
  3. jQuery判断元素是否存在方法
  4. KDD-CUP Proposal
  5. [oracle] ORA-08002:序列XXXXXXX.CURRVAL尚未在此进程中定义
  6. CSS 中区块的使用_宽高属性
  7. 存储过程 分页【NOT IN】和【>】效率大PK 千万级别数据测试结果
  8. 02_Jquery_04_属性选择器
  9. [转贴]怎样在LINQ实现 LEFT JOIN 或者RIGHT JOIN
  10. instanceof 和 构造函数
  11. [Regular Expressions] Find Groups of Characters, and ?:
  12. 设计理念 : popup login 在前后台
  13. 115个Java面试题和答案——终极列表(下)【转】
  14. Hibernate【inverse和cascade属性】知识要点
  15. eclipse向tomcat部署站点发现没有class文件。
  16. 联想Y410P在Ubuntu系统下开关机及插耳机破音“啪啪”的解决办法
  17. ubuntu 16.04 下安装smplayer视频播放器
  18. php date()
  19. PHP计算字符串的长度
  20. css文字环绕图片--遇到的问题及解决方法

热门文章

  1. Debug时使用热部署修改代码
  2. 郁金香 fs寄存器
  3. dataset的基本使用
  4. ctfshow_web入门 xss
  5. 音频处理库:pydub与ffmpeg
  6. JZOJ 7339.改试卷
  7. 题解 P4317 花神的数论题
  8. Postgresql CTE解析
  9. LeetCode-1705 吃苹果的最大数目
  10. 红米note9 刷开机第一屏logo