1.什么是NFS?
1)NFS全称:network file system(网络文件系统)
通过网络存储和组织文件的一种方法或机制。
2)为什么要用它?
前端所有的应用服务器接收到用户上传的图片、文件、视频,都会统一的放到后端的存储上。
3)为什么要共享?
所有节点服务器都需要将内容存到存储服务器上,取得时候统一来取。
4)共享存储的种类:
单点存储系统就是NFS,适用于中小型企业,比如:阿里云服务的NAS服务以及OSS对象存储,但是NFS性能不太高。
大型企业会用分布式存储FastDFS、Ceph、GlsterFS、Mfs。
5)举例:
大型存储厂商:EMC、Netapp(几十万)。
艺龙旅行网:存储用的EMC,传统企业。
硬件存储:传统企业==>稳定、2台、双主机头、几十块硬盘RAID10。
2.NFS工作原理
2.1NFS网络文件系统
启动NFS服务,而且还要启动很多端口
NFS功能:需要很多服务。每个服务都有端口,而且经常变化
如何让客户端找到这些端口呢?就需要一个经纪人(rpc服务)
2.1NFS服务:
NFS服务(有很多进程和端口)
RPC服务(对外固定端口111)
客户端请求NFS服务,先找RPC 111,查找NFS的端口,发给客户。
2.3原理图:
3.NFS企业级存储服务搭建
3.1nfs01中(服务端)
1)安装服务:
[root@nfs01 /]# yuminstall nfs-utils rpcbind -y
[root@nfs01 /]# rpm-qa nfs-utils rpcbind
rpcbind-0.2.0-47.el7.x86_64
nfs-utils-1.3.0-0.61.el7.x86_64
2)开启服务并设置开启自启动:
[root@nfs01 /]#systemctl start rpcbind.service
[root@nfs01 /]#systemctl enable rpcbind.service
[root@nfs01 /]#rpcinfo -p 127.0.0.1
programvers 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
[root@nfs01 /]#systemctl start nfs
[root@nfs01 /]#systemctl enable nfs
[root@nfs01 /]#rpcinfo -p 127.0.0.1
program vers proto port service
100000 4 tcp 111 portmapper
……
……
100003 3 tcp 2049 nfs
100021 4 tcp 20579 nlockmgr
[root@nfs01 /]#netstat -lnup|egrep "rpc|nfs"
udp 0 0 0.0.0.0:53301 0.0.0.0:* 7893/rpc.statd
udp 0 0 0.0.0.0:20048 0.0.0.0:* 7946/rpc.mountd
udp 0 0 0.0.0.0:821 0.0.0.0:* 7854/rpcbind
udp 0 0 127.0.0.1:863 0.0.0.0:* 7893/rpc.statd
udp6 0 0 :::20048 :::* 7946/rpc.mountd
udp6 0 0 :::821 :::* 7854/rpcbind
udp6 0 0 :::26458 :::* 7893/rpc.statd
3)添加配置文件:
[root@nfs01 /]# vim/etc/exports
[root@nfs01 /]# tail-1 /etc/exports
/data 172.16.1.0/24(rw,sync)
[root@nfs01 /]#mkdir -p /data
[root@nfs01 /]# ls-ld /data
drwxr-xr-x 2 root root 6 4月 16 09:32 /data
[root@nfs01 /]#chown -R nfsnobody.nfsnobody /data
[root@nfs01 /]# ls-ld /data
drwxr-xr-x 2 nfsnobody nfsnobody 6 4月 16 09:32 /data
4)重启服务:(任选一个即可)
[root@nfs01 /]#systemctl reload nfs <==生产场景必须要实现平滑重启
[root@nfs01 /]#exportfs -r
5)检查:
[root@nfs01 /]#showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data 172.16.1.0/24
3.2切换到web01(客户端)
1)安装
yum install nfs-utils rpcbind -y
rpm -qa nfs-utils rpcbind
2)启动服务并设置开机自启动
[root@web01 ~]#systemctl start rpcbind
[root@web01 ~]#systemctl enable rpcbind
3)检查端口
[root@web01 ~]#netstat -lntup|grep rpc
udp 0 0 0.0.0.0:875 0.0.0.0:* 7908/rpcbind
udp6 0 0 :::875 :::* 7908/rpcbind
[root@web01 ~]# ps-ef|grep rpcbind
rpc 7908 1 0 12:17 ? 00:00:00 /sbin/rpcbind -w
root 7932 7523 0 12:18 pts/0 00:00:00 grep --color=auto rpcbin
4)查看NFS服务器提供的共享目录
[root@web01 ~]#showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data 172.16.1.0/24
5)挂载:
[root@web01 ~]#mount -t nfs 172.16.1.31:/data /data
[root@web01 ~]# df-h|tail -1
文件系统 容量 已用 可用已用% 挂载点
172.16.1.31:/data 18G 2.0G 16G 11% /data
[root@web01 ~]#touch /data/liuhuan.txt
[root@web01 ~]# ls/data
liuhuan.txt