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
相关推荐
weixin_4284984926 分钟前
Using Huge Pages in Linux for Big Data Processing
linux·服务器
java-王森1 小时前
List中多个数据相同,保留最新日期数据
linux·windows·list
钡铼技术物联网关1 小时前
模块化革命:树莓派CM5嵌入式工业计算机如何重构嵌入式系统开发边界
linux·arm开发·边缘计算
m0_519523102 小时前
Linux——线程互斥和同步
linux·运维
东城绝神2 小时前
《Linux运维总结:基于银河麒麟V10+ARM64架构CPU源码编译部署单实例redis7.2.6》
linux·运维·架构
诚丞成3 小时前
进程状态:Linux的幕后指挥管理,穿越操作系统进程的静与动
linux
pingxiaozhao3 小时前
gogs私服详细配置
linux
rainFFrain3 小时前
对锁进行封装
linux·运维·服务器·vscode
liuweidong08024 小时前
【Pandas】pandas Series to_xarray
linux·运维·pandas
一只栖枝5 小时前
RHCA核心课程技术解析4:红帽服务管理与自动化深度实践
linux·运维·自动化·rhca·红帽认证