minio版本升级与数据迁移操作记录

news2025/2/6 0:50:11

系列文章目录

minio单节点与集群安装


文章目录

  • 系列文章目录
  • 前言
  • 一、问题引出
  • 二、升级与数据迁移步骤
    • 0.资源清单
    • 1.部署及启动新minio单实例
    • 2.设置新旧实例的别名
    • 3.检查旧实例bucket及存储的文件
    • 4.通过mc客户端命令进行数据迁移
    • 5.迁移结果验证
  • 三、新旧实例minio数据对比


前言

收到集团侧安全团队邮件提示,MinIo verify接口(未授权问题)存在敏感信息泄露漏洞,攻击者通过构造特殊URL地址,读取系统敏感信息,其中包括环境变量,有的服务器还会获取到AK/SK,获取后可直接登录后台。建议升级到安全版本RELEASE.2023-03-20T20-16-18Z及以上,在waf上配置策略,拒绝所有post到/minio/bootstrap/verify的请求。因为还有环境的minio版本是RELEASE.2020-05-08T02-40-49Z。将其升级到RELEASE.2023-05-18T00-05-36Z版本。


本次升级操作主要以单节点作为示例,集群的升级方法和单节点大同小异

一、问题引出

当前版本太老,升级到安全版本无法通过数据挂载方式直接升级,由于RELEASE.2022-10-29T06-21-33Z之后Mino网关和相关文件系统模式代码已删除,使用standalone或filesystem模式的老版本minio升级到RELEASE.2022-10-29T06-21-33Z或更高版本时,会无法启动。要升级到 RELEASE.2022-10-29T06-21-33Z 或更高版本,使用standalone 或 filesystem模式的用户必须先部署一个新的minio实例,然后手动将配置和数据内容迁移到新实例(注意新实例不能和原来老版本minio在相同的目录,如果是以磁盘为单位部署,则需要使用新的磁盘)。

二、升级与数据迁移步骤

0.资源清单

ipminio版本数据目录位置
192.168.56.130(旧版本单节点)RELEASE.2020-05-08T02-40-49Z/data/minio_data
192.168.56.130(新版本单节点)RELEASE.2023-05-18T00-05-36Z/data/minio_data_2023

1.部署及启动新minio单实例

查看顶部引入的文章链接,通过上述文章中记录的ansible-playbook方式部署高版本的minio单节点实例

[root@python1 ~]# ansible-playbook -i hosts minio.yml
[root@python1 ~]# vim /export/server/minio/single_run.sh
#!/bin/sh
export MINIO_ROOT_USER=OpsMinIO
export MINIO_ROOT_PASSWORD=OpsAdmin081524
TIME=`date +%Y-%m-%d_%T`
MINIO_OPTS="--console-address :9001 --address :8021"  #指定minio-ui的访问端口和minio服务端口.其他参数的使用参考官网文档即可

#启动新实例,指定的数据目录要与老实例不同。
nohup /export/server/minio/minio server $MINIO_OPTS   /data/minio_data_2023  > /export/server/minio/minio_server_"$TIME".log 2>&1 &
echo $! > /export/server/minio/minio.pid

#启动minio单节点
[root@python1 ~]# sh /export/server/minio/single_run.sh

2.设置新旧实例的别名

因演示环境,新旧实例在一个节点上,使用新实例的mc客户端进行别名操作<旧实例mc客户端不支持alias命令>

#查看mc版本
[root@python1 minio]# ./mc --version
mc version RELEASE.2023-05-18T16-59-00Z
#新实例部署路径 /export/server/minio
#设置旧实例的别名
[root@python1 minio]# ./mc alias set minio2021 http://192.168.56.130:9000  MinIO Admin@2020
mc: Successfully migrated /root/.mc/config.json from version `9` to version `10`.
Added `minio2021` successfully.

#设置新实例的别名
[root@python1 minio]# ./mc alias set minio2023 http://192.168.56.130:8021  MinIO Admin@2020
Added `minio2023` successfully.

3.检查旧实例bucket及存储的文件

在这里插入图片描述

4.通过mc客户端命令进行数据迁移

#1、查看创建的别名
[root@python1 minio]# ./mc alias ls

在这里插入图片描述

#执行迁移命令
[root@python1 minio]# ./mc mirror minio2021 minio2023

在这里插入图片描述

知识补充: minio有三种数据迁移方式

第一种:
	全量迁移,重名文件不覆盖,如bucket不存在,会自动创建
	./mc mirror minio2021 minio2023
