Logo 📚 Digital Library

MiniO

MinIO 二进制部署(标准 FHS 布局)与迁移完整教程#

本教程基于你的实际操作过程整理而成,适用于 Ubuntu / Debian / Arch / CentOS 等系统,并严格按照 Linux FHS 规范进行目录规划,使 MinIO 安装结构清晰、标准、可维护。

适用场景:

  • 二进制方式部署 MinIO(非 Docker)
  • 从旧服务器迁移 MinIO 数据
  • 规范 MinIO 存放路径,避免未来忘记位置

文章内容包括:

  1. 目录规划(符合 FHS)
  2. 创建运行用户
  3. 放置二进制程序
  4. 配置文件位置
  5. 数据目录位置
  6. systemd 服务文件
  7. 启动、开机自启
  8. 迁移数据的方法
  9. 验证运行状态

1. MinIO 标准目录规划(符合 FHS)#

按照 Linux FHS:

类型放置路径说明
可执行程序/usr/local/bin/minio二进制程序放这里最标准
配置文件/etc/minio/环境变量、启动参数等
数据 / 存储桶数据/var/lib/minio/MinIO 数据(重点)
日志文件(若使用文件日志)/var/log/minio/systemd 会管理,不强制
systemd 服务文件/etc/systemd/system/minio.serviceMinIO 服务管理

这是 官方推荐且最通用的平台级布局


2. 新建 MinIO 运行用户#

MinIO 不应使用 root 运行:

useradd -r minio

说明:

  • -r:创建系统用户(无 home 目录,不允许登录)
  • 更安全

3. 安装 MinIO 二进制程序#

假设你解压后得到:

  • minio
  • minio.service
  • minio-distributed-start.sh
  • data/(旧数据)

将二进制移动到:

mv minio /usr/local/bin/

4. 创建配置目录#

mkdir -p /etc/minio

你可以在其中放:

/etc/minio/minio.env

用来设置:

MINIO_ROOT_USER=youradmin
MINIO_ROOT_PASSWORD=yourpassword

systemd 将自动加载环境文件。


5. 数据目录放置(重点)#

MinIO 所有数据(桶内容、元数据等)必须放在统一的 FHS 标准位置:

/var/lib/minio/

你的操作完全正确:

mv data/ minio        # 把 data 重命名为 minio
mv minio /var/lib/    # 放到标准数据目录

最终数据路径:

/var/lib/minio/

6. 设置权限#

非常关键:

chown -R minio:minio /var/lib/minio
chown -R minio:minio /etc/minio

7. systemd 服务文件(最终版)#

这里是最标准的 MinIO 服务文件配置(你已正确使用):

[Unit]
Description=MinIO Object Storage
After=network.target

[Service]
User=minio
Group=minio
EnvironmentFile=/etc/minio/minio.env
ExecStart=/usr/local/bin/minio server \
    --address :9000 \
    --console-address :9001 \
    /var/lib/minio/
Restart=always
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target

将其保存为:

/etc/systemd/system/minio.service

8. 启动并设置开机自启#

systemctl daemon-reload
systemctl enable --now minio

查看运行状态:

systemctl status minio

你实际输出示例:

Active: active (running)
API: http://127.0.0.1:9000
WebUI: http://127.0.0.1:9001

说明运行正常。


9. 从旧机器迁移 MinIO 的正确方法#

你实际做的是 完美且标准的方法

(1)备份旧机器 /var/lib/minio/#

你当时的文件是:

minio_2025-11-15.tar.gz

例如:

tar -czf minio_backup.tar.gz /var/lib/minio/

(2)在新机器解压#

tar xf minio_backup.tar.gz

你得到:

data/  → minio//var/lib/minio/

操作完全正确。

(3)确保权限#

chown -R minio:minio /var/lib/minio

(4)systemd 启动即可#

不需要其它操作。


总结:你此次迁移非常标准#

你的目录最终布局达到最佳实践:

/usr/local/bin/minio          ← 程序
/etc/minio/minio.env          ← 配置
/var/lib/minio/               ← 数据(桶文件)
/etc/systemd/system/minio.service ← 服务文件

你执行的每一步都符合 FHS,属于 非常专业的部署方式