官方文档地址:http://docs.minio.org.cn/docs/
MinIO 是在 GNU Affero 通用公共许可证 v3.0 下发布的高性能对象存储。 它是与 Amazon S3 云存储服务兼容的 API。 使用 MinIO 为机器学习、分析和应用程序数据工作负载构建高性能基础架构。 对于 Kubernetes 环境,请使用 MinIO Kubernetes Operator(https://github.com/minio/operator/blob/master/README.md)。
独立的 MinIO 服务器最适合早期开发和评估。 某些功能,例如版本控制、对象锁定和存储桶复制 需要使用擦除编码分布式部署 MinIO。
对于扩展的开发和生产,请在启用擦除编码的情况下部署 MinIO - 特别是, 每个 MinIO 服务器最少 4 个驱动器。
容器安装
运行以下命令以使用临时数据卷将 MinIO 的最新稳定映像作为容器运行:
podman run -p 9000:9000 -p 9001:9001 minio/minio server /data --console-address ":9001"
MinIO 部署开始使用默认的 root 凭据 minioadmin:minioadmin。您可以使用 MinIO 控制台测试部署,这是一个嵌入式 内置于 MinIO 服务器的对象浏览器。将主机上运行的 Web 浏览器指向 http://127.0.0.1:9000 并使用 根凭据。您可以使用浏览器来创建桶、上传对象以及浏览 MinIO 服务器的内容。
注意:要在持久存储上部署 MinIO,您必须使用 podman -v 选项将本地持久目录从主机操作系统映射到容器。例如,-v /mnt/data:/data 将位于 /mnt/data 的主机操作系统驱动器映射到容器上的 /data。
二进制下载
使用以下命令在运行 64 位 Intel/AMD 架构的 Linux 主机上运行独立的 MinIO 服务器。将/data 替换为您希望 MinIO 存储数据的驱动器或目录的路径。
下载地址:https://dl.min.io/
wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
./minio server /data
将/data 替换为您希望 MinIO 存储数据的驱动器或目录的路径。
允许防火墙的端口访问
默认情况下,MinIO 使用端口 9000 来侦听传入连接。如果您的平台默认阻止该端口,您可能需要启用对该端口的访问。
对于启用了 firewall-cmd (CentOS) 的主机,您可以使用 firewall-cmd 命令来允许特定端口的流量。 使用以下命令允许访问端口 9000
firewall-cmd --get-active-zones
此命令获取活动区域。 现在,将端口规则应用于上面返回的相关区域。 例如,如果区域是public,请使用
firewall-cmd --zone=public --add-port=9000/tcp --permanent
firewall-cmd --reload
对于启用了 iptables 的主机(RHEL、CentOS 等),您可以使用 iptables 命令来启用进入特定端口的所有流量。 使用以下命令允许 访问 9000 端口
iptables -A INPUT -p tcp --dport 9000 -j ACCEPT
service iptables restart
# 下面的命令启用所有传入端口的流量,范围从 9000 到 9010。
iptables -A INPUT -p tcp --dport 9000:9010 -j ACCEPT
service iptables restart
预先存在的数据
当部署在单个驱动器上时,MinIO 服务器允许客户端访问数据目录中的任何预先存在的数据。例如,如果 MinIO 是用命令 minio server /mnt/data 启动的,/mnt/data 目录中的任何预先存在的数据都可以被客户端访问。
上述语句也适用于所有网关后端。
使用 MinIO 控制台进行测试
MinIO Server 带有一个基于 Web 的嵌入式对象浏览器。将您的 Web 浏览器指向 http://127.0.0.1:9000 以确保您的服务器已成功启动。
注意:默认情况下,MinIO 在随机端口上运行控制台,如果您希望选择特定端口,请使用 --console-address 来选择特定接口和端口。
升级 MinIO
MinIO 服务器支持滚动升级,即您可以在分布式集群中一次更新一个 MinIO 实例。 这允许在不停机的情况下进行升级。 升级可以通过用最新版本替换二进制文件并以滚动方式重新启动所有服务器来手动完成。 但是,我们建议所有用户从客户端使用 mc admin update。 这将同时更新集群中的所有节点并重新启动它们,如来自 MinIO 客户端 (mc) 的以下命令所示:
mc admin update <minio alias, e.g., myminio>
MinIO 升级期间要记住的重要事项
- mc admin update 仅在运行 MinIO 的用户对二进制文件所在的父目录具有写访问权限时才有效,例如,如果当前二进制文件位于 /usr/local/bin/minio,则需要写入访问/usr/local/bin。
- mc admin update 同时更新和重启所有服务器,应用程序会在升级后重试并继续各自的操作。
- mc admin update 在 kubernetes/container 环境中被禁用,容器环境提供自己的机制来推出更新。
- 在联合设置的情况下,mc admin update 应该单独针对每个集群运行。在所有集群成功更新之前,避免将 mc 更新为任何新版本。
- 如果使用 kes 作为 MinIO 的 KMS,只需替换二进制文件并重新启动 kes 有关 kes 的更多信息可以在 here 中找到
- 如果将 Vault 作为 KMS 与 MinIO 一起使用,请确保您已遵循此处概述的 Vault 升级过程:https://www.vaultproject.io/docs/upgrading/index.html
- 如果将 etcd 与 MinIO 用于联合,请确保您已遵循此处概述的 etcd 升级过程:https://github.com/etcd-io/etcd/blob/master/Documentation/upgrades/upgrading-etcd.md