分类: LINUX
2015-01-25 20:46:57
NFS 是Network File System的缩写,即网络文件系统。一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布。功能是通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法。
NFS 的基本原则是“容许不同的客户端及服务端通过一组RPC分享相同的文件系统”,它是独立于操作系统,容许不同硬件及操作系统的系统共同进行文件的分享。
NFS在文件传送或信息传送过程中依赖于RPC协议。RPC,远程过程调用 (Remote Procedure Call) 是能使客户端执行其他系统中程序的一种机制。NFS本身是没有提供信息传输的协议和功能的,但NFS却能让我们通过网络进行资料的分享,这是因为NFS使用了一些其它的传输协议。而这些传输协议用到这个RPC功能的。可以说NFS本身就是使用RPC的一个程序。或者说NFS也是一个RPC SERVER。所以只要用到NFS的地方都要启动RPC服务,不论是NFS SERVER或者NFS CLIENT。这样SERVER和CLIENT才能通过RPC来实现PROGRAM PORT的对应。可以这么理解RPC和NFS的关系:NFS是一个文件系统,而RPC是负责负责信息的传输。
1、执行命令:sudo apt-get install nfs-kernel-server ;
2、执行命令:mkdir /home/jacobxu/nfs-jacoxu 建立一个nfs服务的专有的文件夹;
3、建立好文件夹后,接着执行命令:sudo vi /etc/exports 配置nfs;
4、在文章的最后一行添加:/home/jacobxu/nfs-jacoxu *(rw,sync,no_root_squash,no_subtree_check)
5、修改完上述配置文件保存退出。
6、执行命令:sudo /etc/init.d/rpcbind restart 重启rpcbind(注意在ubuntu12.4版本以后好像就没有portmap服务了,取而代之的是rpcbind服务,很多攻略里说的都是portmap) 服务。nfs是一个RPC程序,使用它前,需要映射好端口,通过rpcbind 设定。
7、执行命令:sudo /etc/init.d/nfs-kernel-server restart 重启nfs服务。
在应用程序开发环节,NFS方式比FTP方式执行的效率高,因为它不需要将linuxserver端的程序下载到嵌入式目标系统就可以调试。
/home/jacobxu/nfs-jacoxu *(rw,sync,no_root_squash,no_subtree_check)这一行的含义是:
/home/jacobxu/nfs-jacoxu:与nfs服务客户端共享的目录,这个路径必须和你前面设置的文件的路径一致!
*:允许所有的网段访问,也可以使用具体的IP
rw:挂接此目录的客户端对该共享目录具有读写权限
sync:资料同步写入内存和硬盘
no_root_squash:root用户具有对根目录的完全管理访问权限。
no_subtree_check:不检查父目录的权限。
更改玩exports文件之后需要执行一下 exportfs -rv指令重新加载exports文件。(这个很重要,很多攻略都忽略了)
至此服务器端的NFS设置就完成了。