1. NFS服務(wù)簡(jiǎn)介
NFS是 Network File System的縮寫,即網(wǎng)絡(luò)文件存儲(chǔ)系統(tǒng),最早是由Sun 公司發(fā)展出來(lái)的,它最大的功能就是可以通過(guò)網(wǎng)絡(luò),讓不同的機(jī)器、不同的操作系統(tǒng)可以共享彼此的文件。 NFS客戶機(jī)可以將網(wǎng)絡(luò)中的NFS服務(wù)器共享的目錄掛載到本地端的文件系統(tǒng)中,在本地端的系統(tǒng)中來(lái)看,那個(gè)遠(yuǎn)程主機(jī)的目錄就像是自己的一個(gè)磁盤分區(qū)一樣,使用起來(lái)非常方便。 一般用來(lái)存儲(chǔ)共享視頻,圖片等靜態(tài)數(shù)據(jù)。
NFS的掛載原理:如下圖示,NFS服務(wù)器設(shè)置好共享目錄/home/nfs后,其他NFS客戶端就可以將該目錄掛載到自己文件系統(tǒng)的某個(gè)掛載點(diǎn)(可自己定義)。 掛載好后在客戶端本地就能夠看到服務(wù)端/home/nfs里的所有數(shù)據(jù)

NFS是通過(guò)網(wǎng)絡(luò)來(lái)進(jìn)行數(shù)據(jù)傳輸,因此有對(duì)應(yīng)的網(wǎng)絡(luò)端口。 那么客戶端是如何知道 NFS服務(wù)器端到底使用的是哪個(gè)端口呢? 這時(shí)就需要通過(guò)遠(yuǎn)程過(guò)程調(diào)用(Remote Procedure Call, RPC)協(xié)議來(lái)實(shí)現(xiàn)了!
RPC與NFS通訊原理:NFS支持的功能很多,不同的功能啟用的端口并不固定,客戶端要知道NFS服務(wù)器端的相關(guān)端口才能建立連接進(jìn)行數(shù)據(jù)傳輸,RPC就是用來(lái)統(tǒng)一管理NFS端口的,其對(duì)外的端口是111。 RPC會(huì)記錄NFS端口的信息,并且通知客戶端,讓客戶端可以連接到正常端口上去。
那么RPC是如何知道每個(gè)NFS功能的端口呢? 首先當(dāng)NFS啟動(dòng)后,會(huì)隨機(jī)的使用一些端口,然后NFS會(huì)向RPC去注冊(cè)這些端口,并記錄下來(lái),同時(shí)RPC會(huì)開(kāi)啟111端口,等待客戶端RPC的請(qǐng)求。 若客戶端有請(qǐng)求,那么服務(wù)器端的RPC就會(huì)將之前記錄的NFS端口信息告知客戶端。 如此客戶端就會(huì)獲取NFS服務(wù)器端的端口信息,進(jìn)行數(shù)據(jù)傳輸了。
注意:在啟動(dòng)NFS服務(wù)器之前,首先要啟動(dòng)RPC服務(wù)(即portmap服務(wù))否則NFS服務(wù)器就無(wú)法向RPC服務(wù)區(qū)注冊(cè)。 如果RPC服務(wù)重新啟動(dòng),原來(lái)注冊(cè)好的NFS端口數(shù)據(jù)會(huì)全部丟失,此時(shí)RPC服務(wù)管理的 NFS程序也要重啟以重新向RPC注冊(cè)。
NFS客戶端和服務(wù)器通訊過(guò)程:

- 首先服務(wù)器端啟動(dòng)RPC服務(wù),并開(kāi)啟111端口
- 服務(wù)器端啟動(dòng)NFS服務(wù),并向RPC注冊(cè)端口信息
- 客戶端啟動(dòng)RPC,向服務(wù)端的RPC服務(wù)請(qǐng)求服務(wù)端的NFS端口
- 服務(wù)端的RPC服務(wù)反饋NFS端口信息給客戶端
- 客戶端通過(guò)獲取的NFS端口來(lái)建立和服務(wù)端的NFS連接并進(jìn)行數(shù)據(jù)的傳輸
2. Linux下部署NFS服務(wù)
2.1 安裝NFS服務(wù)
使用如下命令安裝NFS服務(wù)和RPC服務(wù)
sudo apt-get install nfs-kernel-server rpcbind
安裝完成后,創(chuàng)建共享文件夾供nfs服務(wù)器使用,此處在用戶根目錄下創(chuàng)建了linux/nfs文件夾

配置nfs服務(wù)器共享目錄:打開(kāi)nfs配置文件/etc/exports,在末尾添加
/home/andyxi/linux/nfs *(rw,sync,no_root_squash)

修改完/etc/exports以后保存退出,重啟NFS服務(wù)
sudo /etc/init.d/nfs-kernel-server restart
2.2 NFS測(cè)試
這里使用 Ubuntu作為 NFS服務(wù)器端,Linux開(kāi)發(fā)板作為客戶端來(lái)進(jìn)行 NFS測(cè)試。 確保網(wǎng)絡(luò)環(huán)境正常,Ubuntu、Windows和開(kāi)發(fā)板能相互ping通
在ubuntu的/home/andyxi/linux/nfs目錄下創(chuàng)建test.c文件
vi test.c
在開(kāi)發(fā)板中創(chuàng)建一個(gè)目錄get,設(shè)置虛擬機(jī)IP并將NFS共享目錄掛載到get目錄中。 掛在成功后,即可在get目錄中看到test.c文件
mkdir get
mount -t nfs -o nolock,nfsvers=3 192.168.10.100:/home/andyxi/linux/nfs get/
通過(guò)df命令可查看掛載的NFS目錄,卸載NFS目錄使用umount命令

-
Linux
+關(guān)注
關(guān)注
88文章
11758瀏覽量
219005 -
服務(wù)器
+關(guān)注
關(guān)注
14文章
10251瀏覽量
91478 -
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
7401瀏覽量
129278 -
端口
+關(guān)注
關(guān)注
4文章
1104瀏覽量
33962 -
NFS
+關(guān)注
關(guān)注
1文章
56瀏覽量
26996
發(fā)布評(píng)論請(qǐng)先 登錄
Linux開(kāi)發(fā)_CentOS7.4服務(wù)器搭建NFS、NGINX服務(wù)器,安裝ffmpeg、Qt環(huán)境
【AWorks試用體驗(yàn)】+NFS服務(wù)器搭建
TQ210 NFS服務(wù)器的配置和使用
Linux 配置 NFS進(jìn)行服務(wù)器端配置,重啟NFS時(shí)報(bào)錯(cuò),請(qǐng)問(wèn)這是為什么?
基于spring boot的linux服務(wù)器部署方法
ubuntu下搭建NFS服務(wù)器
Jenkins遠(yuǎn)程部署Linux服務(wù)器的過(guò)程
RK3568 Linux鏡像支持NFS服務(wù)設(shè)計(jì)實(shí)現(xiàn)
嵌入式Linux NFS方式下應(yīng)用程序的實(shí)現(xiàn)
非常全面的LINUX NFS文檔
Linux應(yīng)用基礎(chǔ)教程之Linux的網(wǎng)絡(luò)服務(wù)資料概述
嵌入式Linux NFS掛載
嵌入式linux實(shí)現(xiàn)mount掛載nfs服務(wù)器拷貝文件
Linux下部署TFTP服務(wù)
如何實(shí)現(xiàn)NFS服務(wù)搭建
Linux下部署NFS服務(wù)
評(píng)論