为什么使用Lustre

来自Lustre文件系统
跳转至: 导航搜索

摘要

高性能计算(HPC)集群是为了向大规模应用提供极端的计算能力而创建的。这种计算能力往往导致非常大的数据量以及需要创建非常大的单个文件。在相当长的一段时间里,处理器和内存的速度急剧上升,但I/O系统的性能却落后了。

虽然在过去的20年里,处理器和内存的成本/性能有了成倍的提高,但磁盘驱动器基本上还是以同样的速度旋转,驱动器的访问时间仍然以毫秒为单位来衡量。因此,糟糕的I/O性能会严重降低集群的整体性能,即使最快的集群也是如此。这一点在当今的多字节集群中尤为明显。

Lustre文件系统是一种并行文件系统,已经广泛地应用于由小到大各种规模的HPC环境中(如石油天然气、地震处理、电影行业和科学研究等)以解决他们共有的一个问题,那就是大量数据不断地产生与需要进行及时处理之间的矛盾。事实上,它是世界500强HPC网站最广泛使用的文件系统。

在使用Lustre时,100GigE网络的端到端数据吞吐量超过10GB/秒是很常见的,InfiniBand EDR链路的带宽能达到10GB/秒。Lustre可以扩展到数以万计的客户端。在橡树岭国家实验室(Oak Ridge National Laboratory),他们的生产文件系统Spider运行Lustre,拥有超过25,000个客户端,超过20PB的存储空间,并实现了2TB/秒的峰值总IO吞吐量。

本页介绍Lustre文件系统为高性能计算集群提供的诸多优势,以及Lustre这个并行文件系统如何提高HPC集群的整体可扩展性和性能。

HPC构建块

在设计高性能计算(HPC)集群时,HPC架构师通常有三种常见的文件系统选择,以对存储硬件进行访问。也许最常见的选项是网络文件系统(NFS)。NFS是云计算环境中的标准组件。NFS通常包含在所谓的NAS,即网络附加存储(Network Attached Storage )架构。第二个选项是SAN文件系统,即存储区域网(Storage Area Network)文件系统。最后,也很重要一项是并行文件系统。Lustre是世界上速度最快的500台计算机上使用最广泛的文件系统。在当今世界上速度最快的前10台计算机中,有7台使用Lustre系统,前100台中有70%以上,前500台中的60%以上也都选择了Lustre文件系统。本文介绍了为什么Lustre在前500名中占主导地位(www.top500.org),以及为什么使用它能满足你的高性能IO需求。

NFS(网络文件系统)

NFS已经有20多年的历史,非常稳定,使用方便,大多数系统管理员以及用户普遍熟悉它的优点和缺点。在低端的HPC存储环境中(低端HPC存储系统的容量定义为100TB以下),NFS仍然是一个非常有效的数据存取介质。但是,对于高端HPC集群(高端一般在1PB以上)来说,在大型集群环境中使用NFS服务器,由于不能很好的扩展,NFS很快就会成为一大瓶颈。NFS服务器也会发生单点故障,因此崩溃的后果会很严重。

SAN(Storage Area Networks, 存储局域网)

SAN文件系统具有非常高的性能,但由于采用光纤通道来实现,所以扩展起来非常昂贵,因此,每个连接到SAN的节点都必须有一个光纤通道卡以连接光纤通道交换机。

Lustre(一种分布式并行文件系统)

与NFS和SAN文件系统相比,全局并行文件系统Lustre的主要优势在于它提供了:在性能和存储容量方面广泛的可扩展性;全局名称空间;在许多节点上分布非常大的文件的能力。因为在典型的集群环境中,大型文件是在许多节点上共享的,所以Lustre等并行文件系统是高端HPC集群I/O系统的理想选择。这就是为什么今天Lustre使用得如此广泛的原因,也是为什么在Whamcloud,我们有一个Lustre工程师的组织,专门致力于Lustre的支持,服务和持续的功能增强。

