MinIO与Ceph调研

本文探讨了MinIO,一款用Go语言开发的对象存储服务,与其竞争对手Ceph在存储方式、一致性、数据保护和运维成本等方面的对比,特别关注了它们在数据完整性保障上的区别。Ceph以其全面的块/文件/对象存储和大规模扩容能力,但学习曲线较陡。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MinIO与Ceph调研

MinIO

1. 基本介绍

使用Go语言开发

2. 特点

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

3.基本数据结构

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

Object:文件数据,part.1源文件,xi.json文件元数据(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优缺点比较

 MinIOCeph

存储方式

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

一致性

强一致性强一致性

数据保护

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

学习成本

运维成本

中心节点

扩容方式

zone

只是单纯的增加存储空间

集群节点

扩容后性能增加

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

MinIO 是一个高性能的对象存储系统,兼容 Amazon S3 API。它不仅可以独立运行,还可以通过配置对接到 Ceph 这样的分布式存储系统作为后端。下面是将 MinIO 对接至 Ceph 后端的基本步骤: ### 配置 MinIO 使用 Ceph 存储 #### 步骤一:准备环境 首先需要准备好已经部署好的 Ceph 环境,并获取访问该集群所需的凭证信息如 `access key` 和 `secret key`。 #### 步骤二:安装 MinIO Server 你可以选择从源码编译、使用 Docker 或者下载官方提供的预构建包来安装 MinIO server。为了方便起见,这里推荐采用Docker的方式启动服务: ```bash docker pull minio/minio:latest ``` #### 步骤三:配置 MinIOCeph 为后端 当你打算让 MinIO 将数据实际存放到已有的 Ceph 中时,可以利用下面命令行选项指定连接细节(注意替换为你自己的值): ```bash export MINIO_ROOT_USER=<your_access_key> export MINIO_ROOT_PASSWORD=<your_secret_key> docker run -p 9000:9000 --name minio \ -e "MINIO_OPTS=--address :9000" \ -v /data:/data \ -v /config:/root/.minio/sys/config \ minio/minio s3 gateways ceph <ceph_monitors> <rgw_user_id> <use_ssl=false|true> ``` 其中 `<ceph_monitors>` 指的是你的 Ceph Monitor 地址列表;而 `<rgw_user_id>` 则是你之前创建用于访问RGW (RADOS Gateway) 的用户 ID 。如果你希望启用SSL加密通信,则设置最后一个参数为 true 即可。 完成上述操作之后,在浏览器中打开 http://<server_ip>:9000 并按照提示登录即可开始管理对象存储了! 请注意这只是一个简化的指南,具体实施过程中还需参照最新版本文档并结合自身情况进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值