NFS网络文件系统
什么是NFS?
NFS是Network File System的缩写,中文意思是网络文件系统。他的主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或目录。NFS客户端(一般为应用服务器,例如web)可以通过挂载(mount)的方式将NFS服务器端共享的数据目录挂载到NFS客户端本地系统中(就是某一个挂在点)。从客户端本地看,NFS服务器端共享的目录就好像是客户端自己的磁盘分区或者目录一样,而实际上却是远端的NFS服务器的目录。
NFS网络文件系统很想windows系统的网络共享,安全功能,网络驱动器影射,这也和Linux系统里的samba服务类似。只不过一般情况下,Windows网络共享服务或samba服务用于办公局域网共享,而互联网中小型网站集群架构后端常用NFS进行数据共享。
在企业集群架构的工作场景中,NFS网络文件系统一般被用来存储共享视频,图片,附件等静态资源文件,通常网站用户上传的文件都会放到NFS共享里,例如:BBS产品的图片,附件,头像(注意网站BBS程序不要放NFS共享里),然后前端所有的节点访问这些静态资源时都会读取NFS存储上的资源。NFS是当前互联网系统架构中最常用的数据存储服务之一,前面说过,中小型网站公司应用频率更高,大公司或门户除了使用NFS外,还可能会使用更为复杂的分布式文件系统,比如Moosefs(mfs),GlusterFS,FastDFS等
在企业生产集群架构中,NFS作为所有前端Web服务的共享存储,存储的内容一般包括网站用户上传的图片,附件,头像等,注意,网站的程序代码不要放NFS共享里,因为网站程序是开发运维人员统一发布的,不存在发布延迟问题,直接批量发布到Web节点提供访问比共享到NFS里访问效率更高。
企业生产集群为什么需要共享存储角色
这里通过图解给大家展示以下集群架构需要共享存储服务的理由。例如:A用户上传图片到Web1服务器,然后让B用户访问这张图片,结果B用户访问的请求分发到了Web2,因为Web2上没有这张图片,这就导致它无法看到A用户上传的图片,如果此时有一个共享存储,A用户上传图片的请求无论是分发到Web1还是Web2上,最终都会存储到共享存储上,而在B用户访问图片时,无论请求分发到Web1还是Web2上,最终也都会去共享存储上找,这样就可以访问到需要的资源了。这个共享存储的位置可以通过开源软件和商业硬件实现,互联网中小型集群架构会用普通PC服务器配置NFS网络文件系统实现。
生产环境就是企业正式环境也就是线上环境、测试环境、开发环境
负载均衡器,将用户的访问压力平均分摊给后方多个web服务器
Rw Read-write,表示可读写权限
Ro Read-only,表示只读权限
Sync (同步,实时)请求或吸入数据时,数据同步写入到NFS Server的硬盘后才返回
no_root_squash 访问NFS Server共享目录的用户如果是root,它对该共享目录具有root权限。
root_squash 如果访问目录的是root,则它的权限将被压缩成匿名用户。
all_squash 不管访问共享目录的用户身份如何,它的权限都被压缩成匿名用户
要部署NFS服务,需要安装下面的软件包
nfs-utils:
NFS服务的主程序。包括rps.nfsd,rpoc.mountd这两个daemons和相关文档说明,以及执行命令文件等。
Rpcbind:
centOS6.X下面RPC的主程序。NFS可以视为一个RPC程序之前,需要做好端口和功能的对应映射工作,这个映射工作就是由rpcbind服务来完成的。因此,在提供NFS服务之前必须先启动rpcbind服务才行。
Showmount ===> 查看网络文件能否挂载
Showmount -e 不自定ip就查看本地