Minio - 多节点多驱动器安装部署

先决条件

网络互通

MinIO集群中的节点的网络需要互相双向互通。

MinIO API默认端口9000

MinIO console默认端口9001

MinIO强烈建议使用负载均衡器来管理与集群的连接。负载均衡器策略使用“最小连接数”逻辑,因为在部署中任何 MinIO 节点都可以接收、路由或处理客户端请求。

顺序主机名

MinIO创建节点池时,需要使用扩展符号{x ... y}表示一连串的MinIO host序列。

MinIO支持使用一连串的hostname或者IP地址来表示部署中的每个minio server进程。

如果没有连续的hostname或者IP地址,也可以使用替代办法:在/etc/hosts中配置连续的简单DNS解析。

# /etc/hosts198.0.2.10    minio-01.example.net
198.51.100.3  minio-02.example.net
198.0.2.43    minio-03.example.net
198.51.100.12 minio-04.example.net

可以使用扩展表示法指定整个主机名范围

minio-0{1...4}.example.com

顺序挂载本地JBOD存储

MinIO强烈建议使用XFS格式的磁盘直接挂载JBOD,以提供最佳性能。

  • 直连存储(DAS,Direct-Attached Storage)相比于网络存储(NAS、SAN、NFS),具有更显著的性能和一致性优势。
  • 使用非XFS文件系统(ext4、btrfs、zfs),往往具有较低的性能,表现出意外或不希望的行为。
  • 使用分布式MinIO部署时,RAID或相似的架构不会提供额外的弹性或可用性,反而通常会降低系统性能。

确保在部署中的所有节点有相同的磁盘类型和磁盘容量。MinIO不区分驱动器类型,也不会从混合存储类型中获得好处。此外,MinIO将每个驱动器使用的大小限制为部署中最小的驱动器大小。例如,如果部署中有15个10TB磁盘和1个1TB磁盘,MinIO限制每个磁盘容量为1TB。

MinIO创建新部署时,需要使用扩展符号{x ... y}表示一连串的磁盘序列,其中部署中的所有节点都具有一组相同的已挂载的磁盘。

MinIO强烈建议使用/etc/fstab配置磁盘挂载,保证服务器重启后磁盘挂载保持不变。例如:

$ mkfs.xfs /dev/sdb -L DISK1
$ mkfs.xfs /dev/sdc -L DISK2
$ mkfs.xfs /dev/sdd -L DISK3
$ mkfs.xfs /dev/sde -L DISK4$ nano /etc/fstab# <file system>  <mount point>  <type>  <options>         <dump>  <pass>LABEL=DISK1      /mnt/disk1     xfs     defaults,noatime  0       2LABEL=DISK2      /mnt/disk2     xfs     defaults,noatime  0       2LABEL=DISK3      /mnt/disk3     xfs     defaults,noatime  0       2LABEL=DISK4      /mnt/disk4     xfs     defaults,noatime  0       2

可以使用扩展表示法指定整个磁盘的挂载序列,或者挂载子目录序列

/mnt/disk{1...4}

/mnt/disk{1...4}/minio

使用相同的时间同步服务器

多节点系统必须维护时间和日期同步,以维持稳定的节点间的操作和交互。

部署分布式MinIO

1.在每个节点安装MinIO

强烈建议使用RPM或DEB进行安装

wget https://dl.min.io/server/minio/release/linux-amd64/archive/minio-20231111081441.0.0.x86_64.rpm
yum install -y minio-20231111081441.0.0.x86_64.rpm

2.创建systemd Service文件

rpm安装,service文件在这个路径:/usr/lib/systemd/system/minio.service

二进制安装需要在所有节点上手动新建文件。

