以高性能支撑冷冻电镜,看 XGFS 背后的 XCache 缓存技术

由 XSKY星辰天合 发布于2021-11-09


新冠疫情再一次让大家审视起了 “病毒”。而对于一种新的病毒,我们只有去发现它、了解它、研究它,最终才能制造出能治愈患者的药物,以及增强人体免疫的疫苗。那么病毒如何观察呢?针对病毒做结构研究,就少不了在微观世界对病毒本身进行观察和成像。这就不得不提到一项极大推动生物学发展的技术,即冷冻电镜技术,这项技术是将生物大分子快速冷冻后,在低温环境下利用透射电子显微镜对样品进行成像,以获得数万到数百万张生物大分子照片,然后通过一定的算法来整合这些图像,计算出生物大分子的三维结构。

如上海科技大学免疫化学研究所饶子和院士所率领的联合团队,通过冷冻电镜累计获得了 7 万余张合计超过 100TB 的高质量照片,完整病毒颗粒接近 6 万 5 千颗,最终解析了非洲猪瘟病毒全颗粒的三维结构。

在整个流程中,数据采集、图像处理、三维重构是非常核心的三个步骤,对计算和存储的需求非常高。

而 XSKY星辰天合下一代分布式文件系统 XGFS,因搭载 XCache 缓存技术而具有的高性能优势,使得冷冻电镜技术得以生物医药医疗机构可以高效攻克一道一道难关。

本期内容,XSKY星辰天合技术专家带您一起解析,XCache 在冷冻电镜场景下是如何应用的。

冷冻电镜

科学家 Jacques Dubochet(瑞士)、Joachim Frank(德国)、Richard Henderson(苏格兰)在 2017 年 10 月因为开发并发展了冷冻电镜技术,获得诺贝尔化学奖。至此,冷冻电镜正式步入公众视野。

Relion & Motioncor

Relion 是由 MRC 的 Scheres 在 2012 年发布的针对单颗粒冷冻电镜图片进行处理的框架,目前已经成为冷冻电镜研究领域的主流软件之一。Relion 在进行单颗粒图片处理时 Motioncor(运动矫正)阶段对存储的读性能有很高要求。

在收集冷冻电镜数据期间,样品会因各种原因发生运动。载物台漂移或者各项异性变形,矫正这种运动问题是数据处理 pipeline 的第一步。

IO 模型

通过对 Motion correction 的 IO 模型进行分析发现,Relion 在进行 Motion correction 时,会对将要处理的数据进行两个维度的拆分:

XCache 缓存

我们知道从 CPU 缓存、内存、硬盘性能和价格的对照如下,随着存储性能的逐级提高,同样容量的存储设备价格差距可达数百乃至上千倍,如此巨大的差距下,如何在一定的成本限制下尽可能提高系统数据访问性能?

常规的 IO 优化策略主要有一下几种:

  • 避免 IO,避免 IO 走到低速的存储介质,常见的处理方式就是缓存;

  • 顺序 IO,针对磁盘顺序访问要比随机访问快,如果多 IO 负载下无法完全顺序执行,那就增大 IO 的大小,减少寻道定位,提高吞吐量;

  • 异步 IO,让 CPU 和磁盘同时工作,把需要的数据提前载入内存;

  • 并行 IO,把多个磁盘的容量和带宽聚合起来,提升整体的 IO 性能;

预读是一种用于提升顺序读性能的常用技术,用来提高数据的访问性能,并且预读在以上四种 I/O 优化的策略中都会发挥作用。XCache 为 XGFS 提供了文件数据、文件元数据、目录的缓存能力,支持配置多种 Cache 策略,同时可以通过预读机制来加速读文件性能。

文件预读

在 XCache 中每个文件都是单独管理自己的缓存,会根据过去的 IO 模型通过预读算法来预测将来会被访问的数据块,从而到达提高 IO 性能的目标。这种预读方式在顺序预读的情况下可以达到最高的命中率。

从 Motioncor 的 IO 模型来看,是属于典型的顺序预读模式,在这种场景下 XCache 可以发挥最大的优化效果。

目录预读

通过缓存策略配置,可以让 XCache 实现基于目录的文件级别预读。在业务进程开始读一个文件的时候,就发一个预读请求到 XCache 中一个独立的线程,提前把当前文件的下一个文件数据预读上来。所以进程读文件的时候同时会提前预读下一轮需要的文件。

元数据和目录缓存

除了数据缓存和预读之外,XCache 还提供了元数据和目录的缓存能力。元数据 cache 默认使用 1GB 的内存,可存储千万量级的元数据。当元数据拉取到 XCache 后,后续针对该文件的元数据访问会直接从 XCache 获取,直到租约过期,这是 XCache 会向 XMDS 元数据集群做同步,如果元数据有修改,则更新缓存。

性能表现

测试模型为原始数据目录下有 800 个文件,每个文件约 280M 左右,共 220G 的测试数据。Relion 会读取测试数据,并对读到的数据进行计算,把测试目录下的数据都处理完一遍就执行结束。针对以上业务的 IO 模型,24 个进程,每个进程 4 线程同时并发顺序读,XCache 的预读算法可以生效,测试结果如下。

Motioncor 阶段,XGFS 性能最好,主要考验存储大带宽读性能。

总结

冷冻电镜产生海量大文件,并且要求长期保存,不仅对存储成本提出更高的要求,同时需要存储具备高性能和高可扩展性。由于样本制备耗时极长,每次作业获取的数据都非常宝贵,对数据的安全性要求极高,对大规模存储系统的可运维也提出要求,同时 Motion correction 大文件带宽需求与 particle extraction 阶段小块 IOPS 需求。

下一代分布式文件系统 XGFS 不仅支持节点扩容、整池扩容等模式,并且性能随集群扩容而线性增加。专为性能优化而设计的 XCache 将会在冷冻电镜和其他高性能计算场景为客户带来意想不到的惊喜。

来源:以高性能支撑冷冻电镜,看XGFS背后的XCache缓存技术

在线咨询:
9:00-18:00
快速响应您的问题

方案咨询

400-016-6101

售后支持

400-606-0072

官方微信