文档基于2025-10-10日社区最终版构建     
切换到英文版    进入演示系统    进入交流社区

MinIO Documentation

核心管理概念

以下核心概念是管理 MinIO 部署的基础,包括但不限于对象保留、加密和访问管理。

什么是对象存储?

An 对象二进制数据,有时被称为二进制大对象(BLOB)。 Blob可以是图像、音频文件、电子表格,甚至是二进制可执行代码。 像MinIO这样的对象存储平台提供了专用工具和功能,用于存储、检索和搜索Blob。

MinIO 对象存储采用存储桶用于组织对象。 存储桶类似于文件系统中的文件夹或目录,每个存储桶可以容纳任意数量的对象。 MinIO 存储桶提供与 AWS S3 存储桶相同的功能。

例如,考虑一个托管网络博客的应用程序。 该应用需要存储多种二进制大对象,包括视频和图像等富媒体内容。

MinIO通过其功能支持多级嵌套目录prefixing以支持最动态的对象存储工作负载。

MinIO 如何确定对对象的访问权限?

MinIO 要求客户端为每个新操作执行身份验证和授权。身份和访问管理(IAM)因此是 MinIO 配置中的关键组件。

认证验证连接客户端的身份。 MinIO 要求客户端使用AWS Signature Version 4 protocol支持已弃用的签名版本 2 协议。 具体而言,客户端必须提供有效的访问密钥和密钥才能访问任何 S3 或 MinIO 管理 API,例如PUT, GETDELETE操作。

MinIO 随后检查经过身份验证的用户或客户端是否授权对部署执行操作或使用资源。 MinIO 使用基于策略的访问控制 (PBAC), 其中每个策略描述一个或多个规则,这些规则规定了用户或用户组的权限。 MinIO 支持 S3 特定的动作条件在创建策略时。

默认情况下,MinIO否认访问用户分配或继承的策略中未明确引用的操作或资源。

MinIO provides an access management feature as part of the software. Alternatively, you can configure MinIO to authenticate with one of several external IAM providers using eitherActive Directory/LDAP or OpenID/OIDC.

MinIO 如何保护数据安全?

MinIO 支持在磁盘上对对象进行编码的方法(静态加密)以及在从一个位置传输到另一个位置期间进行编码的方法(传输中加密,或称“动态加密”)。 启用后,MinIO 会利用服务器端加密以加密状态写入对象。 要检索和读取加密对象,用户必须具有适当的访问权限,并且还需要提供对象的解密密钥。

MinIO 支持传输层安全性(TLS) 1.2 和 1.3 版本对对象进行加密。 TLS 取代了之前使用的安全套接层 (SSL) 方法,该方法现已被弃用。 由互联网工程任务组 (IETF) 维护的 TLS 标准,提供了互联网通信所使用的标准,以支持加密、认证和数据完整性。

验证用户身份并确认其对对象访问权限的过程被称为TLS 握手完成认证后,TLS会提供密码套件,用于加密从服务器传输到请求客户端的信息,并在接收端进行解密。

MinIO 支持多种服务器端加密.

我可以在存储桶内使用文件夹结构来组织对象吗?

MinIO 采用prefix一种为每个对象模拟传统文件系统中文件夹结构的方法。 前缀法涉及在对象名称前添加一个固定的字符串。

使用前缀,您无需手动创建文件夹和子文件夹。 相反,MinIO会查找/对象名称前缀中的字符。/表示一个新文件夹或子文件夹。

使用对象的名称和前缀,MinIO会自动为存储对象生成一系列文件夹和子文件夹。 当您在多个对象上使用相同的前缀字符串时,MinIO会将这些对象识别为相似或分组的对象。

例如,一个名为/articles/john.doe/2022-01-02-MinIO-Object-Storage.md最终落入articles文件夹中标记的存储桶john.doe.

一个MinIO对象存储可能具有以下结构,包含三个存储桶。 MinIO会自动生成两个文件夹在articles基于这些对象前缀的存储桶。

/ #root
/images/
   2022-01-02-MinIO-Diagram.png
   2022-01-03-MinIO-Advanced-Deployment.png
   MinIO-Logo.png
/videos/
   2022-01-04-MinIO-Interview.mp4
/articles/
   /john.doe/
      2022-01-02-MinIO-Object-Storage.md
      2022-01-02-MinIO-Object-Storage-comments.json
   /jane.doe/
      2022-01-03-MinIO-Advanced-Deployment.png
      2022-01-02-MinIO-Advanced-Deployment-comments.json
      2022-01-04-MinIO-Interview.md

MinIO 本身不对特定前缀可包含的对象数量设限。 但在硬件和网络条件受限时,过大的前缀可能会影响性能表现。

  • 对于硬件配置适中或注重成本的部署,应将工作负载架构设计为以每个前缀10,000个对象作为基准目标。 根据实际工作负载的基准测试和监控结果逐步提高此目标,直至达到硬件可有效处理的合理上限。

  • 高性能或企业级部署硬件通常能够处理包含数百万或更多对象的前缀。

MinIO SUBNET企业账户可以利用年度架构审查作为部署和维护策略的一部分,以确保依赖MinIO的项目获得长期性能和成功。

关于限制前缀内容好处的深入讨论,请参阅文章优化 S3 性能.

如何在 MinIO 上备份和恢复对象?

MinIO 提供两种类型的复制功能,用于将对象、其版本及其元数据从一个位置复制到另一个位置。 您可以在以下任一位置配置复制:存储桶级别或者站点级别.

  • 存储桶级别复制可以配置为单向的主从复制(例如用于归档目的),也可以配置为双向的主主复制,使两个存储桶保持相互同步。

  • 站点级复制功能采用双向主动-主动复制模式,使多个数据位置(例如不同的地理数据中心)保持相互同步。

除了复制功能外,MinIO 还提供镜像服务。mc mirror仅将实际对象复制到任何其他S3兼容数据存储,包括其他MinIO存储。 但是,版本和元数据不会随同备份mc mirror命令。

驱动器独占访问

MinIO需要 独家对象存储所提供的驱动器或卷的访问权限。 任何其他进程、软件、脚本或人员均不得执行任何直接对提供给 MinIO 的驱动器或卷,或 MinIO 置于其上的对象或文件执行操作。

除非得到 MinIO 工程团队指示,否则不得使用脚本或工具直接修改、删除或移动所提供驱动器上的任何数据分片、校验分片或元数据文件,包括在不同驱动器或节点间的转移操作。 此类操作极有可能导致大范围损坏和数据丢失,超出 MinIO 的自我修复能力范围。

MinIO 提供了哪些工具来根据访问速度和频率管理对象?

分层规则允许频繁访问的对象存储在热存储或温存储上,这类存储通常成本较高但能提供更好的性能。

不经常访问的对象可以移动到冷存储。 冷存储通常以较低的价格换取较慢的性能。

MinIO 如何防止对象被意外覆盖或删除?

锁定

Locks,一种一次写入多次读取(WORM)机制,可防止对象的删除或修改。 当对象被锁定时,MinIO会无限期保留这些对象,直到有人移除锁定或锁定到期。

MinIO 提供:

版本控制

默认情况下,使用相同名称(包括前缀)写入的对象会覆盖同名的现有对象。 MinIO 提供了一个配置选项,用于创建启用版本控制的存储桶。版本控制提供对唯一命名对象随时间变化的各种迭代版本的访问。 启用后,MinIO会将修改后的对象写入与原始版本不同的版本,从而允许同时访问原始对象和更新后的变更对象。

MinIO存储桶上的额外配置决定了在存储桶中保留每个对象的旧版本多长时间。