分布式对象存储解决方案

OSS(Object Storage Service)俗称对象存储,主要提供图片、文档、音频、视频等二进制文件的海量存储功能。目前除了公有云提供对象存储服务外,一般私有云比较关心一些开源的分布式对象存储解决方案,本文列举了一些常见的技术方案供参考。

概念普识

块存储

通常SAN(Storage Area Network)结构的产品属于块存储,比如我们常见的硬盘、磁盘阵列等物理盘。

文件存储

一般NAS(Network Attached Storage)产品都是文件级存储,如Ceph的CephFS,另外 GFS、HDFS等也属于文件存储 。

对象存储

同时兼顾着SAN高速直接访问磁盘特点及NAS的分布式共享特点的一类存储,一般是通过RESTful接口访问。

开源解决方案介绍

Swift

Swift 是 OpenStack 社区核心子项目,是一个弹性可伸缩、高可用的分布式对象存储系统,使用Python语言实现,采用 Apache 2.0 许可协议。

Swift 提供一个基于RESTful HTTP接口的 Object Storage API,用于创建,修改和获取对象和元数据。用户可以使用 Swift 高效、安全且廉价地存储大量数据。Swift 整体架构:

总的来说,企业如果想要建立可扩展的分布式对象存储集群,可以考虑 Swift。

Ceph

Ceph是一种高性能、高可用、可扩展的分布式存储系统,统一的对外提供对象存 储、块存储以及文件存储功能,底层使用C/C++语言。

其中对象存储功能支持 2 种接口:

1、兼容S3:提供了对象存储接口,兼容 S3 RESTful 接口的一个大子集。

2、兼容Swift:提供了对象存储接口,兼容 Openstack Swift 接口的一个大子集。

Ceph是一个企业级分布式存储系统,功能强大,不仅可以为企业建立对象存储服务,还可以帮助企业建立自己的云平台,具有广泛的应用场景特别是在云环境下使用广泛。

Minio

Minio是一个企业级、兼容S3接口的对象存储系统。Minio基于 Apache 2.0 许可协议,采用 Go语言实现,客户端支持Java、Python、Go等多种语言,是一种轻量级、高并发的开源解决方案,可以作为云存储方案用来保存海量的图片,视频,文档等。

大数据集成方面,Minio支持各种常见的查询计算引擎,比如Spark、Presto、Hive以及Flink等,可以使用这些处理框架查询分析对象数据,此外,Minio支持Parquet,Json、Csv格式等多种文件存储格式,包括压缩与编码。更多特性可以参考官网 地址https://min.io。Minio架构:

Minio主要为人工智能、机器学习而设计,并适用于其他大数据负载。从架构与功能方面考虑,Minio是一个比较好的开源对象存储解决方案。

到这里,也给大家推荐一个架构交流学习群:710373545,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,相信对于已经工作和遇到技术瓶颈的码友,在这个群里会有你需要的内容。

HBase MOB

这是利用HBase的MOB特性支持对象存储功能。Apache HBase2.0 版本开始支持中等对象存储(Medium Object Storage,简称 MOB),这个特性使得HBase能够非常良好的存储大小在100KB-10M的图片、文档、音频、短视频等二进制数据。

架构如上,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

Ozone是 Apache Hadoop 的子项目,为了提供分布式、可扩展的对象存储功能,主要是为了弥补HDFS在小文件存储方面的不足之处。Ozone建立在一个高可用、支持块复制的Hadoop分布式数据存储层之上,称为Hadoop Distributed Data Store(HDDS),上层可对接 Spark、Hive 以及 Yarn 等计算调度引擎。 但是目前还处于alpha内部测试版本,暂时不建议生产环境中使用。

总结

对象存储主要是解决海量图片、文档、音视频的存储,其中主流的重量级解决方案是Swift与Ceph,它们各有特点,可以参考搜索引擎上的对比,Hadoop生态体系中备受关注的是HBase MOB,另外轻量级的 Minio也是一种比较好的选择。MongoDB也提供了大文件存储模块GridFS。建议根据实际情况做技术选型 。

