1.什么是NFS?
1)NFS全稱:network file system(網(wǎng)絡(luò)文件系統(tǒng))
? ?? 通過網(wǎng)絡(luò)存儲和組織文件的一種方法或機制。
2)為什么要用它?
? ?? 前端所有的應(yīng)用服務(wù)器接收到用戶上傳的圖片、文件、視頻,都會統(tǒng)一的放到后端的存儲上。
3)為什么要共享?
? ?? 所有節(jié)點服務(wù)器都需要將內(nèi)容存到存儲服務(wù)器上,取得時候統(tǒng)一來取。
4)共享存儲的種類:
? ?? 單點存儲系統(tǒng)就是NFS,適用于中小型企業(yè),比如:阿里云服務(wù)的NAS服務(wù)以及OSS對象存儲,但是NFS性能不太高。
? ? 大型企業(yè)會用分布式存儲FastDFS、Ceph、GlsterFS、Mfs。
5)舉例:
大型存儲廠商:EMC、Netapp(幾十萬)。
藝龍旅行網(wǎng):存儲用的EMC,傳統(tǒng)企業(yè)。
硬件存儲:傳統(tǒng)企業(yè)==>穩(wěn)定、2臺、雙主機頭、幾十塊硬盤RAID10。
2.NFS工作原理
2.1NFS網(wǎng)絡(luò)文件系統(tǒng)
啟動NFS服務(wù),而且還要啟動很多端口
NFS功能:需要很多服務(wù)。每個服務(wù)都有端口,而且經(jīng)常變化
如何讓客戶端找到這些端口呢?就需要一個經(jīng)紀人(rpc服務(wù))
2.1NFS服務(wù):
NFS服務(wù)(有很多進程和端口)
RPC服務(wù)(對外固定端口111)
客戶端請求NFS服務(wù),先找RPC 111,查找NFS的端口,發(fā)給客戶。
2.3原理圖:


3.NFS企業(yè)級存儲服務(wù)搭建
3.1nfs01中(服務(wù)端)
1)安裝服務(wù):
[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)開啟服務(wù)并設(shè)置開啟自啟動:
[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)重啟服務(wù):(任選一個即可)
[root@nfs01 /]#systemctl reload nfs??????? <==生產(chǎn)場景必須要實現(xiàn)平滑重啟
[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)啟動服務(wù)并設(shè)置開機自啟動
[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服務(wù)器提供的共享目錄
[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
文件系統(tǒng)???????????????? 容量? 已用? 可用已用% 掛載點
172.16.1.31:/data???????? 18G?2.0G?? 16G?? 11% /data
[root@web01 ~]#touch /data/liuhuan.txt
[root@web01 ~]# ls/data
liuhuan.txt