Docker安装Minio存储服务器详解

1、 前言

1.1 Minio 简介

  • 1、MinIO 是在 Apache License v2.0 下发布的对象存储服务器。 它与 Amazon S3 云存储服务兼容。 它最适合存储非结构化数据,如照片,视频,日志文件,备份和容器/ VM 映像。 对象的大小可以从几 KB 到最大 5TB。
  • 2、MinIO 服务器足够轻,可以与应用程序堆栈捆绑在一起,类似于 NodeJS,Redis 和 MySQL
  • 3 一种高性能的分布式对象存储服务器,用于大型数据基础设施。它是机器学习和其他大数据工作负载下Hadoop HDFS 的理想 s3 兼容替代品

2 、 为什么要用 Minio

2.1 选择它的理由

  • 1、Minio 有良好的存储机制
  • 2、Minio 有很好纠删码的算法与擦除编码算法
  • 3、拥有RS code 编码数据恢复原理
  • 4、公司做强做大时,数据的拥有重要性,对数据治理与大数据分析做准备。
  • 5、搭建自己的一套文件系统服务,对文件数据进行安全保护。
  • 6、拥有自己的平台,不限于其他方限制。

2.2 存储机制

  • Minio使用纠删码erasure code和校验和checksum来保护数据免受硬件故障和无声数据损坏。 即便丢失一半数量(N/2)的硬盘,仍然可以恢复数据。

2.3 纠删码

  • 纠删码是一种恢复丢失和损坏数据的数学算法,目前,纠删码技术在分布式存储系统中的应用主要有三类,阵列纠删码(Array Code: RAID5、RAID6 等)、RS(Reed-Solomon)里德-所罗门类纠删码和 LDPC(LowDensity Parity Check Code)低密度奇偶校验纠删码。Erasure Code 是一种编码技术,它可以将 n 份原始数据,增加 m 份数据,并能通过 n+m 份中的任意 n 份数据,还原为原始数据。即如果有任意小于等于 m 份的数据失效,仍然能通过剩下的数据还原出来

2.4 RS code 编码数据恢复原理

  • RS 编码以 word 为编码和解码单位,大的数据块拆分到字长为 w(取值一般为 8 或者 16位)的 word,然后对 word 进行编解码。 数据块的编码原理与 word 编码原理相同,后文中以 word 为例说明,变量 Di, Ci 将代表一个 word。把输入数据视为向量 D=(D1,D2,..., Dn), 编码后数据视为向量(D1, D2,..., Dn, C1, C2,.., m),RS 编码可视为如下(图 1)所示矩阵运算。图 1 最左边是编码矩阵(或称为生成矩阵、分布矩阵,Distribution Matrix),编码矩阵需要满足任意 n*n 子矩阵可逆。为方便数据存储,编码矩阵上部是单位阵(n 行 n 列),下部是m 行 n 列矩阵。下部矩阵可以选择范德蒙德矩阵或柯西矩阵。


    RS code

