本文内容参考自“Lustre文件系统操作手册(2021)”,全文内容包含45章节,620+页干货。44份Lustre及HPC技术方案下载链接如下:
Lustre架构是一种集群存储体系结构,其核心组件就是Lustre文件系统。该文件系统可在Linux操作系统上运行,并提供了符合POSIX标准的UNIX文件系统接口。Lustre是面向集群的存储架构,它是基于Linux平台的开源集群(并行)文件系统,提供与POSIX兼容的文件系统接口。Lustre两个最大特征是高扩展性和高性能,能够支持数万客户端系统、PB级存储容量、数百GB的聚合I/O吞吐量。Lustre是Scale-Out存储架构,借助强大的横向扩展能力,通过增加服务器即可方便扩展系统总存储容量和性能。
Lustre的集群和并行架构,非常适合众多客户端并发进行大文件读写的场合,但目前对于小文件应用非常不适用,尤其是海量小文件应用LOSF(Lots Of Small Files)。Lustre广泛应用于各种环境,目前部署最多的为高性能计算HPC,世界超级计算机TOP 10中的70%,TOP 30中的50%,TOP 100中的40%均部署了Lustre。另外,Lustre在石油、天然气、制造、富媒体、金融等行业领域也被大量部署应用。
Lustre文件系统可运行在各种厂商的内核上。一个Lustre文件系统在客户端节点数量、磁盘存储量、带宽上进行扩大或缩小。可扩展性和性能取决于可用磁盘、网络带宽以及系统中服务器的处理能力。
Lustre文件系统可以以多种配置进行部署,这些配置的可扩展性远远超出了迄今所观察到生产系统中的规模和性能。
Lustre文件系统使用改进版的ext4日志文件系统来存储数据和元数据。这个版本被命名为ldiskfs,不仅性能有所提升且提供了Lustre文件系统所需的附加功能。
Lustre 2.4或更高版本中,可使用ZFS作为Lustre的MDT,OST和MGS存储的后备文件系统。这使Lustre能够利用ZFS的可扩展性和数据完整性特性来实现单个存储目标,Lustre文件系统典型特性如下。
符合POSIX标准:通过完整的POSIX测试集,像测试本地文件系统Ext4一样,测试Lustre文件系统客户端,只有极少量例外。在集群中,大多数操作都是原子操作,因此客户端永远不会看到损坏的数据或元数据。Lustre软件支持mmap()文件I / O操作。高性能异构网络:Lustre软件支持各种高性能低延迟的网络,可使用远程直接内存访问(RDMA)方式,实现在InfiniBand、Intel OmniPath等高级网络上的快速高效网络传输。可使用Lustre路由桥接多个RDMA网络以获得最佳性能。Lustre软件同时也集成了网络诊断。高可用性:Lustre文件系统通过OSTs(OSS targets)的共享存储分区实现主动/主动故障切换。Lustre 2.3或更早版本通过使用MDT(MDS target)的共享存储分区实现主动/被动故障切换。Lustre文件系统可以与各种高可用性(HA)管理器一起工作,以实现自动故障切换并消除了单点故障(NSPF)。这使得应用程序透明恢复成为可能。多重挂载保护(MMP)提供了对高可用性系统中错误的综合保护,避免导致文件系统损坏。
Lustre 2.4或更高版本中,可配置多个MDT的主动/主动故障切换。这允许了通过添加MDT存储设备和MDS节点来扩展Lustre文件系统的元数据性能。
安全性:默认情况下,TCP连接只允许授权端口通过。UNIX组成员身份在MDS上进行验证。
访问控制列表(ACL)及扩展属性:Lustre安全模型遵循UNIX文件系统原则,并使用POSIX ACL进行增强。此外还有一些额外功能,如root squash。
互操作性:Lustre文件系统可运行在各种CPU架构和大小端混合的群集上,连续发布的Lustre主要软件版本之间保持互操作性性。
基于对象的体系结构:客户端与磁盘文件结构相互隔离,可在不影响客户端的情况下升级存储体系结构。
字节粒度文件锁和细粒度元数据锁:许多客户端可以同时读取和修改相同的文件或目录。Lustre分布式锁管理器(LDLM)确保了文件系统中所有客户端和服务器之间的文件是一致的。其中,MDT锁管理器负责管理inode权限和路径名。每个OST都有其自己的锁管理器,用于锁定存储在其上的文件条带,其性能可随着文件系统大小增长而扩展。
配额:用户、组和项目配额(User、Group、Project Quota)可用于Lustre文件系统。
容量增长:通过向群集添加新的OST和MDT,可以在不中断服务的情况下增加Lustre文件系统的大小和集群总带宽。
受控文件布局:可以在每个文件,每个目录或每个文件系统基础上配置跨OST的文件布局。这允许了在单个文件系统中调整文件I/O以适应特定的应用程序要求。Lustre文件系统使用RAID-0进行条带化并可在OST之间调节空间使用大小。
网络数据完整性保护:从客户端发送到OSS的所有数据的校验和可防止数据在传输期间被损坏。
MPI I/O:Lustre架构具有专用的MPI ADIO层,优化了并行I/O以匹配基础文件系统架构。
NFS和CIFS导出:可以使用NFS(通过Linux knfsd)或CIFS(通过Samba)将Lustre文件重新导出,使其可以与非Linux客户端(如Microsoft Windows和Apple Mac OS X)共享。
灾难恢复工具:Lustre文件系统提供在线分布式文件系统检查(LFSCK),当发生主要文件系统错误的情况下恢复存储组件之间的一致性。Lustre文件系统在存在文件系统不一致的情况下也可以运行,而LFSCK可以在文件系统正在使用时运行,因此LFSCK不需要在文件系统恢复生产之前完成。
性能监视:Lustre文件系统提供了多种机制来检查性能和进行调整。
开放源代码:为在Linux操作系统上运行,Lustre软件使用GPL 2.0许可证。
一个Lustre安装实例包括管理服务器(MGS)和一个或多个与Lustre网络(LNet)互连的Lustre文件系统。Lustre文件系统组件的基本配置如下图所示:
管理服务器(MGS):MGS存储集群中所有Lustre文件系统的配置信息,并将此信息提供给其他Lustre组件。每个Lustre目标(target)通过联系MGS提供信息,而Lustre客户通过联系MGS获取信息。MGS最好有自己的存储空间,以便可以独立管理。但同时,MGS可以与MDS放在一起,并共享存储空间,如上图中所示。
元数据服务器(MDS): MDS使存储在一个或多个MDT中的元数据可供Lustre客户端使用。每个MDS管理Lustre文件系统中的名称和目录,并为一个或多个本地MDT提供网络请求处理。元数据目标(MDT): 在Lustre 2.3或更早版本中,每个文件系统只有一个MDT。MDT在MDS的附加存储上存储元数据(例如文件名,目录,权限和文件布局)。虽然共享存储目标上的MDT可用于多个MDS,但一次只能有一个MDS可以访问。如果当前MDS发生故障,则备用MDS可以为MDT提供服务,并将其提供给客户端。这被称为MDS故障切换。
本号资料全部上传至知识星球,更多内容请登录智能计算芯知识(知识星球)星球下载全部资料。
免责申明:本号聚焦相关技术分享,内容观点不代表本号立场,可追溯内容均注明来源,发布文章若存在版权等问题,请留言联系删除,谢谢。
电子书<服务器基础知识全解(终极版)>更新完毕。
获取方式:点击“阅读原文”即可查看182页 PPT可编辑版本和PDF阅读版本详情。
温馨提示:
请搜索“AI_Architect”或“扫码”关注公众号实时掌握深度技术分享,点击“阅读原文”获取更多原创技术干货。