一、NFS服务配置

 1、执行命令:sudo apt-get install nfs-kernel-server ;


 2、执行命令:mkdir /home/jacobxu/nfs-jacoxu 建立一个nfs服务的专有的文件夹;home/jacobxu/nfs-jacoxu 赋予权限)


 3、建立好文件夹后,接着执行命令:sudo vi /etc/exports 配置nfs;


 4、在文章的最后一行添加:/home/jacobxu/nfs-jacoxu *(rw,sync,no_root_squash,no_subtree_check)
 /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:不检查父目录的权限。


 5、修改完上述配置文件保存退出。


 6、执行命令:sudo /etc/init.d/rpcbind restart 重启rpcbind 服务。nfs是一个RPC程序,使用它前,需要映射好端口,通过rpcbind 设定。


 7、执行命令:sudo /etc/init.d/nfs-kernel-server restart 重启nfs服务。


 8、挂载指令:
 sudo mount -t nfs 192.168.111.128:/home/jacobxu/nfs-jacoxu /nfs-jacoxu-node001/
 到任意一台服务器中执行挂载指令,则可以将指定ip服务器上的共享路径,挂载到本地。


 注:nfs只是一种文件目录共享模式,以本地方式进行访问。而HDFS是一种分布式的文件系统,能够在服务器中进行数据的负载均衡。


 9、开机自动挂载:
 把 上述指令 sudo mount -t nfs 192.168.111.128:/home/jacobxu/nfs-jacoxu /nfs-jacoxu-node001/ 写到 /etc/rc.local 文件中


 附录:NFS常用参数如下:
 ro 只读访问
 rw 读写访问sync 所有数据在请求时写入共享
 async nfs在写入数据前可以响应请求
 secure nfs通过1024以下的安全TCP/IP端口发送
 insecure nfs通过1024以上的端口发送
 wdelay 如果多个用户要写入nfs目录,则归组写入(默认)
 no_wdelay 如果多个用户要写入nfs目录,则立即写入,当使用async时,无需此设置。
 hide 在nfs共享目录中不共享其子目录
 no_hide 共享nfs目录的子目录
 subtree_check 如果共享/usr/bin之类的子目录时,强制nfs检查父目录的权限(默认)
 no_subtree_check 和上面相对,不检查父目录权限
 all_squash 共享文件的UID和GID映射匿名用户anonymous,适合公用目录。
 no_all_squash 保留共享文件的UID和GID(默认)
 root_squash root用户的所有请求映射成如anonymous用户一样的权限(默认)
 no_root_squas root用户具有根目录的完全管理访问权限
 anonuid=xxx 指定nfs服务器/etc/passwd文件中匿名用户的UID
 anongid=xxx 指定nfs服务器/etc/passwd文件中匿名用户的GID二、win7使用nfs共享
Windows 7中加入了NFS 客户端功能,可以通过控制面板中的“程序和功能”->“打开和关闭Windows功能”->  "NFS服务"
 来开启,当然默认下Telnet客户端也是无效的,也可以在这里打开。安装完成后,就可以在Windows的命令行窗口中通过mount
 以及showmount命令使用NFS的共享了。


 C:\>showmount /?
 用法: showmount -e [server]
        showmount -a [server]
        showmount -d [server]


 C:\>mount /?
 用法:  mount [-o options] [-u:username] [-p:<password | *>] <\\computername\sharename> <devicename | *>


 -o rsize=size               设置读取缓冲区的大小(以 KB 为单位)。
 -o wsize=size               设置写入缓冲区的大小(以 KB 为单位)。
 -o timeout=time             设置 RPC 调用的超时值(以秒为单位)。
 -o retry=number             设置软装载的重试次数。
 -o mtype=soft|hard          设置装载类型。
 -o lang=euc-jp|euc-tw|euc-kr|shift-jis|big5|ksc5601|gb2312-80|ansi
                             指定用于文件和目录名称的编码。
 -o fileaccess=mode          指定文件的权限模式。
                             这些模式用于在 NFS 服务器上创建的
                             新文件。使用 UNIX 样式模式位指定。
 -o anon                     作为匿名用户装载。
 -o nolock                   禁用锁定。
 -o casesensitive=yes|no     指定在服务器上执行区分大小写的文件查找。
 -o sec=sys|krb5|krb5i


 简单的例子:
 C:\Windows\SUA\bin>showmount -enfs_serv1
 导出列表在nfs_serv1:
 /vol/volz                          所有计算机
 /vol/volx                          所有计算机
 /vol/Do_NOT_Delete        所有计算机
 /vol/vol7                          所有计算机
 /vol/vol0                         nfs_cli1
 /vol/vol0/home                所有计算机
 /vol/isan                          所有计算机
 /vol/vsc                           所有计算机
 /vol/nfs_smvi                  nfs_cli1
 /vol/vol_t1                        所有计算机


 C:\>mount \\nfs_serv1\vol\vol0 Z:
 Z: 现已成功连接到 \\nfs_serv1\vol\vol0


 需要注意的是,mount point和Linux和UNIX有所不同,不是使用一个目录作为挂载点,而是使用一个未使用的盘符。
 例如上例中的"Z:"。这样就可以通过Z:盘访问你的共享了。非常方便。比起CIFS的方式更加快捷。


 使用完后,可以用umount命令卸载共享。
 C:\Users\leiz>umount


 用法:  [-f] <-a | drive_letters | network_mounts>


 -a      删除所有 NFS 网络装入点
 -f      强制删除 NFS 网络装入点


 C:\Users\leiz>umount Z:


 正在断开                Z:      \\nfs_serv1\vol\vol0
 连接上存在打开的文件和/或未完成的目录搜索。


 要继续此操作吗? (Y/N) [N]:y


 命令已成功完成。


 C:\Users\leiz>mount


 本地    远程                                 属性
 -------------------------------------------------------------------------------
 Z:       \\10.128.132.175\vol\vol0              UID=-2, GID=-2
                                                 rsize=32768, wsize=32768
                                                 mount=soft, timeout=1.6
                                                 retry=1, locking=yes
                                                 fileaccess=755, lang=GB2312-80
                                                 casesensitive=no
                                                 sec=sys