来聊聊对象文件网关和分布式文件存储的区别
Posted 神技圈子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了来聊聊对象文件网关和分布式文件存储的区别相关的知识,希望对你有一定的参考价值。
前言
大家都知道,存储系统一般分为块存储、对象存储和文件存储三种。其中文件存储的使用最广泛,个人电脑、NAS、大到传统的HPC、大数据平台等等。这些都是以使用文件接口为主。最近几年,由于成本低、存储空间大等优势。对象存储在不断不断扮演着越来越重要的角色。一般用户业务不能直接使用对象存储,因此,市面上出现了一些实际使用的对象存储但但是对外提供文件接口的文件存储方案。
“对象文件网关类型”文件存储
一般架构上可以划分为客户端、元数据服务和数据服务三大块:
1.客户端:一般基于fuse来实现,好处就是简单。但是缺点就是会有一定的性能损耗。
2.元数据服务:基本都是使用第三方数据库来存储。比如mysql,Redis,tikv等。
- MySQL没有强一致性集群方案,性能较差,因此现在一般不会选用。
- Redis以高性能著称,但内存占用极高,不能支持较大数据规。
- tikv是一种强一致的分布式kv。但是掌握和维护tikv难度比较大。
3.数据服务:直接使用对象存储,比如Amazon的S3,阿里云的OSS、华为云的OBS等。
可以看出,对象文件网关架构深度使用和依赖于第三方系统,它将复杂的data I/O操作交给了对象存储,将meta I/O交给第三方库。这种方式比较取巧。它的存储天然获得了优势:
- 容量大:用户可以在对象存储中存放海量数据。
- 成本低:对象存储往往用价格更低的硬盘,并且使用EC这种更节省空间的数据冗余算法。
- 一定的吞吐力。
但是,由于这种架构设计,为“对象文件网关型”文件存储带来一些功能上的限制,最为突出的就是随机写性能比较差。主要在于对象不支持修改,其次用户业务往往写操作比比较多。因此,不同的对象文件网关系统采取了不同的应对方法:
方法一:规避需要写输入,尤其是随机写比较多的业务。系统只针对只读为主,数据量很大的业务。比如视频备份等。
方法二:利用本地盘做数据缓存,不过这又引出了新的问题,本地盘缺乏冗余,而且也不方便共享
分布式文件存储
它是基于x86架构设计的一款分布式文件存储系统,支持主流对象存储。一般用户用数据分层和跨云数据整合这两种功能。
数据分层
定义热层在本地,冷层在对象存储。被读写的数据将自动落在热层,而长时间未被访问的数据,根据策略被判定为冷数据后。将被自动放到冷层,冷热层数据之间的流动完全对用户透明。
这种设计思路可以理解为热层为读写提供极高的性能,比如GPU计算集群对存储性能要求极高,这时候热层就可以部署RDMA,NVMe等高性能硬件去满足业务需求。而冷层又可以存储海量的冷数据,存储成本又比较低。冷热层数据透明流动,从而做到了业务无感知。
跨云数据整合
公有云对象存储提供了非常优秀的可访问性,因此可以基于这个特点,为文件系统实现数据在多云之间的灵活流动。比如下面的场景:
1.用户在边缘节点产生数据,通过标准对象接口和工具将数据上传到公有云对象存储。
2.用户在计算中心A
- 部署文件存储 建立和对应对象数据集群的关联,将对象快速地映射到文件系统中。
- 用户读取和计算对象映射后的文件数据,数据按需加载。也就是访问到某对象的数据时,才会读取这个对象的相关数据区段,
- 计算完成后,用户可以取消关联,上传新产生的数据。
3.用户在计算中心B时,也可以通过数据链通功能,去关联和使用边缘节点产生的数据集,同时也可以打通和使用计算中心A产生和上传的数据。
总结
最后,我们通过一张表来看下这两种架构的区别和所适用业务场景。
对象文件网关 | 分布式文件存储 | |
---|---|---|
随机写性能 | × 几乎不可用,利用本地存储的话又可能丢数据 | √ |
随机读性能 | 依赖于对象存储的随机读 | √ |
顺序IO性能 | 依赖于网络带宽 | √ |
低成本 | √ | √ |
大容量 | √ | √ |
业务适合程度 | 以只读类型、备份系统为主。视频存储、日志存储√ | 全面支持。视频存储,日志存储等。√ 中小型NAS√ HPC√ |
以上是关于来聊聊对象文件网关和分布式文件存储的区别的主要内容,如果未能解决你的问题,请参考以下文章