如何在 Rocky Linux 上安装 MinIO 存储
在此页
- 先决条件
- 手动安装 MinIO
- 为 MinIO 对象存储设置存储
- 配置 MinIO 对象存储
- 将 MinIO 作为系统服务运行
- 设置防火墙
- 使用 SSL 证书保护 MinIO
- 创建第一个存储桶并上传文件
- 设置 MinIO 客户端 CLI
- 通过 MinIO 命令行创建 Bucket
- 结论
MinIO 是一个用 Go 编写的免费开源对象存储服务器。它与 Amazone S3 对象存储兼容,是最好、最免费的对象存储解决方案之一。使用 MinIO,您可以存储照片、视频、日志文件、备份和容器/VM 映像。
在服务器端,MinIO 提供高度可扩展的架构,应用程序的简单性使得应用程序服务器易于安装和配置。在客户端,它提供了一个二进制客户端应用程序,允许您从终端管理对象存储。此外,MinIO 为喜欢使用网络浏览器的用户提供了一个功能强大且易于使用的网络管理仪表板。
MinIO 是一个自托管的对象存储解决方案,适用于多种部署架构。您可以将 MinIO 作为对象存储部署在具有连续数据复制功能的大型基础设施上,也可以将其部署在小型环境(例如家庭服务器)上。
在本教程中,我们将带您完成在 Rocky Linux 服务器上安装 MinIO 对象存储的过程。您还将使用 MinIO 创建一个新的对象存储,并配置 Linux 客户端机器来管理 MinIO 对象存储服务器。
最后,您将在 Rocky Linux 服务器上安装 MinIO 对象存储并使用 SSL 证书进行保护。您还将拥有用于管理 MinIO 的客户端机器。
先决条件
要开始本教程,您需要满足以下要求:
- 运行 Rocky Linux 的服务器 - 您可以使用 Rocky Linux v8 或 v9。
- 具有 sudo/root 权限的非 root 用户。
- 一个额外的磁盘或目录将用作对象存储。
- 对于生产环境,您需要一个指向 Rocky Linux 服务器 IP 地址的域名。
现在让我们跳转到 MinIO 安装。
手动安装 MinIO
MinIO 是下一代对象存储,易于在服务器和客户端上安装和配置。 MinIO 为容器化虚拟机和传统虚拟机提供了多个版本的包。
您可以在 Kubernetes、RedHat OpenShift 或使用 Docker 上安装 MinIO。对于虚拟机,您可以在任何 Linux 发行版上安装 MinIO,或者使用 Windows 和 macOS。
在此示例中,您将在 Rocky Linux 服务器上手动安装 MinIO。
运行以下 curl 命令将 MinIO 的二进制文件下载到 /usr/local/bin/minio。
curl -o /usr/local/bin/minio https://dl.min.io/server/minio/release/linux-amd64/minio
现在通过下面的 chmod 命令使 MinIO 二进制文件可执行。
sudo chmod +x /usr/local/bin/minio
为确保您可以执行 MinIO 二进制文件,您应该将 /usr/local/bin 目录添加到 PATH 环境变量中。

运行以下命令,将/usr/local/bin目录通过文件~/.bashrc配置添加到PATH环境变量中。
echo 'export PATH="$PATH:/usr/local/bin"' >> ~/.bashrc
接下来,重新加载 ~/.bashrc 配置文件并通过以下命令验证 PATH 环境变量。
source ~/.bashrc
echo $PATH
您应该看到 /usr/local/bin 目录已添加到 PATH 环境变量中。
在此之后,运行以下命令来验证以确保 minio 命令可用。有了这个,你应该得到 MinIO 二进制文件 /usr/local/bin/minio 的完整路径。
which minio

最后,使用下面的 minio 命令验证系统上安装的当前 MinIO 版本。
minio --version
你会看到 MinIO 安装在 Rocky Linux 上。

