1.1.2 分布式存储系统
分布式存储最早由谷歌提出,其目的是通过廉价的商用服务器来提供海量、弹性可扩展的数据存储系统。它将数据分散地存储到多台存储服务器上(服务器分布在企业的各个角落),并将这些分散的存储资源构成虚拟的存储设备。
图 1-5 展示了分布式存储系统的工作模式。
分布式存储架构通常由 3 个部分组成:客户端、元数据服务器以及数据服务器。客户端负责发送读写请求、缓存文件元数据和文件数据;元数据服务器作为整个系统的核心组件,负责管理文件元数据和处理客户端的请求;数据服务器负责存放文件数据,保证数据的可用性和完整性。该架构的好处是存储系统整体的性能和容量能够随着系统内存储服务器的增加不断地近似线性扩展,系统具有很强的伸缩性。
1. 分布式存储的兴起
分布式存储系统的兴起与互联网的发展密不可分,互联网公司由于其数据增量大且初期 IT 投资相对较少,对大规模分布式存储系统有着强烈的业务需求以及使用意愿,期望通过规模效应降低数据的存储成本。
与传统建设方式中使用的高端服务器、高端存储器和高端处理器不同,互联网公司的分布式存储系统由数量众多、成本低廉、高性价比的普通服务器通过网络连接而成,其主要优势有以下 3 点。
(1)系统可获得更好的 scale out 能力
互联网的业务发展速度快,而且更加注重成本开支,要求存储系统不能依靠传统的scale up 方式(即先购买小型机,再购买中型机,甚至大型机)来满足业务数据的存储需求。互联网公司使用的分布式存储系统要求支持 scale out 能力,即可以通过增加普通服务器的数量来提高系统的整体处理能力。
(2)系统拥有更好的成本优势
普通服务器成本低廉,故障率相对较高,但分布式存储系统的分区容错性可保证存储集群因为故障而被分解为多个部分之后,存储系统整体仍然能够正常对外提供服务,软件层面的自动容错,可保证存储集群的数据一致性,互联网公司可最大限度地享受普通服务器带来的高性价比优势。
(3)系统可获得更加线性的性能输出
随着服务器的不断加入,存储集群的计算、存储、网络服务能力都会线性增加,加之分布式存储系统在软件层面实现 I/O 负载的自动均衡,存储系统的 I/O 处理能力可以得到线性的扩展,对于新增的业务需求,互联网公司可以精确地估算新增资源投入,实现“小步快跑”的资源建设,最优化资源的投入产出比。
2. 分布式存储的优势
分布式存储系统自诞生以来,一直热度不减,被企业津津乐道并持续应用于核心生产系统,究其原因,分布式存储系统可带来如下优势。
(1)系统计算处理能力更优
摩尔定律告诉人们:当价格不变时,集成电路上可容纳的元器件的数目,每隔 18 ~ 24个月便会增加一倍,性能也将提升一倍,即随着时间的推移,单位成本支出所能购买的计算能力在不断提升。换个角度,具体到某个固定时间点,单颗处理器的计算能力终究会有上限,即使企业有意愿花更多的成本去购买计算能力,市场上也没有芯片能够满足其需求。分布式存储系统的架构允许数据分散存储在多台独立的服务器上,统一对外提供服务,可以最大化利用系统所有资源,最优化均衡系统所有负载,消除热点,获得一致的性能表现,大大提升存储群集计算处理能力。
(2)系统扩展能力更强
同上分析,具体到某个固定时间点来购买单颗不同型号的处理器,所购买的处理器性能越高,所要付出的成本开销就越大,性价比就越低。即在一个确定的时间点,通过升级硬件来提升性能会越来越不划算,简单地依靠计算能力的 scale up 来提升存储系统 I/O 处理能力并非明智之举。分布式存储系统的 scale out 特性,允许存储系统纳管更多的服务器,且随着纳管服务器数量的增加,存储系统的容量及性能可获得近似线性地提升,为存储系统的容量扩展以及性能扩展提供可靠的技术保障。
(3)系统稳定性更可靠
若采用单机系统,服务器一旦出现问题,那么系统就完全不能使用,无法满足生产环境高可靠的需求。传统集中式存储的负载呈现出高度的不均衡性,即同一镜像的数据通常分布在同一磁盘托架中,若控制器出现故障,存储对外服务性能将严重降级,且数据重建期间,存储系统中的部分磁盘会承受很大的负载压力,重建耗时长,业务经受严重风险。分布式存储系统将数据分散存储到多台独立的服务器上,无单点故障,单盘损坏后,全部磁盘参与数据重建,分摊系统压力,对存储系统整体性能输出影响较小,可以最大限度地降低业务风险。
3. 选择分布式存储的必然性
云存储和大数据是构建在分布式存储之上的应用:移动终端的计算能力和存储空间终究是有上限的,且在多个设备之间资源共享的需求也愈发强烈,这使得云网盘、云相册之类的云存储应用迅速蹿红,而云存储的核心仍是其后端便于数据共享访问的大规模分布式存储系统;大数据则更进一步,不仅需要存储海量数据,还需要通过合适的计算框架或者工具对这些数据进行分析,抽取数据中的价值,如果没有分布式存储,海量数据便没有了生存之地,更谈不上对数据进行分析。
由此可见,分布式存储系统是云存储和大数据发展的必然要求,继而也是 IT 技术发展的必然要求。