minio 学习日记(1)| 青训营笔记

146 阅读3分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 8天

1.MinIO概述

MinIO是一种高性能的对象存储系统,可以运行在各种云平台和硬件设备上,包括本地硬件、云服务器、Docker容器和Kubernetes集群等。它支持AWS S3协议,因此可以轻松地与现有的S3应用程序和工具集成。

MinIO可以在分布式环境中运行,可以横向扩展,从而实现高可用性、高可扩展性和高性能的对象存储服务。它提供了多种数据保护和数据管理功能,包括数据加密、版本管理、生命周期管理、访问控制等。

MinIO可以通过Web界面、命令行界面、SDK、REST API等多种方式访问。它的部署和管理非常简单,可以快速部署、扩展和升级。

2.MinIO 基础概念

S3——Simple Storage Service,简单存储服务,这个概念是Amazon在2006年推出的,对象存储就是从那个时候诞生的。S3提供了一个简单Web服务接口,可用于随时在Web上的任何位置存储和检索任何数量的数据。

Object——存储到 Minio 的基本对象,如文件、字节流,Anything…

Bucket——用来存储 Object 的逻辑空间。每个 Bucket 之间的数据是相互隔离的。

Drive——部署 Minio 时设置的磁盘,Minio 中所有的对象数据都会存储在 Drive 里。

Set——一组 Drive 的集合,分布式部署根据集群规模自动划分一个或多个 Set ,每个 Set 中的 Drive 分布在不同位置。

  • 一个对象存储在一个Set上
  • 一个集群划分为多个Set
  • 一个Set包含的Drive数量是固定的,默认由系统根据集群规模自动计算得出
  • 一个SET中的Drive尽可能分布在不同的节点上

MinIO的架构设计

MinIO的架构设计是基于分布式对象存储服务的需求,主要包括以下几个核心组件:

  1. MinIO Server:MinIO服务端是一个高性能的对象存储服务器,它能够存储和检索大规模的数据对象,并支持多租户和多协议访问。MinIO Server通过水平扩展的方式,可以在集群中添加新的节点,从而提高性能和可用性。
  2. MinIO Client:MinIO客户端是用于与MinIO Server交互的工具,它可以通过命令行、API、SDK等方式访问MinIO Server,进行对象的上传、下载、删除、复制等操作。MinIO客户端还支持文件系统网关、NFS网关等特性,可以将对象存储服务映射到本地文件系统或远程文件系统。
  3. MinIO Gateway:MinIO Gateway是一个轻量级的网关,它提供了对AWS S3、Azure Blob等云对象存储的接口兼容性,从而使MinIO Server可以与其他云存储服务进行集成。通过MinIO Gateway,用户可以使用MinIO API操作其他云存储服务的对象,同时也可以将其他云存储服务的对象上传到MinIO Server中进行存储和管理。
  4. MinIO Erasure Code:MinIO Erasure Code是一种数据保护和冗余技术,它可以将数据切分成多个数据片段,并通过编码方式生成多个纠错片段。当数据发生故障时,MinIO Erasure Code可以从纠错片段中重建原始数据,从而确保数据的完整性和可用性。
  5. MinIO Console:MinIO Console是一个用于管理和监控MinIO Server的Web界面,它提供了节点状态、性能指标、访问日志等信息的可视化展示,方便用户进行集群管理和故障排除。