Ubuntu MinIO迁移如何进行
Ubuntu环境下MinIO迁移的详细步骤
MinIO迁移需根据场景(单机/分布式、全量/增量、跨集群)选择合适方法,核心工具为官方提供的mc
(MinIO Client),以下是具体操作流程:
一、前置准备
-
安装mc客户端
在迁移机器(源/目标服务器均可)上下载并配置mc,确保其具备访问源和目标MinIO实例的权限:# 下载mc(Linux amd64架构为例) wget https://dl.min.io/client/mc/release/linux-amd64/mc # 赋予执行权限 chmod +x mc # 移动至系统路径 sudo mv mc /usr/local/bin/
-
配置源/目标MinIO别名
为源(旧)和目标(新)MinIO实例设置易识别的别名,替换< IP>
、< ACCESS_KEY>
、< SECRET_KEY>
为实际值:# 配置源MinIO(示例:旧服务器) mc alias set minio_old http://< 源服务器IP> :9000 < ACCESS_KEY> < SECRET_KEY> # 配置目标MinIO(示例:新服务器) mc alias set minio_new http://< 目标服务器IP> :9000 < ACCESS_KEY> < SECRET_KEY>
注:默认API端口为9000,若修改过需替换为实际端口。
-
验证连接与桶信息
确认mc能正常访问源和目标实例,并检查桶列表是否一致:# 查看源MinIO信息(确保存活) mc admin info minio_old # 查看目标MinIO信息 mc admin info minio_new # 列出源桶列表 mc ls minio_old # 列出目标桶列表(若无则需提前创建) mc ls minio_new
二、单机部署迁移(非分布式)
1. 停止源MinIO服务
在源服务器上找到并终止MinIO进程,避免数据写入冲突:
# 查找MinIO进程ID
ps -ef | grep minio
# 终止进程(替换<
进程ID>
为实际值)
kill -9 <
进程ID>
2. 打包并迁移数据文件
MinIO数据默认存储在启动时指定的目录(如/mnt/data
),打包后传输至目标服务器:
# 打包数据目录(源服务器)
tar -zcvf minio_data.tar.gz /mnt/data
# 传输至目标服务器(小数据量用scp,大数据量用rsync断点续传)
scp minio_data.tar.gz <
目标服务器用户>
@<
目标服务器IP>
:/tmp/
# 目标服务器解压
tar -zxvf /tmp/minio_data.tar.gz -C /
3. 恢复数据并启动服务
确保目标服务器数据目录权限与源服务器一致,使用相同参数启动MinIO:
# 修改数据目录权限(替换<
运行用户>
为实际值,如ubuntu)
chown -R <
运行用户>
:<
运行用户>
/mnt/data
# 启动MinIO(端口、控制台地址可自定义)
export MINIO_ROOT_USER=<
ACCESS_KEY>
export MINIO_ROOT_PASSWORD=<
SECRET_KEY>
minio server /mnt/data --console-address ":9001"
三、分布式/跨集群迁移(推荐:mc mirror)
1. 全量同步(低峰期执行)
使用mc mirror
命令将源MinIO的所有数据镜像至目标MinIO,--overwrite
参数覆盖目标已有对象,--remove
参数删除目标中多余的文件(保持严格一致,慎用):
# 全量同步所有桶(覆盖并保持一致)
mc mirror --overwrite --remove minio_old/ minio_new/
# 同步单个桶(示例:bucket-demo)
mc mirror --overwrite minio_old/bucket-demo minio_new/bucket-demo
2. 增量同步(可选)
- 仅添加新文件(不覆盖已有文件):
mc mirror minio_old/ minio_new/
- 实时监听源变化并同步(适合长期维护):
mc mirror --watch minio_old/ minio_new/
3. 数据校验
迁移完成后,务必比对源和目标桶的数据一致性,避免遗漏或冲突:
# 遍历所有桶,逐一比对
for bucket in $(mc ls minio_old | awk '{
print $5}
' | sed 's#/##');
do
echo "=== 比对桶: $bucket ==="
mc diff minio_old/$bucket minio_new/$bucket || echo "$bucket 存在差异"
done
# 保存差异报告(可选)
mc diff minio_old/bucket-demo minio_new/bucket-demo >
/tmp/diff_bucket-demo.log
四、迁移后配置(可选)
-
开启桶公开读(按需):
若需让桶内容可通过URL直接访问,可设置桶策略为公开:# 遍历所有桶,设置公开读 for bucket in $(mc ls minio_new | awk '{ print $5} ' | sed 's#/##'); do mc policy set public minio_new/$bucket done
-
切换VIP/域名(高可用场景):
若源MinIO使用了VIP或域名,需将DNS解析指向目标服务器IP,并更新目标MinIO的console-address
配置。
注意事项
- 权限一致性:目标服务器数据目录权限需与源服务器一致(通常为运行MinIO的用户)。
- 端口冲突:同一服务器上运行新旧MinIO时,需修改端口(如源用9000,目标用9100)。
- 数据安全:迁移前务必备份源数据,避免操作失误导致丢失。
- 网络稳定性:跨机房迁移建议使用
mc mirror
的--watch
参数实时同步,减少停机时间。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu MinIO迁移如何进行
本文地址: https://pptw.com/jishu/726302.html