Linux(Centos)安装Minio集群
目录
- 1:简介
- 2:功能与集成
- 3:架构
- 4:搭建集群
- 4.1:挂载磁盘
- 4.1.1:要求
- 4.1.2:创建挂载目录
- 4.1.3:注意:需要将新建的目录挂在到对应的磁盘下,磁盘不挂载好,集群启动会报错:找不到磁盘,如下:
- 5:准备环境
- 5.1:关闭防火墙
- 5.2:修改主机名
- 5.3:修改hosts文件,实现局域网互通
- 5.4:修改系统最大文件数
- 5.5:创建minio启动脚本和配置文件目录
- 5.6:下载minio到/usr/local/minio/run目录下
- 6:编写集群启动脚本(所有节点配置文件相同)
- 6.1:启动脚本/data/minio/run/run.sh
- 6.3:其中,“MINIO_ACCESS_KEY”为用户名,“MINIO_SECRET_KEY”为密码,密码不能设置过于简单,不然minio会启动失败
- 6.4:创建好的/usr/local/minio/run/目录结构如下:
- 6.5:systemd配置文件minio.service
- 7:启动测试
- 7.1:修改权限
- 7.2:依次启动每个服务器的minio
- 7.3:浏览器输入集群任意节点地址+9000端口,即可访问minio,可创建“bucket”并上传文件测试
- 7.4:用户名和密码 cat /usr/local/minio/run/run.sh中
- 7.5:web登录验证
1:简介
混合云和多云对象存储:
MinIO 提供高性能、与S3 兼容的对象存储系统,让你自己能够构建自己的云储存服务。
MinIO原生支持 Kubernetes,它可用于每个独立的公共云、每个 Kubernetes 发行版、私有云和边缘的对象存储套件。
MinIO是软件定义的,不需要购买其他任何硬件,在 GNU AGPL v3 下是 100% 开源的。
2:功能与集成
既然称minIO是s3,那么s3的一些特性,minIO是完全具备的。并且,并不是只有商业版才有,而是开源版就具备了。比如:Bucket的版本控制,Bucket的生命周期管理,多租户,对外暴露API,支持Veeam备份,角色访问控制ARN,还可以发消息给中间件(redis,ES,kafka)。这些功能我们会在对象存储那一个专题中详细讲解。
3:架构
由于是非常轻量级的软件,所以架构上也没有这么复杂,他使用操作系统的文件系统作为存储介质,我们在向任意节点写数据的时候,minIO会自动同步数据到另外的节点,而机制叫做erasure code(纠删码)来保证集群的稳定,保证数据可用,所以我们建议至少使用4个节点来构建集群。
如果一个N节点的分布式MinIO,只要有N/2节点在线,数据就是安全的。但是要保证至少有N/2+1个节点来创建新的对象。比如:我们的集群有4个节点,每个节点上一块盘,就算有2两个节点宕机,这个集群仍然是可读的,但是,我们需要3个节点才能让集群写数据。这就是为什么我们要有4个节点来构建集群。
早期版本中,每个租户至少有4个盘,最多有16个盘,这个是纠删码的限制,而新版本中是没有限制的。如果想要实现多租户,就需要借助于kubernetes来构建多个MinIO实例,或者启动多个实例来实现多租户。也就是说,一个进程对应一个实例,一个实例对应一个租户。
4:搭建集群
磁盘挂载参考:
参考一:https://blog.csdn.net/u011421988/article/details/125390561
参考二:https://cloud.tencent.com/developer/article/1813949
-
初始磁盘信息

-
增加一个硬盘

-
挂载磁盘