现在你已经安装了 MinIO。在设置对象存储之前,您需要准备好用作对象存储的磁盘或目录。
为 MinIO 对象存储设置存储
要设置 MinIO 对象存储,您需要设置一个目录或使用一个额外的磁盘作为对象存储。在此示例中,您将学习如何设置额外的磁盘 /dev/vdb 作为 MinIO 对象存储。
首先,运行以下命令来检查 /dev/vdb 磁盘上的可用分区列表。在这个例子中,只有一个分区 /dev/vdb1。
fdisk -l /dev/vdb
现在创建一个新目录 /minio-data,它将用作分区 /dev/vdb1 的挂载点。
mkdir -p /minio-data
接下来,将分区/dev/vdb1挂载到目标目录/minio-data。
sudo mount /dev/vdb1 /minio-data
这将临时挂载 /dev/vdb1 分区,重启后设置将消失。要使设置永久化,您可以通过 /etc/fstab 文件挂载分区,该文件允许您在启动时自动挂载分区。
运行以下 nano 编辑器来编辑文件 /etc/fstab。
sudo nano /etc/fstab
将以下配置添加到文件中,并确保更改详细分区、目标挂载和文件系统格式。
/dev/vdb1 /minio-data ext4 defaults 0 0
完成后保存文件并退出编辑器。

现在运行以下命令将可用分区挂载到 /etc/fstab 文件中。确保没有错误消息,这意味着分区已挂载到每个目标目录。
sudo mount -a
最后,运行以下命令来验证分区的配置。
sudo df -h
您应该看到分区 /dev/vdb1 已挂载到目标目录 /minio-data,它将用作 MinIO 对象存储。

现在您已经为对象存储配置了分区。接下来,您将开始配置 MinIO 安装。
配置 MinIO 对象存储
在此步骤中,您将为 MinIO 创建新配置并创建将用于运行 MinIO 服务的新配置文件。 MinIO 配置应该在/etc/minio,运行MinIO 服务的配置应该在/etc/default/minio。
首先,运行以下命令为 MinIO 创建一个新的专用系统用户。该用户将用于运行 MinIO 服务。
sudo useradd -r minio -s /sbin/nologin
接下来,运行以下命令将对象存储目录/minio-data 的所有权更改为用户和组minio。
sudo chown -R minio:minio /minio-data
更改对象存储目录的归属后,需要新建配置目录/etc/minio,以及运行MinIO服务的默认配置文件/etc/default/minio 。
运行以下命令创建配置目录/etc/minio 并将新目录的所有权更改为用户minio。
sudo mkdir -p /etc/minio
sudo chown -R minio:minio /etc/minio
使用以下 nano 编辑器创建一个新的 MinIO 配置文件 /etc/default/minio。
sudo nano /etc/default/minio
将以下配置添加到文件中。此外,请确保更改存储目录、MinIO 管理员用户和密码的详细信息。
MINIO_ROOT_USER="minio"
MINIO_VOLUMES="/minio-data"
MINIO_OPTS="-C /etc/minio --address :9000 --console-address :9001"
MINIO_ROOT_USER=admin
MINIO_ROOT_PASSWORD="PassMinioStorage"
完成后保存文件并退出编辑器。
最后,运行以下命令将 MinIO 配置文件 /etc/default/minio 的所有权更改为正确的用户 minio。
sudo chown minio:minio /etc/default/minio

您现在已经成功地为 MinIO 安装创建了配置目录和配置。考虑到这一点,您现在可以启动 MinIO。但是,为了更容易,您将运行 MinIO 作为 systemd 服务。
将 MinIO 作为 Systemd 服务运行
为 MinIO 创建配置目录和文件后,您现在可以将 MinIO 设置为系统服务。这允许您通过终端服务器上的 systemctl 命令轻松管理 MinIO。
运行以下 nano 编辑器以创建一个新的 systemd 服务文件 /lib/systemd/system/minio.service。
sudo nano /lib/systemd/system/minio.service
在您的编辑器中,添加以下配置。
[Unit]
Description=Minio
Documentation=https://docs.minio.io
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/usr/local/bin/minio
[Service]
WorkingDirectory=/usr/local/
User=minio
Group=minio
EnvironmentFile=-/etc/default/minio
ExecStartPre=/bin/bash -c "if [ -z \"${MINIO_VOLUMES}\" ]; then echo \"Variable MINIO_VOLUMES not set in /etc/default/minio\"; exit 1; fi"
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=65536
# Disable timeout logic and wait until the process is stopped
TimeoutStopSec=infinity
SendSIGKILL=no
[Install]
WantedBy=multi-user.target
完成后保存文件并退出编辑器。
为 MinIO 创建 systemd 服务后,运行以下命令重新加载 systemd 管理器。
sudo systemctl daemon-reload
现在使用以下命令启动并启用 minio 服务。
sudo systemctl start minio
sudo systemctl enable minio

