1.安装
ubuntu作主机系统,安装ubuntu NFS服务包
sudo apt-get install nfs-kernel-server
2.配置
打开exports,添加作为NFS服务器端的目录
sudo vim /etc/exports
最后一行添加:
/home/wwkj0108/nfsboot *(rw,sync,no_root_squash,no_subtree_check)
保存退出。
解析:
/home/wwkj0108/nfsboot——NFS服务器端的目录,用于与nfs客户端共享
*——允许所有的网段访问,也可以使用具体的IP
rw——挂接此目录的客户端对该共享目录具有读写权限
sync——资料同步写入内存和硬盘
no_root_squash——root用户具有对根目录的完全管理访问权限
no_subtree_check——不检查父目录的权限
3.启动
重启rpcbind服务与nfs服务,nfs是一个RPC程序,使用它前,需要映射好端口,通过rpcbind设定
sudo /etc/init.d/rpcbind restart
sudo /etc/init.d/nfs-kernel-server restart
4.测试
(1)挂载
到任意一台服务器中执行挂载指令,则将指定ip服务器上的共享路径,挂载到本地
sudo mount -t nfs localhost:/home/wwkj0108/nfsboot /home/wwkj0108/nfs_download
(2)取消挂载
sudo umount nfs /home/wwkj0108/nfs_download
(3)开机自动挂载
在/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_squash——root用户具有根目录的完全管理访问权限
- anonuid=xxx——指定nfs服务器/etc/passwd文件中匿名用户的UID
- anongid=xxx——指定nfs服务器/etc/passwd文件中匿名用户的GID