Lustre只使用少数连接到实际存储硬件的节点来实现。这些节点被称为Lustre服务器节点,有时也被称为Lustre I/O节点,因为它们向集群的其他节点提供所有数据,这些其他节点通常被称为计算节点,也被称为Lustre客户端。

Lustre主要用于基于Linux的HPC集群。Lustre是一个开源文件系统,并以GPLv2为授权。Lustre文件系统有两个主要的Lustre服务器组件,即对象存储服务器(OSS)节点和元数据服务器(MDS)节点。文件系统的Meta数据存储在Lustre MDS节点上,文件数据存储在对象存储服务器上。MDS服务器的数据存储在元数据目标(MDT)上,它基本上对应于任何用于存储实际元数据的LUN。OSS服务器的数据存储在被称为对象存储目标(OST)的硬件LUN上。OST ldiskfs目标目前的最大大小可以是512TB。由于我们通常将OSS/OST数据LUN配置为8+2的RAID-6配置,所以常见的LUN配置是10个8TB SATA驱动器。这些都是最常见的配置,但有些站点也会在OST中使用SAS或NVMe驱动器。

大多数情况下,所有的元数据信息和事务都是由元数据服务器维护的。因此,所有常见的文件系统名称空间变化和操作都由MDS节点处理,包括常见的诸如查找文件、创建文件、大部分文件属性的查找和更改等操作。当打开一个文件时,客户端会连接MDS服务器,MDS服务器则会查询该文件,并将该文件所在的所有OSS服务器上的位置及其对应的OST返回给客户端。一旦客户机获得了文件数据的位置,客户机就可以直接在客户机和任何OSS节点之间进行任何和所有的I/O,而不必再与MDS节点交互。这是Lustre与NFS等文件系统相比的主要优势,在NFS系统中,所有的I/O操作都必须通过单一的NFS服务器或头部节点进行。Lustre允许多个客户端同时访问多个OSS节点,且彼此独立,从而只需增加更多的硬件即可扩展文件系统的总吞吐量。例如,Lustre的吞吐量超过了橡树岭国家实验室(ORNL)设定的2TB/秒。这个性能数字基本上只受限于可用存储硬件的数量和特性。在这种情况下,文件系统大小为10.7 Petabytes。

Lustre的市场份额

Lustre架构用于许多不同类型的集群,但最著名的是它为世界上十个最大的高性能计算(HPC)集群中的七个提供动力,一些系统支持超过万个客户端,达到许多个PB(PB)的存储,其中许多系统的I/O吞吐量接近或超过每秒数百GB(GB/秒)。

大量的HPC站点使用Lustre作为全站的全局文件系统,以前所未有的规模为几十个集群提供服务。IDC显示,Lustre是HPC中市场份额最大的文件系统。

可扩展性

Lustre文件系统提供的可扩展性使其成为石油和天然气、制造业和金融业等行业的热门选择。

Lustre的可扩展性减少甚至消除了需要创建许多独立文件系统的常见要求,例如为每个集群创建一个文件系统,或者更糟糕的是需要为每个NFS文件服务器头节点创建一个文件系统。Lustre的这一特性显示出了非常显著的存储管理优势。例如,Lustre站点能够避免维护多个文件系统上分布的数据的多个副本。大型HPC数据中心表示,仅因为这个原因,他们使用Lustre文件系统比使用其他解决方案所需的聚合存储空间就少得多。

除了在许多服务器上聚合文件系统容量外,I/O带宽也是聚合的,并且也会随着增加更多OSS服务器而实现扩展。除此之外,I/O吞吐量或存储容量可以在集群最初安装后轻松调整,只需动态添加更多OSS服务器即可。这种简单添加更多OSS服务器和存储的能力,使得系统可以随着由时间推移产生的对更多存储空间和更多带宽能力需求的增加而增长。

使用中的大型Lustre文件系统有数万个客户端。

开源

Lustre文件系统软件是开放源码软件,因此它保持了价格的竞争力,因为没有人垄断,它的继续存在不依赖于任何一家公司的经济成功。由于文件系统本身是免费的,而人们只需支付支持费用,这使得价格具有竞争力。

