NFS

一、NFS网络文件系统

1NFSnetwork file server)概述

主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或目录。在互联网中对企业应用服务,做集群架构后端的NFS进行数据共享。

2NFS在小企业中架构

在企业集群架构的工作场景中,NFS网络文件系统一般被用来存储共享视频,图片,附件等静态资源文件(是放在存储里的,典型的存储就是NFS),网站用户上传的文件都放在NFS里面,web服务器去访问存储。

小型网络公司应用很多,大公司会使用更为复杂的分布式文件系统,比如MFSGFS,DFS

 

3、集群

多台服务器共同作用来达到分散压力的目的。

4、一般企业的三种环境

生产环境:就是企业正式环境也就是线上环境

测试环境:做生产环境之前到测试环境进行测试

开发环境:开发做的环境

5、跳板机(jump server):

安全加固,也是映射的过程,运维人员通过VPN(秘密通道)到跳板机提供的虚拟账号、密码,然后跳板机映射成一个真实账号,但是运维人员并不指定真实的账号密码。

6、负载均衡器,

起到一个分摊压力的作用,然后发送给许多web服务器为客户服务。

7、跳板机后的两台服务器

1)监控服务器

通过监控服务器可以对远方的多个服务器进行预警和监控,得知整个线上系统的情况。

2)管理服务器

这个服务器中会装一些批量管理软件,ansible(小企业用)、saltstack(大企业用),可以对远方的多台服务器进行批量管理。

3)自动化运维

通过两个达到:批量管理软件、定时任务加脚本。

二、NFSweb

web里有网页目录,网页目录里有几个子目录static(静态目录)、upload;网络文件系统连接的,只是web里网页目录的其中的一个子目录(可以理解是Mount挂载)只挂载子目录,因为网页下面还要放代码,代码不放在nfs里。用户的“写”通过upload目录进到NFS里,“读”通过static目录进到NFS里。

三、企业生产集群为什么需要共享存储角色

 

 

通过网络的形式,存储服务器把多个web服务器通过TCP挂载到自己机器上,但是用的硬盘空间仍然是web服务器;并且可实现多个web服务器资源共享。

四、NFS原理

1、概述

NFS:通过网络的形式,存储服务器把多个web服务器通过TCP挂载到自己机器上,但是用的硬盘空间仍然是web服务器;并且可实现多个web服务器资源共享。

NFS是一个网络文件系统,有一个共享目录,先把本地目录进行共享,通过IP远程挂载,那客户端如何指定,这个远程系统提供的端口呢??

远程挂在命令:mount 10.0.0.7:/video /video  (对方目录  我方目录)

2NFS工作流程

1)首先用户访问网络程序,提出用户请求,这时NFS客户端通过RPC服务的获取NFS服务端的RPC服务的端口号并发出请求;

2)服务端启动NFS服务和授权网段,向RPC服务注册启动端口,然后将已注册的端口通知NFS客户端的RPC服务。

3这个时候客户端才知道服务端哪个端口提供数据传输

(4)NFS客户端与NFS服务端进行挂载

(5)然后TCP三次握手,连接到NFS服务。

其实客户端与服务端都有一个rpcbind服务,客户端是个socket进程,服务端的rpc是一个命令。

服务端需要装两个包:rpcbind nfs-utils

客户端也需要装一个包。nfs-utils

五、NFS共享流程

1、流程详解

/etc/init.d/rpcbind start  启动RPC

service rpcbind status   查看启动情况

rpcinfo               RPC信息

rpc是个socket进程,监听的都是111端口

/etc/init.d/nfs start      启动NFS

rpcinfo               再看rpc信息

如果不启动rpcbind服务,直接启动nfs服务会失败

service nfs stop        关闭NFS

现在需要写配置文件/etc/exports

/data 192.168.154.0/24(rw,sync)    /data目录共享,允许的网段连接,(读写权限,实时同步)

/etc/init.d/nfs start      启动NFS

showmount            查看网络文件能否挂载

showmount -e          不指明IP,就是查看本地

如果卡了没有结果,后面加个localhost代表本地

showmount -e localhost(或者后面加127.0.0.1也行)

mkdir /data

修改目录的属主(因为程序用户,NFS默认的程序用户nfsnobody

chown nfsnobody.nfsnobody /data

2、本地挂载共享

mount 192.168.200.105:/data /tmp

3、远程挂载共享

showmount -e 192.168.200.105 查看这个IP有没有网络文件系统提供挂载

mount 192.168.200.105:/data /tmp/

(如果挂载卡的话,可能是SSH通道出现问题)

需要修改ssh的配置文件

vim /etc/ssh/sshd_config

81GSSAPIAuthentication yes改成no

122 USEDNS no        DNS反向解析

service sshd reload           重启sshd服务

4、为什么写入/etc/fstab中会失败

netfs服务  强制让系统二次读取fstab配置文件

第一次启动fstab时候是没有网络的,要想让fstab文件里网络挂载有效,需要先开netfs这个服务

所以我们把网络挂载写到rc.local里,因为rc.locals是开机启动的第九步,在network之后,启动时候直接是有网络的;不像fstab,在第七步左右,用rc.local就不用netfs这个服务了。

原文地址:https://www.cnblogs.com/kakajiang/p/10009734.html