争议 | 分布式存储 vs 传统SAN存储,谁拥有更好的IO性能?
来自twt社区同行交流,欢迎更多同行参与交流
@cpc1989 某保险公司 存储工程师:
个人的一点看法:性能离不开应用场景,比如OLTP类应用,最重要的性能指标就是延时,其次才是IOPS,存储延时低,IO响应时间就短,数据库的并发就可以比较高,否则可能出现数据库锁等待,并发性能就出现了问题,除非再去应用逻辑上去优化;而一些大量的数据处理类应用,最重要的性能指标是吞吐量,吞吐量高,数据处理任务就能更短时间完成。
首先,我觉得传统SAN存储之所以还是很多企业的主流存储是因为它的稳定性和安全性,性能并不是传统SAN存储最大的优势。
另外,本身对存储性能的衡量是有很多指标的,这需要POC说话。但是我们可以从原理上来解读一下他们读写的差异。对于传统SAN存储来讲,它的读写以Blcok为单位,通过盘头的元数据来记录Block的映射及变化。而分布式存储会有几种架构:
1. 以对象存储为底层存储载体,以分布式协同算法来组织节点关系,以上层接口转换的方式来对接应用读写,可以提供Block、File、S3等各种存储接口。
2. 以GFS为基本原型,底层为文件系统模式的存储结构,同样上层进行各种包装之后形成的可以提供各类存储服务的统一分布式存储。
从存储架构和组织原理上来讲,其实他们是有着各自擅长的存储场景的。比如对于结构化的表数据的读写来讲,其实直接的Block存储更适合应用的读写控制;对于以键值方式组织的数据结构,似乎更适合对象存储形成的分布式存储架构,而以文件为主的数据场景,如果不能以对象方式重构,那么文件系统架构的分布式存储似乎更适合。
总而言之,不同的存储有不同的优势和劣势,只要我们的应用场景选对了,那就是最优的选型。
@孙伟光 中国金融电子化公司 IT顾问:
这种实际对比的意义不大,各自应用场景都不一样。分布式存储没出现之前,还不是传统存储承受了一切。分布式存储的出现未必是传统的存储没落亦或是产品跟不上时代脚步。它更是这个传统san存储的有益补充,并非对立。互联网架构,开放式架构成就了分布式存储,但是分布式存储也不是万能的,他也解决不了当下所有的应用场景,两者互相补充。存储的出现一方面解决了性能问题,他的高可用性不应该被忽视,数据是企业的核心生命力,性能再好的存储丢一次数据,再好的存储性能,也终会被企业抛弃。
@王巧雷 sino-bridge 系统工程师:
个人觉得这个还是得看使用场景吧,否则没有一个标准,没有太大的可比性。
传统的SAN存储在结构化数据这块市场占有率一直还是挺高的,比如作为数据库存储。分布式存储也有自己擅长的方面,比如大规模的并行数据处理等,这都是近些年来逐渐发展起来的,传统的SAN存储可能也能做,但成本就不合适了。两者都有各自擅长的领域,还是看具体需求吧。
@某金融企业存储架构师:
现在分布式存储的IO能做到非常高,随便堆一堆就很轻松的几百万的IOPS,对于传统的SAN存储来说,需要高配甚至顶配的高端存储来对标,但是存储不仅仅是IOPS这一项指标。主要还是要看应用,如果是核心的业务,还是要上传统的SAN,主要还是要体现在稳定,安全,包括运维和容灾的体系架构,都已经形成了很好的优势,这是目前分布式存储不可替代的,即便成本很高,大家还是选择传统稳定的SAN。一些新兴业务,边缘业务,可以选择分布式存储,低廉的价格,很好的扩展性,包括IOPS,目前还没有听说谁家在核心业务上分布式存储的。
@huijx 某银行 系统架构师:
IO性能还是需要针对具体的案例来进行说话,不同的测试用例,两个存储得出完全相反的结果也不是不可能的。同样的测试用例,同样的存储,节点数/磁盘柜数量也会影响IO性能。所有谈论理论性能意义不大。
@潘延晟 系统工程师:
其实在传统环境里面这两种架构的应用还是挺清晰的,不过现在随着X86性能的不断加强,我感觉好像在一些行业里出现了两种选择均可的情况,在这种情况下就有些不太确定如何去选择。
在以往的情景中,X86的性能没有那么高,业务的分界也相对明显。可能数据库我会用SAN,虚拟化搭建的中间件集群我会用分布式。但随着技术的不断成熟,没有特殊业务的需求时好像很难去区分两种架构的需求。
用过vSAN,也用过超融合,对业务要求不够严苛的环境里我觉得都能满足。对于中小企业来说,可能就会面临一个两难的选择,到底是SAN还是分布式,以什么作为理论基础。很多中小企业也的业务场景可能会出现两者皆可的情况。那么对企业,我觉得应该有更多的评判标准,技术储备、资金、业务的窗口期以及特殊性等等多方面考量。目前在我来看,似乎单纯从性能上考量还不足以帮助很多中小企业做出选择。
@fanyqing 厦门银行 系统架构师:
两类存储因架构不同,各有各的特点,适用于不同的业务场景,不能笼统进行比较。
首先我们来看一下两类存储的特点:
1、SAN存储
性能方面:采用集中式架构,当存储容量达到一定规模时,会存在性能瓶颈;扩展性方面:SAN存储扩展采用扩展柜方式,扩展能力有限;稳定性方面:SAN存储采用专用的软、硬件,产品投入市场早,成熟度高;此外,从成本方面考虑,通常传统的SAN存储比分布式存储成本高。
2、分布式存储:
性能方面:因采用分布式架构,性能会随着集群的扩展而提高;扩展性方面:采用集群方式,扩展能力强;稳定性方面;采用X86+分布式存储软件方式,近年投入市场,稳定性不如传统存储,有待市场进一步考验。
因此,基于上述特点,在选择存储类型时,要根据业务场景。比如传统关系型数据库,通常用于存储传统业务系统的业务数据,对存储的性能要求较高,但对存储的容量和扩展性要求相对较小,因此,我们一般采用传统的SAN存储(块存储);但虚拟化、VDI、容器等,虽然也采用块存储,在不是很关注性能的情况下,基于成本考虑,可以采用分布式存储的块存储;其他像网盘、音视频、备份数据等,对存储介质的读写性能要求不高,但要求提供海量的存储空间,并具备良好的扩展性,可以考虑采用分布式存储中的对象存储或文件存储。
@潘延晟:
@张文正 dcits 系统工程师:
这个还是根据应用场景区分比较合适。
分布式存储一般采用x86架构,扩展能力强,最重要是地域访问优化特性,也是采用统一的命名空间管理,后面多台存储服务器组成,采用高速缓存连接,扩展及其方便,而且提供相应的 HTTP /RESTful/ API 接 口 ,适用于海量存储和对象存储。