minio集群部署–linux环境

原文地址:minio集群部署--linux环境 -- 无敌牛

欢迎参观我的个人博客无敌牛 -- 技术/著作/典籍/分享等

第一步:安装

有rpm、deb、和二进制文件安装方式。参考文档在:MinIO Object Storage for Linux --- MinIO Object Storage for Linux

每一台参与集群的服务器都需要安装。

1.1 rpm安装

直接从官方下载,使用 rpm -i 或者 dnf install 命令就可以

复制代码
wget https://dl.min.io/server/minio/release/linux-amd64/archive/minio-20240826153307.0.0-1.x86_64.rpm -O minio.rpm
sudo dnf install minio.rpm

1.2 deb安装

直接从官方下载运行,使用 dpkg -i 就可以

复制代码
wget https://dl.min.io/server/minio/release/linux-amd64/archive/minio_20240826153307.0.0_amd64.deb -O minio.deb
sudo dpkg -i minio.deb

1.3 二进制安装

由于minio是纯静态编译的,不需要外部链接库,可以直接下载后运行。只要CPU指令集和操作系统合适,基本就会运行,兼容性很强。加可执行权限后,放在 /usr/local/bin/ 目录即可。

复制代码
wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
sudo mv minio /usr/local/bin/

第二步:创建用户

不推荐用root直接运行minio,此处创建用户minio,并把存储卷(数据目录)权限给到minio用户。用户名随意。每一台参与集群的服务器都需要创建用户。

adduser 和 useradd 命令各个系统版本参数不一致,根据实际情况添加用户。

存储卷每个目录最好单独挂载硬盘,关于硬盘分区、制作文件系统、挂载,参看往期文章:linux磁盘分区、制作文件系统及挂载 -- 无敌牛

第三步:配置部署

此处需要配置 minio.service、主机名和启动时的环境变量。每一台参与集群的设备都要做如下相同的配置。

3.1 配置 minio.service

创建 /usr/lib/systemd/system/minio.service 文件。如果是 rpm 或者 deb 安装的,则默认就存在这两个文件,只需要修改即可。内容如下:

复制代码
[Unit]
Description=MinIO
Documentation=https://docs.min.io
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/usr/local/bin/minio

[Service]
Type=notify

WorkingDirectory=/usr/local

User=minio
Group=minio
ProtectProc=invisible

EnvironmentFile=-/etc/minio/minio.conf
ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES

# Let systemd restart this service always
Restart=always

# Specifies the maximum file descriptor number that can be opened by this process
LimitNOFILE=1048576

# Turn-off memory accounting by systemd, which is buggy.
MemoryAccounting=no

# Specifies the maximum number of threads this process can create
TasksMax=infinity

# Disable timeout logic and wait until process is stopped
TimeoutSec=infinity

SendSIGKILL=no

[Install]
WantedBy=multi-user.target

# Built for ${project.name}-${project.version} (${project.name})

其中,环境变量文件,默认是 EnvironmentFile=-/etc/default/minio 。我这里修改成 EnvironmentFile=-/etc/minio/minio.conf

User和Group使用了第二步创建的minio用户

3.2 设置 /etc/hosts 信息

打开 /etc/hosts 文件,添加需要做集群的几台系统 IP 地址和主机名,如下图,这是3台设备的配置。

3.3 配置启动环境变量

创建 /etc/minio/minio.conf 文件,并做以下配置:

我这里准备了3台设备分别是 xxxnode1 xxxnode2 xxxnode3,每台设备提供两个磁盘,挂载到 /data/minio_1 和 /data/minio_2目录,所以这样配置。需要根据自己的环境调整配置。

字段解释:

复制代码
MINIO_ROOT_USER : 管理员用户名
MINIO_ROOT_PASSWORD : 管理员密码
MINIO_STORAGE_CLASS_STANDARD : 标准存储纠删码级别设置为 EC:2
MINIO_STORAGE_CLASS_RSS : REDUCED存储类纠删码级别也设置为 EC:2
MINIO_VOLUMES : 设置存储卷地址

如果设置其他参数,可以加在MINIO_OPTS变量里。例如:
MINIO_OPTS="--console-address :9013 --address :9011"

设置管理台登录页面端口是 9013,可以通过 http://xx.xx.xx.xx:9013 访问管理页面。

设置数据访问端口为 9013,默认是 9000,修改此端口,MINIO_VOLUMES 也要做相应的改变。

如果要单机部署 ,需要把MINIO_STORAGE_CLASS_STANDARD 和 MINIO_STORAGE_CLASS_RSS 设置为 EC:0 ,把MINIO_VOLUMES 设置为绝对路径即可,不需要带域名端口等信息。

第四步,启动

systemctl daemon-reload 重新加载 systemd 配置

systemctl start minio 启动minio,需要对每台设备都启动才可以。

systemctl enable minio 设置为开机启动


关于客户端的使用问题,参看往期文章:minio的客户端mcli基本操作 -- 无敌牛 可用创建 bucket ,复制进去文件及cat获取,以及切换连接不同的设备来查看集群是否生效。

SDK开发参看往期文章:

python连接minio:python连接minio,实现创建桶、上传和下载功能 -- 无敌牛

golang连接minio: golang连接minio,实现创建桶、上传和下载功能 -- 无敌牛

由于时间不同步导致minio服务异常,参看往期文章:chrony实现NTP时间同步 -- 无敌牛 实现NTP时间同步

相关推荐
痕忆丶15 小时前
openharmony开发之磁盘相关
linux
z2023050815 小时前
RDMA 之RoCEv2 的报文格式(5)
linux·服务器·网络·人工智能
uesowys15 小时前
CentOS Linux安装部署Hermes Agent智能体
linux·centos·hermes agent
毋语天15 小时前
Linux 命令——文件、进程、网络与 Vim 编辑器
linux·网络·编辑器
William.csj15 小时前
Linux——查看cuda版本的全面方法
linux·运维·服务器
薛定猫AI17 小时前
Codex 与 Claude Code 全平台安装配置指南(Windows / macOS / Linux)
linux·windows·macos
ltl1 天前
Transformer 整体架构:一张图看懂
后端
ltl1 天前
Decoder 详解:为什么它天生适合生成
后端
ltl1 天前
Encoder 详解:6 层堆叠到底在做什么
后端
程序员cxuan1 天前
微信读书官方发了 skills,把我给秀麻了。
人工智能·后端·程序员