minio分布式集群部署

news2024/9/28 15:32:28

minio分布式集群部署

分布式 Minio 可以让你将多块硬盘或者多台服务器组成一个对象存储服务。由于硬盘分布在不同的节点上,分布式 Minio 避免了单点故障。MinioMinio分布式模式可以帮助你搭建一个高可用的对象存储服务,你可以使用这些存储设备,而不用考虑其真实物理位置。

  • minio官网:https://docs.min.io/docs/minio-quickstart-guide.html
  • minio中文文档:http://docs.minio.org.cn/docs

一、Minio分布式部署的好处

1、数据保护

1.1	分布式 Minio 采用纠删码来防范多个节点宕机和位衰减。

1.2 分布式 Minio 至少需要 4 个节点(4台服务器),使用分布式 Minio 就 自动引入了纠删码功能。

1.3 纠删码是一种恢复丢失和损坏数据的数学算法, Minio 采用 Reed-Solomon code 将对象拆分成 N/2 数据和 N/2 奇偶校验块。 这就意味着如果是 12 块盘,一个对象会被分成 6 个数据块、6 个奇偶校验块,你可以丢失任意 6 块盘(不管其是存放的数据块还是奇偶校验块),你仍可以从剩下的盘中的数据进行恢复。

1.4	纠删码的工作原理和 RAID 或者复制不同,像 RAID6 可以在损失两块盘的情况下不丢数据,而 Minio 纠删码可以在丢失一半的盘的情况下,仍可以保证数据安全。 而且 Minio 纠删码是作用在对象级别,可以一次恢复一个对象,而RAID 是作用在卷级别,数据恢复时间很长。 Minio 对每个对象单独编码,存储服务一经部署,通常情况下是不需要更换硬盘或者修复。Minio 纠删码的设计目标是为了性能和尽可能的使用硬件加速。

1.5	位衰减又被称为数据腐化 Data Rot、无声数据损坏 Silent Data Corruption ,是目前硬盘数据的一种严重数据丢失问题。硬盘上的数据可能会神不知鬼不觉就损坏了,也没有什么错误日志。正所谓明枪易躲,暗箭难防,这种背地里犯的错比硬盘直接故障还危险。 所以 Minio 纠删码采用了高速 HighwayHash 基于哈希的校验和来防范位衰减。

2、高可用

2.1	单机 Minio 服务存在单点故障,相反,如果是一个 N 节点的分布式 Minio ,只要有 N/2 节点在线,你的数据就是安全的。不过你需要至少有 N/2+1 个节点来创建新的对象。例如,一个 8 节点的 Minio 集群,每个节点一块盘,就算 4 个节点宕机,这个集群仍然是可读的,不过你需要 5 个节点才能写数据。

3、限制

3.1	分布式 Minio 单租户存在最少 4 个盘最多 16 个盘的限制(受限于纠删码)。这种限制确保了 Minio 的简洁,同时仍拥有伸缩性。如果你需要搭建一个多租户环境,你可以轻松的使用编排工具(Kubernetes)来管理多个Minio实例。注意,只要遵守分布式 Minio 的限制,你可以组合不同的节点和每个节点几块盘。比如,你可以使用 2 个节点,每个节点 4 块盘,也可以使用 4 个节点,每个节点两块盘,诸如此类。

4、一致性

4.1	Minio 在分布式和单机模式下,所有读写操作都严格遵守 read-after-write 一致性模型。 

二、Minio分布式集群搭建

1、服务器准备

注意minio的数据盘需要和系统盘分开,因为minio集群启动时需要格式化硬盘,以下服务节点为我虚拟机创建,每个节点除系统盘外,各外挂一块硬盘。

附:centos硬盘扩容、挂载

服务器节点存储目录操作系统
192.168.80.11/miniodata/datacentos7_64
192.168.80.12/miniodata/datacentos7_64
192.168.80.13/miniodata/datacentos7_64
192.168.80.14/miniodata/datacentos7_64

2、下载官网二进制文件

liunx下载地址:https://dl.min.io/server/minio/release/linux-amd64/minio

window下载地址:http://dl.minio.org.cn/server/minio/release/windows-amd64/minio.exe

因为我们是centos系统,所以我们用liunx下载地址即可

3、开始部署

注意:以下操作需要在每一台服务器上操作一遍。

3.1、创建目录

[root@localhost ~]# mkdir -p /miniodata/{app,data,logs}
app:启动脚本及二进制文件目录;
data:数据存储目录;
logs:日志文件目录;

