NFS服务

什么是NFS?
NFS本质就是一个共享存储,文件服务器 。
一、NFS基本概述
NFS是Network File System的缩写即网络文件系统 。NFS主要功能是通过局域网络让不同的主机系统之间可以共享文件或目录 。
NFS系统和windows网络共享、网络驱动器类似, 只不过windows用于局域网, NFS用于企业集群架构中, 如果是大型网站, 会用到更复杂的分布式文件系统glusterfs(大文件ISO镜像等),ceph,oss(阿里云的存储系统)
为什么使用NFS
1.实现多台服务器之间数据共享
2.实现多台服务器之间数据一致
【NFS服务】二、NFS应用
1)没有NFS时:
1.A用户上传图片经过负载均衡,负载均衡将上传请求调度至WEB1服务器上 。
2.B用户访问A用户上传的图片,此时B用户被负载均衡调度至WEB2上,因为WEB2上没有这张图片,所以B用户无法看到A用户传的图片 。
 

NFS服务

文章插图
 
 
2)如果有NFS
1.A用户上传图片无论被负载均衡调度至WEB1还是WEB2, 最终数据都被写入至共享存储
2.B用户访问A用户上传图片时,无论调度至WEB1还是WEB2,最终都会上共享存储访问对应的文件,这样就可以访问到资源了
NFS服务

文章插图
 
3)NFS工作原理
 
NFS服务

文章插图
 
1.用户访问NFS客户端,将请求转化为函数
2.NFS通过tcp/ip连接服务器
3.NFS服务端接收请求,会先调用portmap进程进行端口映射
4.Rpc.nfsd进程用于判断NFS客户端能否连接到服务端
5.Rpc.mount进程用于判断客户端对服务端的操作权限
6.如果通过权限验证,可以对服务端进行操作,修改或读取等
三、NFS实践
1、环境准备:
主机 ip 角色
web01 172.16.1.7 NFS客户端
NFS 172.16.1.31 NFS服务端
2、服务端(172.16.1.31)
1)关闭防火墙与selinux
2)安装NFS和rpcbind
[root@nfs ~]# yum install -y nfs-utils rpcbind
注意:
centos6需要安装rpcbind
centos7默认已经安装好了rpcbind,并且默认开机自启动
3)配置nfs
#nfs的默认配置文件是:/etc/exports#配置nfs配置文件vim /etc/exports/data 172.16.1.0/24(rw sync all_squash)语法拆分:
/data #nfs服务端的共享目录
172.16.1.0/24 nfs允许连接的客户端ip
(rw sync all_squash) 允许操作的权限
4)创建共享目录
[root@nfs ~]# mkdir /data
5)启动服务
#centos7启动
[root@nfs ~]# systemctl start rpcbind nfs
#centos6启动时一定要先启动rpcbind,在启动nfs
[root@nfs ~]# /etc/init.d/rpcbind start
[root@nfs ~]# /etc/init.d/nfs start

[root@nfs ~]# service rpcbind start
[root@nfs ~]# service nfs start
#验证启动
[root@nfs ~]# netstat -ntlp | grep rpc
tcp 0 0 0.0.0.0:36234 0.0.0.0:* LISTEN 2041/rpc.statd
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 2030/rpcbind
tcp 0 0 0.0.0.0:20048 0.0.0.0:* LISTEN 2067/rpc.mountd
tcp6 0 0 :::46149 :: LISTEN 2041/rpc.statd
tcp6 0 0 :::111 :: LISTEN 2030/rpcbind
tcp6 0 0 :::20048 :: LISTEN 2067/rpc.mountd
6)验证nfs配置
[root@nfs ~]# cat /var/lib/nfs/etab
/data172.16.1.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,rw,secure,root_squash,all_squash)
#出现以上内容即为配置成功
3、客户端
1)关闭防火墙与selinux
2)安装rpcbind服务
[root@web01 ~]# yum install -y rpcbind nfs-utils
#注意:
centos6需要安装rpcbind
centos7默认已经安装好了rpcbind,并且默认开机自启动
安装rpcbind是为了连接服务端的进程,安装nfs-utils是为了使用showmount命令
3)查看挂载点
[root@web01 ~]# showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data 172.16.1.0/24
4)挂载
[root@web01 ~]# mount -t nfs
172.16.1.31:/data /backup
命令拆分:
mount #挂载命令
-t #指定挂载的文件类型
nfs #nfs文件类型
172.16.1.31: #服务端的IP地址
/data 服务端提供的可供挂载的目录
/backup 本地要挂载到服务端的目录
[root@web01 ~]# df -h #查看挂载结果
Filesystem Size Used Avail Use% Mounted on
devtmpfs 979M 0 979M 0% /dev
tmpfs 991M 0 991M 0% /dev/shm
tmpfs 991M 9.5M 981M 1% /run
tmpfs 991M 0 991M 0% /sys/fs/cgroup


推荐阅读