MinIo 数据从独立文件系统模式迁移至 Federation 模式的数据迁移

1、本次进行Minio数据迁移的背景

        之前在文章中也提到过,地址 https://blog.csdn.net/weixin_47792780/article/details/136766194 直接在旧版本的config\data上运行新版本minio会出现新版部署后不能读取旧版的数据。 而业务上为了保持产品能持续跟进官网更新,需要对 minio 进行大升级,但MinIo 从2022-10-29T06-21-33Z版本起完全删除NAS/S3和传统FS模式(filesystem mode)的网关实现,要想升级到最新的minio系统,只能通过新部署新版minio进行数据迁移。了解一下官网的Background(背景)。

        The MinIO Gateway and the related filesystem mode entered a feature freeze in July 2020. In February 2022, MinIO announced the deprecation of the MinIO Gateway. Along with the deprecation announcement, MinIO also announced that the feature would be removed in six months time.

        MinIO网关和相关文件系统模式于2020年7月进入功能冻结。2022年2月,MinIO宣布弃用MinIO网关。在宣布弃用的同时,MinIO还宣布该功能将在六个月后删除。

        As of RELEASE.2022-10-29T06-21-33Z, the MinIO Gateway and the related filesystem mode code have been removed. Deployments still using the standalone or filesystem MinIO modes that upgrade to MinIO Server RELEASE.2022-10-29T06-21-33Z or later receive an error when attempting to start MinIO.

        自RELEASE2022-10-29T06-21-33Z起,MinIO网关和相关文件系统模式代码已被删除。仍使用独立或文件系统MinIO模式的部署升级到MinIO Server RELEASE.2022-10-29T06-21-33Z或更高版本,在尝试启动MinIO时会收到错误。

        To upgrade to the RELEASE.2022-10-29T06-21-33Z or later release, those who were using the standalone or filesystem deployment modes must create a new Single-Node Single-Drive deployment and migrate settings and content to the new deployment.

        要升级到RELEASE2022-10-29T06-21-33Z或更高版本,使用独立或文件系统部署模式的用户必须创建新的单节点单驱动器部署,并将设置和内容迁移到新部署。

2、关于 minio 的传统模式和扩容。

        传统Mino不支持单个集群的扩容,其扩容是需要通过增加新的存储节点来扩展单集群,这种方式一般需要处理数据重新寻址(数据映射)和数据均衡,数据迁移的问题。Minio不支持对单个集群进行扩展。这种设计使系统更加简单(比如一个对象定位到它所在的纠删组EC Set运用简单取模哈希即可)并大大降低整个系统出错概率,MinIO对象存储系统更加可靠稳定,但相对不够灵活。

        新版的 Minio 通过Federation模式来实现整个集群扩容。Federation 依赖2个组件:一个是etcd (用于存储桶DNS服务记录);二是CoreDNS (用于基于填充的桶式DNS服务记录的DNS管理,可选)。Minio的Federation模式的扩容只能用于新的bucket模式。Etcd 用于记录bucket 和 集群的映射关系。CoreDNS 用于地址解析。

3、minio新旧版本间的数据迁移

        本次迁移的新minio服务,采用最新的minio版本: RELEASE.2024-05-28T17-19-04Z 基于docker搭建。搭建好后在mc工具中配置新旧minio信息,然后进行数据迁移,步骤和命令如下:

A. 部署最新版的minio

       部署最新版的minio, 我这里是  Minio RELEASE.2024-05-28T17-19-04Z 版本。
如下,启动命令里需要使用 --console-address 指定哪个端口用作管理后台。

root@linge:/disk/# docker pull minio/minio:latest
root@linge:/disk/# docker run -p 9000:9000 -p 9001:9001 -di \
  --restart=always \
  --name minio_store \
  -e "MINIO_ACCESS_KEY=test" \
  -e "MINIO_SECRET_KEY=123456" \
  -v /save/minio_data:/data \
  -v /save/minio_config:/root/.minio \
  minio/minio:latest server --console-address ":9001" /data

B. 配置新旧minio信息

#查看已有的minio服务信息
mc config host ls
#移除一些默认无用的minio服务如play/gcs/s3
mc config host remove  play

#添加新旧minio服务地址
语法: mc alias set 名称 服务地址 用户名 密码
mc alias set local http://192.168.162.76:9000 username  password
mc alias set local_new http://192.168.162.76:8000 username  password
#查看已有的minio的bucket列表
mc ls
mc ls local_new

C. 进行数据迁移命令执行过程

#全部迁移,bucket不存在会自动创建,但重名文件不会覆盖
mc mirror local local_new
#部分迁移,如只迁移bucket
mc mirror minio1/bucket1 minio2/bucket1
#强制覆盖,加 --overwrite 强制覆盖重名文件
mc mirror --overwrite minio1/bucket1 minio2/bucket1

        迁移命令执行过程,动态显示数据迁移的进度。

root@linge:/disk/# mc mirror local local_new
...test/file/filename.pdf:  14.17 GiB / 14.17 GiB ┃▓▓

        最后新版本的 MINIO 的管理功能比原 MinIo 2022-10-29T06-21-33Z 之前的版本强很多,基本可以不用再使用mc命令了,也不需要再额外安装之前博文中也提到过的minio/console控制台。 可以直接在自带的管理后台里进行各种所需进行的命令操作。比如在 bucket的Anonymous中添加 Add Anonymous Access Rule 设置可匿名下载,其等同于在mc命令中执行如下命令:

mc policy set download local/products

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林戈的IT生涯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值