在虚拟化环境中部署 MinIO 的最佳实践

虚拟化数据中心为企业提供软件定义的基础设施(服务器、存储、网络),使它们能够实现云的运营效率和灵活性。将软件与硬件分离使 IT 能够灵活地在共享的基础设施资源池中运行多个工作负载。虚拟化使企业能够不断创新以满足业务目标,而不是将资源投入到维护严格配置的服务器群中。虚拟化允许自动化和编排,减轻管理底层基础设施的负担,加快服务交付速度,同时降低运营成本。
客户出于多种原因在虚拟化环境中使用 MinIO。首要的是,MinIO 用于将云原生对象存储引入软件定义的数据中心。这是在虚拟化环境中部署 MinIO 对象存储的主要用例。我们的企业客户通常运行 VMware vSphere,但这些技巧适用于任何虚拟机管理程序。
这篇博文重点介绍在虚拟化环境中部署 MinIO 的最佳实践。这些建议旨在作为起点,帮助您确保 MinIO 安装到已配置为提供预期性能和持久性保证的环境中。
部署指南
在虚拟化环境中部署 MinIO 时,务必确保已具备适当的条件以充分利用 MinIO。MinIO 是一个 高性能 系统,在 32 节点集群上部署时,能够实现高达 1.32 Tbps PUT 和 2.6 Tbps GET 的聚合速度。确保遵守您组织在虚拟化环境中部署高性能应用程序的最佳实践。
避免“噪声邻居”问题。为了充分利用 MinIO,它应该是虚拟机管理程序上运行的唯一工作负载,就像您在虚拟化环境中对任何高性能系统所做的那样。这将防止由于其他 VM 上运行的工作负载消耗资源而导致的性能损失。
适当配置网络。确保有(超过)足够的以太网交换机带宽来满足您计划与 MinIO 一起运行的应用程序的需求。您可以使用 mperf 等简单工具进行测试。 您可以使用全面的 WARP 基准测试工具 查看您的 MinIO 集群在各种工作负载下的性能。
确保可用性。每个 MinIO VM 应在自己的专用虚拟机管理程序上运行。 MinIO 使用擦除编码来确保数据的可用性和持久性。您可以使用这个 便捷工具 查看 MinIO 如何处理磁盘或节点丢失情况。在一个虚拟机管理程序上拥有多个 VM 集群会带来单一虚拟机管理程序故障可能导致比预期更大的集群部分失效的风险,这会影响 MinIO 提供的 HA 和持久性保证。
消除人为瓶颈。为了获得最佳性能,MinIO 需要本地磁盘来支持高要求的工作负载。因此,您不应在提供自身持久性的其他系统之上运行 MinIO。这是不必要的,因为保存在 MinIO 中的数据已 擦除编码,在其他系统与其自身持久性方法之下运行将造成人为瓶颈。此类系统的示例包括 RAID、LVM 或 ZFS 池。 不要在 NFS、GlusterFS、GPFS 等分布式文件系统之上运行 MinIO。 不要在稀疏磁盘上运行 MinIO。目标是减少复杂性和潜在瓶颈,并最大限度地提高性能。例如,您可以在 SAN 磁盘上运行 MinIO,但这会增加额外的复杂性,并难以在共享存储中执行性能要求。
准备 VM。如果您的虚拟机管理程序提供来宾优化,请确保安装了最新版本(例如 VMware Tools),以确保您充分利用虚拟硬件的功能。
部署要求
MinIO 对 CPU 和 RAM 的 要求很低。该软件几乎可以在任何硬件上运行,使其非常适合在正确配置后用于虚拟化环境。
MinIO 性能的唯一限制是 I/O,这意味着读写速度只能与底层 I/O 系统(即驱动器、控制器或网络等)一样快。 基准测试 一再证明,MinIO 受网络限制,仅受可用带宽限制。理想情况下,在 MinIO 上运行的工作负载也应该受网络限制。
对于纯粹的功能测试,MinIO 可以运行在 Raspberry Pi 等轻量级硬件上。 因此,即使是最简单的 VM 也能正常工作。这对想要学习和尝试使用便携式 S3 兼容对象存储的人来说很有帮助,但不是生产环境的正确选择。
生产环境的实现对底层基础设施提出了更高的要求。上面列出的要求是确保成功部署高性能生产集群的良好起点。为了在虚拟化环境中获得最佳的 MinIO 体验,我们建议以下测试规格(每个 VM):
- 8 个 vCPU
- 32GB 内存
- 4 个磁盘(如上所述,由物理磁盘支持)。虽然在技术上没有限制运行更少的磁盘,但您将无法对磁盘故障或擦除代码设置进行可靠的测试,并且对于高容量工作负载,您的吞吐量可能不足。
- 10Gbps 网络。请使用上面列出的 mperf 工具确保 VM 提供预期的吞吐量。在一些旧的虚拟机管理程序中,会对磁盘施加人为带宽限制。虽然可以使用低于 10Gbps 的网络,但请记住,即使是网络密集型的小工作负载也会迅速饱和 1Gbps 网络。
通过使用上面提到的 WARP 基准测试工具,您可以确定是否需要其他资源来满足应用程序的需求。
面向虚拟化环境的高性能对象存储
MinIO 轻巧且可扩展、弹性和高性能,它将多租户云原生对象存储引入虚拟化环境。通过添加世界上最快的对象存储,充分利用您的软件定义数据中心。
立即 下载 MinIO 开始使用。如果您在虚拟化环境中充分利用 MinIO 有任何问题,请通过 hello@min.io 与我们联系或加入 Slack 社区。