NFS(百度百科):NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
NFS在文件传送或信息传送过程中依赖于RPC协议。RPC,远程过程调用 (Remote Procedure Call) 是能使客户端执行其他系统中程序的一种机制。NFS本身是没有提供信息传输的协议和功能的,但NFS却能让我们通过网络进行资料的分享,这是因为NFS使用了一些其它的传输协议。而这些传输协议用到这个RPC功能的。可以说NFS本身就是使用RPC的一个程序。或者说NFS也是一个RPC SERVER。所以只要用到NFS的地方都要启动RPC服务,不论是NFS SERVER或者NFS CLIENT。这样SERVER和CLIENT才能通过RPC来实现PROGRAM PORT的对应。可以这么理解RPC和NFS的关系:NFS是一个文件系统,而RPC是负责负责信息的传输。
实验环境准备:服务端CentOS6.7,ip:192.168.1.3;客户端机器test,ip:192.168.1.6;两台机器可以通信,即相互ping的通,关掉服务端防火墙(命令:service iptables stop)和sexlinux(命令:setenforce 0)。
配置步骤:
1.在客户端安装nfs
yum install nfs* (这样就会把依赖的软件都下载下来,包括portmap)
2.修改配置文件(默认打开是空白)
vi /etc/exports
增加一条: /home/dong * (rw)
(注: 2.0 NFS的配置文件为 /etc/exports,内容格式如下:
<共享目录> 客户端1(选项) [客户端2(选项) ...]
共享目录:NFS共享给客户机的目录。
客户端:网络中可以访问此目录的主机。多个客户端以空格分隔。
选项:设置目录的访问权限、用户映射等,多个选项以逗号分隔。
例如:/home/dong 1 92.168.1.0/24 (rw,insecure,sync,all_squash,anonuid= 65534,anongid=65534)
2.1 客户端的指定方式
指定ip地址的主机:192.168.0.100或者指定子网中的所有主机:192.168.0.0/24 或 192.168.0.0/255.255.255.0 指定域名的主机:nfs.test.com 指定域中的所有主机:*.test.com
所有主机:*
2.2选项说明
ro:共享目录只读;
rw:共享目录可读可写;
all_squash:所有访问用户都映射为匿名用户或用户组;
no_all_squash(默认):访问用户先与本机用户匹配,匹配失败后再映射为匿名用户或用户组;
root_squash(默认):将来访的root用户映射为匿名用户或用户组;
no_root_squash:来访的root用户保持root帐号权限;
anonuid=<UID>:指定匿名访问用户的本地用户UID,默认为nfsnobody(65534);
anongid=<GID>:指定匿名访问用户的本地用户组GID,默认为nfsnobody(65534);
secure(默认):限制客户端只能从小于1024的tcp/ip端口连接服务器;
insecure:允许客户端从大于1024的tcp/ip端口连接服务器;
sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;
async:将数据先保存在内存缓冲区中,必要时才写入磁盘;
wdelay(默认):检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率;
no_wdelay:若有写操作则立即执行,应与sync配合使用;
subtree_check(默认) :若输出目录是一个子目录,则nfs服务器将检查其父目录的权限;
no_subtree_check :即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;)
3.启动nfs服务:service nfs start 会起来四个服务
4.在客户端挂载
如果出现错误的话建议你在客户端安装以下nfs相关应用,因为报错的情况很多,安装后就没了:yum install -y nfs*
5.查看你挂载到的目录是否出现服务端的的内容,如果没有问题证明实验成功,到此可以结束了,请往后面去看自动挂载的配置;这时你如果发现你没有权限的话出现下面图片的情况的话
转到服务端查看共享目录的权限
发现其他同组的用户和其他用户的权限是---,那就执行下下面的命令如图
设置好权限后再返回客户端查看挂载的目录发现就可以看到一模一样的文件了。
在/mnt里面可以创建和删除文件了。
到此配置nfs结束,下面是解决每次客户端开机都需要输入很长的挂载命令的不便问题,接下来是客户端自动挂载的配置:
1.在客户端安装软件autofs
2.修改主配置文件 vim /etc/auto.master
增加一条 /home/text-autonfs /etc/auto.nfs
/home/autofs-test不需要存在这个目录,挂载后自动创建。
3.编辑auto.nfs (原先不存在,编辑时会自动创建)
vi /etc/auto.nfs
增加一条: dong -rw 192.168.1.3:/home/dong
4.重启autofs服务
serveice autofs restart
5.测试:卸载原来的挂载,仅输入命令:mount 就会自动挂载设置好的命令。
6.查看自动生成的挂载目录
7.查看挂载的目录,发现映射成功。
ls /mnt/test-autonfs/dong
ok!