温馨提示×

linux minio如何迁移

小樊
37
2026-07-01 11:37:05
栏目: 智能运维

在 Linux 环境下迁移 MinIO,通常分为 同机迁移跨服务器迁移从单节点到分布式对象数据迁移 等几种场景。下面按最常见、最安全的方式说明。


一、迁移前准备

1. 确认 MinIO 信息

minio version

确认:

  • 安装方式(二进制 / systemd / Docker)
  • 数据目录(默认 ~/minio/data 或自定义)
  • 配置文件目录(如 /etc/minio
  • 启动方式(systemd / docker-compose)

2. 停止 MinIO 服务(关键)

一定要先停服务,避免数据不一致。

如果是 systemd

systemctl stop minio

如果是 Docker

docker stop minio

二、迁移方式选择


✅ 方案一:直接复制数据目录(最常用)

适用于:

  • 同服务器
  • 新服务器(Linux → Linux)
  • 节点数不变

1️⃣ 复制数据目录

rsync -av --progress /data/minio/ /new/data/minio/

如果是跨服务器:

rsync -avz --progress /data/minio/ user@new-server:/data/minio/

必须保留权限

rsync -avz --progress --numeric-ids /data/minio/ target:/data/minio/

2️⃣ 复制启动配置

systemd 示例

/etc/systemd/system/minio.service

环境变量

/etc/default/minio
# 或
/etc/minio/minio.env
MINIO_ROOT_USER=admin
MINIO_ROOT_PASSWORD=xxxx
MINIO_VOLUMES="/data/minio"
MINIO_OPTS="--address :9000 --console-address :9001"

3️⃣ 在新服务器启动

systemctl daemon-reload
systemctl enable minio
systemctl start minio

✅ 方案二:使用 mc mirror(推荐跨环境)

适合:

  • 跨网络
  • 云迁移
  • MinIO → MinIO

1️⃣ 安装 mc

wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
mv mc /usr/local/bin/

2️⃣ 配置源和目标

mc alias set old http://old-server:9000 admin password
mc alias set new http://new-server:9000 admin password

3️⃣ 同步数据

mc mirror --overwrite old/ new/

只迁移某个 bucket:

mc mirror old/bucket1 new/bucket1

✅ 优点:

  • 不依赖文件系统
  • 支持断点续传
  • 适合大集群

✅ 方案三:Docker 迁移

1️⃣ 停止容器

docker stop minio

2️⃣ 迁移数据卷

docker cp minio:/data /backup/minio

或 volume 目录:

/var/lib/docker/volumes/minio_data/_data

3️⃣ 新服务器恢复

docker run -d \
  -p 9000:9000 -p 9001:9001 \
  -v /data/minio:/data \
  -e MINIO_ROOT_USER=admin \
  -e MINIO_ROOT_PASSWORD=xxx \
  minio/minio server /data --console-address ":9001"

四、迁移后检查

1️⃣ 检查 bucket

mc ls new/

2️⃣ 检查对象完整性

mc du new/

3️⃣ 检查访问

  • 浏览器访问 http://ip:9001
  • 测试 SDK / 应用连接

五、常见错误 & 解决

❌ 权限错误

chown -R minio-user:minio-user /data/minio

❌ 数据目录不一致

✅ MinIO 不支持只复制部分 bucket
✅ 必须完整目录保持一致


六、迁移建议(重要)

场景 推荐方式
同服务器 rsync
新服务器 rsync 或 mc mirror
跨云 mc mirror
Docker 数据卷迁移

如果你愿意,可以告诉我:

  • ✅ MinIO 版本
  • ✅ 单机 / 分布式
  • ✅ Docker / systemd
  • ✅ 是否跨网络

我可以给你 精确命令级别的迁移方案

0