温馨提示×

如何在Ubuntu上配置MinIO存储

小樊
41
2025-12-12 21:04:22
栏目: 云计算

在 Ubuntu 上配置 MinIO 存储

一 准备与环境

  • 准备一台 Ubuntu 20.04/22.04 服务器,具备 sudo 权限与防火墙(如 ufw)管理。
  • 规划数据与配置目录,建议使用独立挂载盘(如 /mnt/data),并创建专用系统用户 minio-user(禁止 root 运行)。
  • 规划访问端口:对象 API 默认 9000/TCP,控制台默认 9001/TCP;如通过域名访问,准备 A 记录 指向服务器公网 IP。

二 安装与系统服务

  • 方式 A 二进制安装(通用)
    1. 下载并安装二进制
    wget https://dl.min.io/server/minio/release/linux-amd64/minio
    chmod +x minio
    sudo mv minio /usr/local/bin
    
    1. 创建用户与目录
    sudo groupadd -r minio-user
    sudo useradd -M -r -g minio-user minio-user
    sudo mkdir -p /mnt/data
    sudo chown minio-user:minio-user /mnt/data
    sudo mkdir -p /etc/minio
    sudo chown minio-user:minio-user /etc/minio
    
    1. 配置环境变量
    sudo tee /etc/default/minio >/dev/null <<'EOF'
    MINIO_VOLUMES="/mnt/data"
    MINIO_OPTS="--certs-dir /etc/minio/certs --address :9000 --console-address :9001"
    MINIO_ROOT_USER="minioadmin"
    MINIO_ROOT_PASSWORD="StrongPassw0rd!"
    EOF
    chown minio-user:minio-user /etc/default/minio
    
    1. 配置 systemd 服务
    sudo tee /etc/systemd/system/minio.service >/dev/null <<'EOF'
    [Unit]
    Description=MinIO
    Documentation=https://docs.min.io
    Wants=network-online.target
    After=network-online.target
    AssertFileIsExecutable=/usr/local/bin/minio
    
    [Service]
    Type=notify
    User=minio-user
    Group=minio-user
    EnvironmentFile=/etc/default/minio
    ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES
    Restart=always
    LimitNOFILE=1048576
    TasksMax=infinity
    
    [Install]
    WantedBy=multi-user.target
    EOF
    
    1. 启动与开机自启
    sudo systemctl daemon-reload
    sudo systemctl enable --now minio
    sudo systemctl status minio
    
  • 方式 B 使用 .deb 包(Ubuntu 官方仓库友好)
    1. 下载并安装
    wget https://dl.min.io/server/minio/release/linux-amd64/minio_20220523184511.0.0_amd64.deb
    sudo dpkg -i minio_20220523184511.0.0_amd64.deb
    
    1. 后续步骤同方式 A 的“创建用户与目录、环境变量、systemd 服务、启动”。

三 防火墙与访问

  • 放行端口
sudo ufw allow 9000/tcp
sudo ufw allow 9001/tcp
sudo ufw reload
  • 访问控制台:浏览器打开 http://<服务器IP>:9001,使用 MINIO_ROOT_USER / MINIO_ROOT_PASSWORD 登录。
  • 访问对象 API:使用 http://<服务器IP>:9000,兼容 S3,可用 mc(MinIO Client)或 SDK 进行桶与对象操作。

四 启用 TLS 与域名访问

  • 准备证书
    • 自签名(测试):
    sudo mkdir -p /etc/minio/certs
    sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
      -keyout /etc/minio/certs/private.key -out /etc/minio/certs/public.crt \
      -subj "/C=CN/ST=State/L=City/O=Org/CN=minio.example.com"
    sudo chown -R minio-user:minio-user /etc/minio/certs
    
    • 生产建议:使用 certbot 获取 Let’s Encrypt 证书(HTTP-01 或 TLS-ALPN-01),证书与私钥路径放入 /etc/minio/certs/(文件名通常为 private.key / public.crtcert.pem / key.pem,以实际为准)。
  • 配置与重启
    • 已在 MINIO_OPTS 中指定 –certs-dir /etc/minio/certs,直接重启服务:
    sudo systemctl restart minio
    
    • 访问控制台与 API 使用 https://minio.example.com:9001https://minio.example.com:9000

五 常见问题与运维要点

  • 权限与用户:确保数据目录与配置目录归属 minio-user,服务以非 root 运行。
  • 强口令策略:MINIO_ROOT_PASSWORD 至少 8 个字符,生产环境请使用更复杂的密码并妥善保存。
  • 目录与磁盘:数据目录建议使用独立磁盘或挂载点,便于容量扩展与维护。
  • 日志与排错:查看服务日志
sudo journalctl -u minio -f
  • 客户端与桶策略:安装 mc 并添加别名后管理桶与策略
mc alias set myminio https://minio.example.com:9000 minioadmin 'StrongPassw0rd!'
mc mb myminio/mybucket
mc policy set public myminio/mybucket
  • 升级与备份:升级前备份 /etc/default/minio/etc/minio,必要时备份数据目录;变更端口或证书后需重启服务生效。

0