写点什么

对象存储——Minio 初探

  • 2023-05-06
    北京
  • 本文字数:2347 字

    阅读完需:约 8 分钟

对象存储——Minio初探

一 MinIO 简介

答:minio 是混合云和多云对象存储。根据官网上的描述,MinIO 提供高性能、与 S3 兼容的对象存储系统,让你自己能够构建自己的云储存服务。MinIO 原生支持 Kubernetes,它可用于每个独立的公共云、每个 Kubernetes 发行版、私有云和边缘的对象存储套件。MinIO 是软件定义的,不需要购买其他任何硬件,在 GNU AGPL v3 下是 100% 开源的。

没错,上面的描述感觉很生硬,但这确实是官网上的原文。

二 相关资料地址

三 安装使用(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==> CaveatsTo restart minio after an upgrade:  brew services restart minioOr, 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 variablesMinIO Object Storage ServerCopyright: 2015-0000 MinIO, Inc.License: GNU AGPLv3 <https://www.gnu.org/licenses/agpl-3.0.html>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.htmlWarning: 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 的原理和使用场景等。


发布于: 刚刚阅读数: 4
用户头像

磨炼中成长,痛苦中前行 2017-10-22 加入

微信公众号【程序员架构进阶】。多年项目实践,架构设计经验。曲折中向前,分享经验和教训

评论

发布
暂无评论
对象存储——Minio初探_对象存储_程序员架构进阶_InfoQ写作社区