文件存储CPFS可以通过分片配置提高聚合带宽和IOPS。
CPFS中的文件以分片(stripe)方式存储在集群中。CPFS集群由多个元数据和数据服务器组成,文件的数据和元数据以分片方式均匀的存储在数据和元数据服务器上。分片优势是当应用高并发地读写数据时,IO可以散布在分片所在的所有存储服务器上,从而提升聚合带宽和IOPS。
分片数配置过高也会带来额外的开销,例如获取文件元数据(e.g. ls)时需要遍历分片所在的所有服务器。因此,请您根据工作负载配置合理的分片数。我们将工作负载分为两个极端:大文件和海量小文件。
- 大文件,即大部分IO读写大文件(>200MB),典型场景是基因计算,其分片数配置方法如下所示。
lfs setstripe -S 2M -c <stripe count> -i -1 <dir>
stripe count可根据文件大小选择,大于1GB的文件可采用stripe count=8,200MB到1GB的文件可采用stripe count=4。通常情况下,建议stripe count设置小于等于8。
- 海量小文件,文件大小不超过2MB,典型场景是AI训练,其分片数配置方法如下所示。
lfs setstripe -S 1M -c 1 -i -1 <dir> lfs setdirstripe -D -c 1 <dir>
在实际使用中,推荐将大文件和小文件分类聚集在不同的目录中,在目录级别上配置不同的分片数策略。
说明 分片配置在目录级别生效。配置完成后,该目录下的新建文件按照配置的分片数,但不改变存量文件的分片数。