RS 最多能容忍 m 个数据块被删除。 数据恢复的过程如下:
(1)假设 D1、D4、C2 丢失,从编码矩阵中删掉丢失的数据块/编码块对应的行。(图 2、3)
(2)由于 B' 是可逆的,记 B'的逆矩阵为 (B'^-1),则 B' * (B'^-1) = I 单位矩阵。两边左乘 B'
逆矩阵。 (图 4、5)
(3)得到如下原始数据 D 的计算公式 。

RS

2.5 擦除代码

  • MinIO 使用每个对象的内联擦除编码来保护数据,这种编码是用汇编代码编写的,可以提供尽可能高的性能。MinIO 使用 Reed-Solomon 代码将对象条带化为 n/2 数据和 n/2 奇偶校验块——尽管这些可以配置为任何所需的冗余级别。这意味着在 12 个驱动器设置中,一个对象被分割为 6 个数据和 6 个奇偶校验块。即使您丢失了 5 个(n/2) -1 个驱动器,无论是奇偶校验还是数据,您仍然可以从剩余驱动器可靠地重构数据。MinIO 的实现确保即使多个设备丢失或不可用,也可以读取对象或写入新对象。最后,MinIO 的擦除代码在对象级别,可以一次治愈一个对象。
擦除代码

2.6 体系结构

  • 1、MinIO 支持从机器学习到备份的一系列现代工作负载
  • 2、使用云本地技术并分解计算和存储层
  • 3、创建高效和可伸缩的对象存储解决方案。


    体系结构

3 、Linux 安装准备工作

3.1 搜索镜像

  • 1 搜索镜像的命令
docker search minio
  • 2 搜索镜像命令的结果信息
  • 搜索镜像命令的结果信息

3.2 拉取镜像

  • 1 拉取镜像的命令
docker pull minio/minio
  • 2 拉取镜像命令的结果信息
  • 拉取镜像命令的结果信息

3.3 启动与安装镜像

  • 1、这种安装方式并没有指定 ACCESS_KEY 和 SECRET_KEY 进行设置,安装后可以进行 echo命令设置,
docker run -it -p 9000:9000 -d minio/minio server /data
  • -it 表示运行参数,-p 表示暴露端口 ,-d 表示后台运行,data 指定目录存放文件
  • 2、echo 命令设置 ACCESS_KEY 和 SECRET_KEY
echo "admin" | docker secret create access_key -
echo "admin123456" | docker secret create secret_key -

3.4 自定义用户和秘钥安装

  • 1、这种安装方式 MinIO 自定义 Access 和 Secret 密钥要覆盖 MinIO 的自动生成的密钥,您可以将 Access 和 Secret 密钥设为环境变量。MinIO 允许常规字符串作为 Access 和 Secret 密钥
docker run -p 9000:9000 --name minio \
-d --restart=always \
-e "MINIO_ACCESS_KEY=admin" \
-e "MINIO_SECRET_KEY=admin123456" \
-v /home/data:/data \
-v /home/config:/root/.minio \
minio/minio server /data
  • 2 输出的结果


    输出的结果

3.5 查看运行镜像

  • 1 查看运行镜像命令
[root@localhost /]# docker ps -a
  • 2 查看运行镜像的结果信息


    结果信息

3.6 查看安装 logs 信息

  • 1 通过指定容器 id 查看安装 minio 的信息
docker logs ea407f6b446c
  • 2 minio 安装的日志信息,其中 AccessKey 和 SecretKey 是登陆 minio 客户端的用户名和秘钥
Endpoint: http://172.17.0.5:9000 http://127.0.0.1:9000
AccessKey: 4RUAAMD4JVDTSYFZAIIU
SecretKey: mn5fYWV2CPtENTS6XHQqRB+j+NNjI3w79qcdQ4VZ
Browser Access:
http://172.17.0.5:9000 http://127.0.0.1:9000
Command-line Access: https://docs.min.io/docs/minio-client-quickstart-guide
$ mc config host add myminio http://172.17.0.5:9000 4RUAAMD4JVDTSYFZAIIU
mn5fYWV2CPtENTS6XHQqRB+j+NNjI3w79qcdQ4VZ
Object API (Amazon S3 compatible):
Go: https://docs.min.io/docs/golang-client-quickstart-guide
Java: https://docs.min.io/docs/java-client-quickstart-guide
Python: https://docs.min.io/docs/python-client-quickstart-guide
JavaScript: https://docs.min.io/docs/javascript-client-quickstart-guide
.NET: https://docs.min.io/docs/dotnet-client-quickstart-guide

3.7 登录客户端

  • 1 浏览器输入地址进行登录
http://192.168.1.133:9000
  • 2 浏览器输入 AccessKey 和 SecretKey


    登录.png
  • 3、授权失败

出现 Authentication failed, check your access credentials 一般表示 AccessKey 和 SecretKey 输入不正确


授权失败
  • 4、成功登陆界面


    界面.png

3.8 新建桶注意事项

  • minio client 不支持有下划线的桶名称(bucket name)命名,支持中划线的命名,故所有桶的名称建议中划线或者无中划线进行命名。


    新建桶注意事项.png

3.9 修改用户名和秘钥

修改用户名和秘钥.png

4 、Windows 安装准备工作

4.1 、在 Docker 安装

  • 前提 Windows 上安装 Docker 容器,然后输入下面的命令.
docker run -p 9000:9000 --name minio1 \
-d --restart=always \
-e "MINIO_ACCESS_KEY=admin" \
-e "MINIO_SECRET_KEY=admin123456" \
-v E:\minio:/data \
-v E:\minio\config:/root/.minio \
minio/minio server /data
  • -v 表示数据卷 volume 、 -e 指定环境变量 env 、E:\minio 指定磁盘目录

4.2 、非 Docker 安装

  • 1、指定客户端和目录加上 server 关键字进行绑定,然后回车进行启动
minio.exe server E:\minio
minio
  • 2、 生成秘钥和 key


    生成秘钥和 key
  • 3、 生成的目录和文件


    image.png

备注:其中 buckets 在后台新建一个桶的时候 minio 会维护一个文件夹,这个文件夹会维护fs.json 文件系统 json

5 、总结与建议

5.1 总结与建议

  • 1 、以上问题根据搭建 Minio 实际情况进行总结整理,除了技术问题查很多网上资料通过进行学习之后梳理与分享。

  • 2、 在学习过程中也遇到很多困难和疑点,如有问题或误点,望各位老司机多多指出或者提出建议。本人会采纳各种好建议和正确方式不断完善现况,人在成长过程中的需要优质的养料。

  • 3、 希望此文章能帮助各位老铁们更好去了解如何在 Docker 里面安装 Minio,也希望你看了此文章或者通过找资料进行手动实操一遍学习效果会更好。

5.2 Minio官方与文档

更系统的学习与资料,请参考官方文档
官方地址
官方文档
中文官方地址

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,723评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,485评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,998评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,323评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,355评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,079评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,389评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,019评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,519评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,971评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,100评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,738评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,293评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,289评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,517评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,547评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,834评论 2 345

推荐阅读更多精彩内容