在 Linux 环境下迁移 MinIO,通常分为 同机迁移、跨服务器迁移、从单节点到分布式、对象数据迁移 等几种场景。下面按最常见、最安全的方式说明。
minio version
确认:
~/minio/data 或自定义)/etc/minio)一定要先停服务,避免数据不一致。
systemctl stop minio
docker stop minio
适用于:
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/
/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"
systemctl daemon-reload
systemctl enable minio
systemctl start minio
mc mirror(推荐跨环境)适合:
wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
mv mc /usr/local/bin/
mc alias set old http://old-server:9000 admin password
mc alias set new http://new-server:9000 admin password
mc mirror --overwrite old/ new/
只迁移某个 bucket:
mc mirror old/bucket1 new/bucket1
✅ 优点:
docker stop minio
docker cp minio:/data /backup/minio
或 volume 目录:
/var/lib/docker/volumes/minio_data/_data
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"
mc ls new/
mc du new/
http://ip:9001chown -R minio-user:minio-user /data/minio
✅ MinIO 不支持只复制部分 bucket
✅ 必须完整目录保持一致
| 场景 | 推荐方式 |
|---|---|
| 同服务器 | rsync |
| 新服务器 | rsync 或 mc mirror |
| 跨云 | mc mirror |
| Docker | 数据卷迁移 |
如果你愿意,可以告诉我:
我可以给你 精确命令级别的迁移方案 ✅