技术人生系列——传统集中式存储与云化分布式存储解析

日期:2021-01-21

作者简介:杨学斌,现担任中亦安图资深架构师。专注于IT数据中心建设23年,15年以上全球领先IT企业工作经历,8年以上专职构架师。精于IT基础构架设计,多次参与金融、电信、大型制造业数据中心的整体规划设计与实施工作。

 

文章梗概:本文通过分析基于分布式构架的云存储与传统集中式存储在外部接口与内部构架上的区别,阐述各自的优势以及适用场景,为基础构架设计中存储搭建提供设计选择依据。

 

关键词:分布式存储;集中式存储; FC-SANIP-SAN
 

图片

作者:im电竞体育资深架构师  杨学斌

 

在我的视野里,2010后存储世界只有两个革命性的技术进步,一个是SSD的广泛使用导致单盘IOPS的大幅度提升,另一个是单盘容量越来越大。

 

这两项技术的广泛应用领导了最近十年存储的演进与发展。于是大家看到了今天的存储世界和十年前最明显的两大区别:

 

●高端集中式存储的没落。

●软件定义的分布式存储(SDS)广泛应用于客户的数据中心。

 

但是,凡事两面看。基于当前主流大众性商业客户应用对于IT基础构架的需求,我们并不同意很多厂家所倡导的数据中心基础构架全面软件化(SDDC——软件定义的数据中心)。其中一个关键的技术点就是通用分布式存储解决方案相对于传统的FC集中存储,依然有很大的性能差距。

 

本文从存储设计构架出发,探讨集中式存储和分布式存储的构架区别,以探求不同产品的不同应用场景。

 

一.数据存储评估的几个关键点

 

 1>数据存储方式

     无论是文件,还是数据库里使用的裸设备,我们日常使用的数据都是通过某种方式存储在磁盘里的。我们最早接触的数据放在本地的硬盘里,也就是以文件的形式存储。

 

     在外置存储世界,常见的存储方式有两种。一种是数据存储以FC(或者iSCSI)协议连接到外置的块存储设备。操作系统只是将其认作普通硬盘加以管理它,并不知道这块硬盘是外置存储的一块逻辑空间。另一种是数据存储以NFS(或者CIFS)网络文件访问协议连接到外置的文件存储设备。从操作系统访问看,它是一个目录,并不知道这个目录是在远程存储设备上。

 

     还有一种我们常见的文件访问方式,就是文件异地服务。典型的是我们从上大学就在用的FTP。但是ftp并不是NAS,我们处理ftp文件,需要先下载到本地,经过处理后再重新上传到ftp server上。而NAS的文件处理是直接可以在NAS server上完成的。

 

     随着互联网的发展,最近很多商业客户开始使用对象存储协议,以满足更大容量以及云应用对接的业务需求。本质上对象存储的方式和以前的FTP是比较相近的,但是使用的协议是完全不同的。

 

 

2>不同的数据存储访问需要不同的存储性能

     在当今的企业应用中,外置块数据访问已经至少使用了20多年了。从早期的高性能OLTP数据库到近些年的虚拟机映像和实例,是我们最常用的高性能数据访问方式。

 

     网络文件访问同样常用。无论是搭建文件服务器,还是使用专业NAS产品,理论上都是在访问网络中另一个位置的文件。最常见的就是windows的网上邻居和linux的NFS了。

 

     对象存储是最近几年随着客户非结构化数据快速增长而开始广泛使用的第三种方式。本质上和我们企业以前使用的FTP区别不大,但是与公有云存储的无缝对接和远距离大文件访问性能使得其快速推广。

 

     无论什么样的访问,对于存储的需求无非容量和性能两个维度。容量大家都懂,性能我们通常考虑以下三个因素:

 

IOPS:在固定的数据块大小限定下,每秒读写次数

 

Throughput:吞吐量

 

Latency:每次读写平均需要的时间。要注意的是,我们不能只看一段时间内平均响应时间,更要看读写响应时间的差异以及最高读写响应时间。通常在传统集中式存储时代不被重视的指标在全SSD磁盘存储和分布式存储中都变得非常有意义

 

     针对不同存储场景的性能需求,我们使用了下图总结:

 

图片

 

由上图我们可以总结出:

 

●小容量高性能存储需求场景下FC存储仍然是第一选择。

 

●大容量低性能存储需求场景下对象存储有其特有的优势。

 

●文件访问是一个中间阶段,越是高频小文件的访问越推荐集中式NAS,越是大文件低频访问越倾向于使用分布式NAS存储。这里有一点特别要注意的是文件备份问题,集中式NAS可以通过NDMP协议快速备份大量小文件。但是分布式存储由于自身构架问题,似乎看不到性能相当的解决方案。

 

     我们日常工作可以参考上表并根据自己的需求来选择采购使用存储。

 

 

二、集中式存储与分布式存储在块存储环境下性能差异分析

 

     当前在对象存储上使用分布式基本上已经没有争议。无论是开源还是商业软件,均已经使用分布式构架。但是在块存储和高端NAS上,存储是否应该全面软件化,存在比较大的争议。

 

     支持分布式的主要是一些云厂商。由于集中式存储的封闭性,很难像分布式存储那样可以完美的和私有云(超融合)配合完成工作。每个私有云和超融合厂家几乎都有自研技术的分布式存储软件,就连开源云平台openstack首选也是CEPH,可见趋势之明显。

 

     但是实际很多客户却只在外围应用集群使用分布式存储,而在核心数据层还是集中存储的天下。笔者认为这种现状是由于:

 

