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

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.hqwc.cn/news/2187.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【机器学习】十大算法之一 “PCA”

作者主页&#xff1a;爱笑的男孩。的博客_CSDN博客-深度学习,活动,python领域博主爱笑的男孩。擅长深度学习,活动,python,等方面的知识,爱笑的男孩。关注算法,python,计算机视觉,图像处理,深度学习,pytorch,神经网络,opencv领域.https://blog.csdn.net/Code_and516?typeblog个…

nginxWebUI 远程命令执行漏洞

漏洞介绍 nginxWebUI是一款图形化管理nginx配置的工具&#xff0c;能通过网页快速配置nginx的各种功能&#xff0c;包括HTTP和TCP协议转发、反向代理、负载均衡、静态HTML服务器以及SSL证书的自动申请、续签和配置&#xff0c;配置完成后可以一键生成nginx.conf文件&#xff0c…

Linux--man指令

语法&#xff1a; man [选项] 命令 功能&#xff1a; 查询命令的详细信息&#xff0c;包括man命令本身 选项&#xff1a; -k 根据关键字搜索联机帮助num 只在第num章节找-a 将所有章节的都显示出来&#xff0c;比如 man printf 它缺省从第一章开始搜索&#xff0c;知道就停止…

数据结构期末复习【更新】

数据结构期末复习【更新】 1.模式匹配2.画二叉树&#xff08;根据中序和后序&#xff0c;前序和中序&#xff09;及其线索二叉树3.求叶子结点个数4.建立二叉排序树5.广义表6.求存储地址7.代码设计8.哈夫曼树9.最小生成树10.深度遍历、广度遍历、邻接表建立11.哈希表&#xff08…

开关电源-PFC驱动电路的工作原理

PFC驱动电路的工作原理 由于PFC的控制地和MOS管组成的双向开关的源极不共地&#xff0c;因此需要解决开关管浮地驱动问题。 图2 驱动电路图 电路图说明&#xff1a; PFCPWM是DSP的PWM信号&#xff1b;VCC_4V和AGND是DSP侧的电源和控制地&#xff1b;Vccp_14V和AGND_DRV是MO…

深度学习与机器学习区别

深度学习与机器学习区别 本文目录&#xff1a; 一、特征提取方面 1.1、机器学习 1.2、深度学习 1.3、机器学习特征提取 1.4、深度学习特征提取 1.5、深度学习特征提取例子 二、数据量和计算性能要求 三、算法代表 3.1、朴素贝叶斯算法 3.2、决策树 四、神经网络 一、…

FineReport学习2

当原始数据中存储的字段不适宜展现在报表上&#xff1b;或原始数据在数据查询时不易修改&#xff0c;但对显示在报表中的值有要求&#xff1b;或需要根据不同的原始数据在报表中显示不同的值时&#xff0c;就可以利用数据字典做巧妙的转化 设置数据字典 数据列的过滤&#xff…

软件工程——第5章总体设计知识点整理

本专栏是博主个人笔记&#xff0c;主要目的是利用碎片化的时间来记忆软工知识点&#xff0c;特此声明&#xff01; 文章目录 1.总体设计的基本目的&#xff1f; 2.总体设计的任务&#xff1f; 3.总体设计过程由哪两个阶段组成&#xff1f; 4.总体设计的步骤&#xff1f; 5…

Python基础语法笔记整理(黑马8天学会python笔记)

Python 第一章、基础语法 01.字面量(写在代码中的固定的值) 02.注释 # 单行注释 """ 多行注释 """03.变量 变量无类型&#xff0c;数据有类型 变量名 变量值04.数据类型 数据类型&#xff1a; type()05.类型转换 字符串转数字&#xff…

在 K8S 中部署一个应用 下

接着上一篇继续部署应用到 K8S中 之前简单部署的简单集群&#xff0c;三个工作节点是运行在 docker 和 kubelet 的&#xff0c;还有一个是控制节点 ReplicationController &#xff0c; pod 和 service 本次关系 之前有提到 ReplicationController &#xff0c; pod 和 服务…

使用 Debian、Docker 和 Nginx 部署 Web 应用

前言 本文将介绍基于 Debian 的系统上使用 Docker 和 Nginx 进行 Web 应用部署的过程。着重介绍了 Debian、Docker 和 Nginx 的安装和配置。 第 1 步&#xff1a;更新和升级 Debian 系统 通过 SSH 连接到服务器。更新软件包列表&#xff1a;sudo apt update升级已安装的软件…

C语言编程—预处理器

预处理器不是编译器的组成部分&#xff0c;但是它是编译过程中一个单独的步骤。简言之&#xff0c;C 预处理器只不过是一个文本替换工具而已&#xff0c;它们会指示编译器在实际编译之前完成所需的预处理。我们将把 C 预处理器&#xff08;C Preprocessor&#xff09;简写为 CP…