NFS(network file system)的简称,是linux系统之间常用的一种文件共享方式,下面简述其搭建过程,需要两个linux系统的虚拟机,假设客户端的ip为192.168.1.105,服务端的ip为192.168.1.107.
服务端:1,安装nfs-utils 和rpcbind包。
yum install -y nfs-utils#安装nfs-utils时会把rpcbind一起安装
2,vim /etc/exports
添加:
/mnt 192.168.1.105 (rw,sync,all_squash,annouid=501,anongid=501)#可以是一个网段192.168.1.0/24
1,共享的目录
2,允许访问的IP或者某个网段 192.168.1.0/24
3,选项
rw ,读写
ro,只读
sync,同步模式,将内存的数据实时写入磁盘
async,不同步 ,将内存的数据定期写入磁盘
all_squash , 限制所有用户,排除后面设定的uid的用户
root_squash 限制root用户
no_root_squash 不限制root用户
anonuid 用于指定使用NFS的用户限定后的uid和gid。
anongid
3,启动rpcbind服务和nfs服务
/etc/init.d/rpcbind start
/etc/init.d/nfs start
客户端,
1,yum install -y nfs-utils (因为需要使用到showmount这个命令)
2,showmount -e 192.168.1.107
显示如下,
Export list for 192.168.1.105:
/mnt 192.168.1.105
3,挂载
mount -t nfs -o nolock -o nfsvers=3 192.168.1.105:/mnt /opt ==》mount -t nfs -o nolock,nfsvers=3 192.168.1.105:/mnt /opt
-o nolock 挂载时不加锁 目的是可以在此目录创建文件、修改文件的时间缩短,如果不加的话,会过很长时间才会有反应。
-o nfsvers 指定nfs的版本为3 避免权限混乱(不加这个选项,创建的文件的属主和属组可能会是nobody)
4,df -h 查看挂载的分区
5,在/mnt目录下创建文件或目录提示权限不够,将共享的目录设为777(在server段设置)
另外,如果更改了/etc/exports的配置文件 可以通过exportfs -avr的命令来重新加载或者重启nfs服务。
exportfs
-a 全部挂载或者卸载
-r 重新挂载
-v 显示贡献的目录
-u 卸载某个目录
6,如果想让系统开机就挂载此分区的话,vim /etc/fstab,添加如下信息
192.168.1.105:/mnt /opt nfs nolock 00
卸载 umout /mnt
挂载 mount -a
常见错误:
mount.nfs: access denied by server while mounting
可能是配置错误或者端口号大于1024时需要在/etc/exports下加入insecure选项
或者是server端目录没有权限
[[email protected] ~]# showmount -e 192.168.1.107
clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)
解决方法:
被访问的NFS服务器上的防火墙没有添加规则,向iptables里面添加以下查看的所有端口即可
#iptables -F
#service iptables stop //关闭防火墙