一、NFS服务配置
1、执行命令:sudo apt-get install nfs-kernel-server ;
2、执行命令:mkdir /home/jacobxu/nfs-jacoxu 建立一个nfs服务的专有的文件夹;
(NFS配置完成后,WIN7访问没有问题 可是没有修改权限,在这一步骤的时候可以使用sudo chmod -R go+rwx /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