MinIO 是一个用 Go 编写的免费和开源的对象存储服务器,它与 Amazone S3 对象存储兼容,是对象存储的最佳和最免费的解决方案之一,使用 MinIO,您可以存储照片、视频、日志文件、备份和容器/VM 映像。
在服务器端,MinIO 提供了高度可扩展的架构以及应用程序的简单性,使应用程序服务器易于安装和配置,在客户端,它提供了一个二进制客户端应用程序,允许您从终端管理对象存储,此外,MinIO 还为喜欢使用 Web 浏览器的用户提供了功能强大且易于使用的 Web 管理仪表板。
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 ”。
现在通过下面的 chmod 命令使 MinIO 二进制文件可执行。
为确保您可以执行 MinIO 二进制文件,您应该将 ' /usr/local/bin ' 目录添加到**$PATH**环境变量中。
运行以下命令,通过文件 ' ~/.bashrc ' 配置将 ' /usr/local/bin ' 目录添加到**$PATH**环境变量中。
接下来,重新加载 ' ~/.bashrc ' 配置文件并通过以下命令 验证**$PATH环境变量。**
您应该会看到“ /usr/local/bin ”目录已添加到**$PATH**环境变量中。
在此之后,运行以下命令进行验证以确保“minio”命令可用。有了这个,你应该得到 MinIO 二进制文件' /usr/local/bin/minio '的完整路径。
最后,使用下面的“ minio ”命令验证系统上安装的当前 MinIO 版本。
您将看到 MinIO 安装在 Rocky Linux 上。
现在您已经安装了 MinIO。在设置对象存储之前,您需要准备将用作对象存储的磁盘或目录。
为 MinIO 对象存储设置存储
要设置 MinIO 对象存储,您需要设置一个目录或使用将用作对象存储的附加磁盘。在此示例中,您将学习如何将附加磁盘“ /dev/vdb”设置为 MinIO 对象存储。
首先,运行以下命令检查“ /dev/vdb”磁盘上的可用分区列表。在此示例中,只有一个分区“/dev/vdb1 ”。
现在创建一个新目录“/minio-data ”,它将用作分区“/dev/vdb1”的挂载点。
接下来,将分区“/dev/vdb1”挂载到目标目录“/minio-data”。
这将临时挂载“ /dev/vdb1 ”分区,重启后设置将消失。要使设置永久化,您可以通过“ /etc/fstab ”文件挂载分区,该文件允许您在启动时自动挂载分区。
运行以下 nano 编辑器来编辑文件“ /etc/fstab ”。
将以下配置添加到文件中,并确保更改详细分区、目标挂载和文件系统格式。
完成后保存文件并退出编辑器。
现在运行以下命令在“/etc/fstab”文件上挂载可用分区。确保您没有错误消息,这意味着分区已安装到每个目标目录。
最后,运行以下命令来验证分区的配置。
您应该会看到分区“/dev/vdb1”已挂载到目标目录“ /minio-data ”,该目录将用作 MinIO 对象存储。
现在您已经为对象存储配置了分区。接下来,您将开始配置 MinIO 安装。
配置 MinIO 对象存储
在此步骤中,您将为 MinIO 创建一个新配置,并创建将用于运行 MinIO 服务的新配置文件。MinIO 配置应位于“/etc/minio ”,运行 MinIO 服务的配置应位于“ /etc/default/minio ”。
首先,运行以下命令为 MinIO 创建一个新的专用系统用户。该用户将用于运行 MinIO 服务。
接下来,运行以下命令将对象存储目录“ /minio-data ”的所有权更改为用户和组“minio”。
更改对象存储目录的所有权后,您需要创建一个新的配置目录' /etc/minio ',以及运行MinIO服务的默认配置文件' /etc/default/minio '。
运行以下命令以创建配置目录“ /etc/minio ”并将新目录的所有权更改为用户“ minio ”。
使用以下 nano 编辑器 创建一个新的 MinIO 配置文件“/etc/default/minio ”。
将以下配置添加到文件中。此外,请务必更改存储目录、MinIO 管理员用户和密码的详细信息。
完成后保存文件并退出编辑器。
最后,运行以下命令将 MinIO 配置文件“/etc/default/minio ”的所有权更改为正确的用户“minio”。
您现在已经成功创建了 MinIO 安装的配置目录和配置。考虑到这一点,您现在可以启动 MinIO。但是,为了更容易,您将 MinIO 作为 systemd 服务运行。
将 MinIO 作为系统服务运行
在为 MinIO 创建配置目录和文件之后,您现在将 MinIO 设置为 systemd 服务。这允许您通过终端服务器上的 systemctl 命令轻松管理 MinIO。
运行以下 nano 编辑器以创建新的 systemd 服务文件*'/lib/systemd/system/minio.service'*。
在您的编辑器中,添加以下配置。
完成后保存文件并退出编辑器。
为 MinIO 创建 systemd 服务后,运行以下命令重新加载 systemd 管理器。
现在使用以下命令 启动并启用“ minio ”服务。
' minio ' 服务现在应该正在运行并启用。通过下面的 systemctl 命令 验证“ minio ”服务。
您现在应该会收到正在运行的“ minio ”服务的输出。您还将看到该服务已启用并将在系统启动时自动运行,尤其是在网络运行后。
此时,MinIO 正在默认端口9000上运行,您可以通过访问您的服务器 IP 地址和 TCP 端口9000来验证它。但在此之前,您必须在 firewalld 上打开端口并使用 SSL 证书保护您的 MinIO 部署。
设置防火墙
在这一步中,您将设置防火墙以打开 MinIO 对象存储的端口。默认的 MinIO 安装使用端口9000用于用户 Web 管理仪表板,使用端口9001用于 API。
运行以下 firewall-cmd 命令打开 firewalld 上的端口9000和9001。
接下来,运行以下命令以重新加载 firewalld 规则并对其应用新的更改。然后,验证 firewalld 上启用的规则列表。
您应该看到端口9000和9001添加到了 firewalld。
使用 SSL 证书保护 MinIO
在 firewalld 上设置端口后,您接下来将使用 SSL 证书保护 MinIO 安装。
在开始使用 SSL 保护 MinIO 之前,请确保您已生成 SSL 证书。如果您在生产环境中安装 MinIO,您应该将域名指向您的服务器 IP 地址。
运行以下 cp 命令将 SSL 证书复制到“ /etc/minio/certs ”目录。此示例使用由 Letsencrypt 生成的 SSL 证书并使用域“ minio.hwdomain.io ”。
接下来,使用以下 nano 编辑器 打开 MinIO 配置文件“ /etc/default/minio ”。
添加选项 ' MINIO_SERVER_URL ' 配置并使用您的域更改域名。
完成后,保存文件并退出编辑器。
每当您对“ /etc/default/minio ”文件进行更改时,请使用下面的 systemctl 命令重新启动“ minio ”服务以应用您所做的更改。
MinIO 对象存储现在正在运行并使用 SSL 证书进行保护。
现在打开您的 Web 浏览器并访问您的 MinIO 安装的域名,后跟默认端口 9000(即:https://minio.hwdomain.io:9000/ )。您应该会看到 MinIO 登录页面。
输入在“/etc/default/minio”文件中配置的用户名和密码,然后点击登录。
如果您拥有正确的用户名和密码,您应该会看到 MinIO 用户仪表板屏幕,如下所示。
您现在已配置好所有内容并安装并保护了 MinIO。在下一步中,您将学习如何设置存储桶并使用 MinIO 命令行设置客户端计算机。
创建第一个存储桶并上传文件
在此步骤中,您将学习如何通过 Web 管理仪表板在 MinIO 上创建存储桶。在开始之前,请确保您已使用您的用户登录到 MinIO 仪表板。
要在 MinIO 上创建存储桶,请单击“存储桶”菜单,然后单击“创建存储桶”按钮。
现在输入您的存储桶的名称和详细信息,然后单击“创建存储桶”进行确认。在此示例中,您将创建一个新存储桶“ test-bucket ”。
创建存储桶后,您可以上传新文件或在“测试桶”内创建目录。
在以下屏幕中,您可以看到新上传的文件“ pool1.png ”和“ pool2.png ”到“ test-bucket ”。
设置 MinIO 客户端 CLI
MinIO 提供了一个客户端应用程序,允许您通过命令行管理 MinIO 对象存储。在本例中,您将在客户端机器上安装 MinIO 客户端 CLI,添加 MinIO 服务器,然后通过命令行验证列表存储桶和文件。
在本地机器上,运行以下命令将 MinIO 客户端 CLI 下载到“ /usr/local/bin/mc ”。
下载后,使 MinIO 客户端 CLI '/usr/local/bin/mc ' 可执行。
现在运行以下命令来验证 MinIO 客户端 CLI 的版本。您应该会看到系统上安装了 MinIO 客户端。
配置 MinIO 客户端 CLI 后,您接下来将添加您的 MinIO 服务器。
运行以下命令将 MinIO 服务器添加到本地计算机。并且一定要更改别名' test-minio ',你的MinIO对象存储的域名,以及用户和密码。
添加后,您应该会看到诸如“已成功添加 test-minio ”的输出消息。
现在运行以下命令来验证“ test-minio ”。现在您应该获得有关“test-minio”服务器的详细信息。
接下来,检查“ test-minio ”服务器上可用存储桶的列表。您应该在“ test-minio ”服务器 上获得“ test-bucket”。
最后,运行以下命令来检查“ test-bucket ”中的文件列表。
在以下屏幕中,您可以看到文件“ pool1.png ”和“ pool2.png ”在“ test-bucket”中可用。该文件与在顶部示例中上传的文件相同。
通过 MinIO 命令行创建存储桶
在这最后一步中,您将学习如何通过 MinIO 客户端命令行管理存储桶。您将创建一个新的存储桶,上传一个文件,并通过客户端命令行验证 MinIO 存储桶上的文件列表。
运行以下命令在“ test-minio ”服务器 上创建一个新的存储桶“ test-bucket2 ”。
使用以下命令创建一个新文件“test.txt” 。该文件将被上传到“ test-bucket2 ”。
接下来,通过下面的“mc cp”命令 将文件“ test.txt ”上传到“ test-bucket2 ”。
上传文件后,运行以下命令验证“ test-bucket2 ”上的文件列表。
您现在应该会收到如下屏幕截图所示的输出。文件“ test.txt”被上传到“ test-bucket2 ”。
现在回到 MinIO 用户仪表板并单击“ Buckets ”菜单。您应该会看到创建了“ test-bucket2 ”。
单击“ test-bucket2 ”,您应该会看到通过 MinIO 命令行上传的文件“ test.tx t”。
结论
在本指南中,您已经在 Rocky Linux 服务器上安装并配置了 MinIO 对象存储,您还学习了在 Linux 上设置磁盘和通过 SSL 证书保护 MinIO 以及将 MinIO 作为 systemd 服务运行的基本配置。
最后,您通过 MinIO Web 管理仪表板创建存储桶和上传文件,了解了 MinIO 的基本用法,您还学习了如何安装 MinIO 客户端命令行及其基本用法,用于添加 MinIO 服务器、创建存储桶、检查存储桶上的列表文件以及将文件上传到特定存储桶。