Lustre 网络 (LNet)

在使用Lustre文件系统的集群中,Lustre网络是用于连接OSS和MDS服务器以及客户端的网络。在Lustre文件系统中支持MDS和OSS服务器节点的磁盘存储通常使用传统的SAN技术连接到这些Lustre I/O服务器节点上,然而Lustre架构的突破性在于它不需要SAN来扩展或连接到Lustre客户端。LNet只在Lustre系统网络上使用,它提供了Lustre文件系统所需的整个通信基础设施。

虽然LNet也支持以太网上的TCP/IP,但LNet的一个关键特性是当底层网络如InfiniBand、聚合以太网上的RDMA (RoCE)和OmniPath架构(OPA)支持RDMA时,LNet也支持这种功能。与其他架构相比,这提供了底层链路近乎全带宽的利用率。LNet还支持许多常见的网络类型,如IP和OFED,同时支持连接在一起的多种网络类型,为此LNet将在不同类型的网络之间路由数据包。LNet还提供了多轨功能(Multi-Rail),以提高性能和高可用性及恢复功能。当与Lustre故障转移服务器一起使用时,还可以实现透明恢复。

Lustre Networking(LNet)的性能非常高。正如前面所指出的,在100 GigE网络上,端到端吞吐量超过10 GB/秒是非常常见的,InfiniBand EDR链路的带宽达到10 GB/秒以上。这些都是Lustre服务器上仅一个接口输送给客户机的带宽的数据速率,如果有多个接口则可以获得更高的性能!

高可用性

Lustre集群中的服务器通常配备了非常多的存储设备,Lustre可以为这些存储设备提供服务,并处理多达数万个客户端。事实上,在迄今为止最大的生产Lustre系统中已经处理了超过29000个客户。所有的集群文件系统都应该能通过故障转移等高可用性机制透明地处理服务器重启或故障,以消除或减少系统中的任何单点故障。例如当服务器发生故障时,应用程序在访问文件系统时,应该仅仅看到其系统调用执行的响应延迟。

如果缺乏可靠的故障转移机制,就会导致操作挂起或失败,并需要重新启动应用程序,有时还需要集群重启来清理产生的混乱,这些都是非常不可取的。

Lustre故障转移机制提供的调用是对应用完全透明的。Lustre故障转移功能很强大,且能够与不同版本之间互操作性的软件一起工作,这对于支持活动集群上文件系统软件的滚动升级来说是必要的。

Lustre恢复功能与其故障转移功能相结合,可以在不关闭系统的情况下对服务器进行升级。任何一台OSS或MDS服务器都只需脱机、升级和重新启动(或故障转移到一个准备了新软件的辅助/备份OSS/MDS服务器上)。所有活动的作业都会继续运行,不会出现故障。活动作业只是在其中一台OSS/MDS服务器升级时出现延迟。

Lustre MDS服务器通常被配置为主动/被动对,而OSS服务器则通常被配置为主动/主动配置,以提供冗余,且不产生额外的开销。在许多情况下,备用MDS是第二个Lustre文件系统的主动MDS。这允许两个MDS服务器同时活动工作,从而使集群中没有空闲节点。如果您只有一个大的Lustre文件系统,那么辅助或备份MDS节点则保持空闲,直到主MDS服务器遇到问题,触发故障转移事件。

总结

Lustre并行文件系统非常适用于大型HPC集群环境,并具有满足重要I/O子系统要求的功能。Lustre文件系统旨在为集群客户节点提供对文件系统数据的并行共享访问。Lustre允许系统架构师使用任何通用的存储技术以及高速互连,从而实现高性能。Lustre文件系统还可以随着企业存储需求的增长而进行良好的扩展,且通过提供通往物理存储的多条路径,Lustre文件系统可以为HPC集群提供高可用性。最棒的是,Lustre现在得到了Whamcloud及其众多合作伙伴的支持。