minio 服务现在应该正在运行并启用。通过下面的 systemctl 命令验证 minio 服务。
sudo systemctl status minio
您现在应该收到正在运行的 minio 服务的输出。您还将看到该服务已启用并将在系统启动时自动运行,尤其是在网络运行之后。

此时,MinIO 在默认端口 9000 上运行,您可以通过访问您的服务器 IP 地址和 TCP 端口 9000 来验证它。但在此之前,您必须在 firewalld 上打开端口并使用 SSL 证书保护您的 MinIO 部署。
设置防火墙
在此步骤中,您将设置 firewalld 以打开 MinIO 对象存储的端口。默认的 MinIO 安装使用端口 9000 作为用户 Web 管理仪表板,使用端口 9001 作为 API。
运行以下 firewall-cmd 命令以打开 firewalld 上的端口 9000 和 9001。
sudo firewall-cmd --zone=public --add-port=9000/tcp --permanent
sudo firewall-cmd --zone=public --add-port=9001/tcp --permanent
接下来,运行以下命令重新加载 firewalld 规则并对其应用新的更改。然后,验证 firewalld 上启用的规则列表。
sudo firewall-cmd --reload
sudo firewall-cmd --list-all
您应该看到端口 9000 和 9001 添加到 firewalld。

使用 SSL 证书保护 MinIO
在 firewalld 上设置端口后,接下来您将使用 SSL 证书保护 MinIO 安装。
在开始使用 SSL 保护 MinIO 之前,请确保您已生成 SSL 证书。如果您在生产环境中安装 MinIO,您应该将域名指向您的服务器 IP 地址。
运行以下 cp 命令将 SSL 证书复制到 /etc/minio/certs 目录。此示例使用通过 Letsencrypt 生成的 SSL 证书并使用域 minio.hwdomain.io。
sudo cp /etc/letsencrypt/live/minio.hwdomain.io/privkey.pem /etc/minio/certs/private.key
sudo cp /etc/letsencrypt/live/minio.hwdomain.io/fullchain.pem /etc/minio/certs/public.crt
接下来,使用以下 nano 编辑器打开 MinIO 配置文件 /etc/default/minio。
sudo nano /etc/default/minio
添加选项 MINIO_SERVER_URL 配置并将域名更改为您的域。
MINIO_SERVER_URL="https://minio.hwdomain.io:9000"
完成后,保存文件并退出编辑器。
每当您对 /etc/default/minio 文件进行更改时,请使用下面的 systemctl 命令重新启动 minio 服务以应用您所做的更改。
sudo systemctl restart minio
MinIO 对象存储现在正在运行并使用 SSL 证书进行保护。

