1.什么是NFS?
1)NFS全稱:network file system(網(wǎng)絡(luò)文件系統(tǒng))
? ?? 通過網(wǎng)絡(luò)存儲(chǔ)和組織文件的一種方法或機(jī)制。
2)為什么要用它臀稚?
? ?? 前端所有的應(yīng)用服務(wù)器接收到用戶上傳的圖片、文件蜈出、視頻秩伞,都會(huì)統(tǒng)一的放到后端的存儲(chǔ)上。
3)為什么要共享饮睬?
? ?? 所有節(jié)點(diǎn)服務(wù)器都需要將內(nèi)容存到存儲(chǔ)服務(wù)器上租谈,取得時(shí)候統(tǒng)一來取。
4)共享存儲(chǔ)的種類:
? ?? 單點(diǎn)存儲(chǔ)系統(tǒng)就是NFS捆愁,適用于中小型企業(yè)割去,比如:阿里云服務(wù)的NAS服務(wù)以及OSS對(duì)象存儲(chǔ),但是NFS性能不太高昼丑。
? ? 大型企業(yè)會(huì)用分布式存儲(chǔ)FastDFS呻逆、Ceph、GlsterFS菩帝、Mfs咖城。
5)舉例:
大型存儲(chǔ)廠商:EMC茬腿、Netapp(幾十萬)。
藝龍旅行網(wǎng):存儲(chǔ)用的EMC宜雀,傳統(tǒng)企業(yè)切平。
硬件存儲(chǔ):傳統(tǒng)企業(yè)==>穩(wěn)定、2臺(tái)州袒、雙主機(jī)頭揭绑、幾十塊硬盤RAID10。
2.NFS工作原理
2.1NFS網(wǎng)絡(luò)文件系統(tǒng)
啟動(dòng)NFS服務(wù)郎哭,而且還要啟動(dòng)很多端口
NFS功能:需要很多服務(wù)他匪。每個(gè)服務(wù)都有端口铝宵,而且經(jīng)常變化
如何讓客戶端找到這些端口呢栅干?就需要一個(gè)經(jīng)紀(jì)人(rpc服務(wù))
2.1NFS服務(wù):
NFS服務(wù)(有很多進(jìn)程和端口)
RPC服務(wù)(對(duì)外固定端口111)
客戶端請(qǐng)求NFS服務(wù),先找RPC 111黄橘,查找NFS的端口亥至,發(fā)給客戶悼沈。
2.3原理圖:
3.NFS企業(yè)級(jí)存儲(chǔ)服務(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è)置開啟自啟動(dòng):
[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ù):(任選一個(gè)即可)
[root@nfs01 /]#systemctl reload nfs??????? <==生產(chǎn)場(chǎng)景必須要實(shí)現(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)啟動(dòng)服務(wù)并設(shè)置開機(jī)自啟動(dòng)
[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)???????????????? 容量? 已用? 可用已用% 掛載點(diǎn)
172.16.1.31:/data???????? 18G?2.0G?? 16G?? 11% /data
[root@web01 ~]#touch /data/liuhuan.txt
[root@web01 ~]# ls/data
liuhuan.txt