4.1:挂载磁盘
| 机器资源 | 挂载磁盘路径 |
|---|---|
| 192.168.90.44 | /usr/local/minio/data |
| 192.168.90.47 | /usr/local/minio/data |
| 192.168.90.49 | /usr/local/minio/data |
| 192.168.90.50 | /usr/local/minio/data |
4.1.1:要求
生产环境强烈建议至少四台机器,这也是官方的建议要求,这样的话就可以做到挂掉一台机器集群依然可以读写,挂掉两台机器集群依然可读,本文仅以四台机器为例子说明如何搭建集群
4.1.2:创建挂载目录
mkdir /usr/local/minio/data
4.1.3:注意:需要将新建的目录挂在到对应的磁盘下,磁盘不挂载好,集群启动会报错:找不到磁盘,如下:
5:准备环境
5.1:关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld
5.2:修改主机名
192.168.90.44,执行 hostnamectl set-hostname wy202;查看 cat /etc/hosts
192.168.90.47,执行 hostnamectl set-hostname wy203;查看 cat /etc/hosts
192.168.90.49,执行 hostnamectl set-hostname wy204;查看 cat /etc/hosts
192.168.90.50,执行 hostnamectl set-hostname wy205;查看 cat /etc/hosts
5.3:修改hosts文件,实现局域网互通
cat >> /etc/hosts << EOF
192.168.90.44 wy202
192.168.90.47 wy203
192.168.90.49 wy204
192.168.90.50 wy205
EOF
5.4:修改系统最大文件数
ulimit -n #查看最大连接数
ulimit -a
echo "* soft nofile 65535" >> /etc/security/limits.conf
echo "* hard nofile 65535" >> /etc/security/limits.conf
sysctl -p
reboot
5.5:创建minio启动脚本和配置文件目录
mkdir -p /usr/local/minio/run && mkdir -p /etc/minio
5.6:下载minio到/usr/local/minio/run目录下
cd /usr/local/minio/run && wget https://dl.min.io/server/minio/release/linux-amd64/minio
6:编写集群启动脚本(所有节点配置文件相同)
6.1:启动脚本/data/minio/run/run.sh
#!/bin/bash
#export MINIO_ACCESS_KEY=minio
#export MINIO_SECRET_KEY=miniostorageexport MINIO_ROOT_USER=minio
export MINIO_ROOT_PASSWORD=miniostorage/data/minio/run/minio server --config-dir /etc/minio --address ":9000" --console-address ":9001" \
http://192.168.90.44/usr/local/minio/data/data1 http://192.168.90.44/usr/local/minio/data/data2 \
http://192.168.90.47/usr/local/minio/data/data1 http://192.168.90.47/usr/local/minio/data/data2 \
http://192.168.90.49/usr/local/minio/data/data1 http://192.168.90.49/usr/local/minio/data/data2 \
http://192.168.90.50/usr/local/minio/data/data1 http://192.168.90.50/usr/local/minio/data/data2
6.3:其中,“MINIO_ACCESS_KEY”为用户名,“MINIO_SECRET_KEY”为密码,密码不能设置过于简单,不然minio会启动失败
6.4:创建好的/usr/local/minio/run/目录结构如下:
[root@minio1 run]# pwd
/data/minio/run
[root@minio1 run]# ll
总用量 106824
-rwxr-xr-x. 1 root root 109383680 2月 13 14:35 minio
-rwxr-xr-x. 1 root root 620 2月 15 06:25 run.sh
[root@minio1 run]#
6.5:systemd配置文件minio.service
cat > /usr/lib/systemd/system/minio.service <<EOF
[Unit]
Description=Minio service
Documentation=https://docs.minio.io/[Service]
WorkingDirectory=/data/minio/run/
ExecStart=/data/minio/run/run.shRestart=on-failure
RestartSec=5[Install]
WantedBy=multi-user.target
EOF
7:启动测试
7.1:修改权限
chmod +x /usr/lib/systemd/system/minio.service && chmod +x /data/minio/run/minio && chmod +x /data/minio/run/run.sh
7.2:依次启动每个服务器的minio
[root@minio1 run]# systemctl daemon-reload
[root@minio1 run]# systemctl enable minio && systemctl start minio
[root@minio1 run]# systemctl status minio
7.3:浏览器输入集群任意节点地址+9000端口,即可访问minio,可创建“bucket”并上传文件测试
http://192.168.90.44:9000
http://192.168.90.47:9000
http://192.168.90.49:9000
http://192.168.90.50:9000
7.4:用户名和密码 cat /usr/local/minio/run/run.sh中
MINIO_ROOT_USER=minio
MINIO_ROOT_PASSWORD=miniostorage
7.5:web登录验证
相关文章:
Linux(Centos)安装Minio集群
目录1:简介2:功能与集成3:架构4:搭建集群4.1:挂载磁盘4.1.1:要求4.1.2:创建挂载目录4.1.3:注意:需要将新建的目录挂在到对应的磁盘下,磁盘不挂载好,集群启动会…...
LeetCode 1662. 检查两个字符串数组是否相等 / 795. 区间子数组个数 / 剑指 Offer 47. 礼物的最大价值
1662. 检查两个字符串数组是否相等 2022.11.1 新的一月又开始了 题目描述 给你两个字符串数组 word1 和 word2 。如果两个数组表示的字符串相同,返回 true ;否则,返回 false 。 数组表示的字符串 是由数组中的所有元素 按顺序 连接形成的…...
【C++】缺省参数函数重载
🏖️作者:malloc不出对象 ⛺专栏:C的学习之路 👦个人简介:一名双非本科院校大二在读的科班编程菜鸟,努力编程只为赶上各位大佬的步伐🙈🙈 目录前言一、缺省参数1.1 缺省参数的概念1…...
Hbuilder 下载与安装教程
文章目录Hbuilder下载与安装教程Hbuilder简介一,下载Hbuilder二,安装Hbuilder三,简单使用四,Hbuilderx 调试Hbuilder下载与安装教程 Hbuilder简介 Builder是DCloud(数字天堂)推出的一款支持HTML5的Web开发…...
Mybatis工程升级到FlunetMybatis后引发的问题以及解决方法
0. 背景交代为了提高开发速度,我打算将公司原有Mybatis框架升级为FlunetMybatis。可是遇到了一系列问题,下面开始爬坑工程结构示意如下:src/ ├── main │ ├── java.com.demo │ │ ├── Application.java //S…...
Oracle VM VirtualBox6.1.36导入ova虚拟机文件报错,代码: E_INVALIDARG (0x80070057)
问题 运维人员去客户现场部署应用服务,客户是windows server 服务器(客户不想买新机器),我们程序是在linux系统里运行(其实windows也可以,主要是为了保持各地环境一致方便更新和排查问题)我们使…...
Superset数据探索和可视化平台入门以及案例实操
1、Superset背景 1.1、Superset概述 Apache Superset是一个现代的数据探索和可视化平台。它功能强大且十分易用,可对接各种数据源,包括很多现代的大数据分析引擎,拥有丰富的图表展示形式,并且支持自定义仪表盘。 1.2、环境说明 …...
VisualSP Enterprise - February crack
VisualSP Enterprise - February crack VisualSP(可视化支持平台)提供了一个上下文中完全可定制的培训平台,它可以作为企业web应用程序的覆盖层提供。无论员工正在使用什么应用程序,他们都能够快速访问页面培训和指导,说明如何最有效地使用该…...
004+limou+HTML——(4)HTML表格
000、前言 表格在实际开发中的应用还是比较多的,表格可以更加清晰地排列数据 001、基本结构 (1)构成 表格:<table>行:<tr>(table row,表格行),由多少组t…...
uniapp实现自定义相机
自定义相机起因由于最近用uniapp调用原生相机容易出现闪退问题,找了很多教程又是压缩图片又是优化代码,我表示并没有太大作用!!实现自定义相机使用效果图拓展实现多种自定义相机水印相机身份证相机人像相机起因 由于最近用uniapp调用原生相机容易出现闪退…...
插值多项式的龙格现象的介绍与模拟
在文章拉格朗日插值多项式的原理介绍及其应用中,笔者介绍了如何使用拉格朗日插值多项式来拟合任意数据点集。 事实上,插值多项式会更倾向于某些形状。德国数学家卡尔龙格Carl Runge发现,插值多项式在差值区间的端点附近会发生扭动&#x…...
Spring整体架构包含哪些组件?
Spring是一个轻量级java开源框架。Spring是为了解决企业应用开发的复杂性而创建的,它使用基本的JavaBean来完成以前只可能由EJB完成的事情。 Spring的用途不仅限于服务器端的开发,从简单性、可测试性和松耦合的角度而言,任何java应用都可以从…...
开发接口需要考虑哪些问题?
1 接口名字 user/ user/adduser/xxx 见名知意,调用接口的开发人员和后来接手的开发人员能够根据接口名称大致猜测出接口作用。 2 协议 设计接口时,应明确调用接口的协议,是采用HTTP协议,HTTPS协议还是FTP协议。比如跨语言调用通常使用WebS…...
关于Activiti7审批工作流绘画流程图(2)
文章目录一、25张表详解二、安装插件一.定制流程提示:以下是本篇文章正文内容,下面案例可供参考 一、25张表详解 虽然表很多,但是仔细观察,我们会发现Activiti 使用到的表都是 ACT_ 开头的。表名的第二部分用两个字母表明表的用…...
String.format()对日期进行格式化
前言:String.format()作为文本处理工具,为我们提供强大而丰富的字符串格式化功能,这里根据查阅的资料做个学习笔记,整理成如下文章,供后续复习查阅。一. format()方法的两种重载形式:format(String format,…...
核酸检测信息管理系统
目录前言一、功能与需求分析二、详细设计与实现1、data包(1)DataDataBase(2)NaPaNamePassword2、operation包(1)操作接口(2)Resident用户功能(3)Simper用户功…...
典型回溯题目 - 全排列(一、二)
典型回溯题目 - 全排列(一、二) 46. 全排列 题目链接:46. 全排列状 题目大意: 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 注意:(1…...
数据清洗和特征选择
数据清洗和特征选择 数据清洗和特征挖掘的工作是在灰色框中框出的部分,即“数据清洗>特征,标注数据生成>模型学习>模型应用”中的前两个步骤。 灰色框中蓝色箭头对应的是离线处理部分。主要工作是 从原始数据,如文本、图像或者应…...
java StringBuilder 和 StringBuffer 万字详解(深度讲解)
StringBuffer类介绍和溯源StringBuffer类常用构造器和常用方法StringBuffer类 VS String类(重要)二者的本质区别(含内存图解)二者的相互转化StringBuilder类介绍和溯源StringBuilder类常用构造器和常用方法String类,St…...
【Linux】帮助文档查看方法
目录1 Linux帮助文档查看方法1.1 man1.2 内建命令(help)1 Linux帮助文档查看方法 1.1 man man 是 Linux 提供的一个手册,包含了绝大部分的命令、函数使用说明。 该手册分成很多章节(section),使用 man 时可以指定不同的章节来浏…...
基于大模型的 UI 自动化系统
基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...
华为OD机考-机房布局
import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...
C#学习第29天:表达式树(Expression Trees)
目录 什么是表达式树? 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持: 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...
[ACTF2020 新生赛]Include 1(php://filter伪协议)
题目 做法 启动靶机,点进去 点进去 查看URL,有 ?fileflag.php说明存在文件包含,原理是php://filter 协议 当它与包含函数结合时,php://filter流会被当作php文件执行。 用php://filter加编码,能让PHP把文件内容…...
【学习笔记】erase 删除顺序迭代器后迭代器失效的解决方案
目录 使用 erase 返回值继续迭代使用索引进行遍历 我们知道类似 vector 的顺序迭代器被删除后,迭代器会失效,因为顺序迭代器在内存中是连续存储的,元素删除后,后续元素会前移。 但一些场景中,我们又需要在执行删除操作…...
淘宝扭蛋机小程序系统开发:打造互动性强的购物平台
淘宝扭蛋机小程序系统的开发,旨在打造一个互动性强的购物平台,让用户在购物的同时,能够享受到更多的乐趣和惊喜。 淘宝扭蛋机小程序系统拥有丰富的互动功能。用户可以通过虚拟摇杆操作扭蛋机,实现旋转、抽拉等动作,增…...
关于easyexcel动态下拉选问题处理
前些日子突然碰到一个问题,说是客户的导入文件模版想支持部分导入内容的下拉选,于是我就找了easyexcel官网寻找解决方案,并没有找到合适的方案,没办法只能自己动手并分享出来,针对Java生成Excel下拉菜单时因选项过多导…...
DeepSeek越强,Kimi越慌?
被DeepSeek吊打的Kimi,还有多少人在用? 去年,月之暗面创始人杨植麟别提有多风光了。90后清华学霸,国产大模型六小虎之一,手握十几亿美金的融资。旗下的AI助手Kimi烧钱如流水,单月光是投流就花费2个亿。 疯…...
raid存储技术
1. 存储技术概念 数据存储架构是对数据存储方式、存储设备及相关组件的组织和规划,涵盖存储系统的布局、数据存储策略等,它明确数据如何存储、管理与访问,为数据的安全、高效使用提供支撑。 由计算机中一组存储设备、控制部件和管理信息调度的…...
