1.NFS简介
1)NFS是一种基于TCP/IP传输的网络文件系统协议。通过使用NFS协议,NFS客户机可以像访问本地目录一样远程访问NFS服务器中的资源
2.NSF服务的实现依赖于RPC(远端过程调用——远程连接)
3.构建NFS服务
1)安装nfs_utils(文件共享)、rpcbind(远程连接)
yum -y install nfs-utils rpcbind
2)设置共享目录
vim /etc/export (NSF配置文件,默认空)
/opt/www 192.168.11.1(rw,sync,no_root_squash)
选项解释
/opt/www : 要共享的文件夹
192.168.11.1:共享主机的ip
rw:允许读写
sync:同步写入
no_root_squash:客户机访问该目录是权限是root(默认是root_squash,作为nsfnobody用户降权对待)
若要将同一个目录共享给不同用户并给于不同权限可做如下操作 /var/www 192.168.1.1(ro) 192.168.1.2(rw)
3)启动nsf和rpcbind
service nfs start
service rpcbind start
4)查看共享目录
showmount -e
5)客户机安装rpcbind和nfs-utils(只需启动rpcbind,nfs-utils无需启动)
6)客户机挂载共享目录
mount 服务器端ip:共享目录 挂载目录
4.强制卸载NFS
如果客户端正在挂载使用,服务器端的NFS突然停掉,客户端会出现卡死现象,无法umount直接卸载,需加上-lf
5.常见故障解决思路
当共享无法挂载使用时,首先要检查配置文件的正确性,查看是否允许该网段访问,同时客户端也要开启rpcbind服务
在两边服务都开启的情况下,如果客户端挂载共享存储出现长时间挂载等待的情况,此时要ping 服务器的地址检测客户端到服务器端的网络是否正常。如果客户端到服务端的网络是没有问题的。但是还是无法mount挂载使用,可以使用telnet命令加服务器端的地址和端口号,选程连接服务器。当出现connecred 头…的字样时,表示已经连接上了。这就表示客户端与服务器端是通的。
客户端无法正常访问服务器端。 也有可能是iptables导致的。使用telnet令连接服务器时会显示“no route to host的字样,这就表示是防火墙的问题。在服务器端本地telnet自己。如果正常就表示服务器清是没有问题的。
当然也可以使用showmount -e检查,或者是在服务端挂载自己本地共享的目录看能否桂载成功。
6. NFS 客户端mount的挂载参数说明
1) mount -o命令后面常用参数
noatime:不更新文件系统上的inode访问时间。高并发环境下应该使用该选项。可以提高I/O性能,
nodiratime:不更新文件系统上的directory inode访问时间。高并发环境下推荐使用该选项,可以提高系统I/O性能。
noexec:不允许使用程序,除了shell、PHP
nosuid:不允许设置uid
remout尝试重新共载一个已经挂载了的文件系统,这通常被用来改变文件系统的挂载标志,从而使得个只读文件系统变得可写,
这个动作不会改变设备或者挂载点。例如:当系统故障进入single或rescue模式修复系统时,会发现根文件系统经常会变成只
读文件系统。不允许修改,这时候该命令就可以派上用场了。具体命令为: moumnt -o remount,rw,将视文件系统重新挂载
使得其可写。single 或rescuee模式修复系统时这个命令非常重要。
ro:挂载一个只读文件系统。
rw:挂载一个可写的文件系统。
sync: 有I/O操作时,会同步处理I/O,把数据同步写入硬盘。使用此参数会影响I/O性能,但是可以保证数据的安全性。
7. mount 挂载及fstab文件的参数表格
常见优化参数
8.查看客户端挂载的参数
1)grep mnt /proc/mounts:查看客户端挂载的参数
2)挂载的最重要的参数是rsize、wsize, 还有一些小的参数如noatime、nodiratime,
3)在读写文件时不更改文件系统的时间戳,这样效率就会更高。安全方面的优化是采用的nosuid和noexec参数。因此最佳的挂载方案是:
mount t nfs -o nosuid,noexec,noatime,nodiratime,rsize=131072,wsize-=131072 10.0.0.3:/data /mnt