现在打开您的网络浏览器并访问您的 MinIO 安装的域名,然后是默认端口 9000(即:https://minio.hwdomain.io:9000/)。你应该会看到 MinIO 登录页面。
输入在文件 /etc/default/minio 上配置的用户和密码,然后单击登录。

如果您有正确的用户名和密码,您应该会看到如下所示的 MinIO 用户仪表板屏幕。

您现在已配置好所有内容并安装并保护了 MinIO。在下一步中,您将学习如何使用 MinIO 命令行设置存储桶和设置客户端机器。
创建第一个存储桶并上传文件
在此步骤中,您将学习如何通过 Web 管理仪表板在 MinIO 上创建存储桶。在开始之前,请确保您已使用您的用户登录到 MinIO 仪表板。
要在 MinIO 上创建存储桶,请单击“存储桶”菜单,然后单击“创建存储桶”按钮。

现在输入有关您的存储桶的名称和详细信息,然后单击“创建存储桶”进行确认。在此示例中,您将创建一个新的存储桶 test-bucket。

创建存储桶后,您可以上传新文件或在测试存储桶内创建目录。
在以下屏幕中,您可以看到新上传的文件 pool1.png 和 pool2.png 到测试桶。

设置 MinIO 客户端 CLI
MinIO 提供了一个客户端应用程序,允许您通过命令行管理 MinIO 对象存储。在此示例中,您将在客户端计算机上安装 MinIO 客户端 CLI,添加 MinIO 服务器,然后通过命令行验证列表存储桶和文件。
在您的本地计算机上,运行以下命令将 MinIO 客户端 CLI 下载到 /usr/local/bin/mc。
curl -o /usr/local/bin/mc https://dl.min.io/client/mc/release/linux-amd64/mc
下载后,使 MinIO 客户端 CLI /usr/local/bin/mc 可执行。
sudo chmod +x /usr/local/bin/mc

现在运行以下命令来验证 MinIO 客户端 CLI 的版本。您应该会看到系统上安装了 MinIO 客户端。
which mc
mc --version

配置完 MinIO 客户端 CLI 后,您接下来将添加您的 MinIO 服务器。
运行以下命令将 MinIO 服务器添加到本地计算机。并且一定要更改别名 test-minio,你的 MinIO 对象存储的域名,以及用户和密码。
mc alias set test-minio https://minio.hwdomain.io:9000 admin PassMinioStorage
添加后,您应该会看到输出消息,例如 Added test-minio successfully。
现在运行以下命令来验证 test-minio。你现在应该得到关于 test-minio 服务器的详细信息。
mc admin info test-minio

接下来,检查 test-minio 服务器上的可用桶列表。您应该在 test-minio 服务器上获得可用的测试桶。
mc ls test-minio
最后,运行以下命令来检查测试桶上的文件列表。
mc ls test-minio/test-bucket
在以下屏幕中,您可以看到文件 pool1.png 和 pool2.png 在测试桶上可用。该文件与在顶部示例中上传的文件相同。

通过 MinIO 命令行创建桶
在这最后一步中,您将学习如何通过 MinIO 客户端命令行管理存储桶。您将通过客户端命令行创建一个新存储桶、上传文件并验证 MinIO 存储桶上的文件列表。
运行以下命令在test-minio服务器上创建一个新的bucket test-bucket2。
mc mb test-minio/test-bucket2
使用以下命令创建一个新文件 test.txt。该文件将上传到 test-bucket2。
echo "test file" > test.txt
接下来,通过下面的 mc cp 命令将文件 test.txt 上传到 test-bucket2。
mc cp test.txt test-minio/test-bucket2
文件上传后,运行以下命令验证test-bucket2上的文件列表。
mc ls test-minio/test-bucket2
您现在应该收到如下屏幕截图所示的输出。文件 test.txt 被上传到 test-bucket2。

现在回到 MinIO 用户仪表板并单击 Buckets 菜单。您应该会看到 test-bucket2 已创建。

单击 test-bucket2,您应该会看到通过 MinIO 命令行上传的文件 test.txt。

结论
在本指南中,您已经在 Rocky Linux 服务器上安装并配置了 MinIO 对象存储。您还学习了在 Linux 上设置磁盘和通过 SSL 证书保护 MinIO 以及将 MinIO 作为系统服务运行的基本配置。
最后,您通过 MinIO Web 管理仪表板创建存储桶和上传文件,了解了 MinIO 的基本用法。您还学习了如何安装 MinIO 客户端命令行及其用于添加 MinIO 服务器、创建存储桶、检查存储桶上的列表文件以及将文件上传到特定存储桶的基本用法。