基础服务:NFS
-
NFS服务介绍
-
NFS(Network File System)网络文件系统,通过TCP/IP网络共享资源。主要功能时通过网络让不同的主机系统之间可以共享文件夹和目录。NFS客户端(一般为应用服务器,例如WEB服务器)可以通过挂载(mount)的方式,将NFS服务端共享的数据目录挂载到NFS。
-
从NFS客户端的机器本地看,NFS服务端共享的目录好像是客户自己的磁盘分区或者目录一样,而实际上确是远端的NFS服务端的目录。在NFS的应用中,本地NFS的客户端应用可以透明的读写位于远程NFS服务器上的文件,就像访问本地文件一样。NFS网络文件系统类似windons系统的网络共享,应用与互联网中小型集群架构后端作为数据共享,如果是大型网站,那么有可能还会用到更复杂的分布式文件系统,例如Moosefs,GluterFS,FastDFS等。
-
-
NFS工作原理
-
因为NFS支持的功能相当的多,二不同的功能都会使用不同的程序来启动,每启动一个功能就会启用一些端口来传输数据,因此,NFS的功能所对应的端口并不是固定的(小于1024的随机数),但是客户端链接服务器必须要知道对应端口。
-
那么我们就得需要远程过程调用RPC的服务协助,RPC最主要的功能就是获取每个NFS功能所对应的port number,并且传给客户端,让客户端可以连接到正确的端口上。所以在启动NFS之前,RPC需要先启动,否则NFS会无法向RPC注册。另外RPC若冲洗你启动,原本注册的数据就会不见了,因此RPC重新启动后,他管理的所有服务都需要重新启动向RPC注册。
-
当客户端又NFS存取需求时,会重新向服务器的PC(prot 111)发出NFS档案存取功能寻味要求,服务器端找到对应的已注册的NFS daemon端口之后,发送给客户端,客户端收到正确端口后,可与NFS进程联机。
-
-
部署NFS服务
-
nfs-untils:NFS服务主程序包括rpc,nfsd,rpc,mountd两个daemons和相关文档说明及执行命令程序等。
-
rpcbind:RPC服务的主程序
-
NFS可以被视为一个RPC程序,在启动任何一个程序之前,需要做好端口映射工作,这个映射工作就是由rpcbind服务来完成的。因此必须先启动rpcbind服务。
yum -y install nfs-utils rpcbind rpm -qa nfs-utils rpcbind #启动NFS相关服务 systemctl restart rpcbind systemctl restart nfs #查看111端口进程占用 lsof -i:111 rpcinfo -p localhost
-
-
配置NFS服务
-
NFS配置文件(默认为空)
ls -l /etc/exprots
-
NFS配置文件格式
ls -l /etc/exports
-
创建共享的数据目录
mkdir /data vim /etc/exports /data 192.168.75.*(rw,sync)
-
-
文件系统导出属性
- rw 读写权限
- ro 只读权限
- sync 请求或写入数据时,数据同步到NFS的硬盘中才返回,有点数据不会丢失,缺点性能下降
- async 请求写入数据时,先返回请求,再将数据写入刀内存缓存和硬盘,一部写入,降低数据安全性,不建议用
- root_squash 访问NFS共享目录的用户是root,则它的权限将被压缩成匿名用户,UID和GID变成nfsboboody账号身份
- all_squash 无论NFS共享目录是什么用户,全新啊都被压缩成匿名用户
- no_all_squash 不映射普通用户的属主属组为匿名用户(默认)
-
列出NFS服务器共享目录
showmount -e 127.0.0.1 showmount 命令说明 -e 显示NFS服务输出的共享目录列表 -d 显示NFS服务中提供的共享目录 -a 以IP:/die格式显示NFS服务器IP和可挂载的目录
-
客户端
yum -y install rpcbind rpm -qa rpcbind systemctl restart rpcbind showmount -e 192.168.75.10 mount -t mfs 192.168.75.10:/data /mnt df -Th touch /mnt/abc "touch:无法创建‘abc’:权限不足" #服务端(无法写入是因为权限不足) ls -ld /data id nfsnobody chown -R nfsnobody /data/ ls -ld /data #设置开机自动挂载 systemctl start rpcbind vim /etc/fstab 192.168.80.40:/data /mnt nfs defaults 0 0
-
NFS优缺点
-
NFS优点
1,简单,容易上手,容易掌握
2,NFS文件系统内数据是在文件系统之上的,即数据可以看见
3,方便,部署快速,维护简单,可控且满足需求
4,可靠,从软件层面上看,数据可靠性高,经久耐用。数据是在文件系统之上的
5,稳定性
-
NFS缺点
1,存在单点故障,如果nfs server宕机了所有客户端都不能访问共享目录,可以通过负载均衡及高可用方案弥补。
2,在大数据高并发的场合,NFS效率性能有限。
3,客户端认证是基于ip和主机名的,权限是根据ID识别,安全性一般(用于内部测试问题不大)。
4,NFS数据是明文的,NFS本身对数据完整性不做验证。
5,多台客户机挂在一个NFS服务器时,连接管理维护麻烦(耦合度高)。尤其NFS服务出现问题后,所有NFS客户端不可用(测试环境可使用autofs自动挂载解决)。
-
于内部测试问题不大)。
4,NFS数据是明文的,NFS本身对数据完整性不做验证。
5,多台客户机挂在一个NFS服务器时,连接管理维护麻烦(耦合度高)。尤其NFS服务出现问题后,所有NFS客户端不可用(测试环境可使用autofs自动挂载解决)。
6,适用于2千万PV以下线上应用。