jacky 的个人资料charosethcao照片日志列表 工具 帮助

日志


1月13日

pnfs是什么

pnfs= Parallel NFS, NFS是啥,就不说了。
pnfs是由IETF推动开发的NFSv4.1版本,现在已经成为一个opensolaris的项目在http://www.opensolaris.org/os/project/nfsv41/可以看到。
这里可以看到关于pnfs的一个小小的flash介绍,http: //opensolaris.org/os/project/nfsv41/pnfsdemos/basics/,明显的看出,使用pnfs性能在20M~30M之间,而普通的NFS只能达到10M.所以pnfs很适用到高性能的计算当中去。
下面说说工作原理。
pnfs顾名思义就是提供并行数据访问的NFS。他提供了从一个数据文件位置分离出元数据(描述数据的名称,属性等等的信息)的一套方法。不仅仅是那种简单的进行元数据和数据的分离,而是那种在多个data server里面条带化这些数据。也就是说pnfs的客户端要取得一个完整的数据文件,可能不会简单的从一个data server上去得到,而是会面临多个data server并行的取得数据,从而提高性能。
结构图是这样的,一个pnfs community包含一个或者多个data server和一个meta data server.
Data server    Data server  Data Server
    |               |             |
     --------meta data server-----
----------------------------------------
pnfs client    pnfs client    pnfs client
使用者当然是指看到一个pnfs server.而内部的具体操作由client和server完成,当进行数据访问,传输的时候,pnfs client会有一个我需要知道这个文件的“layout“的需求,当这个文件被打开的时候,流程如下:
1.client就向meta data server去要求这个layout
2.如果这个layout可用,那么meta data server就把这个layout的信息发送回client.(当然这个layout包含了哪些数据存储在哪个data server上)
3.当client拿到了这个layout, 他就会并行的生成一些读写请求,去从data server取得数据.
利用pnfs协议可以在client和server之间传输各种各样的数据,所以layout会有几种类型:files, blocks, objects.files类型是用来对data server进行读写操作的。blocks类型是那些scsi类型的块数据使用的。objects类型是提供了scsi OSD(Object-Based Storage Device)命令协议的服务(这个不太清楚)。
恩,下面准备看看cfs, pxfs, shared qfs在集群里面的作用。
参考: