程序员的资源宝库

网站首页 > gitee 正文

minio分布式文件存储系统 minio分布式存对象存储

sanyeah 2024-03-29 16:53:57 gitee 7 ℃ 0 评论

1什么是minio?

MinlO是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据。例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。MinlO是一个非常轻量的服务 可以很简单的和其他应用的结合,类似NodeJS, Redis或者MySQL
minio官方文档地址:https://docs.min.io/cn/
minio的源码地址:https://github.com/minio/minio

minio安装及部署 https://min.io/download#/linux

https://blog.csdn.net/qq_39522120/article/details/127303458

https://blog.csdn.net/Java_Mr_Jin/article/details/125643455

启动minio;   nohup ./minio server --address :9000 --console-address :9001 /www/wwwroot/go/minio > /www/wwwroot/go/minio/minio.log &

查看状态:   ps -  ef|grep   minio

 

Golang使用gin框架上传文件到MinIO

https://blog.csdn.net/reachyu/article/details/106425040

 

 

1.1MinIO的优点
●部署简单:一个single二进制文件即是一切,还可以支持各种平台。

●minio支持海量存储,可按2one打展(原zone不受任何影响),支持单个对象最大5TB;

兼容Amazon S3接口,充分考虑开发人员的需求和体验;

●低冗余且磁盘损坏高容忍,标准且最高的数据冗余系数为2(即存储一个1 M的数据对象,实际占用磁盘空间为2M)。但在任意n/2块disk损坏的情况下依然可以读出数据(n为一个纠删码集合(Erasure Coding Set)中的disk数量)。并且这种损坏恢复是基于单个对象的,而不是基于整个存储卷的。

●读写性能优异

1.2、MinIO的基础概念
● Object: 存储到Minio的基本对象,如文件、字节流,Anything..

● Bucket:用来存储Object的逻辑空间。每个Bucket之间的数据是相互隔离的。对于客户端而言,就相当于一个存放文件的顶层文件夹。

● Drive: 即存储数据的磁盘,在MinIO启动时,以参数的方式传入。Minio 中所有的对象数据都会存储在Drive里。

● Set:即一组Drive的集合,分布式部署根据集群规模自动划分一 个或多个Set, 每个Set中的Drive分布在不同位置。一个对象存储在一个Set 上。(For example: {1..44} is divided into 4 sets each of size 16.)

● 一个对象存储在一 个Set上

● 一个集群划分为多个Set

● 一个Set包含的Drive数显是固定的,默认由系统根据集群规模自动计算得出

● 一个SET中的Drive尽可能分布在不同的节点上

1.3纠删码EC (Erasure Code)
MinIO使用纠删码机制来保证高可靠性,使用highwayhash来处理数据损坏( Bit Rot Protection)。关于纠删码,简单来说就是可以通过数学计算,把丢失的数据进行还原,它可以将n份原始数据,增加m份数据,并能通过n+m份中的任意n份数据,还原为原始数据。

即如果有任意小于等于m份的数据失效,仍然能通过剩下的数据还原出来。

1.4存储形式
文件对象上传到MinlO ,会在对应的数据存储磁盘中,以Bucket名称为目录,文件名称为下一级目录,文件名下是xl.meta,通过奇偶的形式存储 编码数据块及检验块和元数据文件。

如:

有data01,data02,data03,data04 四块盘

其中奇数盘:data01和data03中存储的是编码数据块及检验块(EC码)

偶数盘:data02和data04 存储的是元数据文件

1.5存储方案
————————————————

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表