[Unit]
Description=MinIO
Documentation=https://min.io/docs/minio/linux/index.html
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/usr/local/bin/minio[Service]
WorkingDirectory=/usr/localUser=minio-user
Group=minio-user
ProtectProc=invisibleEnvironmentFile=-/etc/default/minio
ExecStartPre=/bin/bash -c "if [ -z \"${MINIO_VOLUMES}\" ]; then echo \"Variable MINIO_VOLUMES not set in /etc/default/minio\"; exit 1; fi"
ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES# MinIO RELEASE.2023-05-04T21-44-30Z adds support for Type=notify (https://www.freedesktop.org/software/systemd/man/systemd.service.html#Type=)
# This may improve systemctl setups where other services use `After=minio.server`
# Uncomment the line to enable the functionality
# Type=notify# Let systemd restart this service always
Restart=always# Specifies the maximum file descriptor number that can be opened by this process
LimitNOFILE=65536# Specifies the maximum number of threads this process can create
TasksMax=infinity# Disable timeout logic and wait until process is stopped
TimeoutStopSec=infinity
SendSIGKILL=no[Install]
WantedBy=multi-user.target# Built for ${project.name}-${project.version} (${project.name})

minio.service文件默认使用minio-user用户&组运行,需要新建minio-user用户和组

groupadd -r minio-user
useradd -M -r -g minio-user minio-user
chown minio-user:minio-user /mnt/disk1 /mnt/disk2 /mnt/disk3 /mnt/disk4

3.创建服务环境变量文件

新建环境变量文件:/etc/default/minio

MinIO使用此文件作为环境变量的源文件。所有节点都需要包含一样的环境变量文件。

默认配置文件如下,假设:

  • 此部署有一个server pool,包含了4个MinIO Server节点,节点有连续的hostname

minio1.example.com   minio3.example.com
minio2.example.com   minio4.example.com

  • 所有节点有4个本地挂载的磁盘,有连续的挂载点

/mnt/disk1/minio   /mnt/disk3/minio
/mnt/disk2/minio   /mnt/disk4/minio

  • 有一个负载均衡器“https://minio.example.net”,管理了4个MinIO Server节点
# Set the hosts and volumes MinIO uses at startup
# The command uses MinIO expansion notation {x...y} to denote a
# sequential series.
#
# The following example covers four MinIO hosts
# with 4 drives each at the specified hostname and drive locations.
# The command includes the port that each MinIO server listens on
# (default 9000)MINIO_VOLUMES="https://minio{1...4}.example.net:9000/mnt/disk{1...4}/minio"# Set all MinIO server options
#
# The following explicitly sets the MinIO Console listen address to
# port 9001 on all network interfaces. The default behavior is dynamic
# port selection.MINIO_OPTS="--console-address :9001"# Set the root username. This user has unrestricted permissions to
# perform S3 and administrative API operations on any resource in the
# deployment.
#
# Defer to your organizations requirements for superadmin user name.MINIO_ROOT_USER=minioadmin# Set the root password
#
# Use a long, random, unique string that meets your organizations
# requirements for passwords.MINIO_ROOT_PASSWORD=minio-secret-key-CHANGE-ME# Set to the URL of the load balancer for the MinIO deployment
# This value *must* match across all MinIO servers. If you do
# not have a load balancer, set this value to to any *one* of the
# MinIO hosts in the deployment as a temporary measure.
MINIO_SERVER_URL="https://minio.example.net:9000"

4.添加TLS/SSL证书(可跳过)

x.509证书文件(.crt)和私钥文件(.key)默认存放目录:${HOME}/.minio/certs

如果非默认的minio-user用户,需要指定证书文件位置,可以修改环境变量MINIO_OPTS的值,--certs-dir指定证书文件目录。

5.启动MinIO Server进程

#启动
systemctl start minio#开机自启
systemctl enable minio#查看状态
systemctl status minio

6.登陆控制台

浏览器访问,IP+默认端口9001,也可以通过负载均衡器对应的IP或域名访问。

 账号密码为配置文件中的minio_root_user和minio_root_password

参考

Deploy MinIO: Multi-Node Multi-Drive — MinIO Object Storage for Linux

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

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

相关文章

ERR_PNPM_INVALID_WORKSPACE_CONFIGURATION packages field missing or empty

vue执行 pnpm install命令时&#xff0c;报 ERR_PNPM_INVALID_WORKSPACE_CONFIGURATION  packages field missing or empty错&#xff0c;在网上查询了很久&#xff0c;也没有传出来结果&#xff0c;最后发现是pnpm的版本不对引起的。 我先执行的是npm install -g pnpm&…

delphi电子处方流转 sm2 sm4(药店)

