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
相关推荐
绵绵细雨中的乡音2 小时前
网络基础知识
linux·网络
Peter·Pan爱编程2 小时前
Docker在Linux中安装与使用教程
linux·docker·eureka
kunge20133 小时前
Ubuntu22.04 安装virtualbox7.1
linux·virtualbox
清溪5493 小时前
DVWA中级
linux
Sadsvit4 小时前
源码编译安装LAMP架构并部署WordPress(CentOS 7)
linux·运维·服务器·架构·centos
xiaok4 小时前
为什么 lsof 显示多个 nginx 都在 “使用 443”?
linux
苦学编程的谢4 小时前
Linux
linux·运维·服务器
G_H_S_3_4 小时前
【网络运维】Linux 文本处理利器:sed 命令
linux·运维·网络·操作文本
Linux运维技术栈5 小时前
多系统 Node.js 环境自动化部署脚本:从 Ubuntu 到 CentOS,再到版本自由定制
linux·ubuntu·centos·node.js·自动化
拾心215 小时前
【运维进阶】Linux 正则表达式
linux·运维·正则表达式