什么是pNFS?
pNFS是并行网络文件系统,即NFSv4.1,与NFSv3不同的是,它将元数据与数据进行分离,允许客户端直接与数据服务器进行交互。这种机制解决了传统NFS的性能瓶颈问题,从而使得系统获得高性能和高扩展性的特性。pNFS支持多种协议(Block[FC], Object[OSD], Files[NFS])直接访问数据,需要对客户端功能进行扩展以支持不同的layout(LAYOUT4_FILE, LAYOUT4_BLOCK_VOLUME, LAYOUT4_OSD2_OBJECTS)。NFSv41和pNFS主要由RFC5661(NFSv4.1)、RFC5662(NFSv4.1 XDR)、RFC5663(pNFS Block/Volume Layout)、RFC5664(Object-Based pNFS Operations)描述,这些标准已经于2010.01正式发布。目前,pNFS商业和开源产品都比较少,而且实现方面还不成熟。Linux kernel从2.6.30版本加入了pNFS支持,目前最新版本为2.6.38,pNFS仍处于Expermental,包括Server和Client。对于pNFS感兴趣的用户,可以通过安装新内核和nfs-util来安装配置pNFS,进行测试和体验。
什么是spNFS?
spNFS是一个简单的pNFS LAYOUT4_FILE服务器实现,它使用标准的NFS服务器作为数据服务器,主其要逻辑在用户空间实现,最初由NetAPP公司支持开发,主要用于pNFS演示和Client测试。spNFS现在已经不再维护,但是仍然可以工作并用于pNFS演示和测试。目前已经有更好的pNFS服务器实现,比如GFS2、OCFS2、EXOFS(http://wiki.linux-nfs.org/wiki/index.php/PNFS_server_projects),但比spNFS要复杂些。
pNFS实验环境
整个pNFS测试环境由4台服务器组成,其中2台数据服务器,1台元数据服务器和1台客户端,操作系统为CentOS 5.4 X86_64。这里是使用虚拟机来搭建测试环境,主要是为了验证pNFS的功能。如果想测试pNFS性能,建议采用物理服务器来部署测试环境。pNFS实验环境配置如下:
MDS:192.168.233.130
DS1: 192.168.233.131
DS2: 192.168.233.132
Client: 192.168.233.134
4台服务器(DS、MDS和Client)均需要安装配置pNFS kernel和nfs-utils软件。
从RPM安装
对于使用Redhat/CentOS/Fedora的用户来说,pNFS社区已经有人制作了RPM安装包供大家测试,从如下URL下载:
http://fedorapeople.org/~steved/repos/pnfs/
根据OS版本和体系结构选择下载合适的RPMs,其中kernel和nfs-utils安装包是必需的。RPM安装过程中根据提示使用yum或apt-get安装相关的依赖包。kernel安装成功后,需要验证一下/boot和Grub相关信息是否正确,然后reboot机器即可。
从源码安装
源码安装相对要比RPM安装复杂许多,但这是很不错的体验,建议搞开发的用户采用这种方式进行安装。Kernel和nfs-utils最新源码可以从如下Git库下载:
根据内核源码中的Documents/fs/spnfs.txt配置kernel编译选项,make menuconfig时把NFSv41/spnfs的相关选项选中。配置完成后,.config中应该包含以下诸项:
接下来就可以编译和安装内核了
如果没有生成initramfs,mdinitrd /boot/initramfs-2.6.38-pnfs 2.6.38-pnfs生成。
与RPM安装一样,成功安装kernel后,验证相关信息正确配置后,即可reboot机器。
nfs-utils依赖许多开发库,编译前需要进行安装解决依赖问题。
配置Data Server
每个Data Server均进行如上配置,DS是常规的NFSv4.1服务器。
配置Metadata Server
vi /etc/export,编辑如下内容:
vi /etc/spnfsd.conf,编辑如下内容:(可以从nfs-util源码中util/spnfsd/spnfsd.conf复制并修改)
然后将DS服务器输出目录mount至元MDS上,启动nfs server和spnfs server:
配置Client
pNFS支持Block, Object, Files协议,我们这里使用Files协议访问,需要加载nfs_layout_nfsv41_files。
pNFS测试
cd /mnt/pnfs
dd if=/dev/zero of=f8g bs=4M count=2K
dd中使用top监控DS和MDS系统负载情况,看看IO是不是发生在DS与Client之间。如果MDS I/O负载很高,接近与DS,则安装配置可能有问题。
分别在MDS和DS使用stat查看f8g的属性:
stat /export/spnfs/f8g (MDS上f8g的block数量应该为0,只表现名字空间)
stat /export/pnfs/* (DS1和DS2上f8g对应对象的block数量应该>0,实际存储文件数据)
参考资料
http://www.pnfs.com
http://wiki.linux-nfs.org/
http://wiki.linux-nfs.org/wiki/index.php/Configuring_pNFS/spnfsd
kernel Documents/fs/spnfs.txt
http://fedorapeople.org/~steved/repos/pnfs/
分享到:
相关推荐
pNFS-(并行NFS)-详解pNFS-(并行NFS)-详解pNFS-(并行NFS)-详解pNFS-(并行NFS)-详解
以研究支持Hadoop大数据访问的pNFS框架为目的,采用在Hadoop与pNFS之间添加pNFS shim layer模块的方法,实现了pNFS支持Hadoop大数据访问的HDFS APIs;通过在pNFS shim layer中添加写缓存和节点级数据布局感知机制...
pnfs
一篇介绍分布式文件系统的paper,较详细的介绍了分布式文件的三方所具有的功能,适宜初学者学习。
pNFS-osd on-the-wire data structures.
Bits in the month register.
为等待膝关节置换术的所有PKO患者提供了PNFS-TMC。 干预组的患者通过一根金属棒的尖端接受了4个疗程(相隔2周)的PNFS-TMC。 将该棒在火焰上加热5分钟,然后再用于在压痛点上进行一次1 mm的二级燃烧。 从相同的等待...
协议详细描述了NFS协议最新的版本NFSv4.1,也详细介绍了pNFS协议。
介绍 在人体结构的先验知识的指导下搜索特定部位的基于细胞的神经结构 (CNF)。 这个存储库是我们 ... 创建o目录以保存每个实验的输出 mkdir o 训练模型 python train.py \ --cfg configs/example.yaml \ --
NFS文件系统是目前最为成功的网络文件系统,在文件共享领域有着出色的表现,特别是pNFS的出现,使得NFS文件系统在性能和规模上有了大幅提升,为其带了更为广阔的应用空间。同时,NFS之所以备受关注,还在于它在NAS...
本文选自SNIA讲座里的一篇同名文章,主要讲述了以太网的发展,探讨了当今以太网存储技术,并推测了FCoE、PNFS和云环境等新兴技术的影响。
除了特定于HEP的协议,还可以通过NFSv4.1(pNFS) , FTP以及WebDav访问dCache中的数据。 文献资料 入门 文件描述了如何编译dCache代码和构建各种程序包。 该文件还描述了如何创建系统测试部署,这提供了一种快速...
UHH轨道缩短工具 原作者:亚历山德拉·特斯(Alexandra Tews... 测试奇点,例如使用singularity exec --contain --bind /afs:/afs --bind /nfs:/nfs --bind /pnfs:/pnfs --bind /cvmfs:/cvmfs --bind /var/lib/condor:/
这是FMP客户端的标准实现,FMP客户端是Linux上的NFS客户端的文件共享加速器-RedHat Fedora 9.0。 它使用建议作为pNFS客户端的网络锁定协议:www.ietf.org上的Draft-Welch-pnfs-ops-02.txt。
用法: # for life capture$ tshark -q -X lua_script:nfs.lua -f " port 2049 "# or if nfs trafic is not on a standard port ( pNFS DS )$ tshark -q -X lua_script:nfs.lua -f " port 32049 " -d tcp.port==...
列出所有已解码的运行并保存运行编号找出新解码的运行并将其复制到pnfs/e1039/tape_backed/decoded_data区域循环遍历新的解码数据,找出包含多个拆分文件的数据,然后运行网格作业re_run_gridjob.sh该脚本还使用由...
NFSv4.1标准,里面的并行网络文件系统很有用