什么是HPC中的scratch空间/文件系统?

4

我正在学习有关HPC应用程序和并行文件系统的知识。我遇到了scratch space和scratch filesystem这个术语。

我无法想象scratch space存在的位置。它是作为挂载文件系统/scratch存在于计算节点上还是存在于主存储空间上。

它的内容是什么。

scratch space是否独立于每个计算节点,或者两个或更多节点可以共享一个scratch space。

假设我有一个名为123.txt的文件,我希望并行处理它。scratch space会包含这个文件的部分还是整个文件将被复制。

我感到困惑,在谷歌上找不到清晰的描述。请指出一些相关信息。

非常感谢。

2个回答

4
这完全取决于群集的设置和用户需求。当您获得对群集的访问权限时,您应该收到一些有关如何使用它的信息,这些信息应该能回答您大部分的问题。
在我使用的其中一个群集中,NFS 用于长期存储,并且提供一些 Lustre 空间作为作业 scratch 空间。所有节点都可以看到 NFS 和 Lustre。每个节点还有一些仅该节点可以访问的本地 scratch 空间。
如果您希望并行运行 123.txt 的作业,则可以将 123.txt 复制到共享 scratch 空间(Lustre)或将其复制到您作业文件中每个节点的 scratch 空间中。
for i in `cat $PBS_NODEFILE | sort -u ` ; do scp 123.txt $i:/scratch ; done

每个节点都拥有一份副本后,您可以运行作业。作业完成后,需要将结果复制到持久存储中,因为集群通常会运行脚本来清理临时空间。


不,我被告知要自己研究这些术语...因此。正如你所说的,工作空间可用作Lustre文件系统,即基于对象的存储。这个工作空间可以是任何东西,比如磁带HDD介质等。同样,本地工作空间可以是磁盘驱动器或基于PCI的SSD。我的理解正确吗? - RootPhoenix
1
我认为问题就像你在谷歌搜索中发现的那样,是这些术语并没有很好地定义。一般的定义是,scratch文件系统/空间/分区用于单个作业或一组计算作业的短期存储,它们通常具有比常规存储更快的速度或提供比您通常可以访问的更大的空间池的优点,或者两者都有。使用并很可能支付集群费用的人将根据他们运行的应用程序确定是否需要快速或大型scratch空间,以及是否需要在节点之间共享。 - chuck
Lustre是一个全新的文件系统还是基于修改后的ext3或ext4? - RootPhoenix
虽然Lustre可以在后端使用ext4或ZFS,但它们是不同的技术。Ext4允许文件存储在块设备(硬盘/闪存/软盘驱动器)上,而Lustre是一种并行网络文件系统,允许客户端通过网络连接读写文件。由于它是并行的,因此在Lustre系统中,读取和写入被分割成条带(split)跨越服务器(OSTs)。这应该比像NFS这样的单个服务器通常是瓶颈的东西更好地提高性能。 - chuck
好的,Lustre是Linux的VFS等效物,底层文件系统可以是ext4或ZFS吗? - RootPhoenix

1

有很多不同的方法来考虑或部署临时空间或临时文件系统。

假设您拥有一个 Linux 节点集群,这些节点都有硬盘。您可以想象每个节点本地的 /scratch 空间。由于操作系统映像将相对较小,并且现在无法获得比一千兆字节更小的驱动器,因此您会得到接近一千兆字节的存储空间供节点使用。

您会用这个节点本地存储做什么呢?哦,很多事情。可扩展的检查点-重启。本地 out-of-core 操作。

当我开始尝试集群时,将所有这些未使用的空间组合成并行文件系统似乎是个好主意。PVFS 对此非常有效。

这让我转到一个对所有节点可用的 /scratch 并行文件系统。这涉及技术组件(站点将部署哪个并行文件系统?),但也涉及政策组件:此文件系统上的数据将保留多长时间?它是否备份?/ scratch 通常意味着文件没有备份,并且实际上在一段时间内(通常为两周)未被访问后将被清除。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接