👻创作者:丶重明
👻创作时间:2025年3月7日
👻擅长领域:运维
实验环境:
系统:Rocky Linux release 9.3 (Blue Onyx)
内核:5.14.0-362.18.1.el9_3.0.1.x86_64
1. 什么是MinIO
MinIO 是一个高性能的分布式对象存储服务,兼容 Amazon S3 API,专为云原生环境设计。特点包括:
-
轻量高效:单二进制文件部署,资源占用低。
-
兼容 S3:与 AWS S3 API 完全兼容,可无缝替代或扩展 S3。
-
纠删码与分布式:支持数据冗余和分布式存储(生产环境推荐多节点部署)。
-
云原生友好:集成 Kubernetes、Docker 等容器化平台。
单节点单驱动器(Single Node, Single Drive) 是一种最简单的部署模式,其核心含义如下:
- 单节点:整个 MinIO 服务运行在 一个独立的服务器节点
- 单驱动器:MinIO 在该节点上仅使用 一个物理存储设备(如硬盘、SSD)来保存数据
2. 单节点单驱动器部署
适用场景:开发测试、小型项目、学习环境(非生产环境,因无冗余)。
- 下载MinIO服务器
借助wget
工具在MinIO官网上下载rpm包,通过dnf
命令安装
wget https://dl.min.io/server/minio/release/linux-amd64/archive/minio-20250228095516.0.0-1.x86_64.rpm -O minio.rpm
dnf install minio.rpm
- 创建数据目录
创建一个用于存储 MinIO 数据的目录,例如 /data/
mkdir /data
- 创建用户和组
创建用于运行MinIO的用户和组,后面会说为什么这么做;
将目录/data
授权给用户和组。
groupadd -r minio-user
useradd -M -r -g minio-user minio-user
chown minio-user:minio-user /data/
如果没有创建用户和组(我就忘了),就会报这个错误:
Mar 25 12:00:16 localhost systemd[21914]: minio.service: Failed to determine user credentials: No such process
Mar 25 12:00:16 localhost systemd[21914]: minio.service: Failed at step USER spawning /usr/local/bin/minio: No such process
错误信息表明 systemd 在尝试启动 MinIO 服务时,无法识别或找到服务配置中指定的用户。
- 创建环境变量文件
创建/etc/default/minio
文件用于定义所需要的环境变量
MINIO_ROOT_USER=minio
MINIO_ROOT_PASSWORD=minio123
MINIO_VOLUMES="/data"
MINIO_OPTS="--console-address :9001"
文件内容四个环境变量分别为:用户、密码、数据目录、控制台监听地址和端口
。
- 启动MinIO
启动服务并设置开机自启,通过http://ip:9001
登录web控制台,通过环境变量中配置的用户和密码进行登录。
systemctl start minio.service
systemctl enable minio.service
3. 解惑
- 为什么要创建单独的用户和组?
根据自带的minio.service
文件定义,使用固定的用户和组,如果你想使用其他用户和组,请进行修改。
User=minio-user
Group=minio-user
- 环境变量文件位置有要求吗?
同样是通过minio.service
文件定义默认位置就是/etc/default/minio
。
EnvironmentFile=-/etc/default/minio
4. 导航栏解释
[MinIO版本信息]
minio version RELEASE.2025-02-28T09-55-16Z (commit-id=8c2c92f7afdc8386b000c0cb57ecec2ee1f5bcb0)
Runtime: go1.23.6 linux/amd64
License: GNU AGPLv3 - https://www.gnu.org/licenses/agpl-3.0.html
Copyright: 2015-2025 MinIO, Inc.
- 对象浏览器:能够直观地对存储桶里的对象进行操作和管理
- 访问密钥:用于身份验证和授权的重要凭证
- 文档:参考文档
- 存储桶:用于存储和组织对象(文件、数据等)
- 身份和访问管理策略:用于定义用户、组或服务账号对 MinIO 资源(如存储桶、对象)访问权限的规则集合
- 身份:用于识别和验证用户、服务或应用程序的信息
- 监控:跟踪集群性能、资源使用和健康状态
- 事件目标:允许用户针对存储桶中的对象设置各种事件触发器
- 配置:对服务器进行行为、参数、功能配置