分布式对象存储解决⽅案(oss)-⽤于存储图⽚、⽂档、⾳频、
视频等⼆进制⽂件
OSS(Object Storage Service)俗称对象存储,主要提供图⽚、⽂档、⾳频、视频等⼆进制⽂件的海量存储功能。⽬前除了公有云提供对象存储服务外,⼀般私有云⽐较关⼼⼀些开源的分布式对象存储解决⽅案,本⽂列举了⼀些常见的技术⽅案供参考。
概念普识
块存储
通常SAN(Storage Area Network)结构的产品属于块存储,⽐如我们常见的硬盘、磁盘阵列等物理盘。
⽂件存储
⼀般NAS(Network Attached Storage)产品都是⽂件级存储,如Ceph的CephFS,另外GFS、HDFS等也属于⽂件存储。
对象存储
同时兼顾着SAN⾼速直接访问磁盘特点及NAS的分布式共享特点的⼀类存储,⼀般是通过RESTful接⼝访问。
开源解决⽅案介绍
hbase官方文档(⼀)Swift 是 OpenStack 社区核⼼⼦项⽬,是⼀个弹性可伸缩、⾼可⽤的分布式对象存储系统,使⽤Python语⾔实现,采⽤ Apache 2.0许可协议。
Swift 提供⼀个基于RESTful HTTP接⼝的 Object Storage API,⽤于创建,修改和获取对象和元数据。⽤户可以使⽤ Swift ⾼效、安全且廉价地存储⼤量数据。Swift 整体架构:
总的来说,企业如果想要建⽴可扩展的分布式对象存储集,可以考虑 Swift。
(⼆)CephCeph是⼀种⾼性能、⾼可⽤、可扩展的分布式存储系统,统⼀的对外提供对象存储、块存储以及⽂件存储功能,底层使⽤
C/C++语⾔。其中对象存储功能⽀持 2 种接⼝:1、兼容S3:提供了对象存储接⼝,兼容 S3 RESTful 接⼝的⼀个⼤⼦集。2、兼容Swift:提供了对象存储接⼝,兼容 Openstack Swift 接⼝的⼀个⼤⼦集。
Ceph是⼀个企业级分布式存储系统,功能强⼤,不仅可以为企业建⽴对象存储服务,还可以帮助企业建⽴⾃⼰的云平台,具有⼴泛的应⽤场景特别是在云环境下使⽤⼴泛。
(三)Minio是⼀个企业级、兼容S3接⼝的对象存储系统。Minio基于 Apache 2.0 许可协议,采⽤Go语⾔实现,客户端⽀持Java、Python、Go等多种语⾔,是⼀种轻量级、⾼并发的开源解决⽅案,可以作
为云存储⽅案⽤来保存海量的图⽚,视频,⽂档等。
Minio主要为⼈⼯智能、机器学习⽽设计,并适⽤于其他⼤数据负载。从架构与功能⽅⾯考虑,Minio是⼀个⽐较好的开源对象存储解决⽅案。
架构如上,HBase MOB的设计类似于HBase + HDFS的⽅式,中等对象在写⼊HDFS之前同样是先写⼊MemStore,但是刷写与其他写⼊数据不同,MOB数据被刷写到MOB File中,MOB File被存放在特殊的Region中。
MOB特性在Apache HBase 2.0、CDH 5.4.x 或 HDP 2.5.x 及以上版本⽀持,⽤户可以基于HBase MOB特性设计⾃⼰的对象存储服务。
(四)Hadoop Ozone是 Apache Hadoop 的⼦项⽬,为了提供分布式、可扩展的对象存储功能,主要是为了弥补HDFS在⼩⽂件存储⽅⾯的不⾜之处。Ozone建⽴在⼀个⾼可⽤、⽀持块复制的Hadoop分布式数据存储层之上,称为Hadoop Distributed Data Store(HDDS),上层可对接 Spark、Hive 以及 Yarn 等计算调度引擎。但是⽬前还处于alpha内部测试版本,暂时不建议⽣产环境中使⽤。
⼩结
对象存储主要是解决海量图⽚、⽂档、⾳视频的存储,其中主流的重量级解决⽅案是Swift与Ceph,它们各有特点,可以参考搜索引擎上的对⽐,Hadoop⽣态体系中备受关注的是HBase MOB,另外轻量级的Minio也是⼀种⽐较好的选择。MongoDB也提供了⼤⽂件存储模块GridFS。建议根据实际情况做技术选型。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。