MinIO与Ceph调研

时间:2025-03-24 12:14:39

MinIO与Ceph调研

MinIO

1. 基本介绍

使用Go语言开发

2. 特点

可以作为存储也可以作为云存储的网关使用,兼容AS3,部分版本支持滚动升级(仍然建议使用 mc admin update 命令升级)

3.基本数据结构

Bucket:桶,文件存储的逻辑空间,与AS3的bucket定义相同

Object:文件数据,part.1源文件,文件元数据(meta)

内部结构

Drive:数据盘

Set:数据盘集合,minIO自动将Drive按照数量进行划分

文件存储结构

DataDrives:数据盘,存储Object原始数据

ParityDrives:纠删盘,存储Object的纠错数据

空间占比1:1,即Object在MinIO中的实际空间占用是硬盘文件系统的2倍

Block:纠删码(erasure code)计算单元,>10MB则每个Block大小为10MB,<10MB则每个Block大小为Object本身的大小。文件上传流读取时串行读取到一个Block大小的Buffer中。

DataShards和ParityShards:文件上传流每读取完一个Block,就会计算出对应的纠删码,生成DataShards和ParityShards(每一个Shards都是一个Block,按照业务功能称为DataShards或ParityShards),然后将DataShard存在DataDrive中,ParityShard存在ParityDrive中

4.数据完整性

纠删,

防Bitrot(数据衰减)技术,数据写入前计算hash,读取时再计算hash,通过比对hash来判定文件完整性

Ceph

1. 基本介绍

创始人已加入红帽

2. 特点

集块存储和文件存储为一身,支持大规模扩容,可管理超过10亿甚至更多的对象,Openshift的基础,内置安全和数据保护

3.基本数据结构

4.数据完整性

说老实话,我看完ceph架构,我都不想再看下去了,小项目造不起

MinIO与Ceph优缺点比较

  MinIO Ceph

存储方式

对象存储 块/文件/对象存储

一致性

强一致性 强一致性

数据保护

纠删码(最多16块盘) 副本/纠删码

学习成本

运维成本

中心节点

扩容方式

zone

只是单纯的增加存储空间

集群节点

扩容后性能增加

扩容需要重新平均数据分布,扩容期间性能有影响