一、NFS服务简介
NFS是Network File System(网络文件系统)。主要功能是通过网络让不同的服务器之间可以共享文件或者目录。NFS客户端一般是应用服务器(比如web,负载均衡等),可以通过挂载的方式将NFS服务器端共享的目录挂载到NFS客户端本地的目录下。
NFS在文件传送过程中依赖与RPC(远程过程调用)协议。NFS本身是没有提供信息传送的协议和功能的,但是能够用过网络进行图片,视频,附件等分享功能。只要用到NFS的地方都需要启动RPC服务,不论是NFS的服务端还是客户端。
NFS和RPC的关系:可以理解为NFS是一个网络文件系统(比喻为租房的房主),而RPC是负责信息的传输(中介),客户端(相当于租房的租客)。
二、系统环境
[root@nfs-server ~]# cat /etc/issue
CentOS release 6.6 (Final)
Kernel \r on an \m
三、服务端配置
1)要部署NFS服务,需要安装下面的软件包:
nfs-utils:NFS服务的主程序
rpcbing:NFS可以视为一个RPC的主程序,在启动任何一个RPC程序之前,需要做好端口和功能的对应映射工作
[root@nfs-server ~] # yum install nfs-utils rpcbind -y
2)启动NFS服务
[root@nfs-server ~] # /etc/init.d/rpcbind start
[root@nfs-server ~] # /etc/init.d/nfs start
3)检查开机是否自启动
[root@nfs-server ~] # chkconfig nfs on
[root@nfs-server ~] # chkconfig rpcbind on
[root@nfs-server ~] # chkconfig --list nfs
[root@nfs-server ~] # chkconfig --list rpcbind
4)NFS服务端配置文件的配置
NFS默认配置文件路径是:/etc/exports,文件默认是空的。
/etc/exports配置文件的格式是:
NFS共享的目录 NFS客户端地址(参数1,参数2)
NFS共享的目录:为NFS服务器端要共享的实际目录,要用决定路径,如(/data)注意共享目录的本地权限,需要读写权限,一定要让本地目录可以被NFS客户端的用户读写
NFS客户端地址:为NFS服务器端授权的可访问的共享目录的NFS客户端地址,可以为单独的ip地址或者主机名,域名等,也可以是整个网段的地址。
[root@nfs-server ~] # vim /etc/exports
/data 172.16.1.0/24(rw,sync)
其中:/data是服务器端共享的目录
172.16.1.0/24共享目录的客户端ip地址
(rw,sync) ,其中rw代表拥有读写的权限,sync代表数据同步写入NFS服务器端的硬盘中。也可以用async,async是大数据时使用,是先写到缓存区,再写到磁盘里。
创建/data目录,并且属主和属组都为:nfsnobody,其中nfsnobody是安装nfs服务时默认的用户
[root@nfs-server ~] mkdir /data -p
[root@nfs-server ~] chown -R nfsnobody:nfsnobody /data
[root@nfs-server ~] ls -ld /data
[root@nfs-server ~] /etc/init.d/nfs reload
[root@nfs-server ~] showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data 172.16.1.0/24
四、客户端配置
1.客户端和服务端一样,也要安装nfs和rpm的安装包。(配置见服务器端)
2.客户端需要启动rpc服务,加入开机自启动,不需要启动nfs服务。(配置见服务器端)
3.测试:
第一步:ping,能不能ping通服务器端ip地址
第二步:telnet服务端的111端口
[root@nfs-server ~] # telnet 172.16.1.31 111
第三步:showmount服务端
[root@nfs-server ~] # showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data 172.16.1.0/24
第四步:挂载,文件共享
[root@nfs-server ~] # mount -t nfs 172.16.1.31:/data/ /mnt
[root@nfs-server ~]# vim /etc/fstab
172.16.1.31:/data/ /mnt nfs defaults 0 0
第五步:查看是否挂载成功了
[root@nfs-server ~] # df -h