第5章 分布式块存储服务
5.1 分布式块存储介绍
5.1.1 分布式块存储概述
虚拟化与云平台技术正在引领IT数据中心的技术发展方向,越来越多的企业采用虚拟化与云平台技术来构建新一代云数据中心,提升数据中心的资源利用率,降低CAPEX和OPEX,提升IT业务系统性能,加快业务和应用的上线时间。
虚拟化与云平台技术的发展也给后端的在线存储系统提出更加严峻的挑战,主要体现为如下几个方面。
(1)弹性池化的挑战:云数据中心内为了避免烟囱式的建设模式带来的资源浪费,多租户多应用部署在统一的资源池上,可以分时复用整个存储池的IOPS/MBPS能力,达到弹性池化的高利用率,这就要求存储池化。
(2)扩展规模的挑战:云数据中心内多应用多负载多租户全部按照虚拟化的方式部署在基础设施资源池上,这样就要求基础设施层的存储系统具备很好的线性扩展能力,存储系统本身是具备高扩展能力的分布式架构。
(3)性能的挑战:随着数据中心内业务和应用数据量的增多,性能要求也越来越高,这就要求存储系统的性能和容量呈线性增加,这往往意味着存储系统的硬盘、CPU、内存要同步增加。另外一方面,随着大数据/OLAP类应用的增多,对在线存储的带宽性能要求也会增强,采用分布式架构的存储系统可以达到更大的吞吐能力。
(4)容错和可靠性的挑战:云数据中心应用集中化资源池化后服务器和存储规模都会比较大,需要基础设施具备跨机柜、跨一排机柜的故障容错能力;企业SAN架构受限于控制器的部署模式,往往无法做到跨机柜、跨一排机柜故障的数据安全或者业务不中断。
(5)CAPEX和OPEX成本的挑战:云数据中心构建,要求批量通用化的硬件和网络形态,去除专业硬件设备,可以大大降低CAPEX;另外,在运维上也要求基础设施具备快速部署实施和快速在线扩容和故障部件更换的能力,真正做到类似互联网公司的小推车每周换硬盘的运维模式,大大降低系统OPEX。
随着互联网业务的发展,越来越多的厂家将他们的存储系统构建在通用的x86服务器上,如Google GFS、Amazon的S3等。开源社区也贡献和发展了很多基于通用x86服务器的分布式存储系统,如HDFS、GlusterFS、MooseFS、OpenStack Swift等。这些商用和开源的分布式存储系统,主要集中在文件存储和对象存储,可以满足对带宽和吞吐要求比较高的应用,但是无法满足大量随机I/O和时延敏感型的应用,如VDI(Virtual desktop infrastructure)、ERP(Enterprise Resource Planning)、数据库OLAP(Online Analytical Processing)和OLTP(Online Transactional Processing)之类的企业在线应用。
这些应用会产生大量随机I/O,并且对时延要求高,通常需要运行在块存储上(如SAN,Storage Area Network)。随着虚拟化/云平台深入到企业数据中心,基于通用x86服务器的分布式块存储系统可以很好地解决上述5大挑战,同时解决时延需求,如图5-1所示。
图5-1 分布式块存储软件
5.1.2 分布式块存储应用场景
目前很多互联网公有云厂家在构建自己的弹性计算云(如Amazon的EC2,阿里云的ECS等)时,都倾向于采用通用的x86服务器和ethernet网络来构建,其中的弹性块存储服务作为租户虚机的底层存储,这样可使硬件形态标准化、通用化、可线性扩展,建设成本低并且维护简单方便。
很多大型企业在建设自己的私有云时,也参考互联网公有云的技术架构,采用通用x86服务器和ethernet网络,通过分布式块存储软件来构建其中的存储资源池,作为私有云的底层存储系统。
很多大型企业的数据库,随着企业业务的发展,数据量越来越大,典型的基础架构可能面临着扩展性和性能瓶颈,这时也会参考互联网解决大数据的方式,通过通用的x86服务器和ethernet网络或者Infiniband网络,基于分布式块存储软件来构建数据库基础设施中的存储系统,满足数据库集中化、数据量大幅增长的需求。
适合分布式块存储系统的应用场景具体如下。
● 虚拟化/私有云资源池:一般用于运营商、金融、石油、各大中型企业建立自己的私有云资源池。其典型特点是:性能线性扩展,容量共享精简分配、多应用性能共享分时复用、成本性价比要求高。
● 公有云存储资源池:一般用于运营商建立公有云系统,作为公有云中的弹性块存储系统。其典型特点是:多租户不同SLA(Service Level Agreement)等级要求,多应用混合负载,性能和扩展性强,成本性价比要求高。
● 数据库(OLAP/OLTP)应用资源池:用于企业数据库资源池场景。其典型特点是:大并发吞吐量和大量随机IOPS,存储性能和时延要求高。