文章目录
1 背景
公司需要在公有云环境上进行产品的容器化适配和saas产品发布。产品中使用到了minio。考虑到minio集群最少4个节点,前期客户上传文件数量少,占用空间也少,就先使用minio的容器单实例保存文件。等到后续客户使用minio保存数据较多的时候,再搭建minio的集群,并将单实例的数据迁移到新的minio集群里。
因此,需要提前准备好minio的数据迁移方案,并测试数据从单点的minio迁移到minio集群是否可行。
如下的方案是进行了本地验证的,但是因为其他事情的插入,导致写文档时间与验证方案时间相隔一周。如下的步骤会缺少对应的截图。
2 环境说明
-
单实例minio节点:在本地虚拟机搭建的minio单实例,192网段
minio集群:公司内网机器,10.0网段 -
虚拟机到公司内网主机网络是通的
-
验证用的minio端口非默认端口
-
所有操作使用root进行
3 操作步骤
3.1 时区和时间设置
如下命令 需要在minio单实例和minio集群都执行
# 调整时区为Asia/Shanghai
timedatectl set-timezone Asia/Shanghai
# 进行网络对时 ntp.ntsc.ac.cn是国家授时中心的ntpd地址
ntpdate ntp.ntsc.ac.cn
3.2 单实例minio安装rclone
执行如下命令进行安装
curl https://rclone.org/install.sh | sudo bash
如果网络不好,如上的命令会执行很久,也安装不上。可以先将脚本下载下来,然后在本地手动执行。
curl https://rclone.org/install.sh > install.sh
bash install.sh
3.3 单实例minio编辑rclone配置文件
mkdir -p ~/.config/rclone/
vim ~/.config/rclone/rclone.conf
[minio-new]
type = s3
provider = Minio
region = cn-east-1
access_key_id = admin
secret_access_key = minioadmin@123
endpoint = http://10.0.14.16:18125
[minio-local]
type = s3
provider = Minio
region = cn-east-1
access_key_id = admin
secret_access_key = minioadmin@123
endpoint = http://192.168.220.3:9000
如上配置 中 各项的含义
- [minio-new] 是定义对minio集群的简称
- [minio-local] 是对应对本地minio的简称
- access_key_id minio的登录用户名
- secret_access_key minio的登录密码
- endpoint minio地址
3.4 开始同步数据
rclone sync minio-local:dosm minio-new:dosm
如上命令的意思是将minio-local的dosm桶同步到minio-new的dosm桶(如果目标minio上没有对应的桶 会在同步的过程中自动创建)
如果同步时间教程,建议使用screen命令将同步任务放到后台执行,避免任务中断导致的数据异常。
使用screen可以参考screen的使用方法