MinIO实现数据迁移(mc)

运行两个版本的minio 

version: '2.3'

services:

  # 新版本

  minio2023:

    image:  minio/minio:RELEASE.2022-06-20T23-13-45Z.fips

    container_name: minio2023

    restart: always

    environment:

      - MINIO_ACCESS_KEY=minioadmin

      - MINIO_SECRET_KEY=minioadmin

      - MINIO_ROOT_USER=minioadmin

      - MINIO_ROOT_PASSWORD=minioadmin

      - TZ=Asia/Shanghai

    volumes:

      - /etc/localtime:/etc/localtime

    command: server /data --console-address ":9090" -address ":9000"

    ports:

      - 9000:9000

      - 9090:9090

  

version: '2.3'

services:

  # 旧版本

  minio2021:

    image: minio/minio:RELEASE.2021-06-17T00-10-46Z

    container_name: minio2021

    environment:

      MINIO_ACCESS_KEY: admi

      MINIO_SECRET_KEY: admin123

    command: server /data

    restart: always

    ports:

      - 19000:9000

      - 19001:9001

部署一个 mc 容器,做数据迁移

启动一个mc容器,并进入容器中

docker run -it  --entrypoint=/bin/sh minio/mc:RELEASE.2023-06-06T13-48-56Z

分别设置 minio2021 和 minio2023 的alias

# mc alias set 名称 服务地址 用户名 密码

# 设置minio2021的alias

mc alias set minio2021 http://ip:19000 admin admin123

# 设置minio2023的alias

mc alias set minio2023 http://ip:9000 minioadmin minioadmin

迁移数据

mc迁移数据通常有下面三种场景:

#1. 全量迁移,重名文件不覆盖,如bucket不存在,会自动创建

mc mirror  minio2021 minio2023

#2. 只迁移某个bucket,以test为例,迁移的目标bucket需要提前创建

mc mirror  minio2021/test  minio2023/test  #test要提前在minio2023中创建

  

#3. 加上--overwrite参数,覆盖重名文件

mc mirror  --overwrite  minio2021 minio2023

mc mirror  --overwrite  minio2021/test  minio2023/test

这里使用第一种方式,全量迁移,重名文件不覆盖,如bucket不存在,会自动创建

mc mirror  minio2021 minio2023 

 

通过minio 界面查看数据是否迁移成功  

需要迁移的桶全部迁移成功

MinIO Client (mc) 命令

ls 列出文件和文件夹。

mb 创建一个存储桶或一个文件夹。

cat 显示文件和对象内容。

pipe 将一个STDIN重定向到一个对象或者文件或者STDOUT。

share 生成用于共享的URL。

cp 拷贝文件和对象。

mirror 给存储桶和文件夹做镜像。

find 基于参数查找文件。

diff 对两个文件夹或者存储桶比较差异。

rm 删除文件和对象。

events 管理对象通知。

watch 监听文件和对象的事件。

policy 管理访问策略。

session 为cp命令管理保存的会话。

config 管理mc配置文件。

update 检查软件更新。

version 输出版本信息。

     例子

# 执行命令测试能否连通,如有文件或至少存在一个 Bucket,会在回显中列出:

mc ls minio1

# 执行命令获取集群数据大小,如果有文件或存在至少一个 Bucket,会在最后一行打印当前集群所有文件总大小:

mc du minio1

#查看cat ~/.mc/config.json里的配置

mc config host ls

#查看所有alias

mc alias ls

#使用命令检查是否有未完整传输的文件,如果有未传输完全的文件,会在回显中列出:

mc ls --incomplete minio1

#如果有必要,可以删除某个桶中的残缺文件:

mc rm --incomplete $hostName/$bucket

  mc cp 命令需要在目标集群拥有同名 Bucket,mc mirror 不需要,同时 mc mirror 会自动保存目录的层级信息,mc cp 需要额外指定 --recursive 参数,请根据需要酌情选择。

迁移的时候遇到的报错

mc: <ERROR> Unable to list comparison retrying.. S3 API Request made to Console port. S3 Requests should be sent to API port.

 通过单独查看 发现  是minio2023 的地址不对 

