然后就是做性能测试了,性能测试我做了两个,一个是将compute1上面的一个2.2G的文件拷贝到pvfs的目录下(/mnt/pvfs2, 这个目录是其他三台节点的三个分区组成的,每个分区都是80G左右,所以,这个pvfs的虚拟分区有240GB),测试下来,耗时40秒--相当不错,因 为机器的硬盘是SATA硬盘,理论速率是150Mb/s,而这个速度基本上是SATA硬盘理论速度的好多好多倍了。拷贝完后,我们在每台机器上的pvfs 分区下看,就能看到基本上每台都存储了700M的数据,加起来差不多就是2.2GB。注意,compute1不能做为I/O Server,因为如果这样的话,compute1就又要读文件(因为源文件在compute1上),又要写文件,整体的速度就被compute1拖慢 了!
然后是拷贝22个文件,每个文件都是100MB,总大小也是2.2GB,这次测试耗时4分钟,这个性能基本上和在单机上写本地盘的速度一样了,所以,可见,PVFS在处理单个大文件的时候有优势,这也是分布式文件系统的原理所导致的。
最后再罗嗦两点体会:
1、PVFS2支持MPICH的ROMIO,但是要求MPICH2要打一个patch,而且configure的时候要有所变动。这样出来的MPICH2就能不通过Linux kernel读写文件,而是直接和PVFS Server通信,从而直接读写数据。
2、要PVFS支持透明的读写,要加载PVFS2的module(.ko文件在2.6内核下),而且要启动pvfs-client daemon,而且要mount PVFS的目录。基本上,哪台机器要做client,那台机器上就要启动pvfs-client,就要加载PVFS2的module,就要mount PVFS的目录。PVFS2允许一台机器可以同时做matadata server、I/O Server和client。
3、我对PVFS2还是比较满意的,起码安装配置不复杂,性能也还算不错。现在还要继续深入看PVFS的文档,主要看I/O Server是否有冗余备份的特性,也就是如果某个节点的硬盘挂了,那么数据如何才能不损失,还有,当PVFS正在读写数据的时候,某块硬盘坏了,此时 PVFS有什么应对策略。