MinIO一款高性能兼容S3的对象存储解决方案

MinIO 快速入门指南

MinIO 是一款高性能、兼容 S3 的对象存储解决方案,基于 GNU AGPL v3.0 许可证发布。它专为速度和可扩展性而设计,以业界领先的性能为 AI/ML、分析和数据密集型工作负载提供支持。

🔹 兼容 S3 API – 与现有 S3 工具无缝集成
🔹 专为 AI 和分析打造 – 针对大规模数据管道进行了优化
🔹 高性能 – 非常适合高要求的存储工作负载。

AI 存储文档 (https://min.io/solutions/object-storage-for-ai)。

本 README 文件提供了在裸机上运行 MinIO 的快速入门说明,包括基于容器的安装。对于 Kubernetes 环境,请使用 MinIO Kubernetes Operator

容器安装

使用以下命令将独立的 MinIO 服务器作为容器运行。

独立的 MinIO 服务器最适合早期开发和评估。某些功能(例如版本控制、对象锁定和存储桶复制)需要分布式部署支持纠删码的 MinIO。对于扩展开发和生产环境,请在部署 MinIO 时启用纠删码 - 具体来说,每个 MinIO 服务器至少需要 4 个驱动器。有关更完整的文档,请参阅 MinIO 纠删码概述

稳定版

运行以下命令,将最新的 MinIO 稳定版镜像作为使用临时数据卷的容器运行:

sh 复制代码
podman run -p 9000:9000 -p 9001:9001 \
  quay.io/minio/minio server /data --console-address ":9001"

MinIO 部署使用默认的 root 凭据 minioadmin:minioadmin 启动。您可以使用 MinIO 控制台(MinIO 服务器内置的嵌入式对象浏览器)测试部署。在主机上运行的 Web 浏览器中访问 http://127.0.0.1:9000,并使用 root 凭据登录。您可以使用浏览器创建存储桶、上传对象以及浏览 MinIO 服务器的内容。

您也可以使用任何兼容 S3 的工具进行连接,例如 MinIO 客户端的 mc 命令行工具。有关使用 mc 命令行工具的更多信息,请参阅
使用 MinIO 客户端 mc 进行测试。对于应用程序开发者,
请参阅 https://docs.min.io/community/minio-object-store/developers/minio-drivers.html 查看支持语言的 MinIO SDK。

提示
要使用持久存储部署 MinIO,您必须使用 podman -v 选项将本地持久目录从主机操作系统映射到容器。
例如,-v /mnt/data:/data 将主机操作系统驱动器 /mnt/data 映射到容器上的 /data

macOS

使用以下命令在 macOS 上运行独立的 MinIO 服务器。

独立的 MinIO 服务器最适合早期开发和评估。某些功能(例如版本控制、对象锁定和存储桶复制)需要使用纠删码技术分布式部署 MinIO。对于扩展开发和生产环境,请在部署 MinIO 时启用纠删码 - 具体来说,每个 MinIO 服务器至少需要 4 个驱动器。有关更完整的文档,请参阅 MinIO 纠删码概述

Homebrew(推荐)

运行以下命令,使用 Homebrew 安装最新的稳定 MinIO 软件包。将“/data”替换为您希望 MinIO 存储数据的驱动器或目录的路径。

sh 复制代码
brew install minio/stable/minio
minio server /data

提示
如果您之前使用 brew install minio 安装 minio,建议您从 minio/stable/minio 官方仓库重新安装 minio。

sh 复制代码
brew uninstall minio
brew install minio/stable/minio

MinIO 部署使用默认的 root 凭据 minioadmin:minioadmin 启动。您可以使用 MinIO 控制台(MinIO 服务器内置的嵌入式 Web 对象浏览器)测试部署。在主机上运行的 Web 浏览器中访问 http://127.0.0.1:9000,并使用 root 凭据登录。您可以使用浏览器创建存储桶、上传对象以及浏览 MinIO 服务器的内容。

您也可以使用任何兼容 S3 的工具进行连接,例如 MinIO 客户端的 mc 命令行工具。有关使用 mc 命令行工具的更多信息,请参阅使用 MinIO 客户端 mc 进行测试。对于应用程序开发者,请参阅 https://docs.min.io/community/minio-object-store/developers/minio-drivers.html/ 查看支持语言的 MinIO SDK。

二进制文件下载

使用以下命令在 macOS 上下载并运行独立的 MinIO 服务器。将“/data”替换为您希望 MinIO 存储数据的驱动器或目录的路径。

sh 复制代码
wget https://dl.min.io/server/minio/release/darwin-amd64/minio
chmod +x minio
./minio server /data

MinIO 部署使用默认的 root 凭据 minioadmin:minioadmin 启动。您可以使用 MinIO 控制台(MinIO 服务器内置的嵌入式 Web 对象浏览器)测试部署。在主机上运行的 Web 浏览器中访问 http://127.0.0.1:9000,并使用 root 凭据登录。您可以使用浏览器创建存储桶、上传对象以及浏览 MinIO 服务器的内容。

您也可以使用任何兼容 S3 的工具进行连接,例如 MinIO 客户端的 mc 命令行工具。有关使用 mc 命令行工具的更多信息,请参阅使用 MinIO 客户端 mc 进行测试。对于应用程序开发者,请参阅 https://docs.min.io/community/minio-object-store/developers/minio-drivers.html 查看支持语言的 MinIO SDK。

GNU/Linux

使用以下命令在运行 64 位 Intel/AMD 架构的 Linux 主机上运行独立的 MinIO 服务器。将“/data”替换为您希望 MinIO 存储数据的驱动器或目录的路径。

sh 复制代码
wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
./minio server /data

下表列出了支持的架构。请将 wget URL 替换为您的 Linux 主机的架构。

架构 URL
64 位 Intel/AMD https://dl.min.io/server/minio/release/linux-amd64/minio
64 位 ARM https://dl.min.io/server/minio/release/linux-arm64/minio
64 位 PowerPC LE (ppc64le) https://dl.min.io/server/minio/release/linux-ppc64le/minio

MinIO 部署使用默认 root 凭据 minioadmin:minioadmin 启动。您可以使用 MinIO 控制台(MinIO 服务器内置的基于 Web 的对象浏览器)测试部署。在主机上运行的 Web 浏览器访问 http://127.0.0.1:9000,并使用 root 凭据登录。您可以使用浏览器创建存储桶、上传对象以及浏览 MinIO 服务器的内容。

您也可以使用任何兼容 S3 的工具进行连接,例如 MinIO 客户端的 mc 命令行工具。有关使用 mc 命令行工具的更多信息,请参阅使用 MinIO 客户端 mc 进行测试。对于应用程序开发者,请参阅 https://docs.min.io/community/minio-object-store/developers/minio-drivers.html 查看支持语言的 MinIO SDK。

提示
独立的 MinIO 服务器最适合早期开发和评估。某些功能(例如版本控制、对象锁定和存储桶复制)需要使用纠删码技术进行分布式部署。对于扩展开发和生产环境,请在部署 MinIO 时启用纠删码 - 具体来说,每个 MinIO 服务器至少配备 4 个驱动器。有关更完整的文档,请参阅 MinIO 纠删码概述

Microsoft Windows

要在 64 位 Windows 主机上运行 MinIO,请从以下网址下载 MinIO 可执行文件:

sh 复制代码
https://dl.min.io/server/minio/release/windows-amd64/minio.exe

使用以下命令在 Windows 主机上运行独立的 MinIO 服务器。将“D:\”替换为您希望 MinIO 存储数据的驱动器或目录的路径。您必须将终端或 PowerShell 目录更改为“minio.exe”可执行文件的位置,将该目录的路径添加到系统“$PATH”:

sh 复制代码
minio.exe server D:\

MinIO 部署使用默认的 root 凭据“minioadmin:minioadmin”启动。您可以使用 MinIO 控制台(MinIO 服务器内置的嵌入式 Web 对象浏览器)测试部署。在主机上运行的 Web 浏览器中访问 http://127.0.0.1:9000,并使用 root 凭据登录。您可以使用浏览器创建存储桶、上传对象以及浏览 MinIO 服务器的内容。

您也可以使用任何兼容 S3 的工具进行连接,例如 MinIO 客户端的“mc”命令行工具。有关使用 mc 命令行工具的更多信息,请参阅使用 MinIO 客户端 mc 进行测试。对于应用程序开发者,请参阅 https://docs.min.io/community/minio-object-store/developers/minio-drivers.html 查看支持语言的 MinIO SDK。

[!NOTE]
独立的 MinIO 服务器最适合早期开发和评估。某些功能(例如版本控制、对象锁定和存储桶复制)需要使用纠删码技术进行分布式部署。对于扩展开发和生产环境,请在部署 MinIO 时启用纠删码 - 具体来说,每个 MinIO 服务器至少配备 4 个驱动器。有关更完整的文档,请参阅 MinIO 纠删码概述

从源代码安装

使用以下命令从源代码编译并运行独立的 MinIO 服务器。源代码安装仅适用于开发人员和高级用户。如果您没有可用的 Golang 环境,请按照如何安装 Golang 操作。最低要求版本为 go1.24

sh 复制代码
go install github.com/minio/minio@latest

MinIO 部署使用默认的 root 凭据 minioadmin:minioadmin 启动。您可以使用 MinIO 控制台(MinIO 服务器内置的嵌入式 Web 对象浏览器)测试部署。在主机上运行的 Web 浏览器中访问 http://127.0.0.1:9000,并使用 root 凭据登录。您可以使用浏览器创建存储桶、上传对象以及浏览 MinIO 服务器的内容。

您也可以使用任何兼容 S3 的工具进行连接,例如 MinIO 客户端的 mc 命令行工具。有关使用 mc 命令行工具的更多信息,请参阅使用 MinIO 客户端 mc 进行测试。对于应用程序开发者,请访问 https://docs.min.io/community/minio-object-store/developers/minio-drivers.html 查看支持语言的 MinIO SDK。

提示
独立的 MinIO 服务器最适合早期开发和评估。某些功能(例如版本控制、对象锁定和存储桶复制)需要使用纠删码技术进行分布式部署。对于扩展开发和生产环境,请在部署 MinIO 时启用纠删码技术 - 具体来说,每个 MinIO 服务器至少需要 4 个驱动器。请参阅 MinIO 纠删码概述 获取更完整的文档。

MinIO 强烈建议不要在生产环境中使用从源代码编译的 MinIO 服务器。

部署建议

允许防火墙端口访问

MinIO 默认使用 9000 端口监听传入连接。如果您的平台默认阻止该端口,则可能需要启用该端口的访问。

ufw

对于启用了 ufw 的主机(基于 Debian 的发行版),您可以使用 ufw 命令允许流向特定端口的流量。使用以下命令允许访问 9000 端口:

sh 复制代码
ufw allow 9000

以下命令允许所有流向 9000 至 9010 端口的传入流量:

sh 复制代码
ufw allow 9000:9010/tcp

###firewall-cmd

对于启用了 firewall-cmd 的主机(CentOS),您可以使用 firewall-cmd 命令允许流向特定端口的流量。使用以下命令允许访问端口 9000

sh 复制代码
firewall-cmd --get-active-zones

此命令获取活动区域。现在,将端口规则应用于上面返回的相关区域。例如,如果区域是“public”,请使用

sh 复制代码
firewall-cmd --zone=public --add-port=9000/tcp --permanent

提示
permanent 确保规则在防火墙启动、重启或重新加载后保持不变。最后,重新加载防火墙以使更改生效。

sh 复制代码
firewall-cmd --reload

iptables

对于已启用 iptables 的主机(RHEL、CentOS 等),您可以使用 iptables 命令来允许所有传入特定端口的流量。使用以下命令允许
访问 9000 端口:

sh 复制代码
iptables -A INPUT -p tcp --dport 9000 -j ACCEPT
service iptables restart

以下命令允许所有传入 9000 至 9010 端口的流量:

sh 复制代码
iptables -A INPUT -p tcp --dport 9000:9010 -j ACCEPT
service iptables restart

测试 MinIO 连接

使用 MinIO 控制台测试

MinIO 服务器自带一个基于 Web 的对象浏览器。请将 Web 浏览器指向 http://127.0.0.1:9000,以确保服务器已成功启动。

[!NOTE]
MinIO 默认在随机端口上运行控制台,如果您希望选择特定端口,请使用 --console-address 来选择特定的接口和端口。

注意事项

MinIO 会将浏览器访问请求重定向到配置的服务器端口(例如 127.0.0.1:9000),再重定向到配置的控制台端口。MinIO 在构建重定向 URL 时会使用请求中指定的主机名或 IP 地址。客户端必须能够访问该 URL 和端口才能使重定向生效。

对于部署在负载均衡器、代理或入口规则之后,且 MinIO 主机 IP 地址或端口不公开的部署,请使用 MINIO_BROWSER_REDIRECT_URL 环境变量指定重定向的外部主机名。负载均衡器/代理必须具有专门用于将流量定向到控制台端口的规则。

例如,假设 MinIO 部署在代理 https://minio.example.nethttps://console.minio.example.net 之后,并设置规则将端口 :9000 和 :9001 上的流量分别转发到内部网络上的 MinIO 和 MinIO 控制台。将 MINIO_BROWSER_REDIRECT_URL 设置为 https://console.minio.example.net,以确保浏览器收到有效的可访问 URL。

仪表板

创建存储桶

使用 MinIO 客户端 mc 进行测试

mc 提供了 ls、cat、cp、mirror、diff 等 UNIX 命令的现代替代方案。它支持文件系统和兼容 Amazon S3 的云存储服务。请参阅 MinIO 客户端 快速入门指南 获取更多说明。

升级 MinIO

MinIO 升级无需停机,所有升级操作均无中断,MinIO 上的所有事务都是原子的。因此,建议同时升级所有服务器。

提示
需要互联网访问才能直接从 https://dl.min.io 更新,您也可以选择在 https://my-artifactory.example.com/minio/ 托管任何镜像。

  • 对于手动安装 MinIO 服务器二进制文件的部署,请使用 mc admin update
sh 复制代码
mc admin update <minio 别名,例如 myminio>
  • 对于没有外部互联网访问的部署(例如,隔离环境),请从 https://dl.min.io 下载二进制文件并替换现有的 MinIO 二进制文件(例如 /opt/bin/minio),应用可执行权限 chmod +x /opt/bin/minio,然后执行 mc admin service restart alias/

  • 对于使用 Systemd MinIO 服务的安装,请在所有服务器上并行使用 RPM/DEB 软件包进行升级,或者在所有节点上替换二进制文件(例如 /opt/bin/minio),应用可执行权限 chmod +x /opt/bin/minio 并执行 mc admin service restart alias/

升级清单

  • 在应用到生产环境之前,请在较低环境(DEV、QA、UAT)中测试所有升级。在生产环境中进行盲目升级会带来重大风险。
  • 在执行任何升级之前,请阅读 MinIO 的发行说明,MinIO 并不强制要求每次发布新版本后都升级到最新版本。某些版本可能与您的设置无关,请避免不必要地升级生产环境。
  • 如果您计划使用 mc admin update,MinIO 进程必须对主机系统上二进制文件所在父目录具有写权限。
  • mc admin update 不受支持,应避免在 Kubernetes/容器环境中使用,请通过升级相关的容器镜像来升级容器。
  • 我们不建议一次升级一个 MinIO 服务器,该产品设计为支持并行升级,请遵循我们推荐的指南。

许可证

关于项目

MinIO 是一款高性能、兼容 S3 的对象存储解决方案,采用 GNU AGPL v3.0 许可证发布。它专为速度和可扩展性而设计,以业界领先的性能为 AI/ML、分析和数据密集型工作负载提供支持。
AGPL-3.0
Golang
55,660
6217
632
2015-01-15
2025-10-11

增长趋势 - stars