我们尝试了 Dell ObjectScale 社区版,结果并不理想

We Tried the Dell ObjectScale Community Edition, It Wasn’t Pretty

戴尔通常专注于文件系统领域,但也涉足对象存储,并提供了一个非常老旧的产品,ECS。这说得通,因为它是从磁带存储升级而来,不适合像 HDFS 现代化或数据库工作负载这样的动态工作负载。不用说,AI 根本不在考虑范围内。

几年来,戴尔一直在预告一款名为 ObjectScale 的“现代化”产品。它的设计看起来很像 MinIO,但已经在“即将推出”的类别中停留了几年。希望获得该产品的客户大多被告知要考虑 2025 年——但有一个社区版 可供下载。我们决定试用一下。结果不太好。

初始硬件要求

在评估任何软件时,至关重要的是初始设置和安装尽可能地用户友好。软件应快速设置,可用选项和配置应不言自明,并且通常可以使用最小的默认配置启动并运行。

ObjectScale 并非如此。

要实现“Hello World”需要相当大的工作量。ObjectScale 对硬件的要求很高,需要 4 个大型硬件节点运行 OpenShift,每个节点具有以下规格。预计设置费用为 10,000-15,000 美元。

  • Red Hat OpenShift Container Platform (OCP) 4.13.x 和 4.14.x 版本
  • 至少 4 个节点,每个节点 192 GiB RAM
  • 每个节点至少需要:
    • 建议使用 20 个物理 CPU 内核。
    • 1 个 500 GB(约 465 GiB)未使用的 SSD。
    • 128 GiB RAM 用于 ObjectScale。
    • 5 个未使用的磁盘用于数据。

您使用此主机下载并解压缩 ObjectScale 软件包和其他安装 ObjectScale 软件包所需的资源。

一旦采购和配置了硬件,必须安装以下软件版本:

● Helm v3.38 或更高版本。

● Kubectl v1.26 或 v1.27。

● Podman v4.3.1

● PostgreSQL 服务器,以集群模式运行以实现冗余

PostgreSQL

PostgreSQL 非常棒。它是最好的关系数据库管理系统之一,并且经受住了时间的考验。即使在今天,它也可以支持高级对象存储,例如 MinIO,作为其表的外部数据存储。PostgreSQL 甚至可以存储矢量数据和其他 AI/ML 元数据,以便以后引用和获取。

但是,它是对象元数据的糟糕解决方案。不幸的是,ObjectScale 选择将元数据存储在那里。在此部署中,PostgreSQL 的扩展能力不会超过几十 PB。它成为了瓶颈。猜猜看,AI 世界远大于几十 PB。大得多。以下只是一些问题:

  • PostgreSQL 必须始终快速且可访问。它是一个关系数据库管理系统,其架构与一些更新的数据库不同。虽然与其他关系数据库管理系统(如 MySQL)相比,PostgreSQL 可以很好地扩展,但它仍然不像添加节点那样简单。您需要考虑数据存储位置、分片以及其他要求。
  • 始终可访问意味着 PostgreSQL 集群需要冗余,以防节点发生故障。这需要在主-备模式下使用多个 PostgreSQL 节点,如果 PostgreSQL 宕机,整个存储将离线,从而产生另一个故障点和技术债务,可能会导致整个存储基础设施离线,仅仅因为某个辅助节点延迟。
  • 除了这些挑战之外,您还必须像管理数据库一样管理它。这意味着备份它,进行定期维护,然后测试备份数据以确保在发生故障时数据可恢复。基本上,它会产生不必要的巨大技术债务。我们想要的只是简单、安全、高性能的存储——对吧?

Docker Hub

这可能是我在此设置过程中看到的最具侵入性的东西之一。为了让 ObjectScale 安装其镜像,它需要访问 Docker Hub,完全访问,以便它可以写入其镜像数据。我们不知道为什么要做出这个决定,但可以推测:

  • 他们将与下载的 .zip 文件一起安装到 OpenShift 上的 Docker 镜像捆绑在一起。
  • 因此,他们需要某种镜像注册表将这些镜像推送到其中,以便 OpenShift 可以拉取它们?

这可以通过将这些镜像托管在戴尔托管的外部注册表或许多可用的公共注册表中来解决。这种关联很奇怪且笨拙。如果 Docker Hub 更改其使用条款会发生什么?

社区许可证

