Linux常用服务部署与优化之NFS篇

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端目录没有权限
[root@localhost ~]# 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  //关闭防火墙
 
原文地址:https://www.cnblogs.com/weblm/p/5495620.html