文档

部署 MinIO:单节点单驱动器

本页上的步骤涵盖了在早期开发和评估中部署 MinIO 的单节点单驱动器 (SNSD) 配置。SNSD 部署使用零奇偶校验擦除编码后端,除了底层存储卷实现之外,不提供额外的可靠性或可用性。这些部署最适合本地测试和评估,或者对于没有可用性或性能要求的小规模数据工作负载。

重要

RELEASE.2022-10-29T06-21-33Z 完全删除了已弃用的网关/文件系统 后端。如果 MinIO 启动并检测到现有的文件系统后端文件,它将返回错误。

要从 FS 后端部署迁移,请使用mc mirrormc cp 将您的数据复制到新的 MinIO SNSD 部署。您还应该在 SNSD 部署上重新创建任何必要的用户、组、策略和存储桶配置。

预先存在的数据

MinIO 启动行为取决于指定存储卷或路径的内容。服务器检查 MinIO 内部后端数据和现有文件夹和文件的结构。下表列出了可能的存储卷状态和 MinIO 行为

存储卷状态

行为

为空,没有文件、文件夹或 MinIO 后端数据

MinIO 以 SNSD 模式启动并创建零奇偶校验后端

现有的 SNSD 零奇偶校验对象和 MinIO 后端数据

MinIO 以 SNSD 模式恢复

现有的文件系统文件夹、文件,但没有 MinIO 后端数据

MinIO 返回错误,不会启动

现有的文件系统文件夹、文件和旧版“FS 模式”后端数据

MinIO 返回错误,不会启动

在版本 RELEASE.2022-10-29T06-21-33Z 中更改。

先决条件

存储要求

以下要求总结了 MinIO 硬件建议中 存储 部分。

使用本地存储

直接连接存储 (DAS) 比网络存储 (NASSANNFS) 具有显着的性能和一致性优势。MinIO 强烈建议使用闪存存储 (NVMe、SSD) 作为主要数据或“热”数据。

使用 XFS 格式化驱动器

MinIO 强烈建议为存储配置 XFS 格式化的驱动器。MinIO 在内部测试和验证套件中使用 XFS,这为所有规模的性能和行为提供了额外的信心。

在重启后保留驱动器挂载和映射

使用 /etc/fstab 来确保在节点重启后驱动器到挂载点的映射保持一致。

非 Linux 操作系统应该使用等效的驱动器挂载管理工具。

独占访问驱动器

MinIO **需要** 对为对象存储提供的驱动器或卷进行*独占*访问。任何其他进程、软件、脚本或人员不应直接对提供给 MinIO 的驱动器或卷,或者 MinIO 放置在这些驱动器或卷上的对象或文件执行*任何*操作。

除非 MinIO 工程师指示,否则不要使用脚本或工具直接修改、删除或移动提供的驱动器上的任何数据分片、奇偶校验分片或元数据文件,包括从一个驱动器或节点移动到另一个驱动器或节点。此类操作很可能会导致广泛的损坏和数据丢失,超出了 MinIO 的修复能力。

内存需求

更改于版本 RELEASE.2024-01-28T22-35-53Z: MinIO 在启动时预分配 2GiB 的系统内存。

MinIO 建议每个主机至少拥有 32GiB 的内存。有关在 MinIO 中分配内存的更多指导,请参阅 内存

部署单节点单驱动器 MinIO

以下步骤部署由单个 MinIO 服务器和单个驱动器或存储卷组成的 MinIO。

网络文件系统卷破坏一致性保证

MinIO 的严格**读后写**和**列出后写**一致性模型需要本地驱动器文件系统。

如果底层存储卷是 NFS 或类似的网络连接存储卷,MinIO 无法提供一致性保证。

1) 下载 MinIO 服务器

打开终端并运行以下命令,使用 Homebrew 安装最新的稳定 MinIO 包。

brew install minio/stable/minio

重要

如果您之前使用 brew install minio 安装了 MinIO 服务器,那么我们建议您从 minio/stable/minio 重新安装。

brew uninstall minio
brew install minio/stable/minio

打开终端,然后使用以下命令下载最新的稳定 MinIO 二进制文件,将其设置为可执行文件,并将其安装到系统 $PATH

curl -O https://dl.min.io/server/minio/release/darwin-arm64/minio
chmod +x ./minio
sudo mv ./minio /usr/local/bin/

打开终端,然后使用以下命令下载最新的稳定 MinIO 二进制文件,将其设置为可执行文件,并将其安装到系统 $PATH

curl -O https://dl.min.io/server/minio/release/darwin-amd64/minio
chmod +x ./minio
sudo mv ./minio /usr/local/bin/

2) 创建环境变量文件

