首页 > 其他分享 >使用Minio Clinet将老版本Minio的数据迁移到新版本的Minio

使用Minio Clinet将老版本Minio的数据迁移到新版本的Minio

时间:2023-06-01 14:57:27浏览次数:50  
标签:Clinet Minio mc image 版本 minio2019 minio2023 minio

1. 关于Minio Client

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

MinIO Client mc 命令行工具提供了lscatcpmirrordiff等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

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

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

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

docker run -it --entrypoint=/bin/sh minio/mc

分别设置 minio2019minio2023 的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

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

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

[root@master minio2019]# mc mirror  minio2019 minio2023

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

标签:Clinet,Minio,mc,image,版本,minio2019,minio2023,minio
From: https://www.cnblogs.com/Tangtang1997/p/17448978.html

相关文章

  • aardio获取exe文件的版本号
    看文档以为是这样取varinfo=fsys.version.getInfo(io._exepath);fsys.version.getInfo(io._exepath).productVersion;或者fsys.version.getInfo(io._exepath).fileVersion;结果不是,返回的是1.2.3.4中的一个数字  后来才查到要自己拼接varr=fsys.version.getInfo......
  • Apache DolphinScheduler 3.0.6 发布,或将是最后一个 3.0.X 版本
     ApacheDolphinScheduler于近日发布了3.0.6版本,主要针对3.0.5重要bug进行修复。如果之后没有发现重大问题,3.0.6将会是3.0.x最后一个版本。Bug修复 Master重新连接zk后slot没有正常更新#14014父工作流失败时subprocess没有正常结束#14087下载地址:ht......
  • minio server启动模式 小结
     官方文档:https://docs.min.io/docs/minio支持多种server启动模式 1.分布式文件系统应用:1.1、Minlo介绍:Minlo是一个基于ApacheLicensev2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数......
  • macos安装nvm管理多版本node
    最早直接采用brew安装,如下:brewinstallnode@18brewuninstallnode@18 //卸载 但学习的项目用的是老版本node,所以卸载了,用NVM来管理多版本node,参考这篇文章:https://blog.bigoodyssey.com/how-to-manage-multiple-node-versions-in-macos-2021-guide-5065f32cb63b同时加......
  • JDK高版本反射修改 private static fianl 修饰的对象
    在JDK高版本中,Java语言规范已经更新,因可能会破坏Java语言的安全性和稳定性,不再允许通过反射改变final字段的值,需要自己做一下处理。 创建工具类importjava.lang.reflect.Field;importsun.misc.Unsafe;publicclassFieldUtil{privatestaticUnsafeunsafe......
  • 动态库版本控制
    Linux中有一套规则来命名系统中的每一个共享库,它规定共享库的命名规则必须如下libname.so.x.y.z最前面使用前缀“lib”、中间是库的名字和后缀“.so”,最后面跟着的是三个数字组成的版本号。“x”表示主版本号,“y”表示次版本号,“z”表示发布版本号。   发布版本号表示......
  • Jenkins(单独部署非容器版本)配置k8s【转】
    一、安装kubernetes插件1.在插件管理里面搜索kubernetes,如下图:点击manageJenkins进入配置页面:点击插件管理:搜索kubernetes插件:2.检查是否安装成功点击ManagerJenkins进入配置界面,然后点击ConfigureSystem:在系统配置里面可以找到Cloud配置项,则表示插件安装成功:注意:我这里......
  • python版本的“共轭梯度法”算法代码
    在看代码的过程中遇到了共轭梯度法这个概念,对这个算法的数学解释看过几遍,推导看过了,感觉懂了,然后过上一些日子就又忘记了,然后又看了一遍推导,然后过了一些日子也就又忘记了,最后想想这个算法的数学解释就不要再取深究了,毕竟平时也不太会用到,偶尔用到了只要保证代码会写也就OK了。 ......
  • mac 升级node指定版本
    1、先查看自己的版本node-v2、清除node的缓存sudonpmcacheclean-f3、安装n模块sudonpmi-gn4、升级node指定版本sudonstable//把当前系统的Node更新成最新的“稳定版本”nlts//长期支持版nlatest//最新版n14.15.4//指定安装版本......
  • Ado.Net 数据库访问技术(.Net 6版本)
    1.ADO.NET的前世今生ADO.NET的名称起源于ADO(ActiveXDataObjects),是一个COM组件库,用于在以往的Microsoft技术中访问数据。之所以使用ADO.NET名称,是因为Microsoft希望表明,这是在NET编程环境中优先使用的数据访问接口。ADO.NET可让开发人员以一致的方式存取资料来源(例如SQLSe......