●集中式存储可提供的容量完全可以满足行式数据库和中小规模虚拟化集群的需求。

 

●集中式存储当前可以提供的高性能仍然是领先的。目前最好的分布式存储可提供的性能都是对集群的,而对单一数据库/虚拟机还是相对比较有限。

 

     以下通过不同存储构架的特点阐述两种类型存储的差异。

 

   1>存储网络连接差异

     在20多年前,服务器访问外部存储通常是通过SCSI线。后来有了专用的存储网络,服务器和存储都是通过专用存储网络连接到服务器。这种模式沿用至今。

 

     早期我们使用的专用的FC-SAN网络,不仅成本高昂,而且需要专用的管理软件,很难融入整体运维。而且SAN网络极其关键,SAN网络崩塌造成的后果必然是客户大量生产业务停止。成为运维管理的一个老大难。

 

     近年来分布式云存储考虑到易用性以及廉价,往往使用万兆以太网作为存储网络来替代以前的FC-SAN网络。

 

     但是,IP-SAN网络毕竟是基于TCP/IP运行。TCP/IP网络为了保证数据可完整的送达到世界上任何一个接入点,必然在数据传输中增加了大量的防错措施,导致数据传输效率下降。

 

     理论上FC-SAN是把存储SCSI协议跑在光纤上,而IP-SAN则是把数据访问通过以太网络传输完成。

 

     具体比较可参考下表:

图片

 

2>数据写入性能差异

     集中式存储组成分为前端和后端,前端由双控制器或者多控制器组成,后端由一组一组的磁盘构成。

 

     一个重要的技术点就是服务器写入存储时,写到前端控制器里的cache就已经认为写完成。准确的是说写在内存中就算完成了。所以集中式存储可以有很高的写效率。写在内存是不是很危险?是的,但是集中式存储使用两个技术来保证写入cache的不会丢失。

 

     为了应对控制器失败,通常集中式存储至少有两个控制器。在我们写入一个控制器的cache时候,控制器会自动把数据通过高速专用总线写入另一个控制器。以保证控制器失败切换的时候数据不会丢失。

 

     集中式存储通常会配置电池,就是为了在发生意外断电的时候,可以提供足够的电能,把cache中的数据写入硬盘或者某个临时空间。

 

     分布式存储由于节点之间没有高速通信通路,在数据写入一个节点时,需要通过以太网同步写入另一个节点,以保证数据的安全。

 

     分布式存储通常使用标准的X86服务器作为硬件,通常使用SSD内置硬盘作为缓存,服务器通过以太网将数据写入SSD硬盘即算完成写入过程。

 

     以上两种不同的写入方式会导致两种存储在写入延时产生十倍以上的差异。尽管分布式存储也可以在某些测试环境下给出比较高的IOPS,但是在OLTP数据库环境下,还是首选高效的集中式存储。

 

 

三、分布式存储构架对于性能的影响

 

     不同的分布式存储构架也会导致不同的性能和扩展性,主要体现在元数据的存储位置。

 

     下面我们以最常见的两种分布式存储举例。

 

     HDFS文件系统的name node和data node 是分开的,通常需要先访问name node得到数据存储位置,再去data node读写数据。如下图所示:

图片

 

     另一种方式是元数据和数据物理混用,这种结构最大的优势是所需要存取的数据和元数据有可能在同一台服务器上,从而减小了数据存储路径。但是随着集群数量的增加,元数据应该设置几份呢?如果包含元数据的服务器脱离集群,是否需要马上在其它节点上复制一份元数据?每个软件各不相同,但是原理是一样的。下面是IBM的GPFS软件读写过程,可做参考。

图片

 

     通过两种方式的对比,可以看出元数据单独存储通常可以提高容量,但是速度更慢,更适合文件和对象存储。元数据混放可以提高数据存储速度,更适合块存储。

 

 

四、结语

 

图片

 

     构架在FC-SAN上传统的集中式存储,以高性能,高稳定性的特点仍然是企业级用户核心业务的首选。但是由于其封闭的技术,较高的成本,扩展性差以及SAN网络本身的运维成本,更多的客户也开始在部分环境中使用分布式存储取代集中式存储。


     分布式存储通常使用开源或者商业软件,硬件使用标准X86服务器,理论上有较高的性价比,容量和性能可按需增长配置,可更好的接受云系统的管理和调度。但是,除了在性能上的差距,多副本机制导致的磁盘利用率大幅下降,也是影响成本的重要因素。   

 

     我的每篇文章结论都是一样的。世上从没有一个完美的产品,只有更加适合客户需求的产品。我们理解每个产品的优势和不足,是为了更好的选择应用场景。

 

 


锻造凝炼IT服务 助推用户事业发展
地址:北京市西城区百万庄大街11号粮科大厦3层
电话:(010)58523737
传真:(010)58523739