当前位置: 首页 > news >正文

【MinIO】对象存储核心概念

👻创作者:丶重明
👻创作时间:2025年3月30日
👻擅长领域:运维

目录

  • 1. 对象存储:重新定义存储方式
    • 1.1.存储类型对比
    • 1.2.对象存储四大核心要素
  • 2. MinIO核心技术特性
    • 2.1.原生S3兼容性
    • 2.2.纠删码(Erasure Code)技术
    • 2.3.分布式架构设计
    • 2.4.高性能表现
    • 2.5.多云就绪
  • 3.MinIO应用场景
    • 3.1.适合哪些场景
    • 3.2.不适合场景

引言

相较于传统存储方案,对象存储以其高扩展性和易用性脱颖而出。
MinIO凭借S3兼容、高性能和轻量级设计,正成为企业构建私有云存储的首选。

1. 对象存储:重新定义存储方式

1.1.存储类型对比

在理解MinIO之前,先看看常用的几种存储类型:

特性块存储文件存储对象存储
数据单位块(Block)文件(File)对象(Object)
结构模型无结构树状目录扁平命名空间
访问协议iSCSI, FCNFS, SMBHTTP(S)/S3 API
典型场景数据库存储企业文件共享图片/视频存储

区别:

比如现在需要存储10张用户头像:

  • 文件存储:需创建/users/{id}/avatar.jpg的目录结构
# 比如用户的id是001时
touch /users/001/avatar.jpg

# 目录结构
/users/
└── 001
    └── avatar.jpg
  • 对象存储:直接以user_001_avatar.jpg为键存储,通过元数据标记用户ID
# 使用minio存储用户头像
mc cp 22222.jpg myminio/test-bucket/user_001_avatar.jpg --attr "user-id=001"

# 查看对象信息
Name      : user_001_avatar.jpg
Date      : 2025-03-30 09:18:46 CST 
Size      : 239 KiB 
ETag      : e72d99ac5af6710744a5f36171fa9bab 
Type      : file 
Metadata  :
  X-Amz-Meta-User-Id: 001 
  Content-Type      : image/jpeg 

1.2.对象存储四大核心要素

  1. 桶(Bucket)

相当于存储对象的“文件夹”,但需注意:

  • 全局唯一命名(如company-photos)
  • 可设置地域属性(如us-east-1)
  • 支持生命周期策略(自动删除30天前的日志)
  1. 对象(Object)

包含三个部分:

  • 数据:文件的二进制内容
  • 元数据:描述性信息(如Content-Type: image/png)
  • 唯一键:类似文件路径(如projects/2023/report.pdf)
  1. 区域(Region)

物理数据中心的地理位置标识,直接影响:

  • 数据合规性(如GDPR要求欧盟数据本地化)
  • 访问延迟(就近存储提升速度)
  1. 端点(Endpoint)

访问MinIO服务的入口地址,例如:

  • 内网地址:http://10.0.0.100:9000
  • 公网域名:https://s3.yourcompany.com

2. MinIO核心技术特性

2.1.原生S3兼容性

  • 无缝迁移:已有基于AWS S3的应用只需修改Endpoint即可接入

  • 工具生态:兼容所有S3 SDK(Python/boto3、Java/aws-sdk)

  • 认证机制:支持AWS Signature v4签名算法

2.2.纠删码(Erasure Code)技术

数据分片原理:

将文件分为N个数据块 + M个校验块,最多允许丢失M个块
(例如4+2配置可容忍2节点故障)

比如我有6台服务器,每台一块磁盘
4个数据块分布在4台服务器:D1\D2\D3\D4
2个校验快分布在另外两台服务器:P1\P2
这时最多可以坏两个节点服务器(无论数据还是校验),仍可恢复数据

优势对比:

荣誉方式存储开销容错能力
3副本200%2节点
纠删码6+350%3节点
场景一:3副本
配置:3台服务器各存一份数据
故障:2台宕机
结果:从第3台读取数据

场景二:纠删码6+3
配置:9台服务器
故障:3台宕机
结果:通过剩余 6 台服务器的块计算恢复数据