3.2、上传二进制minio文件

上传到 /miniodata/app 目录中

3.3、编写集群启动脚本

[root@localhost ~]# vi /miniodata/app/run.sh
#!/bin/bash
export MINIO_ROOT_USER=minio@admin
export MINIO_ROOT_PASSWORD=minio@admin
nohup /miniodata/app/minio server  --address ':9110' --console-address ':9111'  http://192.168.80.11/miniodata/data http://192.168.80.12/miniodata/data http://192.168.80.13/miniodata/data http://192.168.80.14/miniodata/data >/miniodata/logs/minio.log 2>&1 &
MINIO_ACCESS_KEY:用户名;
MINIO_SECRET_KEY:密码,密码不能过于简单,最好是大小写加特殊字符,长度大于8--address:minio默认端口为9000,通过此配置可更改默认端口,自己按需要添加。
--console-address 控制台端口号

3.4、给目录赋予权限

[root@localhost ~]# chmod +x /miniodata/app/minio && chmod +x /miniodata/app/run.sh

4、启动集群

4.1、启动之前先关闭防火墙

#查看防火墙状态
systemctl status firewalld
#关闭防火墙
systemctl stop firewalld.service 
#禁止防火墙开机启动
systemctl disable firewalld.service

4.2、启动集群

按3的步骤依次在4台服务器上操作之后,用下面命令依次启动集群**

注意:启动之前要确保数据目录是独立挂载硬盘,并且目录为空,不然启动不成功!!!

 [root@localhost ~]# cd /miniodata/app
 [root@localhost ~]# ./run.sh

启动成功:

MinIO Console

image-20221229232500070

image-20221229232758651

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

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

相关文章

七种分布式系统的解决方案,一次性讲给你听!

V-xin:ruyuan0330 获得600页原创精品文章汇总PDF 目录 TB级数据放在一台机器上:难啊!到底啥是分布式存储?那啥又是分布式存储系统呢?天哪!某台机器宕机了咋办?Master节点如何感知到数据副本消失…

nps内网穿透

nps服务端: linux, 公网ip npc客户端: windows, 内网 文件提取 链接:https://pan.baidu.com/s/1HgujpVoXpLxQ-IgAnI2Izg 提取码:8hyl nps安装 1.上传压缩包到服务器, 解压 2.修改conf文件夹下nps.conf文件 #HTTP(S) proxy port, no startup if em…

vue3 antd项目实战——Form表单使用【v-model数据的双向绑定,form表单嵌套input输入框、Radio单选框】

vue3 ant design vue项目实战——单选框(Radio)的使用以及Form表单的双向绑定知识调用(form表单的源代码附在文章最后)场景复现实现需求form表单整体架构的搭建input输入框文本域的嵌套单选组合Radio的嵌套button按钮组合的嵌套fo…

JVM 面试题

✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏:Java面试题…

C语言:预处理(1)

程序的翻译环境和执行环境 在ANSI C的任何一种实现中,存在两个不同的环境: 第一种是翻译环境,在这个环境中源代码被转换为可执行的机器指令。 第二种是执行环境,它用于实际执行代码。 翻译环境: 组成一个程序的每个…

MySQL 数据库练习题记录01

