MinIO On Linux
以下是通过 yum
方式在 Linux 上安装和部署 MinIO 的详细步骤。我们将使用 MinIO 官方提供的 RPM 包进行安装。
这里使用的是CentOS7版本,使用的是默认下载器yum,如果是CentOS8版本,则使用dnf下载器
1. 安装官方仓库和 MinIO
- 下载并添加 MinIO 的官方仓库:
ruby
wget https://dl.min.io/server/minio/release/linux-amd64/archive/minio-20250312180418.0.0-1.x86_64.rpm -O minio.rpm
-
yum安装minio
yum install minio.rpm
-
验证安装是否成功
css
minio --version
2. 创建 MinIO 数据目录并挂载到新磁盘
MinIO 要求用于存储数据的驱动器必须是独立的、非系统分区,以确保数据的安全性和性能。如果数据目录位于系统根分区,MinIO 会拒绝使用它,并报错。因此我们需要一个新的磁盘来作为MinIO的数据目录挂载点。
2.1. 创建 MinIO 数据目录
- 创建一个目录用于存储 MinIO 数据:
bash
mkdir -p /mnt/data
- 设置目录权限,添加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 环境变量
- 编辑 MinIO 的配置文件:
arduino
vim /etc/default/minio
- 添加以下内容,替换
<your-username>
和<your-password>
为你自己的管理员账号和密码:
ini
MINIO_ROOT_USER="minioadmin"
MINIO_ROOT_PASSWORD="minioadmin"
MINIO_VOLUMES="/mnt/data"
MINIO_OPTS="--address :9000"
- 保存并退出。
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
可能有的错误:
- 服务端口占用,
lsof
查看端口使用情况,杀死对应进程或者修改配置文件
bash
yum lsof
lsof -i :9000
kill -9 <pid>
- 服务配置文件出错,检查
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
- 确保
User
和Group
配置为minio-user
。 - 确保
EnvironmentFile
指向正确的环境变量文件(如/etc/default/minio
)。 - 添加
TimeoutStartSec=300
以避免超时问题
5. 验证 MinIO 是否运行
- 检查 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