2.3.分布式架构设计

  • 最小集群:4节点起步,推荐使用8节点实现高可用
  • 4节点无容错能力,容错能力最小需要6节点

扩展方式:

  • 横向扩展:添加新节点,数据自动均衡

  • 纵向扩展:单节点增加磁盘(需相同容量)

2.4.高性能表现

基准测试数据

  • 32节点集群可达1.6 TB/s吞吐量

  • 单个GET/PUT操作延迟低于1ms(SSD环境)

2.5.多云就绪

  • 混合云支持:可同时对接AWS S3、Google Cloud Storage等公有云

  • 数据迁移工具:mc mirror命令实现跨云同步

# 本地桶同步到阿里云
mc mirror myminio/source-bucket aliyun-oss/target-bucket

3.MinIO应用场景

3.1.适合哪些场景

  • 数据湖存储:集中管理原始日志、IoT设备数据

  • 备份归档:替代磁带库,结合生命周期策略自动分层

  • 云原生存储:为Kubernetes提供持久化卷(通过CSI驱动)

3.2.不适合场景

  • 高频更新:如关系型数据库的redo日志

  • 低延迟事务:如OLTP系统的实时交易

架构图:

                        [ Client ]
                            |+------------------+
                    |  Load Balancer  |
                    +------------------+
                            |+----------------+   +----------------+   +----------------+   +----------------+
|   MinIO Node1  |   |   MinIO Node2  |   |   MinIO Node3  |   |   MinIO Node4  |
| +------------+ |   | +------------+ |   | +------------+ |   | +------------+ |
| |  Drive 1   | |   | |  Drive 1   | |   | |  Drive 1   | |   | |  Drive 1   | |
| +------------+ |   | +------------+ |   | +------------+ |   | +------------+ |
| +------------+ |   | +------------+ |   | +------------+ |   | +------------+ |
| |  Drive 2   | |   | |  Drive 2   | |   | |  Drive 2   | |   | |  Drive 2   | |
| +------------+ |   | +------------+ |   | +------------+ |   | +------------+ |
| +------------+ |   | +------------+ |   | +------------+ |   | +------------+ |
| |  Drive 3   | |   | |  Drive 3   | |   | |  Drive 3   | |   | |  Drive 3   | |
| +------------+ |   | +------------+ |   | +------------+ |   | +------------+ |
| +------------+ |   | +------------+ |   | +------------+ |   | +------------+ |
| |  Drive 4   | |   | |  Drive 4   | |   | |  Drive 4   | |   | |  Drive 4   | |
| +------------+ |   | +------------+ |   | +------------+ |   | +------------+ |
+----------------+   +----------------+   +----------------+   +----------------+
                            |                |                |
                            ▼                ▼                ▼
                   [纠删码分片存储]      [数据冗余恢复]      [全局一致性]

相关文章:

  • linux中jar命令
  • C++之输入与输出
  • 【MySQL基础-17】MySQL数字函数详解:从基础到高级应用
  • Arthas线上问题诊断器
  • 进程相关概念
  • 3. HTTP协议
  • 局域网数据同步软件,局域网数据备份的方法
  • Linux驱动开发-①I2C驱动②spi驱动③uart驱动
  • UE中不同摄像机震动的区别Camera Shake
  • 分布式系统
  • P9246 [蓝桥杯 2023 省 B] 砍树-题解(最近公共祖先LCA + 树上差分)
  • Matlab人脸识别考勤系统【PCA(主成分分析)+ SVM(支持向量机)】
  • 知识表示方法之四:语义网络表示法(Semantic Network Representation)
  • 脑疾病分类的疑惑【6】:脑疾病分类比较适合使用具有哪些特点的模型?
  • OpenIPC开源FPV之Adaptive-Link关键RF参数
  • python下载m3u8格式视频
  • 【前端】【React】第三章:深入理解 React 事件处理与性能优化
  • MySQL日期时间函数
  • Redis 源码硬核解析系列专题 - 第五篇:事件驱动模型与网络层
  • AutoCAD Map 3D:CAD与GIS集成工具