栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

分布式文件存储系统Minio从入门到实战教程,看这篇文章就够了

分布式文件存储系统Minio从入门到实战教程,看这篇文章就够了

分布式文件存储系统MinIO

目录

1.分布式文件系统应用场景

1.1 Minio介绍

Minio优点 1.2 MinIO的基础概念1.3 纠删码EC(Erasure Code)1.4 存储形式1.5 存储方案 2. Minio环境搭建

2.1 单机部署

基于centos7基于docker 2.2 分布式集群部署2.3 Minio客户端使用 3. Minio Java Client使用

3.1 文件上传3.2 文件下载3.3 Spring boot整合minio

分布式文件系统MinIO教程,2021最新版【通俗易懂】


完整12P视频点此

目录

minio 版本:RELEASE.2021-07-*及以上

1.分布式文件系统应用场景

互联网海量非结构化数据的存储需求

电商网站:海量商品图片视频网站:海量视频文件网盘 : 海量文件社交网站:海量图片 1.1 Minio介绍

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

官网:https://min.io/ http://www.minio.org.cn/

对象存储服务(Object Storage Service,OSS)是一种海量、安全、低成本、高可靠的云存储服
务,适合存放任意类型的文件。容量和处理能力弹性扩展,多种存储类型供选择,全面优化存储成
本。

对于中小型企业,如果不选择存储上云,那么 Minio 是个不错的选择,麻雀虽小,五脏俱全。当然
Minio 除了直接作为对象存储使用,还可以作为云上对象存储服务的网关层,无缝对接到 Amazon S3、MicroSoft Azure。
在中国:阿里巴巴、腾讯、百度、中国联通、华为、中国移动等等9000多家企业也都在使用MinIO产
品。

Minio优点

部署简单: 一个single二进制文件即是一切,还可支持各种平台。minio支持海量存储,可按zone扩展(原zone不受任何影响),支持单个对象最大5TB;兼容Amazon S3接口,充分考虑开发人员的需求和体验;低冗余且磁盘损坏高容忍,标准且最高的数据冗余系数为2(即存储一个1M的数据对象,实际占用
磁盘空间为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…64} is divided into 4
sets each of size 16.)
1.3 纠删码EC(Erasure Code)

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

1.4 存储形式

文件对象上传到 MinIO ,会在对应的数据存储磁盘中,以 Bucket 名称为目录,文件名称为下一级目
录,文件名下是 part.1 和 xl.meta(老版本,最新版本如下图),前者是编码数据块及检验块,后者是元数据文件。

1.5 存储方案

2. Minio环境搭建

官方文档:https://docs.min.io/docs/
中文文档:http://docs.minio.org.cn/docs/ (没有及时更新,容易被坑)
minio支持多种server启动模式:

2.1 单机部署

minio server的standalone模式,即要管理的磁盘都在host本地。该启动模式一般仅用于实验环境、测
试环境的验证和学习使用。在standalone模式下,还可以分为non-erasure code mode和erasure code mode。
non-erasure code mode
在此启动模式下,对于每一份对象数据,minio直接在data下面存储这份数据,不会建立副本,也不会
启用纠删码机制。因此,这种模式无论是服务实例还是磁盘都是“单点”,无任何高可用保障,磁盘损坏就表示数据丢失。
erasure code mode
此模式为minio server实例传入多个本地磁盘参数。一旦遇到多于一个磁盘参数,minio server会自动
启用erasure code mode。erasure code对磁盘的个数是有要求的,如不满足要求,实例启动将失
败。 erasure code启用后,要求传给minio server的endpoint(standalone模式下,即本地磁盘上的目
录)至少为4个。

基于centos7



默认用户名密码minioadmin:minioadmin,修改默认用户名密码可以使用:

export MINIO_ROOT_USER=admin
export MINIO_ROOT_PASSWORD=12345678

默认的配置目录是${HOME}/.minio,可以通过–config-dir命令自定义配置目录:

./minio server --config-dir /mnt/config /mnt/data

控制台监听端口是动态生成的,可以通过–console-address ":port"指定静态端口

./minio server --console-address ":50000" /mnt/data


访问minio控制台: http://192.168.3.14:50000/dashboard

基于docker
docker run -p 9000:9000 --name minio 
-v /mnt/data:/data 
-v /mnt/config:/root/.minio 
minio/minio server /data

存在问题: 浏览器无法访问minio控制台,因为没有对外暴露控制台端口
对外暴露minio控制台的端口,通过–console-address ":50000"指定控制台端口为静态端口

docker run -p 9000:9000 -p 50000:50000 --name minio 
-v /mnt/data:/data 
-v /mnt/config:/root/.minio 
minio/minio server --console-address ":50000" /data

2.2 分布式集群部署 2.3 Minio客户端使用 3. Minio Java Client使用 3.1 文件上传 3.2 文件下载 3.3 Spring boot整合minio

未完待续…

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/751353.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号