【delphi电子处方流转(药店)】支持 处方下载、处方核验、处方审核、药品销售出库明细上传、药品销售出库明细撤销等功能。技术交流Q 648437169 下载链接&#xff1a;https://download.csdn.net/download/liushenglin123/88543771

cookie机制

目录 为什么会有cookie?? cookie从哪里来的&#xff1f;&#xff1f; cookie到哪里去&#xff1f;&#xff1f; cookie有啥用&#xff1f;&#xff1f; session HttpServletRequest类中的相关方法 简单的实现cookie登录功能 实现登录页面 实现servlet逻辑 实现生成主…

广州华锐互动:办税服务厅税务登记VR仿真体验让税务办理更加灵活高效

在数字化世界的今天&#xff0c;我们正在见证各种业务过程的转型&#xff0c;而税务办理也不例外。最近&#xff0c;一种全新的交互方式正在改变我们处理税务的方式&#xff1a;虚拟现实&#xff08;VR&#xff09;。 首先&#xff0c;用户需要戴上虚拟现实头显&#xff0c;然后…

linux下安装python3.8(有坑)

1安装包下载 ###直接官网下载linux版本&#xff0c;找到对应的包 https://www.python.org/downloads/source/2安装包解压 tar -zxvf Python-3.8.0.tgz 3编译安装 1&#xff09;设置安装目录&#xff0c;比如在此创建在 /usr/local/python3 &#xff1a; mkdir -p /usr/loca…

Web自动化测试:Unittest单元测试框架!

一、unitest基础写法格式 1.1引用导入 import unittest 并且需要新建一个类&#xff0c;继承unittest class Demo(unittest.TestCase): 1.2格式代码示例 备注&#xff1a; 1.用例的方法名中&#xff0c;要以test开头才能被读取出来 2.用例的读取顺序按照方法名的ASCII码…

1. hadoop环境准备

环境准备 准备三台虚拟机&#xff0c;配置最好是 2C 4G 以上 本文准备三台机器的内网ip分别为 172.17.0.10 172.17.0.11 172.17.0.12本机配置/etc/hosts cat >> /etc/hosts<<EOF 172.17.0.10 hadoop01 172.17.0.11 hadoop02 172.17.0.12 hadoop03 EOF本机设置与…

2023最新最全【虚幻4引擎】下载安装零基础教程

1、创建Epic Games账户 我们先打开浏览器&#xff0c;输入以下网址&#xff1a;unrealengine.com 随后点击【立即开始】 选择许可证类型&#xff0c;此处提供三种选项&#xff0c;分别是【游戏】、【非游戏】以及【私人定制】 第一类许可证适用于游戏和商业互动产品&#xff…

asp.net网上书店管理系统VS开发sqlserver数据库web结构c#编程计算机网页源码项目

一、源码特点 asp.net网上书店管理系统 是一套完善的web设计管理系统&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。 asp.net网上书店系统1 二、功能介绍 本系统使用Microsoft Visual Studio 2019为开发工具&#xff0c;SQL Server为…

在win10环境下安装python,配置python环境,执行python脚本

1.安装python 去python官网下载&#xff1a; https://www.python.org/ 这里采用 Python 3.10.8 版本 选择windows 64位 双击安装&#xff1a; 安装这里有两个选项&#xff1a; 1.默认安装直接选Install Now 2.勾选install launcher for all users&#xff08;recommend&a…

Git客户端(TortoiseGit)使用

参考文章&#xff1a; https://www.cnblogs.com/xuwenjin/p/8573603.html 【精选】使用TortoiseGit工具进行开发&#xff08;连接远程仓库进行克隆、拉取、获取、提交、推送、新建/切换/合并分支、解决冲突&#xff09;_tortoisegit连接远程仓库-CSDN博客 tortoise git 拉取…

UE基础篇四:地形基础概念

导语: 视频文档在文末 一、从引擎中导入高度图 高度图是灰度图,并且每个像素有16位的深度,支持这种格式的是.png 和.raw格式 高度图可以自己绘制,或者通过许多网站下载那些复制现实世界地点的图片,许多网站也有免费资源下载 二、草地和石头混合图层 创建一个混合材质,…