NFS介绍
NFS是Network File System的缩写 ,是在网络层面,NFS(Network File System)网络文件系统会常常用到,用于在网络上共享存储。这样讲,你对NFS可能不太了解,阿铭举一个例子来讲明一下NFS是用来作什么的。假若有三台机器A, B, C,它们须要访问同一个目录,目录中都是图片,传统的作法是把这些图片分别放到A, B, C. 可是使用NFS只须要放到A上,而后A共享给B和C便可,B和C把A共享的目录放在本地,这个动做叫作挂载。访问的时候,B和C是经过网络的方式去访问A上的那个目录的。其主要特色就是容许一个系统和网络上的他人共享目录和文件。vim
NFS最先由Sun公司开发,分2,3,4三个版本,2和3由Sun起草开发,4.0开始Netapp公司参与并主导开发,最新为4.1版本 ,更新迭代比较慢
NFS数据传输基于RPC协议,RPC为Remote Procedure Call的简写。
NFS应用场景是:A,B,C三台机器上须要保证被访问到的文件是同样的,A共享数据出来,B和C分别去挂载A共享的数据目录,从而B和C访问到的数据和A上的一致
portmap和rpcbind实质是一种东西,rpc服务不监放任何端口,rpcbind监听端口111,NFS借助RPC协议实现通讯
portmap是在centos5以及以前的版本叫作portmap,以后叫rpcbindcentos
NFS服务端配置安装配置
准备两台机器,一个做为客户端(192.168.37.132),一个做为服务端(192.168.37.130),在服务端上安装两个包nfs-utils和rpcbind安全
#yum install -y nfs-utils rpcbind //安装两个包 安装的时候epel会比较慢,咱们能够经过编辑yum的配置文件,这样操做 #cd /etc/yum.repos.d/ //进入配置文件内 #mv epel.repo epel.repo.1 //将epel源更换名字,以后下载就比较快
安装完成以后就能够编辑exports #vim /etc/exports //加入以下内容
/home/nfstestdir 192.168.37.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)
这个配置文件就只有简单的一行,分为三段,第一段是要共享的目录,这里咱们作实验用的目录尚未建立,第二段是容许访问的主机(能够是一个IP也能够是一个IP段),第三段就是权限,以后会介绍,保存配置文件后,执行以下准备操做网络
#mkdir /home/nfstestdir //建立分享的目录
#chmod 777 /home/nfstestdir //方便作实验
#systemctl start rpcbind //启动rpcbind
#systemctl start nfs //启动nfs服务,rpcbind默认监听端口111
#systemctl enable rpcbind //设置开机启动
#systemctl enable nfs //设置开机启动
NFS配置选项
rw 读写 ro 只读 sync 同步模式,内存数据实时写入磁盘 async 非同步模式 ,把内存总数据按期写入磁盘 no_root_squash 客户端挂载NFS共享目录后,root用户不受约束,权限很大 ,不安全,不建议使用 root_squash 与上面选项相对,客户端上的root用户受到约束,被限定成某个普通用户 all_squash 客户端上全部用户在使用NFS共享目录时都被限定为一个普通用户 anonuid/anongid 和上面几个选项搭配使用,定义被限定用户的uid和gid
客户端的配置
#yum install -y nfs-utils //安装包
安装以后咱们不用启动什么服务,查看服务端共享了哪些目录,使用showmount命令
#showmount -e 192.168.37.130 //该ip为NFS服务端的ip
当出现报错的信息时,可能状况时rpcbind没有监听端口111或是防火墙的影响,此时咱们关闭客户端和服务端上的防火墙#iptables -F,而后再来执行命令app
在客户端挂载NFS #mount -t nfs 192.168.37.130:/home/nfstestdir /mnt //挂载目录
此时经过命令#df -h就能够看见挂载的目录 async