阿里、腾讯云为何都盯上了SSD云盘?
文/路北(微信公众号lubei2014运营者)
云计算的弹性、便捷、低成本被越来越多的用户所认可,除了IT基础设施投入的减少,还包括用户的业务部署效率的显著提升,将核心业务搬上云成为越来越多用户的选择。
存储:云计算的性能瓶颈
因为涉及大量的数据存取,且数据存储是获得云计算一切便利的基础,存储性能直接决定用户是否将其核心业务搬到云上以及能否通过云计算开展业务。普遍来看,硬件存储和阵列占据着企业数据中心成本的98%;同时,数据中心的最大负荷当中有50%主要是来源于I/O性能,对存储的要求自然很高。许多云计算服务商或企业自身的数据中心,都把提升设备的性能作为非常重要的手段。
实际上,单向地提升设备的性能不仅是浪费成本,对效率而言也并不是个好的方法;相较于不遗余力地增加CDN节点、提升带宽等,长时间来业界并未注意到云计算中存储性能的内在影响。随着大数据的理念和技术的快速发展,近年来业界才发觉数据的内部差异,如冷数据和热数据的区别。一方面许多数据的被访问量很小,甚至“结了冰”;而同时一些数据,如证�交易、实时航空预定、搜索引擎等I/O密集型应用中, 数据访问量大,热得“发烫”,对硬件的要求往往很高,存储环节非常重要,存储系统的I/O吞吐量瓶颈成了关系到业务能否开展所必须攻克的难题。
存储性能的关键:IOPS
大部分人对存储的认知限于存储的容量和传输速度,但影响存储性能的因素显然要复杂得多。
存储类似于A-B间的运输:A不定时地向有仓库的B发货(写IO)或取货(读IO),A-B之间运输货物量的多少由包括路程距离、运输车辆种类(跑车装货量远不上大卡车)、运输车辆数量、B仓库容量及存取货效率等多种因素影响,相同的公路长度及时间内,10辆大卡车肯定比10辆小轿车运输的货物数量要多得多,但是运输次数则少得多。 用存储性能的几个基本概念来描述 ,则是:
1.块大小(block size) :主机每次从存储侧读取数据块的大小,一般以KB为单位。如Mysql以8KB读写块大小为主、Oracle以16KB读写块大小为主、Mongodb以4KB读写块大小为主;不同的业务应用,其读写块大小有较大的差异。不同的块大小,类似于不同的运输车辆类型。
2.队列深度(queue depth) :主机每次向存储发送I/O读写操作的并发数。通常情况下,硬盘有个队列存放正在等待处理的I/O请求,当前正在处理的I/O操作完成后,从队列中取一个I/O请求来执行I/O操作;队列深度越大,越可以让硬盘不断工作,减少硬盘的空闲时间,队列深度越大,I/O性能越好。队列深度,类似于运输货物车辆的数量,显然,多辆车运输的货物量肯定大于一辆车运输的货物量。
3.同/异步I/O :同步I/O时,主机每次向存储发送一个I/O请求然后进入等待状态,主机收到响应后再发送下一个I/O请求;异步I/O时,主机每次向存储发送多个I/O请求。同步I/O类似于每次只有一辆车运输货物,等车辆回来后再发下一辆车;异步I/O类似于每次派多辆车前往仓库运输货物。
4.IOPS(I/O Per Second) :主机每秒从存储侧存取数据的I/O次数;IOPS越大表示存储性能越好,同时IOPS受多种因素影响,比如块大小、队列深度、同/异步I/O等。IOPS相当于单位时间内车辆运输的次数;显然,速度快的跑车相比速度慢的大卡车在单位时间内运输的次数要多得多。
5.BPS(Bandwidth Per Second) :主机每秒从存储侧存取数据量的大小,通常以MBps为单位,BPS=块大小*IOPS;同理,BPS受块大小、队列深度、同/异步I/O等因素影响。
6.时延(latency) :主机每次从存储侧存取数据的平均时间,通常以毫秒(ms)为单位。在相同的网络条件下,小的block size相比大的block size完成一次I/O操作,所需的时间肯定要小得多;如果是多并发的I/O访问,时延还与存储侧处理I/O请求的响应速度有关,不同硬件的I/O响应时间不同。类似于从A地同时派10辆车往B地取货,由于B地仓库只能串行工作,一辆车装完货后才能装下一辆,由于不同车所能装的货物量不同,因此不同车装货所需的时间也不同,这10辆车取完货所需要的每车平均时间肯定大于单辆车取完货的时间。
由于块大小、同/异步IO、并发度往往是业务应用本身特点决定的,存储性能的提升要从主机与存储的网络通道条件、存储侧并行处理I/O请求的效率、主机与存储之间的I/O路径长度等方面做优化,最终反映在IOPS这一关键指标上。
SSD 云盘:快速进入云计算的精灵
随着数据的爆发性增长,数据的采集、存储、分析、应用等能力已引起各大企业的持续深耕。目前市场上常见有本地盘、普通云盘、高效云盘、SSD云盘等几种存储方式,但其中差别非常大。一个普通的7200转的家用HDD盘的IOPS通常在100以内,采用RAID技术,无法避免单台物理机宕机导致的数据丢失风险。SSD的IOPS则能达到上万,往往采用分布式三副本机制,保障高性能的同时,实现高可靠性。
近日,腾讯云推出一款超高性能的SSD云盘,高达24000的随机IOPS,不仅是普通本地盘的8倍、普通云盘的6.9倍,更是将去年6月阿里云公测的SSD云盘整整提升了20%,一举刷新业界标准。基于全SSD存储介质、CBS分布式架构等技术,腾讯云SSD云盘的最大容量达到4000G,吞吐量的最大值提升至260MB/s。
应用场景上,在PostgreSQL、MySQL、Oracle等中大型关系数据库应用、对数据可靠性要求高的I/O密集型核心业务系统中,尤其是大型游戏类网站的游戏高峰期,电商类网站购物狂欢节等高并发状况,腾讯云SSD云盘能有效避免加载延时、历史数据无法正常显示等问题。在Mysql压力测试中,TPS可达1616、QPS达29000,单盘足以支撑每秒上万人的在线同时交易。在HDFS测试中,模拟离线数据分析,1.5TB数据,5块普通云盘提供500MB/s的读取速度,50分钟读取到内存,而使用SSD云盘,可在25分钟内完成。此外,其三副本机制,实时落盘持久化,无断电丢失数据、单点风险,可靠性达到99.999999%。
SSD云盘在存储市场上正获得快速的认可。 据Gartner2015年全球企业级存储市场分析显示,到2020年,SSD的出货量将达到3.22亿块,市场份额将从16年的18.9%提升至40%。
随着用户高并发的场景变得越来越普遍,刷新存储标准的腾讯云SSD云盘,可能将这场IOPS的战争带到更为激烈的层次,未来云厂商之间的激烈竞争还会旷日持久,在存储、计算、网络、安全等各个领域的火拼仍旧硝烟四起。
备注:腾讯云SSD云盘IOPS的Fio测试环境为:iodepth=64,bs=4,ioengine=libaio,此外本文是将行业放在同样的测试环境下进行比较。