我是靠谱客的博主 名字长了才好记,这篇文章主要介绍对象存储解决方案MinIO、Ceph、S3 简介及部署指南,现在分享给大家,希望可以做个参考。

🚀 MinIO、Ceph、S3 简介及部署指南

MinIO、Ceph 和 Amazon S3 都是对象存储解决方案,适用于海量小文件存储、高并发访问场景,比如 图片、日志、备份、视频、AI 训练数据 等。


🔹 什么是 MinIO、Ceph、S3?

存储系统简介适用场景是否支持 S3 API
Amazon S3AWS 提供的云存储云存储(付费)✅(原生支持)
MinIO轻量级分布式对象存储,类似 S3,但可自建本地部署 S3 兼容存储,适合中小型项目✅(100% 兼容 S3 API)
Ceph分布式存储系统,支持块存储、对象存储、文件存储大规模分布式存储,适合企业级部署✅(支持 S3 API,但需要额外配置)

📌 简单理解:

  • MinIO = 轻量级 S3 兼容存储,部署简单,适合中小型业务。

  • Ceph = 企业级分布式存储,功能强大,适合大规模存储需求。

  • Amazon S3 = AWS 云存储,适合云端使用,但成本较高。


🛠 1. MinIO 部署(适合中小规模存储)

✅ 1.1 MinIO 单机部署

适用于小型项目,快速测试

📌 安装 MinIO

wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
mv minio /usr/local/bin/

📌 创建数据目录

mkdir -p /data/minio

📌 启动 MinIO

minio server /data/minio --console-address ":9001"

默认访问地址:

  • Web 管理界面:http://服务器IP:9001

  • API 访问地址:http://服务器IP:9000

📌 创建访问账户

export MINIO_ROOT_USER=admin
export MINIO_ROOT_PASSWORD=admin123

📌 安装 MinIO 客户端(mc)

wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
mv mc /usr/local/bin/

📌 配置 MinIO

mc alias set myminio http://localhost:9000 admin admin123
mc mb myminio/mybucket  # 创建存储桶
mc cp test.jpg myminio/mybucket/  # 上传文件


✅ 1.2 MinIO 分布式集群部署

适用于高并发存储、多节点分布式

📌 假设有 4 个节点(192.168.1.1 ~ 192.168.1.4),每个节点有 2 块磁盘

minio server http://192.168.1.{1...4}/mnt/disk{1...2} --console-address ":9001"

📌 关键配置

  • 最少 4 个节点,每个节点 2 块磁盘(共 8 份数据)

  • 自动负载均衡,支持断点续传

  • 兼容 S3 API,可以用 AWS SDK 访问


🛠 2. Ceph 部署(适合企业级存储)

Ceph 适合大规模存储(PB 级别),支持 对象存储、块存储、文件存储,但比 MinIO 复杂。

📌 Ceph 主要组件

组件作用
MON(Monitor)维护集群状态
OSD(Object Storage Daemon)负责存储数据
MDS(Metadata Server)用于 CephFS(文件存储)
RGW(Rados Gateway)提供 S3 兼容 API

✅ 2.1 Ceph 部署(单节点测试环境)

📌 安装 Ceph

sudo apt update
sudo apt install -y ceph

📌 初始化 Ceph

ceph-deploy new mon1  # mon1 是 Monitor 节点
ceph-deploy install mon1 osd1 osd2  # 安装 Ceph
ceph-deploy mon create-initial  # 创建 Monitor

📌 创建 OSD(数据存储)

ceph-deploy osd create --data /dev/sdb osd1
ceph-deploy osd create --data /dev/sdc osd2

📌 启用 S3 兼容 API

ceph mgr module enable rgw
radosgw-admin user create --uid=admin --display-name "Admin User"

📌 访问 Ceph

s3cmd --configure  # 配置 S3 访问密钥
s3cmd mb s3://mybucket  # 创建存储桶
s3cmd put test.jpg s3://mybucket/  # 上传文件

🚀 Ceph 适用于

  • 企业级存储

  • PB 级别海量数据

  • 支持块存储(类似 SAN)、文件存储(类似 NFS)

  • 兼容 S3,可用于对象存储


🛠 3. Amazon S3(云端存储)

如果你不想自己搭建 MinIO/Ceph,可以直接使用 AWS S3:

  1. 注册 AWS 账号

  2. 创建 S3 存储桶

  3. 使用 SDK 访问

📌 Golang 访问 S3 示例

package main

import (
	"bytes"
	"fmt"
	"log"

	"github.com/aws/aws-sdk-go/aws"
	"github.com/aws/aws-sdk-go/aws/session"
	"github.com/aws/aws-sdk-go/service/s3"
)

func main() {
	sess := session.Must(session.NewSession(&aws.Config{
		Region: aws.String("us-east-1"),
	}))

	svc := s3.New(sess)

	_, err := svc.PutObject(&s3.PutObjectInput{
		Bucket: aws.String("mybucket"),
		Key:    aws.String("test.txt"),
		Body:   bytes.NewReader([]byte("Hello S3")),
	})
	if err != nil {
		log.Fatal(err)
	}

	fmt.Println("上传成功")
}

📌 AWS S3 适合

  • 不想维护存储,直接使用云存储

  • 支持全球 CDN 加速

  • 按需付费,适合大规模存储


🚀 选型建议

需求推荐存储适用场景
小规模存储(TB 级)MinIO私有云存储,兼容 S3 API,易于部署
大规模存储(PB 级)Ceph企业级存储,支持对象、块、文件
云存储Amazon S3无需运维,按需付费


🎯 总结

  • MinIO适合本地部署 S3 存储,简单易用

  • Ceph适合企业级大规模存储,复杂但强大

  • S3适合云存储,AWS 维护,无需自己运维

如果你的需求是 自己搭建一个 S3 兼容存储MinIO 是最佳选择! 🚀

最后

以上就是名字长了才好记最近收集整理的关于对象存储解决方案MinIO、Ceph、S3 简介及部署指南的全部内容,更多相关对象存储解决方案MinIO、Ceph、S3内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(291)

评论列表共有 0 条评论

立即
投稿
返回
顶部