云原生对象存储架构:单租户与多租户
软件定义的对象存储是一种横向软件游戏,因此,MinIO 拥有跨行业和工作负载的客户。没有两个部署是相同的。客户根据位置(公共云、私有云、边缘)和用例(备份、AI/ML、数据湖、物联网、分析、人工制品)有不同的要求。
我们的客户和社区面临的架构问题之一是部署的性质。MinIO 是否会支持单个应用程序(如Veeam 备份)或替换存储设备以支持云原生应用程序?或者 MinIO 是否会支持具有多个应用程序的更加动态的环境,例如对象存储即服务或云原生 AI/ML 计划?
软件定义的 MinIO 具有灵活性和丰富的云原生集成,可以在单租户或多租户模式下部署,这篇文章旨在帮助您确定适合您部署的架构。
单一应用程序,单一租户
一个相对简单的经验法则是,如果您正在运行单个应用程序,则可以选择单租户、多用户架构。例如,在上述 Veeam 备份用例中,我们建议运行单个 MinIO 租户。在这种情况下,您的单租户可能位于裸机、虚拟机或 Kubernetes 上。MinIO 是灵活的,其高效的二进制提供了底层硬件支持的最佳对象存储性能。
更换 NAS 设备是具有多个用户的单个应用程序的另一个示例。我们始终建议您通过将所有主目录从现有 NAS 设备导出到单个 MinIO 租户上的单个存储桶来开始迁移。然后,更新登录脚本以使用驱动器映射装载该存储桶,同时配置 MinIO IAM 和 PBAC以设置和执行权限。结果是,未经明确许可,任何人都无法访问其他任何人的数据,并且您消除了 NAS 设备的孤岛和 NAS 主目录结构导致的复杂性负担。
单租户、多用户场景的关键是关注数据访问和文件共享,而不是基于文件和目录结构建立和应用控制。更好的方法是使用特定于存储桶的 S3 访问策略来保护数据。
对象存储即服务——基础多租户用例
MinIO 在 Kubernetes 上更频繁地部署为多个租户。这种架构提供租户之间的完全隔离,并根据用户和应用程序的数量以及存储在 MinIO 中的数据量进行有效扩展。
一个常见的用例是对象存储即服务,它为开发人员、DevOps 和数据科学团队提供自助服务门户。在 Kubernetes 上部署 MinIO 插件和 MinIO Operator 的操作效率克服了自行构建和维护这样一个环境所需的令人难以置信的复杂性障碍。MinIO Operator 适用于任何 Kubernetes 发行版——Red Hat OpenShift 4.7+、VMware vSphere 7.0u1、SUSE Rancher 或上游股票。此外,MinIO 将适用于任何公共云提供商,例如 Amazon Elastic Kubernetes Service、Google Kubernetes Engine 或 Azure Kubernetes Service。
在由 Kubernetes 编排的容器化架构中运行多个 MinIO 租户非常高效。这种架构被频繁部署,因为它可以大规模高效运行。访问多 PB 对象存储的大量用户和应用程序将资源(包括系统和运行它们的人员)拉伸到极限。实现云原生超大规模需要分离功能并根据需要独立扩展它们,这包括对象存储。
MinIO 专为需要简单性的超大规模操作而设计。简单是可预测的——当事情失败时,您确切地知道是什么失败了并且可以解决它。从一开始,企业云架构师就必须隔离工作负载,同时采用整体系统方法,以便他们了解系统应该如何运行以及组件应该如何交互。

通过命令行或图形用户界面创建租户很简单。但是对象存储作为一种服务比创建租户有更多的方法。每个 MinIO 租户都有可用的完整功能集,完全隔离并单独配置。使用 MinIO Operator 的多租户是简单的、可重复的、声明式的,并且可以在不中断的情况下更新,同时在单独的命名空间中运行每个租户以实现安全隔离。现在,超大规模的力量触手可及:Kubernetes 以租户为规模单位,以无中断方式管理操作和配置。
与其他云原生应用程序和服务的集成进一步简化了操作,使对象存储成为一种服务。使用外部身份提供程序(例如 LDAP/Active Directory 或 OpenID 提供程序)保护 MinIO 租户的安全再简单不过了。MinIO 集成到现有的基础设施中用于监控和警报,例如 Prometheus 和 Grafana。可以通过使用 Kubernetes StorageClasses 根据每个租户的性能要求分配 HDD 和 NVMe 驱动器集来以声明方式完成分层。
先申请
作为一般规则,在规划 MinIO 部署时,围绕应用程序创建存储桶和安全策略比围绕用户设计它们更为重要。每个应用程序都使用自己的存储桶。对于多个组和用户,我们建议使用外部身份和访问管理(IAM) 解决方案并依赖特定于存储桶的 S3 访问策略。
单租户或多租户:选择权在您手中
云原生的方式是专注于微服务、应用程序和框架。为了取得成功,您需要在选择和部署对象存储时保持专注。软件定义的 MinIO 可以部署在单租户或多租户配置中的任何地方。与外部 IAM 和 S3 访问策略的集成完善了企业等式。
您对部署 MinIO 以满足您的要求有疑问吗?在Slack上询问或发送电子邮件至sales@minio.org.cn。