一、NFS网络文件系统
1、NFS(network file server)概述
主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或目录。在互联网中对企业应用服务,做集群架构后端的NFS进行数据共享。
2、NFS在小企业中架构
在企业集群架构的工作场景中,NFS网络文件系统一般被用来存储共享视频,图片,附件等静态资源文件(是放在存储里的,典型的存储就是NFS),网站用户上传的文件都放在NFS里面,web服务器去访问存储。
小型网络公司应用很多,大公司会使用更为复杂的分布式文件系统,比如MFS,GFS,DFS。
3、集群
多台服务器共同作用来达到分散压力的目的。
4、一般企业的三种环境
生产环境:就是企业正式环境也就是线上环境
测试环境:做生产环境之前到测试环境进行测试
开发环境:开发做的环境
5、跳板机(jump server):
安全加固,也是映射的过程,运维人员通过VPN(秘密通道)到跳板机提供的虚拟账号、密码,然后跳板机映射成一个真实账号,但是运维人员并不指定真实的账号密码。
6、负载均衡器,
起到一个分摊压力的作用,然后发送给许多web服务器为客户服务。
7、跳板机后的两台服务器
(1)监控服务器
通过监控服务器可以对远方的多个服务器进行预警和监控,得知整个线上系统的情况。
(2)管理服务器
这个服务器中会装一些批量管理软件,ansible(小企业用)、saltstack(大企业用),可以对远方的多台服务器进行批量管理。
(3)自动化运维
通过两个达到:批量管理软件、定时任务加脚本。
二、NFS与web
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 (对方目录 我方目录)
2、NFS工作流程
(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
81行GSSAPIAuthentication 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这个服务了。