1、什么是NFS?
全称 network file system 网络文件系统
通过【网络】存储和组织文件的一种方法或机制。
1)什么是文件系统?
ext4,xfs就是文件系统,存储和组织文件的一种方法或机制,就是一个软件。本地文件系统。
数据组织结构,目录,子目录,文件。
2)网络存储
通过【网络】存储和组织文件的一种方法或机制。
2、为什么要用网络共享存储?
前端所有的应用服务器接收到用户上传的图片、文件、视频,都会统一
的放到后端的存储上。
为什么要共享?所有节点服务器都需要将内容存到存储上,取的统一来取。
3、共享存储的种类
传统存储:
早期简存储系统就是NFS,NFS性能不太高。单点,大规模高并发的访问。5000万PV/日PV
中小型企业,阿里云服务的NAS服务
大型存储厂商:EMC、Netapp 几十万。
艺龙旅行网 存储用的EMC 传统企业。
硬件存储:传统企业:稳定、2台 双主机头 几十块硬盘 RAID10。
BAT 曾经用硬件,超贵、
阿里云 去IOE Ibm Orace EMC
分布式存储:为高并发、大数据量而生
大型企业会用分布式存储FastDFS、Ceph、GlsterFS、Mfs
对象存储:
阿里云OSS对象存储。
块存储:
【预习】----上课----练习------复习
记忆方法 7步曲:
耳朵听 算一遍
眼睛看 算二遍
勤练习 算三遍
最低层次学习方式:
勤思考 算四遍
勤讨论 算5遍(主动学习)
工作实践 算6遍
教会他人 算7遍
新手:实践===》理论
老手:理论==>实践(实践===》理论)
4、NFS工作原理
NFS网络文件系统
启动NFS服务,而且还有启动很多端口。
NFS功能,需要很多服务。每个服务都有端口,而且经常变化。
如何让客户端找到这些端口呢?就需要一个经纪人(rpc服务)
NFS服务:
1、NFS服务(有很多进程和端口),把自己的端口告诉RPC。
2、RPC服务(对外固定端口111)
客户端请求NFS服务,先找RPC 111,查到NFS的端口,发给客户。
原理见图:
5、环境准备
服务器系统 服务器角色 内外网IP
CentOS 7.9 x86_64 NFS服务器端(nfs01) eth0:10.0.0.31 eth1:172.16.1.31 ====>主角
CentOS 7.9 x86_64 NFS客户端1(web01) eth0:10.0.0.7 eth1:172.16.1.7
CentOS 7.9 x86_64 NFS客户端2(backup) eth0:10.0.0.41 eth1:172.16.1.41
[root@nfs01 ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
[root@nfs01 ~]# uname -r
3.10.0-1160.31.1.el7.x86_64
[root@nfs01 ~]# uname -m
x86_64
[root@nfs01 ~]# uname -n
nfs01
[root@nfs01 ~]# uname -a
Linux nfs01 3.10.0-1160.31.1.el7.x86_64 #1 SMP Thu Jun 10 13:32:12 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
6.NFS软件列表
NFS软件列表
要部署NFS服务,需要安装下面的软件包:
nfs-utils :NFS服务的主程序,包括rpc.nfsd、rpc.mountd这两个daemons和相关文档说明,以及执行命令文件等。
rpcbind :CentOS6/7下面RPC主程序。NFS可视为一个RPC程序,在启动任何一个RPC程序之前,需要做好端口和功能的对应映射工作,这个映射工作就是由rpcbind服务来完成的。因此,在提供NFS服务之前必须先启动rpcbind服务才行。
7.安装
服务器端和客户端都要安装:
rpm -qa nfs-utils rpcbind
yum install nfs-utils rpcbind -y
rpm -qa nfs-utils rpcbind
[root@nfs01 ~]# rpm -qa nfs-utils rpcbind
nfs-utils-1.3.0-0.61.el7.x86_64
rpcbind-0.2.0-47.el7.x86_64
启动RPC
[root@nfs01 ~]# systemctl start rpcbind.service
[root@nfs01 ~]# systemctl enable rpcbind.service
[root@nfs01 ~]# systemctl list-unit-files|grep rpcbind.service
看看有没有注册的端口
[root@nfs01 ~]# rpcinfo -p 127.0.0.1
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
启动NFS
[root@nfs01 ~]# systemctl start nfs
[root@nfs01 ~]# systemctl enable nfs
[root@nfs01 ~]# systemctl list-unit-files|grep nfs.service
[root@nfs01 ~]# rpcinfo -p 127.0.0.1
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 44521 status
100024 1 tcp 59204 status
100005 1 udp 20048 mountd
100005 1 tcp 20048 mountd
100005 2 udp 20048 mountd
100005 2 tcp 20048