我是直接从浏览器复制的地址  为  ip:9090   实则是9000   重新配置别名修改一下 地址就可以了

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Minio是一个开源的对象存储服务器,可以在单个节点上轻松地进行部署和运行。然而,随着数据量不断增长,可能会面临性能瓶颈和容量限制。这时,将单节点的Minio数据迁移到一个集群环境可以提供更高的可靠性、可扩展性和容量。 要将Minio单机数据迁移到集群,可以采取以下步骤: 1. 准备集群环境:搭建一个运行多个Minio实例的集群环境。确保每个节点都可以相互通信,并且集群环境配置正确。 2. 迁移数据:通过以下方式将单机数据迁移到集群中的每个节点: a. 打开单机Minio实例的管理界面,导航到所需的存储桶。 b. 选择要迁移的对象,并使用“复制”功能将对象复制到集群环境中的某个节点。确认复制完成后,你可以在集群节点上找到该对象。 c. 重复以上步骤,将所有对象都复制到集群环境中。 3. 同步数据:为了确保数据一致性,你可以使用Minio的同步功能来同步集群中每个节点之间的数据。通过创建同步策略,你可以定期将某个节点的数据复制到其他节点上。 4. 配置负载均衡:在迁移数据后,你可以配置负载均衡以确保访问请求均匀分配到集群中的各个节点。这样可以提高系统的性能和可用性。 5. 监控和维护:在数据迁移至集群后,定期监控集群节点的运行状况和性能,进行必要的维护和优化操作。 通过以上步骤,你可以将Minio单机数据迁移到集群,并获得更高级别的可靠性、可扩展性和容量。这将为你的应用程序提供更好的性能和可用性,同时满足不断增长的数据需求。 ### 回答2: Minio是一个开源的对象存储服务器,可以在私有云或公有云环境中部署和使用。当我们需要将Minio的单机数据迁移至集群时,可以按照以下步骤进行操作。 首先,我们需要配置并启动Minio集群。Minio集群由多个独立的Minio服务器节点组成,每个节点都有自己的独立存储空间和身份验证凭据。我们可以使用Minio提供的文档和命令行工具来完成这个步骤。 接下来,我们可以使用Minio提供的命令行工具或API来执行数据迁移操作。一种常见的方法是使用`mc`命令行工具进行数据同步。我们可以使用`mc mirror`命令将单机Minio服务器中的所有数据镜像到集群中的一个节点。命令示例如下: ``` mc mirror --overwrite local/path-to-data cluster/bucket ``` 这个命令将会递归地将`local/path-to-data`路径下的所有数据对象镜像到集群中的指定bucket中。如果集群中有多个节点,Minio会自动将数据在各个节点之间进行复制,以实现高可用和冗余。 另外,我们还可以使用Minio提供的客户端SDK来编写自定义的数据迁移脚本。通过使用SDK,我们可以编写程序逻辑来实现更复杂的数据迁移操作,例如按条件过滤数据、增量迁移等。Minio的官方文档提供了各种编程语言的SDK和示例代码,我们可以参考这些资源来完成数据迁移。 总之,将Minio的单机数据迁移到集群是一个相对简单的操作。我们只需要配置和启动Minio集群,然后使用Minio提供的命令行工具或SDK进行数据同步即可。根据数据量和网络速度的不同,迁移过程可能需要一定时间来完成。但一旦迁移完成,我们就可以享受到Minio集群带来的高可用性和容错性。 ### 回答3: 要将Minio单机数据迁移至集群,需要按照以下步骤进行操作: 1. 首先,确保Minio集群已经正常运行,并且所有节点都已经连接在一起,形成一个集群。 2. 打开Minio单机服务器,并登录到Minio控制台。 3. 在Minio控制台中,选择要迁移数据桶。 4. 点击“设置”选项卡,然后选择“复制策略”。 5. 在复制策略中,选择“开启复制”选项,并选择要复制的目标桶。 6. 确定设置后,点击“保存”。 7. Minio会自动开始将单机数据复制到集群中的目标桶。 8. 迁移过程中,您可以在Minio控制台的“活动”选项卡中查看复制任务的状态和进度。 9. 当复制完成后,您可以验证数据是否已成功迁移至集群中的目标桶。 需要注意的是,数据迁移可能需要相当长的时间,具体取决于数据的大小和网络连接的稳定性。在迁移过程中,确保单机服务器和集群节点的稳定性和连接性非常重要,以确保数据的完整性和一致性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值