对象存储——Minio初探

2023年 7月 14日 146.6k 0

一 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的原理和使用场景等。

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论