米尼尼
发布于 2025-12-31 / 45 阅读
0

群晖NAS部署MinlO对象存储

在群晖 NAS 上部署 MinIO 推荐用Docker 容器部署(简单灵活) 以下是详细步骤(适配绝大多数群晖机型,包括 ARM 架构如 DS220j、x86 架构如 DS920+)。

前置准备

  1. ​群晖 NAS 要求​:

    • 已安装 ​Docker 套件​(群晖 DSM 6.2+ 均可在「套件中心」搜索安装)。

    • 预留足够存储空间(MinIO 数据目录建议单独挂载,避免系统盘占满)。

  2. ​网络规划​:

    • 确认 NAS 的局域网 IP(如 192.168.31.100​),后续访问 MinIO 需用到。

    • 开放端口:MinIO 默认控制台端口 9001​、API 端口 9000​(可自定义)。

Docker 容器部署(推荐)

步骤 1:创建 MinIO 数据目录

为了数据持久化(容器删除后数据不丢失),先在 NAS 上创建专用目录:

  1. 打开群晖 ​File Station​,在任意共享文件夹下新建目录(例:minio/data​ 和 minio/config​):

    • ​data​:存储 MinIO 的对象数据(核心目录,建议放在大容量存储池)。

    • ​config​:存储 MinIO 的配置文件(可选,用于保存访问规则、用户等)。

步骤 2:通过 Docker Compose 部署(更稳定,推荐)

群晖 Docker 支持导入 Docker Compose 文件,比手动创建容器更高效,步骤如下:

  1. 打开群晖 Docker 套件,切换到「容器」标签页,点击「创建」→「导入模板」。

  2. 复制以下 Docker Compose 内容,粘贴到「模板内容」中,修改对应参数(根据自身环境调整):

yaml

version: '3'
services:
  minio:
    image: minio/minio:latest  # 最新稳定版(ARM/x86自动适配)
    container_name: minio  # 容器名称,自定义
    restart: always  # 开机自启
    environment:
      - MINIO_ROOT_USER=admin  # 管理员账号(自定义,建议复杂些)
      - MINIO_ROOT_PASSWORD=Minio@123  # 管理员密码(至少8位,强密码)
      - MINIO_REGION=cn-east-1  # 区域配置(自定义,如cn-north-1)
    ports:
      - "9000:9000"  # API端口(宿主机:容器,可修改宿主机端口如9002:9000)
      - "9001:9001"  # 控制台端口(宿主机:容器,同上)
    volumes:
      - /volume1/minio/data:/data  # 数据目录映射(左侧为NAS实际路径,右侧固定/data)
      - /volume1/minio/config:/root/.minio  # 配置目录映射(可选)
    command: server /data --console-address ":9001"  # 启动命令(指定数据目录和控制台端口)
    networks:
      - minio-network
networks:
  minio-network:
    driver: bridge

参数说明(必须修改):

  • ​MINIO_ROOT_USER​/MINIO_ROOT_PASSWORD​:管理员账号密码,务必修改为强密码(避免默认值被攻击)。

  • ​volumes​ 中的 /volume1/minio/data​:替换为你在步骤 1 创建的 data​ 目录实际路径(例:/volume2/共享文件夹/minio/data​,可在 File Station 中右键目录→「属性」查看「位置」)。

  • ​ports​:若 9000/9001 端口被占用,可修改左侧宿主机端口(如 9002:9000​、9003:9001​)。

  1. 点击「验证并导入」,等待镜像下载完成后,容器会自动启动。

步骤 3:访问 MinIO 控制台

  1. 打开浏览器,输入 http://NAS局域网IP:9001​(例:http://192.168.31.100:9001​)。

  2. 输入步骤 2 中设置的 MINIO_ROOT_USER​(如 admin)和 MINIO_ROOT_PASSWORD​(如 Minio@123),登录控制台。

  3. 首次登录后,建议先创建「存储桶」(类似文件夹),再上传文件测试(点击「Create a Bucket」,输入名称后点击「Create」,然后点击「Upload」上传文件)。

关键配置与优化

1. 端口映射与防火墙

  • 若需外网访问 MinIO,需在路由器中设置「端口转发」(将路由器的 9000/9001 端口映射到 NAS 的对应端口)。

  • 群晖 DSM 防火墙:在「控制面板」→「安全性」→「防火墙」中,允许 9000、9001 端口的入站连接。

2. 数据备份

  • MinIO 本身支持「纠删码」(默认单节点模式下,数据直接存储,无冗余),建议定期备份 data​ 目录(可通过群晖「Hyper Backup」套件备份到外接硬盘或云存储)。

  • 若需高可用,可部署 MinIO 分布式集群(需多台 NAS 或服务器,适合企业场景)。

3. 更换 MinIO 控制台端口

若 9001 端口被占用,可修改启动命令中的 --console-address​ 参数(例:--console-address ":9003"​),同时同步修改 Docker Compose 或任务计划中的端口配置。

4. 启用 HTTPS(安全访问)

  • 方案 1(Docker):在 MinIO 控制台「Settings」→「HTTPS」中,上传 SSL 证书(群晖可通过「控制面板」→「安全性」→「证书」申请免费 Let's Encrypt 证书)。

  • 方案 2(原生部署):启动时添加 --cert​ 和 --key​ 参数,指定证书路径:
    bash

    运行

    minio server /data --console-address ":9001" --cert /path/to/cert.pem --key /path/to/key.pem
    

常见问题排查

  1. ​容器启动失败​:

    • 检查端口是否被占用:在群晖 Docker「网络」→「端口设置」中,确认 9000/9001 端口未被其他容器占用。

    • 检查目录权限:确保 MinIO 容器对 data​ 目录有读写权限(可在 File Station 中右键目录→「属性」→「权限」,给「everyone」赋予「读写」权限)。

  2. ​无法访问控制台​:

    • 确认容器已启动(Docker「容器」中查看 MinIO 状态为「运行中」)。

    • 检查 NAS 防火墙是否开放对应端口。

    • 确认输入的 IP 和端口正确(避免输成公网 IP 或错误端口)。

  3. ​忘记管理员密码​:

    • Docker 部署:停止容器,修改 Docker Compose 中的 MINIO_ROOT_PASSWORD​,重新启动容器即可。

    • 原生部署:修改任务计划中的 MINIO_ROOT_PASSWORD​,重启 MinIO 服务。

通过以上步骤,即可在群晖 NAS 上成功部署 MinIO,实现私有化对象存储(可用于备份文件、搭建个人云盘、作为应用存储后端等)。Docker 方案更适合快速部署和维护,原生方案适合对容器化不熟悉或需要深度定制的场景。