即使是 Google 也在努力平衡快速但昂贵的闪存和便宜但缓慢的硬盘
快速阅读: 据《The Register》最新报道,谷歌在其存储系统中结合SSD和HDD,通过自研的L4缓存系统优化数据放置,大幅提升性能。尽管SSD成本下降,但谷歌仍主要依赖HDD,L4利用机器学习动态调整SSD使用策略,平衡成本与性能。
谷歌披露,尽管其存储需求仍主要依赖于传统硬盘驱动器(HDD),但通过自主研发的自动化数据分级系统,其存储系统的整体性能得到了显著提升。作为全球领先的广告与搜索引擎公司,谷歌在周四的一篇博文中坦承,其依然青睐旋转磁盘技术,并对其“Colossus”通用存储平台进行了深入解析。该平台支撑着YouTube、Gmail、谷歌云存储服务以及其他众多应用。
博文指出,“多数数据中心仅配备一个集群,因此只有一个Colossus文件系统,”并进一步强调,“许多Colossus文件系统拥有多个exabyte的存储容量,其中两个文件系统各自超过了10个exabyte的存储容量。”
Colossus运行高效。谷歌的博文提到,其最大的文件系统通常每秒读取吞吐量超过50TB,写入吞吐量超过25TB,而最繁忙的集群则能提供超过6亿次IOPS的读写操作。每天在全球范围内移动1.2 exabyte的数据?谷歌上次在2021年公开介绍Colossus时曾提及,该系统结合了闪存与磁盘存储,将访问频率最高的数据置于闪存磁盘上,从而提升效率并降低延迟。
Colossus依旧会将高需求数据从硬盘(HDD)迁移至固态硬盘(SSD)。新发布的博文特别指出,“如今这一点尤为重要,因为多年来,SSD的价格变得更为经济实惠,使其在我们数据中心中的重要性日益增加。”博文提到:“然而,仅使用SSD的存储成本仍远高于SSD与HDD混合存储的成本。”“挑战在于将正确的数据——即那些I/O次数最多或延迟要求最低的数据——放置在SSD上,同时保持大部分数据在HDD上。”
周四的博文由存储技术负责人拉里·格林菲尔德(Larry Greenfield)与存储软件工程师赛斯·波伦(Seth Pollen)撰写,他们阐述了谷歌用于在固态硬盘(即Flash存储)与硬盘驱动器之间转移数据的工具。这对作者透露,谷歌内部用户能够强制将文件放入闪存,或者采取一种混合方式,即将文件的一个副本放置在SSD上。后者效果不佳,因为谷歌用来存放存储设备的服务器并不总是可用,因此单个文件副本可能无法访问,内部用户因而不得不应对由HDD带来的更高延迟。因此,大多数关于哪种介质最适合数据的决定是由一个名为“L4”的自动缓存系统做出的,格林菲尔德和波伦写道,“动态选择最适合SSD的数据。”
每天在全球范围内移动1.2 exabyte的数据?归档存储进入谷歌云:它会给AWS和Azure带来冲击吗?大红公司、微软推出了面向更主流Oracle用户的Azure数据库服务。苹果、谷歌简化跨云数据传输,或许代价高昂。
根据《The Register》对该博文的解读,L4会在SSD上缓存数据并构建一个索引,列出这些缓存中的数据。“这意味着当应用程序希望读取某些数据时,它首先咨询L4索引服务器。该索引告知客户端数据是否在缓存中,如果是,则客户端从一个或多个SSD中读取数据,”两人写道。如果数据不在缓存中,L4会从HDD读取数据并移至使用SSD的服务器。“L4可以根据数据量在SSD上的放置程度更加积极或保守,”存储技术人员写道。“我们使用机器学习(ML)驱动的算法为每种工作负载选择不同的策略:当数据被写入时插入L4缓存,首次读取后插入,或仅在短时间内第二次读取后插入。”
谷歌在2022年的USENIX会议上详细介绍了其中一些技术。
性能提升,但问题依然存在
格林菲尔德和波伦的博文表示,L4的缓存技术“对于经常读取相同数据的应用程序非常有效,并且大幅提高了我们的IOPS和吞吐量。”他们也承认它有一个“重大弱点”,因为谷歌仍然将新数据写入HDD。“事实证明,还有其他重要的数据类别,L4的读取缓存在这方面不如我们期望的那样节省资源,例如快速写入、读取和删除的数据(如大型批处理作业的中间结果),以及数据库事务日志和其他看到许多小追加的文件。”这类工作负载不适合HDD,这对作者认为“最好直接写入SSD,完全跳过HDD。”
L4还为新文件自动分配存储位置,因为应用程序尚未使用它们,不能假设它们需要提升到充满SSD的缓存中。因此,当应用程序创建新文件时,它们会共享一些信息,例如文件类型,或存储在文件中的数据库列的元数据。“L4利用这些特征将文件分类,并观察每个类别的I/O模式随时间变化,”格林菲尔德和波伦写道。“这些I/O模式驱动不同放置策略的在线模拟,例如‘在SSD上放置一小时’、‘在SSD上放置两小时’或‘不放在SSD上’。基于此模拟,L4为每个类别选择最佳策略。”
这些情况还可以“预测如果SSD容量或多或少的情况下,L4会选择什么样的放置方式。”“因此,我们可以预测使用不同数量的SSD可以从HDD中卸载多少I/O。这些信号驱动新SSD硬件的采购,并为规划者提供调整不同应用程序间SSD容量的方法以最大化效率,”两人写道。
谷歌并非唯一在努力如何最好地融合SSD和HDD的公司:存储硬件供应商以做得好为荣,但不必在Exabyte规模上运营。因此,当他们在四月份的谷歌云Next大会上公布更多关于其存储系统的信息时,他们和你可能会从中受益。
格林菲尔德和波伦建议查看名为“Google Cloud存储的新功能”和“AI超算:掌握你的存储基础设施”的会议,如果你参加拉斯维加斯的聚会的话。
(以上内容均由Ai生成)