分布式对象存储解决方案相关推荐

  1. 如何从零起步搭建一个分布式对象存储的架构

    早在几年前,云存储还只是存在于业界大佬们口中的一个概念,其应用场景仅供大公司使用.突飞猛进的网络技术似乎在一瞬间就把这个概念普及到千家万户,现在云存储已经是大家司空见惯的一个网络服务了.比如大家用的百 ...

  2. 分布式存储--理解分布式文件系统、分布式块存储、分布式对象存储、分布式数据库

    1. 单机文件系统 vs 分布式文件系统 传统单机文件系统是计算机中一个非常重要的组件,为存储设备提供一致的访问和管理方式.在不同的操作系统中,文件系统会有一些差别,但也有一些共性几十年都没怎么变化: ...

  3. ABC Storage私有云全闪对象存储解决方案,AI时代数字经济的核动力

    "水大鱼大"是北京大学国家发展研究院周其仁教授对吴晓波"对于2008-2017过往的十年,如果用一个词来形容,您的答案是什么?"这一问题的回答,也是<激荡 ...

  4. python分布式对象存储_推荐:一款分布式的对象存储服务

    最近公司在准备内部数据上云,并且内部数据库每天的数据量很大,需要采用大数据存储的方案. 方案调研 每个程序技术在实现之前,需要进行开源产品的调研,适合自己产品的技术方案才是最好的. 需求 我们需要处理 ...

  5. 分布式对象存储 读书笔记(一) 开始

    这是 <分布式对象存储 原理架构及Go语言实现>的学习笔记的第一篇 我们简单的实现一个REST(表述性状态传递,英文:Representational State Transfer)服务接 ...

  6. 对象存储搭建文件服务器,搭建分布式对象存储服务MinIO-单点模式

    # 搭建分布式对象存储服务 MinIO-单点模式 本文介绍开源的分布式对象存储服务 MinIO 的单点模式的搭建步骤.对象存储系统相比于传统的 NAS 文件系统有很多的优势,访问效率高.方便扩容,支持 ...

  7. Apache基金会正式宣布新一代分布式对象存储Ozone成为顶级项目

    刚刚获悉,Apache基金董事会通过一致表决,正式批准分布式文件对象存储Ozone从Hadoop社区孵化成功,成为独立的Apache顶级开源项目.这意味着,作为腾讯大数据团队首个参与和主导的开源项目, ...

  8. minio分布式对象存储

    介绍 Minio的冗余 (纠删码可以在丢失一半-1的盘的情况下,仍可以保证数据安全) 采用纠删码来防范多个节点宕机和位衰减. 分布式至少需要4个节点(4台服务器),使用分布式 Minio 就自动引入了 ...

  9. 分布式对象存储设计原理

    保存像图片.音视频这类大文件就是对象存储.不仅有很好的大文件读写性能,还可通过水平扩展实现近乎无限容量,并兼顾服务高可用.数据高可靠. 对象存储"全能",主要因,对象存储是原生分布 ...

  10. Minio分布式对象存储的部署与使用

    一.部署 下载Minio直接Github搜索即可,minio/minio: Multi-Cloud Object Storage 1.1 单机部署 单机部署命令,指定静态端口9001. 一般会占用两个 ...

最新文章

  1. 操作无法完成后台打印程序无法运行
  2. Leangoo敏捷项目管理软件做多团队大规模敏捷
  3. python数据导入一个列表_Python基础数据类型list 列表
  4. BZOJ5212 ZJOI2018历史(LCT)
  5. TempTable临时表
  6. 网游源码完整服务端_【每日源码】微人事是一个前后端分离的人力资源管理系统,项目采用SpringBoot+Vue开发。...
  7. Axis1.4容器WebService服务发布过程
  8. 华硕x205ta小本驱动下载页面
  9. 一元多次方程C语言,C语言解决多元多次方程.(19页)-原创力文档
  10. linux performance test
  11. 微信小程序|智能停车系统中车牌计费功能实现
  12. 利用云服务器搭建解锁网易云变灰歌曲的代理
  13. 使用cartopy画飞机的航线
  14. 为何干电池是1.5v?而充电电池是1.2v?
  15. 科目三 流程 记录 LTS
  16. 《卓有成效的管理者》读书笔记(一)——推荐序四
  17. 只有mdf文件和ldf文件--怎么恢复数据库
  18. goods购物表MySQL的代码_第一节:数据库及表
  19. 南京廖华微型计算机原理答案,微机原理课后习题答案解析
  20. 仙剑5手游服务器维护,《仙剑奇侠传》手游维护内容官方解答

热门文章

  1. Practical JXTA II
  2. waitpid使用实例
  3. 杨力祥老师《高级Windows程序设计》课程短评
  4. android 信鸽 小米推送,小米推送通道集成指南
  5. svn使用方法以及使用教程
  6. sql_全国省市区、邮编、经纬度、城市拼音、电话区号
  7. Matlab R2008a破解
  8. vmware workstation 12 打开vm14 不兼容问题解决
  9. 如何用matlab画圆的图像,matlab在图像上画圆
  10. 怎么检查计算机和打印机是否连接网络,检查电脑是否正确连接网络打印机