MinIO客户端mc实现数据迁移_minio数据迁移
一.概述
mc 命令提供了一个方便管理 ~/.mc/config.json 配置文件中的主机信息的方式,你也可以用文本编辑器手动修改这个配置文件。
通过minio提供的客户端实现资源迁移,本文章的mc通过docker创建。
minio1的api地址是192.168.180.45:39000
minio2的api地址是192.168.180.37:39000
二.docker启动mc实例,并进入容器内部
1 | docker run -it --entrypoint=/bin/sh minio/mc |
三.通过mc命令连接两个minio服务
1 | #查看cat ~/.mc/config.json里的配置 |
四.迁移数据
1 | #全量迁移,重名文件不覆盖,bucket不存在会自动创建 |
五、其他命令
MinIO Client (mc)为ls,cat,cp,mirror,diff,find等UNIX命令提供了一种替代方案。它支持文件系统和兼容Amazon S3的云存储服务(AWS Signature v2和v4)。
Copyls 列出文件和文件夹。
mb 创建一个存储桶或一个文件夹。
cat 显示文件和对象内容。
pipe 将一个STDIN重定向到一个对象或者文件或者STDOUT。
share 生成用于共享的URL。
cp 拷贝文件和对象。
mirror 给存储桶和文件夹做镜像。
find 基于参数查找文件。
diff 对两个文件夹或者存储桶比较差异。
rm 删除文件和对象。
events 管理对象通知。
watch 监听文件和对象的事件。
policy 管理访问策略。
session 为cp命令管理保存的会话。
config 管理mc配置文件。
update 检查软件更新。
version 输出版本信息。
获取集群信息
1 | # 执行命令测试能否连通,如有文件或至少存在一个 Bucket,会在回显中列出: |
对拷(镜像)
1 | #使用命令进行 Bucket 对拷,mc 无法实现集群全量对拷,单条命令只能逐个 Bucket 进行操作: |
检查是否完全结束
1 | #使用命令检查是否有未完整传输的文件,如果有未传输完全的文件,会在回显中列出: |
一些说明
无需担心数据分片等问题,哪怕节点数量不对等。
因为是直接从集群入口访问并获取数据,并不是 ”磁盘 to 磁盘“ 的迁移方式,某个节点上的某块磁盘究竟存的是纠删码还是分片的数据都没有关系,因为从集群地址中读出来的数据是完整的数据,这就是为什么要求一定要能获取到集群地址的原因。
Bucket 在 MinIO 中应被视为 ”挂载目录“ (mount),而不是 “磁盘目录” (mkdir)。
mc cp 命令需要在目标集群拥有同名 Bucket,mc mirror 不需要,同时 mc mirror 会自动保存目录的层级信息,mc cp 需要额外指定 –recursive 参数,请根据需要酌情选择。
mc mirror 的集群 to 集群、集群 to 本地用法并未在 官方文档 中列出,很可能属于 hack 用法,请注意可能存在的风险。