利用桶复制实现minio双向同步
本篇详细讲述如何利用minio原生的存储桶复制实现2个单节点之间指定bucket的双向同步,示例环境如下:
源minio节点:10.30.3.231
目标minio节点:10.30.3.232
- 1.所有节点:下载 minio 2023-06-29(注:配置存储桶复制的前提是 目标minio与源minio必须版本相同)
mkdir -p /data/minio_9000/{data,logs}
curl -L http://iso.sqlfans.cn/linux/minio.2023-06-29 -o /usr/bin/minio
curl -sL http://iso.sqlfans.cn/linux/mc.2023-08-15 -o /usr/bin/mc
chmod +x /usr/bin/minio
chmod +x /usr/bin/mc
- 2.所有节点:启动minio进程(注:非集群模式不用挂载第2块磁盘)
export MINIO_ROOT_USER=minioadmin
export MINIO_ROOT_PASSWORD=minioadmin
nohup /usr/bin/minio server /data/minio_9000/data --console-address=":9100" >/data/minio_9000/logs/minio.log 2>&1 &
- 3.源节点:针对2个minio节点,创建2个别名
mc alias set minio1 http://10.30.3.231:9000 minioadmin minioadmin --api s3v4
mc alias set minio2 http://10.30.3.232:9000 minioadmin minioadmin --api s3v4
mc alias list
- 4.源节点:针对2个minio节点,各自创建1个bucket并启用版本控制
mc mb -p minio1/bucket111
mc mb -p minio2/bucket111
mc version enable minio1/bucket111
mc version enable minio2/bucket111
- 5.源节点:配置双向同步的主主复制,实现高可用(注:若只是做灾备,配置单向同步就好了,不用2条都执行)
mc replicate add --remote-bucket http://minioadmin:minioadmin@10.30.3.232:9000/bucket111 --replicate "delete,delete-marker,existing-objects" --sync minio1/bucket111 --limit-upload 200Mi
mc replicate add --remote-bucket http://minioadmin:minioadmin@10.30.3.231:9000/bucket111 --replicate "delete,delete-marker,existing-objects" --sync minio2/bucket111 --limit-upload 200Mi
- 6.验证:源节点上传文件,目标节点确认已存在
mc cp /etc/hosts minio1/bucket111
mc ls minio1/bucket111
mc ls minio2/bucket111
注:桶复制只对新文件做同步,存量数据建议 使用 rclone或mc 进行一次全量同步。