minio数据迁移方案

文章目录

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的使用方法

上一篇:【微信开发3】获取access token优化 java+SpringBoot


下一篇:49_分析代理类的作用与原理及AOP概念