/etc/default/minio 创建一个环境变量文件。对于 Windows 主机,请指定类似于 C:\minio\config 的 Windows 风格路径。MinIO Server 容器可以使用此文件作为所有 环境变量 的来源。

以下示例提供了一个环境文件示例

# MINIO_ROOT_USER and MINIO_ROOT_PASSWORD sets the root account for the MinIO server.
# This user has unrestricted permissions to perform S3 and administrative API operations on any resource in the deployment.
# Omit to use the default values 'minioadmin:minioadmin'.
# MinIO recommends setting non-default values as a best practice, regardless of environment

MINIO_ROOT_USER=myminioadmin
MINIO_ROOT_PASSWORD=minio-secret-key-change-me

# MINIO_VOLUMES sets the storage volume or path to use for the MinIO server.

MINIO_VOLUMES="/mnt/data"

# MINIO_OPTS sets any additional commandline options to pass to the MinIO server.
# For example, `--console-address :9001` sets the MinIO Console listen port
MINIO_OPTS="--console-address :9001"

根据您的部署需要包含任何其他环境变量。

新增于版本 Server: RELEASE.2024-03-03T17-50-39Z

如果以下所有条件都为真,MinIO 会自动生成唯一的根凭据

当这些条件在启动时满足时,MinIO 会使用 KMS 使用 基于哈希的消息认证码 (HMAC) 为部署生成唯一的根凭据。

如果 MinIO 生成此类凭据,则用于生成凭据的密钥**必须**保持相同,*并且* 必须继续存在。部署上的所有数据都使用此密钥加密!

要轮换生成的根凭据,请在 KMS 中生成一个新密钥,然后使用新密钥更新 MINIO_KMS_KES_KEY_NAME 的值。

3) 启动 MinIO 部署

在本地主机上发出以下命令,以将 MinIO SNSD 部署作为前台进程启动。您必须保持 shell 或终端会话处于打开状态以使进程保持运行状态。

从终端使用 minio server~/data 文件夹中启动本地 MinIO 实例。如果需要,您可以将 ~/data 替换为用户对 MinIO 实例具有读、写和删除权限的另一个位置。

export MINIO_CONFIG_ENV_FILE=/etc/default/minio
minio server --console-address :9001
Status:         1 Online, 0 Offline.
API: http://192.168.2.100:9000  http://127.0.0.1:9000
RootUser: myminioadmin
RootPass: minio-secret-key-change-me
Console: http://192.168.2.100:9001 http://127.0.0.1:9001
RootUser: myminioadmin
RootPass: minio-secret-key-change-me

Command-line: https://min-io.cn/docs/minio/linux/reference/minio-mc.html
   $ mc alias set myminio http://10.0.2.100:9000 myminioadmin minio-secret-key-change-me

Documentation: https://min-io.cn/docs/minio/linux/index.html

API 块列出了客户端可以访问 MinIO S3 API 的网络接口和端口。 Console 块列出了客户端可以访问 MinIO Web 控制台的网络接口和端口。

4) 连接到 MinIO 部署

您可以通过在首选浏览器中输入 MinIO 服务器 Console 块中的任何主机名或 IP 地址来访问 MinIO 控制台,例如 https://127.0.0.1:9001

使用在指定给容器的环境文件中配置的 MINIO_ROOT_USERMINIO_ROOT_PASSWORD 登录。

MinIO Console displaying Buckets view in a fresh installation

您可以使用 MinIO 控制台执行通用管理任务,例如身份和访问管理、指标和日志监控,或服务器配置。每个 MinIO 服务器都包含自己的嵌入式 MinIO 控制台。

如果您的本地主机防火墙允许外部访问控制台端口,则同一网络上的其他主机可以使用您的本地主机的 IP 或主机名访问控制台。

您可以使用 MinIO 客户端 (mc) 通过终端或 shell 访问 MinIO 部署。有关安装 mc 的说明,请参阅 MinIO 客户端安装快速入门

创建一个对应于 MinIO 部署的新 alias。指定 MinIO Server API 块中的任何主机名或 IP 地址,例如 https://127.0.0.1:9000

mc alias set myminio https://127.0.0.1:9000 myminioadmin minio-secret-key-change-me
  • myminio 替换为要用于别名的所需名称。

  • myminioadmin 替换为在指定给容器的环境文件中 MINIO_ROOT_USER 的值。

  • minio-secret-key-change-me 替换为在指定给容器的环境文件中 MINIO_ROOT_PASSWORD 的值。

然后,您可以使用任何 mc 命令与容器进行交互。如果您的本地主机防火墙允许外部访问 MinIO S3 API 端口,则同一网络上的其他主机可以使用您的本地主机的 IP 或主机名访问 MinIO 部署。