第二种:
	只迁移某个bucket,以test为例,迁移的目标bucket需要提前创建
	./mc mirror  minio2021/test   minio2023/test   
第三种:
	加上--overwrite参数,覆盖重名文件
	./mc mirror --overwrite  minio2021 minio2023

5.迁移结果验证

访问新实例的minio,可以看到旧实例中的数据已在新minio中存在
在这里插入图片描述

三、新旧实例minio数据对比

在这里插入图片描述
进入minio2021和minio2023的数据目录,可以看到数据文件有很大的区别。

在minio2021的数据目录下,看到的是真正的一个文件,与本地存储的格式一致,并且这些文件可以直接从服务器下载到本地。

这就意味着如果minio的数据目录挂载到服务器本地,则可以直接通过写磁盘的方式将文件写入minio,在minio界面也能正常下载。

但当数据迁移到minio2023后,不管是从minio2021迁移过来的数据,还是新上传的数据,每一个文件,在2023版本的存储目录下都是一个目录,目录下存的是一个.meta元数据文件。

这就意味着在默认情况下,像2021老版本那样直接通过写磁盘的方式将文件写入minio,就已经行不通了。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2056604.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

利用Geohash算法,快速检索周边兴趣点

文章目录 一、前言二、基本原理三、Geohash算法四、算法存在的问题五、代码实现六、问题解决处理 一、前言 需要一个需求&#xff0c;查找某小区附近的超市&#xff0c;如果该小区和超市距离在500米以内&#xff0c;则查找成功。 实现该功能按照传统方式&#xff0c;需要获取小…

【秒杀系统架构图】

文章目录 高并发防止超卖和恶意请求定时同步商品用户秒杀的流程秒杀服务的关注点&#xff1a; 秒杀系统一般出现正在电商平台中&#xff0c;秒杀系统需要支持高并发&#xff0c;保持一致性和高可用的特点&#xff1a; 高性能。 秒杀涉及大量的并发读和并发写&#xff0c;因此支…

QT:事件机制

一、事件机制 qt的核心机制&#xff1a;对象树、信号和槽、事件机制 1.1概念 就是当这件事情发生时&#xff0c;自动执行对应的功能代码。该某块功能代码是虚函数&#xff0c;只需重写该虚函数&#xff0c;即可执行重写的代码。 1.2事件处理简介 1. 什么是事件&#xff1f; (重…

algorithm算法库学习之——堆操作,最小/最大操作,比较操作,排列操作

algorithm此头文件是算法库的一部分。本篇介绍堆操作&#xff0c;最小/最大操作&#xff0c;比较操作&#xff0c;排列操作。 接口API 堆操作 is_heap 检查给定范围是否为一个最大堆 (函数模板) is_heap_until (C11) 查找能成为最大堆的最大子范围 (函数模板) make_heap 从一…

SQL 时间盲注 (injection 第十六关)

简介 SQL注入&#xff08;SQL Injection&#xff09;是一种常见的网络攻击方式&#xff0c;通过向SQL查询中插入恶意的SQL代码&#xff0c;攻击者可以操控数据库&#xff0c;SQL注入是一种代码注入攻击&#xff0c;其中攻击者将恶意的SQL代码插入到应用程序的输入字段中&#x…

C:每日一题:双指针法的使用

前言&#xff1a; 思虑再三&#xff0c;觉得如果有时间每日一题还是可以更新一下的。 题目难度&#xff1a;基础 解题方法&#xff1a;双指针法 一、题目 输入一个整数数组&#xff0c; 实现一个函数来调整该数组中数字的顺序使得 数组中所有的奇数位于数组的前半部分&a…

数字人的形象克隆与语音克隆是伪需求

形象克隆与语音克隆技术&#xff0c;在当前的环境上已经可以成熟的实现&#xff0c;但真的解决了痛点问题吗&#xff1f; 普通人或者一般的公司克隆自己内部人的形象有必要吗&#xff1f;对外界而言&#xff0c;克隆的形象与虚拟的形象并无二致&#xff0c;本身并没有什么知名…

Arduino自制手持小风扇项目

1.1 介绍&#xff1a; 实验功能说明&#xff1a;功能&#xff08;1&#xff09;按一下按键小风扇开启&#xff0c;再按一下关闭。 功能&#xff08;2&#xff09;按一下按键小风扇一档风速&#xff0c;再按一下二挡&#xff0c;依次三挡…关闭。 按键模块说明&#xff1a;按下…

【自动化测试必学语言】python:模块和包

