高性能计算Lustre性能优化方案

栏目: 服务器 · 发布时间: 7年前

内容简介:谈起HPC时,似乎绕不开Lustre。Lustre是HPC的代名词,它是开源HPC并行文件系统市场占有率最高的文件系统,并得到了如Intel和DDN等厂商的大力支持。目前,Intel与Lustre相关的业务已经被DDN所接手。鉴于Lustre在HPC行业的知名度和认可度,今天,给读者分享一篇关于Lustre调优的文章,目的是给Lustre学习者和爱好者提供些学习参考。

谈起HPC时,似乎绕不开Lustre。Lustre是HPC的代名词,它是开源HPC并行文件系统市场占有率最高的文件系统,并得到了如Intel和DDN等厂商的大力支持。目前,Intel与Lustre相关的业务已经被DDN所接手。

鉴于Lustre在HPC行业的知名度和认可度,今天,给读者分享一篇关于Lustre调优的文章,目的是给Lustre学习者和爱好者提供些学习参考。

高性能计算Lustre性能优化方案

1 Lustre性能优化参考

1.1 网络带宽

网络带宽往往决定着lustre文件系统的聚合带宽。Lustre是通过多个OSS同时读取数据来提高系统整体的读写性能,然而,如果网络传输的性能过低,则无法发挥lustre文件系统的性能优势。从以下几点考虑网络带宽对性能的影响:

  • 网络类型(TCP/IP网络及Infiniband网络)
  • 网卡类型(千兆网/万兆网)
  • 网卡数量及绑定方式(网卡绑定一起)
  • 网卡绑定模式

补充:

  • 通常情况下Infiniband网络性能远远高于TCP/IP网络,但成本较高
  • 万兆网比千兆网性能高
  • 网卡绑定模式一般为6。

1.2 Lustre自身设置

Luster自身设置主要是条块数(即OST的个数)及如何条块化,这两方面也是lustre实现I/O并发的关键。条带化能够使系统达到并发的目的,从而影响了系统的性能。Luster自身设置对系统性能的影响主要从以下几个方面:

  • 条块大小(stripesize,min=64KB)
  • 条块数(stripecount)
  • 起始块数(start-ost,即条块起始位置)

补充:

  • 通常情况下start-ost默认为-1,不需要进行修改,该设置即不指定初始位置,能够很好达到负载均衡的目的
  • 通常情况下lustre条块的大小的增加,聚合带宽总体呈下降趋势,当条块过大时,某一时间内的多个I/O发生在同一个OST上,造成I/O等待,通常设置为64KB
  • 通常情况下,随着条块数增加,聚合带宽总体呈上升趋势,在一定的环境下,合理的配置OST可以良好的发挥lustre的系统性能。

1.3 客户端设置

Lustre文件系统中,客户端生成一个全局存储空间,用户数据通过客户端存入lustre文件系统中,所客户端的设置也会影响系统的性能。

主要从以下几点:

  • 单个客户端进程数(连接数)
  • 读写块大小
  • 客户端数量

补充:

  • 随着连接数(进程数)的增加,聚合带宽开始呈上升趋势,到一定程度后稳定(此时系统性能尚未达到饱和),随着连接数的增加,带宽开始下降
  • 随着I/O读写块的大小增加,聚合带宽开始呈现上升趋势,到一定程度后稳定,随后增加块大小聚合带宽反而下降,当64KB~64MB大小时,保持稳定
  • 随着客户端数目的增加,读模式下的聚合带宽明显提高,而写模式下的聚合带宽则变化不明显。

1.4 存储RAID

Luster底层存储设备采用通用存储设备,可以是单磁盘,也可以是RAID,也可以是LVP,大部分采用RAID方式,既能保证聚合存储容量,又能提供数据保护。主要从以下几点说明:

  • RAID方式(硬RAID/软RAID)
  • RAID模式(RAID0/1/2/3/4/5/6/10/01)
  • 硬RAID卡类型
  • 做RAID的磁盘类型(SATA、SAS、SSD)

补充:

  • 通常情况下,lustre文件系统底层采用硬RAID的方式进行底层存储,性能远远大于软RAID,但成本高
  • Luster通常做RAID6,提高数据保护
  • OST磁盘一般采用低成本的SATA盘,而MDS则一般采用SSD盘

2 Lustre小文件优化

2.1 整体设置

  • 1、通过应用聚合读写提高性能,比如对小文件进行Tar,或创建大文件或通过loopback mount来存储小文件。小文件系统调用开销和额外的I/O开销非常大,应用聚合优化可以显著提高性能。另外,可以使用多节点、多进程/多线程尽可能通过聚合来提高I/O带宽。
  • 2、应用采用O_DIRECT方式进行直接I/O,读写记录大小设置为4KB,与文件系统保持一致。对输出文件禁用locking,避免客户端之间的竞争。
  • 3、应用程序尽量保证写连续数据,顺序读写小文件要明显优于随机小文件I/O。
  • 4、OST采用SSD或更多的磁盘,提高IOPS来改善小文件性能。创建大容量OST,而非多个小容量OST,减少日志、连接等负载。
  • 5、OST采用RAID 1+0替代RAID 5/6,避免频繁小文件I/O引起的数据校验开销。

2.2 系统设置

  • 1、禁用所有客户端LNET debug功能:缺省开启多种调试信息,sysctl -w lnet.debug=0,减少系统开销,但发生错误时将无LOG可询。
  • 2、增加客户端Dirty Cache大小:缺省为32MB,增大缓存将提升I/O性能,但数据丢失的风险也随之增大。

高性能计算Lustre性能优化方案

  • 3、增加RPC并行数量:缺省为8,提升至32将提高数据和元数据性能。不利之处是如果服务器压力很大,可能反而会影响性能。

高性能计算Lustre性能优化方案

  • 4、控制Lustre striping:lfs setstripe -c 0/1/-1 /path/filename,如果OST对象数大于1,小文件性能会下降,因此将OST对象设置为1。
  • 5、客户端考虑使用本地锁:mount -t lustre -o localflock,如果确定多个进程从同一个客户端进行写文件,则可用localflock代替flock,减少发送到MDS的RPC数量。
  • 6、使用loopback mount文件:创建大Lustre文件,与loop设备关联并创建文件系统,然后将其作为文件系统进行mount。小文件作用其上,则原先大量的MDS元数据操作将转换为OSS读写操作,消除了元数据瓶颈,可以显著提高小文件性能。

这种方法应用于scratch空间可行,但对于生产数据应该谨慎使用,因为Lustre目前工作在这种模式下还存在问题,操作方法如下:

高性能计算Lustre性能优化方案

3 文档说明

  • Lustre文件系统的性能优化研究2011(王博,李先国,张晓)
  • 基于软RAID的lustre性能影响要素简析2008(张丹丹,姚继峰)
  • Luster I/O性能最佳实践
  • Luster文件系统I/O性能的分析和改进(林松涛,周恩强,廖湘科)

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Google's PageRank and Beyond

Google's PageRank and Beyond

Amy N. Langville、Carl D. Meyer / Princeton University Press / 2006-7-23 / USD 57.50

Why doesn't your home page appear on the first page of search results, even when you query your own name? How do other web pages always appear at the top? What creates these powerful rankings? And how......一起来看看 《Google's PageRank and Beyond》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具