当戴尔根据购买、评估或其他事件向客户颁发新的许可证授权时,这些授权将与唯一的许可证激活代码 (LAC) 相关联。安装 ObjectScale 后,戴尔会将 LAC 信件发送到与戴尔帐户关联的客户提供的电子邮件地址。此电子邮件包含激活 ObjectScale 许可证所需的必要信息和步骤。

虽然这在企业环境中可能不是什么大问题,但对于社区版来说,它没有意义。它增加了数小时的等待时间。这几乎就像他们想让你失去兴趣(这可能是真的;))。这就像购买 PS5 并等待 2-3 小时更新,然后又等待 2 小时下载游戏。那不会好的。不幸的是,这就是体验。

可扩展性和运维

即使在社区版中,也必须有一些基本的方法来扩展集群以了解数据在存储在多个节点中的部分时如何工作。这有助于您以无需考虑处理数据的方式设计应用程序。但仍然需要进行测试。

对于 Dell ObjectScale,没有关于如何将现有的 4 节点 ObjectScale 实例扩展到具有更多驱动器的多个节点的明确说明。许多文档都位于他们自己的付费支持门户后面,我相信该门户仅对企业许可证客户可用。

这很好,但如果你无法使用它,为什么要提供社区版?

没有社区支持

说到总体支持,ObjectScale 几乎没有支持,无论是来自戴尔还是来自社区。这可能是由于多种原因造成的:

  • ObjectScale 作为一款产品相对较新。因此,可能还没有足够的安装案例来建立社区支持。
  • 但最有可能的原因是没有人真正使用社区版。这实际上迫使客户与戴尔的销售团队互动,后者可以“手把手”地进行任何评估。这本身并不是批评,只是他们的商业模式。
  • 最后,社区版本似乎是残废软件。例如,跨多个站点的许多复制功能不受支持。它有文档,但不受支持,这意味着它仅存在于企业版中。再说一遍,我们不是在评判,但它引出了一个问题:为什么要做社区版?没有社区,也没有太多版本。

MinIO 社区版

另一方面,启动和运行 MinIO 社区版非常简单。您可以使用单个虚拟机、Kubernetes/OpenShift 集群或仅裸机。您甚至可以使用 Docker 在其开发机器上运行 MinIO。MinIO 可以轻松地运行在所有这些环境中。它不需要一开始就在 OpenShift 或 Kubernetes 上进行测试。您只需下载二进制文件并开始使用。哦,对了,我们有提到它只是一个二进制文件吗?没错。您想对对象存储执行的所有操作都捆绑在一个精简的二进制文件中,该文件带有控制台的 UI 以及名为 mc 的 CLI。这就是它被下载超过 73 亿次的原因。

例如,我们大多数开发者第一次启动 MinIO 都是直接在他们的笔记本电脑上,比如配备 8GB 内存和 4 个 CPU 内核的 Macbook Air。如今,获得虚拟机资源非常困难,更不用说为运行社区版软件分配专用硬件了。MinIO 的优势在于,硬件不再是障碍,您可以在 Macbook Air 上进行概念验证,然后稍后使用相同的测试配置在数据中心的开发环境中启动。

请再次阅读最后一段,因为它非常重要。您可以从笔记本电脑过渡到生产环境,而无需更改代码。如果您要部署到生产环境,则需要 Enterprise Object Store(此处查看定价),它具有更多功能,提供全天候的工程师直接支持以及其他众多功能。但您也可以使用开源版本进入生产环境(前提是您遵守 AGPL v3 许可证的条款)。已经有许多大型部署使用了开源版本。

总体想法

ObjectScale 的概念是“新的”,它与容器和编排一起在云原生世界中工作。实际上它“很老”,团队中甚至有人用“过时”来形容它。安装方法肯定符合这种描述,就像他们使用 PostgreSQL 存储元数据一样。

最终我无法启动并运行 ObjectScale。如果您阅读过我的其他博客文章,您就会知道这可能不是我技术能力的问题。我调试了一个多星期,但缺乏任何社区支持或戴尔的支持(这是可以预料的),阻碍了很多探索。但不要听我们说,我们鼓励您自己尝试 😄。完成后,您可以查看 MinIO。

请查看这张来自 Kubecon 的图表,了解大家最喜欢 MinIO 的哪些方面,即易于安装和管理。ObjectScale 与此完全相反。

将两者并排放置后,利用戴尔为您构建的简洁功能将所有数据迁移到 MinIO 上。我们在此发布了一篇博文

如果您有任何关于如何将数据从 Dell ECS 迁移到 MinIO 的问题,请务必在Slack上联系我们!