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 时可以指定不同的章节来浏…...
机器学习势函数结合DFT:揭示缺陷如何降低半赫斯勒化合物晶格热导率
1. 项目概述与核心问题在热电材料的研究领域,半赫斯勒化合物一直是个“明星选手”,它们拥有不错的电学性能,但一个长期困扰研究者的难题是:理论计算出的晶格热导率总是比实验测量值高出一大截。这可不是个小问题,晶格热…...
STIML框架:融合标度理论与机器学习的企业增长预测新范式
1. 项目概述:当标度律遇见机器学习在金融分析和企业研究领域,预测一家公司的未来增长,就像试图预测一艘巨轮在复杂洋流中的航迹。传统上,我们有两类“航海图”:一类是基于物理定律的“机制模型”,它告诉你船…...
基于决策树与贝叶斯DNS的宏观机制转换利率模型
1. 项目概述与核心价值如果你在固收研究或者宏观交易领域待过一段时间,肯定会遇到一个让人头疼的问题:那些经典的收益率曲线模型,比如动态Nelson-Siegel模型,在样本内拟合得挺好,但一到样本外预测或者解释某些特殊时期…...
用格拉姆矩阵特征值调整替代SVD,高效求解带正交约束的优化问题
1. 项目概述与核心问题在机器学习和数值优化的世界里,我们经常遇到一个经典难题:如何在一个带约束的复杂空间里,找到那个“最好”的解。这就像在一个布满规则的迷宫里寻找宝藏,你不能横冲直撞,必须遵守墙壁(…...
使用C#代码重新排列PDF页面的操作代码
引言对于页面顺序混乱的 PDF 文档,重新排列页面可以避免读者产生困惑,同时也能让文档结构更加清晰有序。本文将演示如何使用 Spire.PDF for .NET 以编程方式重新排列现有 PDF 文档中的页面。安装 Spire.PDF for .NET首先,需要将 Spire.PDF fo…...
AI与PDCA循环融合:构建韧性医院物流系统的实践指南
1. 项目概述:当医院物流遇上AI与PDCA在医院这个庞大而精密的系统里,物流的顺畅与否,直接关系到患者的生命安全和医疗服务的质量。想象一下,一台急诊手术因为某个关键耗材在仓库里“迷路”而推迟,或者一个重症病房因为药…...
别再让auditd拖慢你的麒麟系统!手把手教你排查并关闭这个审计服务
麒麟系统性能优化实战:auditd服务深度排查与替代方案 在麒麟系统的日常运维中,auditd这个默默运行的后台服务常常成为系统性能的"隐形杀手"。许多开发者突然发现系统响应变慢、内存占用飙升时,往往不会第一时间联想到这个看似无害的…...
开源AI编辑器的未来发展趋势
基于当前发展状况来分析,开源AI编辑器的未来发展趋势主要体现在以下几个核心方向:一、技术能力:从“辅助补全”迈向“智能体化”全流程自主化:AI编辑器正从基础的代码补全、语法检查,向具备自主决策能力的智能体&#…...
PS5 NOR修改器终极指南:简单三步修复你的游戏主机
PS5 NOR修改器终极指南:简单三步修复你的游戏主机 【免费下载链接】PS5NorModifier The PS5 Nor Modifier is an easy to use Windows based application to rewrite your PS5 NOR file. This can be useful if your NOR is corrupt, or if you have a disc edition…...
CANN-NPU 显存回收策略:内存碎片整理与显存池化机制实战
一、显存碎片从哪来 1.1 碎片的两种形态 外部碎片——总空闲内存够用,但不连续。比如有 4 块 128MB 空闲,但需要一块 512MB 的连续内存,分配失败。 内部碎片——分配器按固定大小的块分配,实际使用的比分配的小。比如分配 400KB&a…...
