在计算集群形成初期,系统中并没有复杂的存储系统存在,甚至没有统一存储的概念,那时每台计算节点把自己所计算出的数据先暂时写到自己的本地硬盘上(cache),最终由主节点进行所有数据的回收,至主节点所挂载的相对大的空间中(其实这就是后来HPC存储的雏形),再进行后续处理(分析、共享、可视化、备份与恢复)。
本地存储引入的问题
计算任务在计算集群中被分割为若干个子任务。计算过程中,某个计算节点的输入数据可能存放在另外的节点上,引入的问题:
1、各节点的数据会二次进出本地硬盘,各节点间的数据传输也会造成多余的网络风暴,这种做法无疑会造成计算效率的下降;
2、应用程序代码编写过程中,无法预计所要数据在哪个节点上,都造成麻烦与效率的低下。
因此后续的程序编写中,会让所有的节点都认到一块区域,将所有的临时性数据和最终数据都写到这里,即,统一命名空间,因为所有计算节点都可以看到这块同一个名字的数据存储区域,表现在计算节点的OS中即为看到同一个名字的目录(由NAS得来)或磁盘空间(由直连存储得来)。
目前,HPC应用软件,例如:FLUENT、LS-DYNA、Paradigm、3Ds Max等,在配置计算模型的存储指针时,会发现要求指向同一个区域,即统一的存储空间,而且有许多软件在这个参数的设置上是不能修改的。某计算节点自己的中间数据,可能会存放在自己内部的存储上。如果使用SAN存储,就必须使用SAN共享软件,如,StoreNext,保证数据读写的一致性。