目录 导入模块的语法 方式一 方式二 方式三 【了解】 基本不用 模块的查找顺序 __name__ 的作用 代码练习 包(package) Python 源代码文件就是⼀个模块模块中定义的变量函数类&#xff0c;都可以让别人使用&#xff0c;同样&#xff0c;可以使用别人定义的&#xff08…

进程(2) wait、exec函数族

目录 1. fork() 函数 功能 使用时注意事项 2. exit() 函数 功能 使用时注意事项 3. wait() 函数 功能 使用时注意事项 总结 wait() 异常信号结束 waitpid exec函数族 execl() execlp() execv execvp fork()、exit() 和 wait() 函数在进程管理中扮演着重要的角…

【C语言】【Linux】如何在Linux终端中进行彩色输出——C语言篇

&#x1f41a;作者简介&#xff1a;花神庙码农&#xff08;专注于Linux、WLAN、TCP/IP、Python等技术方向&#xff09;&#x1f433;博客主页&#xff1a;花神庙码农 &#xff0c;地址&#xff1a;https://blog.csdn.net/qxhgd&#x1f310;系列专栏&#xff1a;C语言编程&…

双亲委派机制的优势与劣势

三次双亲委派机制的破坏

24 优化算法

目录 优化和深度学习深度学习中的挑战局部最小 vs 全局最小鞍点(saddle point)梯度消失小结凸性(convexity)凸集凸函数(convex function)凸函数优化凸和非凸例子小结梯度下降(gradient descent)1、梯度下降算法是最简单的迭代求解算法2、学习率(learning rate)小结随…

Unity小功能 - 贴墙滑行

目录 一. 简介 二. 创建项目 1.新建地板 2.创建墙体 3.创建主角 三. 编写代码 四. 效果演示 五. 总结 一. 简介 贴墙滑行是在游戏中常见的一种角色动作表现&#xff0c;它能够增加游戏的真实感和趣味性&#xff0c;同时也为游戏玩法带来更多的可能性。 在 Unity 中实…

【秋招笔试】8.18大疆秋招(第三套)-三语言题解

🍭 大家好这里是 春秋招笔试突围,一起备战大厂笔试 💻 ACM金牌团队🏅️ | 多次AK大厂笔试 | 编程一对一辅导 ✨ 本系列打算持续跟新 春秋招笔试题 👏 感谢大家的订阅➕ 和 喜欢💗 和 手里的小花花🌸 ✨ 笔试合集传送们 -> 🧷春秋招笔试合集 🍒 本专栏已收…

测绘程序设计|测绘程序设计大赛介绍|备赛建议

**由于微信公众号改变了推送规则&#xff0c;为了每次新的推送可以在第一时间出现在您的订阅列表中&#xff0c;记得将本公众号设为星标或置顶喔~** 简单介绍测绘学科创新创业智能大赛测绘技能竞赛——测绘程序设计比赛。 &#x1f33f;前言 测绘程序设计比赛是测绘学科创新创…

HTTPS协议和HTTP协议的区别详细图解

文章目录 HTTPS协议加密是什么&#xff1f;对称加密非对称加密 Cookie 和 Session的区别 HTTPS协议 HTTP协议内容都是按照文本的方式明文传输的&#xff0c;是没有经过加密的&#xff0c;没有加密就意味着裸奔&#xff0c;所以协议中的内容就很容易引起一些不良人士的获取和篡…

STM32自制手持小风扇实验

1.1 介绍&#xff1a; 实验功能说明&#xff1a;功能&#xff08;1&#xff09;按一下按键小风扇开启&#xff0c;再按一下关闭。 功能&#xff08;2&#xff09;按一下按键小风扇一档风速&#xff0c;再按一下二挡&#xff0c;依次三挡…关闭。 按键模块说明&#xff1a;按下…

CommandLineRunner

CommandLineRunner 是 Spring Boot 中的一个接口&#xff0c;它允许你在 Spring 应用程序启动之后&#xff08;即在 SpringApplication.run() 执行完成后&#xff09;立即执行一些代码。这在你需要初始化数据、检查配置文件参数或执行其他启动任务时非常有用。 实现 CommandLin…

win10蓝屏CRITICAL_PROCESS_DIED

目录 前言 处理过程 第一阶段处理&#xff1a;重置虚拟内存 第二阶段处理&#xff1a;sfc /scannow 扫描系统并修复损坏文件 前言 连续一周开机一段时间后蓝屏&#xff0c;刚开始的蓝屏提示的是KERNEL_DATA_INPAGE_ERROR&#xff0c;后来经过一番操作&#xff0c;依然出现…