Lustre并行文件系统
对于需要非常大的吞吐量、扩展性和容量的应用程序来说,Lustre是一种基于对象、开源高效的并行文件系统。虽然有些复杂,但Lustre功能非常丰富。
世界十大超级计算中心当中的七个以及超过50%的全球top50超级计算机都在使用Lustre,它可以扩展到25,000 名用户,32 PB (32,000 TB), 总的数据吞吐量高达130 GB/s。
Lustre是一种真正的并行文件系统,它可以允许一个集群中的多节点同时对同一个文件进行读写,这样就大大增加了支持并行I/O的应用程序的文件系统I/O性能。它通过在多个存储阵列上对数据进行条带化,整合所有存储服务器和存储阵列。这样,Lustre 就能用低成本的硬件来实现巨大的、可扩展的后台存储功能。
对于用户来说,Lustre文件系统提供了POSIX®-compliant UNIX®文件系统界面。客户端挂载Lustre文件系统一直可以看到一个单独的命名空间。在其他客户端读取文档的同时,不同的客户端可以同时对同一个文件的不同部分进行写操作。
Lustre客户端通常是典型的HPC集群计算节点,它们运行Lustre客户端软件并通过以太网或InfiniBand与Lustre 服务器进行通信。Lustre客户端软件由Lustre服务器和运行在计算节点上的应用程序之间的接口组成。
图示6 展现了Lustre并行文件系统的原理。
Lustre设计将文件系统操作分为两个独立的部分:文件系统元数据操作在元数据服务器(MDS)完成,文件数据操作在对象存储服务器(OSS)上完成。
▲图 6. Lustre并行文件系统原理示意图
OSS节点文件对象数据使用目标对象存储(OST)来储存(LUNs)。通常情况下,多个OSS在任何时候都处于active状态。由于每增加一个OSS,就能提供更多的网络,更大的吞吐量,更强的处理能力以及更多的容量,因此使用更多的OSS就可以实现更大的吞吐量。
一个Lustre装置由以下三个关键系统组成: 元数据子系统, 目标存储子系统和Lustre计算客户端。设计和配置这些组件并不是一件容易的事情。因为要考虑到方方面面来使其性能达到非常好的,比如服务器配置、条带宽度、OST大小、RAID配置、网络以及对集群软件栈冗余与交互作用的需求。如果这其中一点或者更多的方面没有考虑适当,那么设计和配置出的性能可能达不到你的预期或要求。