nfs(网络文件系统)需要两个服务nfs-utils和rpcbind

1、安装nfs-utils和rpcbind(服务于客户端都安装)

检查是否已安装:rpm -qa nfs-utils rpcbind

[kafka@DEV-L002595 nfstest]$ rpm -qa nfs-utils rpcbind
 rpcbind-0.2.0-11.el6.x86_64
 nfs-utils-1.2.3-36.el6.x86_64

如果没有安装请安装软件安装方式安装。

2、启动服务:

service nfs start|stop|restart|status

service rpcbind start|stop|restart|status

3、配置

服务端配置:

NFS的配置文件为 /etc/exports

[root@property-service-01 shm]# cat /etc/exports 
 /dev/shm/nfs/ 10.20.13.231(insecure,rw,async,all_squash,fsid=0,anonuid=5220,anongid=5220)

<共享目录> 客户端1(选项) [客户端2(选项) ...]

共享目录:服务端共享给客户端的目录

客户端:客户端可以指定具体的ip或ip段,也可以用*表示所有

选项说明
ro:共享目录只读;


rw:共享目录可读可写;
all_squash:所有访问用户都映射为匿名用户或用户组;
no_all_squash(默认):访问用户先与本机用户匹配,匹配失败后再映射为匿名用户或用户组;


root_squash(默认):将来访的root用户映射为匿名用户或用户组;


no_root_squash:来访的root用户保持root帐号权限;


anonuid=<UID>:指定匿名访问用户的本地用户UID,默认为nfsnobody(65534);此处uid和gid指客户端某个用户的id,不是服务端用户。使用服务
anongid=<GID>:指定匿名访问用户的本地用户组GID,默认为nfsnobody(65534);端的也可以,但在客户端会显示id而无对应的用户或组


secure(默认):限制客户端只能从小于1024的tcp/ip端口连接服务器;


insecure:允许客户端从大于1024的tcp/ip端口连接服务器;
sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;
async:将数据先保存在内存缓冲区中,必要时才写入磁盘;
wdelay(默认):检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率;


no_wdelay:若有写操作则立即执行,应与sync配合使用;
subtree_check(默认) :若输出目录是一个子目录,则nfs服务器将检查其父目录的权限;


no_subtree_check :即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;


格式:

fsid=num|root|uuid

释义:


NFS需要标志每一个导出的文件系统。通常使用文件系统的UUID(如果该文件系统有的话),或者使用存储该文件系统的设备的设备号(如果该文件系统存储在设备上)。并不是所有的文件系统都存储在设备上,也并不是所有的文件系统都有UUID,NFS需要精确标识文件系统,就需要使用fsid选项。

对于NFSv4,有一个杰出的文件系统,它是所有导出的文件系统的根目录。通过fsid=root或fsid=0来标识。标识其他文件系统,可以使用一个小的整数(任何32位数字都可以使用,但它在所有导出的文件系统中必须是唯一的),或者任意一个包含32个十六进制数字和标点符号的UUID。

Linux内核2.6.20版本及更早版本不支持UUID的设置。


另外:

要通过NFS共享一个目录,首先需要在/etc/exports文件中定义这个目录,并且使用fsid=0的参数。(使用fsid=0选项的时候只能共享一个目录,这个目录将成为NFS服务器的根目录。)


三、NFS相关命令


1、exportfs
不重启nfs服务应用更新,相关选项如下:


-a 全部挂载或卸载 /etc/exports中的内容
-r 重新读取/etc/exports 中的信息 ,并同步更新/etc/exports、/var/lib/nfs/xtab
-u 卸载单一目录(和-a一起使用为卸载所有/etc/exports文件中的目录)
-v 在export的时候,将详细的信息输出到屏幕上。

2、nfsstat
查看NFS的运行状态。


 


3、rpcinfo


查看rpc服务注册情况。


相关选项:


-p 显示所有的端口与程序信息。


示例:


rpcinfo -p localhost  #列出本机的RPC注册状况。



3、showmount

查询nfs共享目录信息,相关选项如下:


-a 显示已经于客户端连接上的目录信息

-e IP或者hostname 显示此IP地址分享出来的目录

 


示例:


showmount -e localhost  #查询本机nfs共享目录情况


showmount -a localhost  #查询本机共享目录连接情况


四、linux客户端挂载共享目录
1、临时挂载
通过mount挂载,例如:


mount -t nfs 192.168.1.1:/opt/public /mnt/public

2、启动挂载


将挂载信息写入fstab文件


vi /etc/fstab


192.168.1.1:/opt/public /mnt/public nfs defaults


保存退出


mount -a


 


3、基于autofs自动挂载


autofs可以在使用到挂载文件系统时自动挂载,当长时间不使用时自动卸载,配置灵活方便。


安装autofs:


centos,rhl:


yum install autofs


ubuntu:


apt-get install autofs


 


编辑主配置文件/etc/auto.master,在末尾添加需挂载的目录信息。


格式为:本机挂载主目录 对应的加载配置文件名 -挂载参数


挂载参数同mount的挂载参数,多个参数以逗号分隔。此处的挂载参数可以与对应的加载配置文件中定义的参数产生叠加作用。


示例:


vi /etc/auto.master


#本机挂载主目录为/mnt,与之对应的加载配置文件为/etc/auto.nfs


/mnt /etc/auto.nfs


保存退出


 


编辑加载配置文件,添加需要挂载的文件系统。


格式为:挂载目录 -挂载参数 挂载文件系统


挂载参数同mount的挂载参数,多个参数以逗号分隔。


示例:


vi /etc/auto.nfs


public -rw,bg,soft,rsize=32768,wsize=32768,nosuid,noexec,nodev 192.168.1.1:/opt/public


保存退出


 


重启autofs


/etc/init.d/autofs restart