一 MinIO简介
答:minio是混合云和多云对象存储。根据官网上的描述,MinIO 提供高性能、与S3 兼容的对象存储系统,让你自己能够构建自己的云储存服务。MinIO原生支持 Kubernetes,它可用于每个独立的公共云、每个 Kubernetes 发行版、私有云和边缘的对象存储套件。MinIO是软件定义的,不需要购买其他任何硬件,在 GNU AGPL v3 下是 100% 开源的。
没错,上面的描述感觉很生硬,但这确实是官网上的原文。
二 相关资料地址
- 社区地址 - slack.min.io
- 文档地址(文档推荐)- docs.min.io
- 中文文档-docs.minio.org.cn/docs/
- 博客地址- blog.min.io
- 官网地址- min.io
三 安装使用(mac环境)
3.1 参考文档
其他操作系统,可以参考官方技术文档,上面按照K8s,Docker,Linux,MacOS,Windows不同系统&环境提供了安装方案。根据需要参照操作即可。(吐个槽,写着是中文文档,实际上都是英文的,官网也骗人。)
3.2 mac下安装实践
3.2.1 server安装
先安装brew,之后通过brew安装:
brew install minio/stable/minio
安装日志如下:
Running `brew update --auto-update`...
==> Fetching minio
==> Downloading https://mirrors.ustc.edu.cn/homebrew-bottles//minio-20230504214430.arm64_big_sur.bottle.tar.gz
######################################################################################################################## 100.0%
==> Pouring minio-20230504214430.arm64_big_sur.bottle.tar.gz
==> Caveats
To restart minio after an upgrade:
brew services restart minio
Or, if you don't want/need a background service you can just run:
/opt/homebrew/opt/minio/bin/minio server --config-dir=/opt/homebrew/etc/minio --address=:9000 /opt/homebrew/var/minio
3.2.2 启动命令
从日志中可以看出已经给出了重启和启动命令。后台启动:brew services restart minio
非brew方式,直接启动:/opt/homebrew/opt/minio/bin/minio server --config-dir=/opt/homebrew/etc/minio --address=:9000 /opt/homebrew/var/minio
这里我们使用方式(2)启动,日志如下:
WARNING: Host local has more than 0 drives of set. A host failure will result in data becoming unavailable.
WARNING: Detected default credentials 'minioadmin:minioadmin', we recommend that you change these values with 'MINIO_ROOT_USER' and 'MINIO_ROOT_PASSWORD' environment variables
MinIO Object Storage Server
Copyright: 2015-0000 MinIO, Inc.
License: GNU AGPLv3
Version: RELEASE.2023-05-04T21-44-30Z (go1.20.4 darwin/arm64)
Status: 1 Online, 0 Offline.
S3-API: http://172.25.102.28:9000 http://127.0.0.1:9000
RootUser: minioadmin
RootPass: minioadmin
Console: http://172.25.102.28:53412 http://127.0.0.1:53412
RootUser: minioadmin
RootPass: minioadmin
Command-line: https://min.io/docs/minio/linux/reference/minio-mc.html#quickstart
$ mc alias set myminio http://172.25.102.28:9000 minioadmin minioadmin
Documentation: https://min.io/docs/minio/linux/index.html
Warning: The standard parity is set to 0. This can lead to data loss.
3.2.3 用户名密码修改
根据上述日志中的说明,minio的默认用户名和密码都是minioadmin,如果需要修改的话,是通过环境变量设置'MINIO_ROOT_USER' 和 'MINIO_ROOT_PASSWORD'这两个环境变量。例如,我们修改用户名和密码为:admin 和 admin,那么应该只需要在~/.bashrc中加入这两个变量配置,然后source ~/.bashrc就可以。
但通过实际验证,在mac下我们修改了 ~/.bashrc,但重新启动minio后发现并没有生效。
这就奇怪了。我们回顾一下环境变量的文件和优先级:
Mac 系统的环境变量,加载顺序为:/etc/profile /etc/paths ~/.bash_profile ~/.bash_login ~/.profile ~/.bashrc
其中/etc/profile和/etc/paths是系统级别的,系统启动就会加载,后面几个是当前用户级的环境变量*
后面3个按照从前往后的顺序读取,如果~/.bash_profile文件存在,则后面的几个文件就会被忽略不读了,如果~/.bash_profile文件不存在,才会以此类推读取后面的文件
~/.bashrc没有上述规则,它是bash shell打开的时候载入的。
所以难道是环境变量文件的选择问题?经过尝试,修改了/etc/profile,果然,这次可以了。
虽然还是报了错误,但已经说明是密码的规则要求,长度不能小于8;那我们按照要求修改就可以了。再次启动,提示启动成功,密码也完成修改:
通过http://127.0.0.1:9000 访问,页面如下:
点击查看Buckets时,发现Create Bucket是灰色,无法操作。并且在下方提示是权限问题。这里又 比较奇怪,刚刚我们设置的应该就是管理员的账号和密码,这里不应该出现。在退出登录再重新登录后,也刷新了一次页面,展示正常。看来是浏览器/页面服务的缓存问题,不知道算不算是一个bug。
四 页面操作
4.1 Bucket创建
接下来就是熟悉的对象存储通用操作,创建bucket和上传文件了。Minio对bucket的命名有如下图中的要求。这里主要提两点,(1)长度最小3最大63;(2)只能使用小写字母、数字。虽然写着可以用. 和 -,但实际使用时发现会报错,直接复制也不行。
4.2 上传图片
Rewind,倒回。有点“回滚”的意思。这里是在上一部创建bucket时,选择了打开Versioning(版本管理)带来的功能。如下所示,可以回到指定时间点的数据。
五 小结
本篇简要介绍了MinIO的一些基础知识和操作,以及安装和使用过程中遇到的一些坑。下篇开始将深入探讨MinIO的原理和使用场景等。