• 使用Minio Clinet进行Minio的数据迁移


    1. 关于Minio Client:
      MinIO Client是一个命令行工具,用于与Minio或云存储服务进行交互。它支持文件系统和Amazon S3兼容的云存储服务(AWS Signature v2和v4)。

      MinIO Client mc 命令行工具提供了ls、cat、cp、mirror和diff等UNIX命令的现代替代方案,支持文件系统和Amazon s3兼容的云存储服务。

      mc 命令行工具是为与AWS S3 API兼容而构建的,并在MinIO和AWS S3上测试了预期的功能和行为。

      MinIO不为其他S3兼容服务提供保证,因为它们的S3 API实现是未知的,因此不受支持。虽然mc命令可以按照文档的方式工作,但任何此类用法都要由您自己承担风险。

    2. 迁移示例
      2.1 部署两个版本的Minio实例
      旧版本2019:minio/minio:RELEASE.2019-12-19T22:52:26Z
      新版本2023:minio/minio:RELEASE.2023-03-24T21-41-23Z

    version: '3'
    services:
      # 旧版本2019
      minio2019:
        image: minio/minio:RELEASE.2019-12-19T22:52:26Z
        ports:
          - 19000:9000
          - 19001:9001
        environment:
          MINIO_ACCESS_KEY: admin
          MINIO_SECRET_KEY: admin123
        volumes:
          - /usr/local/minio2019/data:/data
          - /usr/local/minio2019/config:/root/.minio/
        command: server /data
        privileged: true
        restart: always
    
      # 新版本2023
      minio2023:
        image: minio/minio:RELEASE.2023-03-24T21-41-23Z
        ports:
          - 29000:9000
          - 29001:9001
        environment:
          MINIO_ACCESS_KEY: admin
          MINIO_SECRET_KEY: admin123
        volumes:
          - /usr/local/minio2023/data:/data
          - /usr/local/minio2023/config:/root/.minio/
        command: server --console-address ':9001' /data
        privileged: true
        restart: always
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34

    2.2 在2019版本Minio上创建一个名称为"test2019"的bucket,并上传一些测试文件,通过查看挂载目录可以看到:

    [root@master minio2019]# tree /usr/local/minio2019/
    /usr/local/minio2019/
    ├── config
    │   └── certs
    │       └── CAs
    ├── data
    │   └── test2019
    │       ├── image-01.png
    │       ├── image-02.png
    │       ├── image-03.png
    │       └── image-04.png
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    2.3 部署一个 mc 容器,做数据迁移
    启动一个mc容器,并进入容器中

    docker run -it --entrypoint=/bin/sh minio/mc
    
    
    • 1
    • 2

    分别设置 minio2019 和 minio2023 的alias

    # mc alias set 别名 minio后端链接端口 管理员账号 管理员密码
    
    # 设置minio2019的alias
    mc alias set minio2019 http://ip:19000 admin admin123
    # 设置minio2023的alias
    mc alias set minio2023 http://ip:29000 admin admin123
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    2.4 迁移数据
    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/te
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

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

    [root@master minio2019]# mc mirror  minio2019 minio2023
    
    
    • 1
    • 2

    2.5 查看迁移结果

    [root@master minio2019]# tree /usr/local/minio2023
    /usr/local/minio2023
    ├── config
    │   └── certs
    │       └── CAs
    ├── data
    │   └── test2019
    │       ├── image-01.png
    │       ├── image-02.png
    │       ├── image-03.png
    │       └── image-04.png
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
  • 相关阅读:
    Java反射机制(一)
    【TensorFlow1.X】系列学习笔记【入门四】
    持续集成部署-k8s-服务发现-Service:Service、Endpoint、Pod之间的关系与原理
    javaweb--servlet
    数据结构面试专题
    LSTM+CNN模型厄尔尼诺事件预测
    68、Spring Data JPA 的 方法名关键字查询(全自动,既不需要提供sql语句,也不需要提供方法体)
    力扣第530与783题 c++(暴力,加双指针优化) 附迭代版本
    golang学习笔记(net/http库基本使用)
    大模型算法(一):从Transformer到ViT再到LLaMA
  • 原文地址:https://blog.csdn.net/qq_33385691/article/details/133743168