文章目录前言一、数据库练习题一1.1 表结构1.2 查询所有学生的信息(学号,姓名,性别,班级名称)1.3 查询所有人(包括没有成绩的学生)的课程分数(学号,姓名,性别,班级名称,语文分数,数学…

改进YOLOv5 | 引入密集连接卷积网络DenseNet思想 | 搭建密集连接模块

YOLOv5引入密集连接卷积网络DenseNet思想 CVPR 2017最佳论文 D e n s e N e t DenseNet DenseNet 论文地址:h

SpringBoot快速入门篇

💟💟前言 ​ 友友们大家好,我是你们的小王同学😗😗 今天给大家打来的是 SpringBoot快速入门篇 希望能给大家带来有用的知识 觉得小王写的不错的话麻烦动动小手 点赞👍 收藏⭐ 评论📄 小王的主页…

手写 mini 版 Webpack

目录 1. mini 版 Webpack 打包流程 2. 创建 minipack.js 2.1 需要用到的插件库 2.1.1 babylon —— 解析 JavaScript 语法,生产 AST 语法树 2.1.2 babel-traverse —— 对 AST 进行遍历、转换的工具 2.1.3 transformFromAst —— 将 ES6、ES7 等高级的语法&am…

[Verilog]有限状态机设计举例

有限状态机设计举例 摘要:有限状态机(FSM)是许多数字系统中用来控制系统和数据流路径行为的时序电路。FSM的实例包括控制单元和时序。 本实验介绍了两种类型的FSM(Mealy和Moore)的概念,以及开发此类状态机的…

Codeforces Round #837 (Div. 2)

A. Hossam and Combinatorics 题目链接:Problem - A - Codeforces 样例输入: 2 5 6 2 3 8 1 6 7 2 8 3 2 10样例输出: 2 4题意:给定一个有n个元素的数组,然后让我们求出有多少对(i,j)满足|a[i]-a[j]|max|a[p]-q[q]…

Hudi学习01 -- Hudi简介及编译安装

文章目录Hudi简介Hudi概述Hudi特性Hudi使用场景Hudi编译安装安装Maven编译hudi修改pom文件修改源码兼容hadoop3解决spark模块依赖的问题hudi编译命令Hudi简介 Hudi概述 Apache Hudi (Hadoop Upserts Delete and Incremental) 是下一代流数据湖平台。Apache Hudi 将核心仓库和…

并发编程中用到的几种常见锁

没有加锁而造成的数据竞争 任务&#xff1a;使用10个线程&#xff0c;同时对一个count加100000&#xff1b;最后我们期望的结果是100000&#xff1b; 实验代码&#xff1a; #include <stdio.h> #include <pthread.h> #include <unistd.h> #include <ti…

git项目 拉项目 提交 上传 保姆级教程

git 项目拉取提交 下载git https://git-scm.com/ 拉取代码 打开需要存代码的位置 右键 git bash打开git客户端 输入命令 git clone [复制的地址]上传代码 修改代码 方法一&#xff1a;命令行 打开对应的文件夹&#xff0c;右键打开git bash 拉取最新代码&#xff08;选…

React学习07-React扩展知识

setState setState更新状态的2种写法: setState(stateChange, [callback])------对象式的setState stateChange为状态改变对象(该对象可以体现出状态的更改)callback是可选的回调函数, 它在状态更新完毕、界面也更新后(render调用后)才被调用 setState(updater, [callback])-…

代码随想录算法训练营第九天(字符串)| 28. 实现 strStr(),459.重复的子字符串

代码随想录算法训练营第九天&#xff08;字符串&#xff09;| 28. 实现 strStr()&#xff0c;459.重复的子字符串 28. 实现 strStr() 因为KMP算法很难&#xff0c;大家别奢求 一次就把kmp全理解了&#xff0c;大家刚学KMP一定会有各种各样的疑问&#xff0c;先留着&#xff0…

Qt编写雷达模拟仿真工具2-自定义QGraphicsItem按钮

一、前言 雷达模拟仿真工具&#xff0c;整体结构采用的QGraphicsView框架&#xff0c;场景需要设计一个可点击的自定义按钮出来&#xff0c;在QGraphicsView中一切基础元素点都是基于QGraphicsItem&#xff0c;在QGraphicsItem类中我们可以看到它不继承自QObject&#xff0c;那…

25万美金奖励章鱼加速器2022冬季获胜团队!

全长 1427 字&#xff0c;预计阅读 6 分钟 作者&#xff1a;MiX 2022年12月21日&#xff0c;章鱼加速器2022年冬季 Web3 创业营圆满落幕&#xff0c;61个入营项目中有5个脱颖而出&#xff0c;获得「章鱼未来之星」称号&#xff0c;排名不分先后&#xff0c;他们分别是&#xf…

第五章. 可视化数据分析图表—Seaborn图表(折线图,直方图,条形图,散点图)

第五章. 可视化数据分析图 5.7 Seaborn图表 Seaborn是一个基于Matplotlib的高级可视化效果库&#xff0c;偏向于统计图表&#xff0c;主要针对的是数据挖掘和机器学习中的变量特征选取&#xff0c;相比Matplotlib&#xff0c;他的语法相对简单&#xff0c;但是具有一定的局限性…

Windows下安装oracle19c

oracle 19c 不支持 Windows 7 和 Windows 8 以及 Windows Server 2008&#xff08;GetOverlappedResultEx function 函数不支持 win7&#xff09;&#xff0c;支持 Windows 8.1 以上及 Windows Server 2012 1.下载地址&#xff1a; https://www.oracle.com/database/technolo…