MinIO在Linux系统上的安装与部署

MinIO On Linux

以下是通过 yum 方式在 Linux 上安装和部署 MinIO 的详细步骤。我们将使用 MinIO 官方提供的 RPM 包进行安装。

这里使用的是CentOS7版本,使用的是默认下载器yum,如果是CentOS8版本,则使用dnf下载器

1. 安装官方仓库和 MinIO

  1. 下载并添加 MinIO 的官方仓库:
ruby 复制代码
wget https://dl.min.io/server/minio/release/linux-amd64/archive/minio-20250312180418.0.0-1.x86_64.rpm -O minio.rpm
  1. yum安装minio

    yum install minio.rpm

  2. 验证安装是否成功

css 复制代码
minio --version

2. 创建 MinIO 数据目录并挂载到新磁盘

MinIO 要求用于存储数据的驱动器必须是独立的、非系统分区,以确保数据的安全性和性能。如果数据目录位于系统根分区,MinIO 会拒绝使用它,并报错。因此我们需要一个新的磁盘来作为MinIO的数据目录挂载点。

2.1. 创建 MinIO 数据目录

  1. 创建一个目录用于存储 MinIO 数据:
bash 复制代码
mkdir -p /mnt/data
  1. 设置目录权限,添加minio组和用户,确保 MinIO 可以访问:
sql 复制代码
groupadd -r minio-user
useradd -M -r -g minio-user minio-user
chown -R minio-user:minio-user /mnt/data
chmod -R 755 /mnt/data

命令解析:yuanbao.tencent.com/bot/app/sha...

2.2. 添加新磁盘

如下图,根据提示可以添加一块新的磁盘

2.3. 检查系统中已识别的磁盘

复制代码
lsblk

/dev/sda系统磁盘及其子分区属于系统根分区

/dev/sdb属于新添加的磁盘

2.4. 检查MinIO数据目录所在分区

检查MinIO数据目录/mnt/data的所在的分区

bash 复制代码
df -h /mnt/data

可以看到当前目录是属于系统根分区的

2.5. 格式化新磁盘

创建分区

bash 复制代码
fdisk /dev/sdb

在fdisk交互界面,输入以下命令:

  • n:创建新分区。
  • p:选择主分区。
  • 1:分区编号为 1。
  • Enter:使用默认的起始扇区。
  • Enter:使用默认的结束扇区。
  • w:保存并退出。

完成磁盘分区

格式化分区为ext4系统

bash 复制代码
mkfs.ext4 /dev/sdb1

ext4 是 Linux 系统中广泛使用的一种文件系统,它具备高可靠性、高性能以及支持大文件和大分区等优点。

2.6. 挂载数据目录到新磁盘

挂载/mnt/data到新分区,查看挂载情况

bash 复制代码
mount /dev/sdb1 /mnt/data
df -h /mnt/data

可以看到/mnt/data已经挂载到新分区

2.7. 设置开机自动挂载

获取新分区/dev/sdb1的UUID

bash 复制代码
blkid /dev/sdb1

编辑/etc/fstab文件,在其末尾添加以下内容:

bash 复制代码
vim /etc/fstab
#添加的内容 UUID为新分区的UUID
UUID=3d33a1d0-75b8-4c27-8a71-9e5caa4041a5 /mnt/data ext4 defaults 0 0

3. 配置 MinIO 环境变量

  1. 编辑 MinIO 的配置文件:
arduino 复制代码
vim /etc/default/minio
  1. 添加以下内容,替换 <your-username><your-password> 为你自己的管理员账号和密码:
ini 复制代码
MINIO_ROOT_USER="minioadmin"
MINIO_ROOT_PASSWORD="minioadmin"
MINIO_VOLUMES="/mnt/data"
MINIO_OPTS="--address :9000"
  1. 保存并退出。

4. 启动 MinIO 服务

bash 复制代码
#启动 MinIO 服务
systemctl start minio
#设置 MinIO 服务开机自启
systemctl enable minio
#停止 MinIO 服务
systemctl stop minio

如果启用了防火墙,需要开放 MinIO 的端口(默认 9000):

css 复制代码
sudo firewall-cmd --zone=public --add-port=9000/tcp --permanent
sudo firewall-cmd --reload

若启动失败,首先查看报错信息

复制代码
journalctl -u minio.service -xe

可能有的错误:

  1. 服务端口占用,lsof查看端口使用情况,杀死对应进程或者修改配置文件
bash 复制代码
yum lsof
lsof -i :9000
kill -9 <pid>
  1. 服务配置文件出错,检查vim /usr/lib/systemd/system/minio.service,修改之后重启systemctl daemon-reload
ini 复制代码
[Unit]
Description=MinIO
After=network.target

[Service]
User=minio-user
Group=minio-user
EnvironmentFile=/etc/default/minio
ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES
Restart=on-failure
TimeoutStartSec=300

[Install]
WantedBy=multi-user.target
  • 确保 UserGroup 配置为 minio-user
  • 确保 EnvironmentFile 指向正确的环境变量文件(如 /etc/default/minio)。
  • 添加 TimeoutStartSec=300 以避免超时问题

5. 验证 MinIO 是否运行

  1. 检查 MinIO 服务状态:
lua 复制代码
systemctl status minio

登录MinIO服务

6. 日志和监控

查看 MinIO 日志:

复制代码
sudo journalctl -u minio.service -f

7. 卸载 MinIO

如果需要卸载 MinIO,可以执行以下命令:

bash 复制代码
sudo yum remove minio
sudo rm -rf /mnt/data
sudo rm -rf /etc/default/minio
sudo rm -rf /etc/yum.repos.d/minio.repo
相关推荐
地衣君1 小时前
RISC-V 开发板 + Ubuntu 23.04 部署 open_vins 过程
linux·ubuntu·risc-v
5:002 小时前
云备份项目
linux·开发语言·c++
码农101号2 小时前
Linux中shell编程表达式和数组讲解
linux·运维·服务器
云道轩3 小时前
升级centos 7.9内核到 5.4.x
linux·运维·centos
是小满满满满吗3 小时前
传输层:udp与tcp协议
linux·服务器·网络
爱学习的小道长3 小时前
Ubuntu Cursor升级成v1.0
linux·运维·ubuntu
EelBarb3 小时前
seafile:ubuntu搭建社区版seafile12.0
linux·运维·ubuntu
Xam_d_LM3 小时前
【Latex】Windows/Ubuntu 绘制 eps 矢量图通用方法(drawio),支持插入 Latex 数学公式
linux·ubuntu·科研·矢量图·drawio
Mintimate4 小时前
云服务器 Linux 手动 DD 安装第三方 Linux 发行版:原理与实战
linux·运维·服务器
RussellFans4 小时前
Linux 环境配置
linux·运维·服务器