统一存储叙述中的缺陷

如今,越来越多的公司将自己宣传为对象存储、文件存储和块存储的一站式商店,并打着“统一”存储的旗号,承诺支持各种存储协议。支持 S3、NFS、SMB、HDFS、iSCSI、FCoE、NVMeoF 和 FCP 等所有协议的想法被吹捧为灵活性和便捷性的极致体现。
事实是,这种做法会导致复杂性、低效性和性能低下。这相当于瑞士军刀或混合动力自行车——它在每项任务上都平庸,希望在所有任务上都具有相关性。
我们之所以这样说,不仅仅是因为我们专注于 S3 API,还因为它是遵循工程学第一性原理的。我们团队曾构建 GlusterFS,他们对 POSIX 了解一二。他们决定用 MinIO 构建一些现代化、高性能的东西。一些为云而设计的东西。在云操作系统模型中,对象存储至关重要。尽管如此,在某些用例中,文件存储和块存储是更好的工具,我们也建议在那里使用专用选项。
了解多协议方法的弊端
多协议存储系统在乍看之下可能很有吸引力,但仔细观察就会发现,这是那些习惯走捷径的公司(同样批评可以针对那些推广这种方法的分析师)的懒惰想法。
迎合所有用户需求的诱惑会导致最糟糕的结果——因为权衡和妥协是以牺牲卓越性为代价的。这并不是说一家公司不能支持两个一流的产品(一个 POSIX 和一个 S3)。可以。只是不能从同一个产品中实现。
缺陷无处不在。
让我们从复杂性问题开始。随着支持协议数量的增加,存储系统的复杂性也会随之增加。这种复杂性使系统越来越难于管理和维护,导致错误增多,停机时间延长。CEPH 的传奇复杂性就是一个很好的例子。它在很多领域都是一款好产品——但在任何领域都不是一款伟大的产品。它是一个运营噩梦。即使是 CEPH 的忠实拥护者也会告诉你这一点。
然后是效率低下。由于每种协议都有其独特的要求,因此支持多种协议会导致功能和数据的重复,造成存储效率低下和浪费。结果是,一个臃肿的软件,不适合任何一种方法,但却希望在很多方法上都很平庸。我们一直不明白这种想法。它可能在短期内带来成本节约的好处,但从长远来看,产品的不足会导致利润损失和利润率下降。
性能是另一个问题。当一个存储系统支持多种协议时,它通常是“样样通,样样不精”。它无法在处理任何一种协议方面表现出色,导致性能不佳。如果你同时处理文件、块或对象,就很难围绕 SIMD 加速、AVX-512 指令集、内联擦除编码或加密优化等内容“进行工作”。
技术史上的先例:专注的力量
科技行业有很多例子表明专注于一件事会带来成功,其中最著名的例子就是微软的 MS-DOS 操作系统。在 20 世纪 80 年代初,微软只专注于 MS-DOS,而许多竞争对手都在开发支持多种协议的操作系统。这种专注使微软能够获得可观的市场份额,并最终主导了个人电脑行业。苹果反过来又将 MacOS 打造成一个强大的竞争对手,其方法是坚定不移地专注于支持自己的 GUI 驱动的视角。
另一个例子是 TCP/IP 作为互联网通信标准的兴起。在互联网的早期,使用了各种协议,例如 IPX、NetBEUI 和 AppleTalk。然而,像 ARPA 这样的公司和组织对开发和推广 TCP/IP 的单一关注最终导致了它的主导地位。
一个更及时的例子是特斯拉。该公司只专注于电动汽车及其支持的基础设施,这使该公司能够制定充电标准并占领了过半的市场份额。它没有将自己的才华分散到汽油、混合动力和电动技术上。它加入了这场比赛是为了赢得电动汽车的胜利。这是一个哲学上的选择。
对象存储的热潮
对象存储作为云操作系统模型中存储的兴起,现在已不再有太多争议。这并不是说 SAN/NAS 公司没有提出自己的观点,认为它们仍然具有相关性——它们会在任何机会都提出,只是那些了解的人现在不再听他们的了。
Redshift、BigQuery、Netflix、Uber 和现在的 OpenAI 都是运行在对象存储上的。大规模的性能是原因。
与任何趋势一样,早期采用者选择对象存储,看重它的各种属性以及 S3 API 的功能优势。现在几乎每个人都看到了这种趋势。仍然有一些坚持者,但他们越来越孤立。
他们仍然拥有购买权或否决权。因此,他们告诉现任供应商,“如果你想继续留在这里,你最好能提供对象存储,否则我将被迫转向其他供应商。”
作为文件或块供应商,当你的 1 亿美元的客户告诉你这一点时,你会想办法提供对象存储。这催生了一系列来自公司的“打勾”产品,这些公司直到最近还贬低对象存储为“廉价、容量大、速度慢”。由于 MinIO 和 AWS S3 等纯玩产品已经证明这是错误的,这些公司现在都在自己的产品组合中添加了对象存储。
他们并不真正相信对象存储。他们内心深处还是 SAN/NAS 类型。因此,他们会采取以下措施之一,将对象存储“添加到”他们的产品组合中。
1. 他们与做这件事的人合作——对产品进行白标化。
2. 他们尝试从头开始构建一些东西。
3. 他们使用旧的 Apache 版本的 MinIO 代码,并将其称为自己的。
它们都有问题。
在方案 #1 中,这不是他们的代码,他们无法控制路线图,因此它永远是别人的产品。如果质量下降,你的客户也会受到影响。此外,当大型公司达成此类协议时,经济效益通常对对象存储供应商来说很差。没有太多激励(或者通常没有资源)去做更多的事情。
在方案 #2 中,我们赞赏他们的努力。从头开始构建一个对象存储非常困难。我们知道。这需要很多时间。如果它是专有的,它就会有漏洞。MinIO 是开源的,我们有数万名开发人员几乎每小时都在提交 GitHub 问题,以改善我们的工作。尽管如此,这是正确的道路。它需要长远的眼光。
我们看到方案 #3 的次数超过了我们的预期。如果一个供应商突然添加了对象存储,几乎可以肯定它是我们的代码。只要你遵守许可协议,它就是完全可以接受的——但 Apache 代码现在已经好几年了,并且 随后发现的安全漏洞 使得你不能将其用于任何目的。
优秀技术的力量
优秀技术代表了其特定领域性能的顶峰。在存储领域,有很棒的文件和块解决方案,对于这些工作负载和它们理想的应用场景,企业应该选择它们。对于对象存储是理想选择的工作负载,企业应该选择最佳版本。
与你从专门为任务而构建的系统中获得的收益相比,与不同 GUI 或附加功能相关的开销微不足道。
看看 Salesforce 这样的 CRM 专业系统或 Epic 这样的 EHR 专业系统。它们提供了单一供应商的综合套件通常缺乏的高级功能。是的,这些产品本身规模庞大——但这是因为它们为用户和企业定制了模块。它们提供了有效推动业务流程所需的深度和复杂性,为企业提供了明显的竞争优势。
此外,用户体验是影响科技系统采用和效率的关键因素,在最佳解决方案中得到了显著提升。专注于某一领域的供应商通常会提供直观、用户友好的界面,反映出他们对用户需求的深刻理解,从而提高生产力和满意度。
最后,企业,特别是那些将数据存储视为战略的企业,拥有同时行走和咀嚼口香糖的技能。管理两个卓越的存储解决方案,每个解决方案都旨在成为其领域的佼佼者,这并非挑战,而是推动业务发展的机会。坦率地说,最佳解决方案由于其重点和现代架构,很容易适应这种适应性,这与集成套件的僵化、单片结构形成了对比。这使得它们更容易集成,尤其是与外部(云原生世界)集成。
不要被神话所迷惑
多协议统一存储论点很薄弱。它要求企业以便利为借口,在多个方面做出牺牲。平庸并非便利,它只是一个借口。
我们欢迎对此主题的辩论。我们明白我们的立场并非没有偏见,但这并不影响其真实性。请告诉我们你不同意的地方。