1. NFS服務(wù)簡介
NFS是 Network File System的縮寫,即網(wǎng)絡(luò)文件存儲系統(tǒng),最早是由Sun 公司發(fā)展出來的,它最大的功能就是可以通過網(wǎng)絡(luò),讓不同的機(jī)器、不同的操作系統(tǒng)可以共享彼此的文件。 NFS客戶機(jī)可以將網(wǎng)絡(luò)中的NFS服務(wù)器共享的目錄掛載到本地端的文件系統(tǒng)中,在本地端的系統(tǒng)中來看,那個遠(yuǎn)程主機(jī)的目錄就像是自己的一個磁盤分區(qū)一樣,使用起來非常方便。 一般用來存儲共享視頻,圖片等靜態(tài)數(shù)據(jù)。
NFS的掛載原理:如下圖示,NFS服務(wù)器設(shè)置好共享目錄/home/nfs后,其他NFS客戶端就可以將該目錄掛載到自己文件系統(tǒng)的某個掛載點(diǎn)(可自己定義)。 掛載好后在客戶端本地就能夠看到服務(wù)端/home/nfs里的所有數(shù)據(jù)
NFS是通過網(wǎng)絡(luò)來進(jìn)行數(shù)據(jù)傳輸,因此有對應(yīng)的網(wǎng)絡(luò)端口。 那么客戶端是如何知道 NFS服務(wù)器端到底使用的是哪個端口呢? 這時就需要通過遠(yuǎn)程過程調(diào)用(Remote Procedure Call, RPC)協(xié)議來實(shí)現(xiàn)了!
RPC與NFS通訊原理:NFS支持的功能很多,不同的功能啟用的端口并不固定,客戶端要知道NFS服務(wù)器端的相關(guān)端口才能建立連接進(jìn)行數(shù)據(jù)傳輸,RPC就是用來統(tǒng)一管理NFS端口的,其對外的端口是111。 RPC會記錄NFS端口的信息,并且通知客戶端,讓客戶端可以連接到正常端口上去。
那么RPC是如何知道每個NFS功能的端口呢? 首先當(dāng)NFS啟動后,會隨機(jī)的使用一些端口,然后NFS會向RPC去注冊這些端口,并記錄下來,同時RPC會開啟111端口,等待客戶端RPC的請求。 若客戶端有請求,那么服務(wù)器端的RPC就會將之前記錄的NFS端口信息告知客戶端。 如此客戶端就會獲取NFS服務(wù)器端的端口信息,進(jìn)行數(shù)據(jù)傳輸了。
注意:在啟動NFS服務(wù)器之前,首先要啟動RPC服務(wù)(即portmap服務(wù))否則NFS服務(wù)器就無法向RPC服務(wù)區(qū)注冊。 如果RPC服務(wù)重新啟動,原來注冊好的NFS端口數(shù)據(jù)會全部丟失,此時RPC服務(wù)管理的 NFS程序也要重啟以重新向RPC注冊。
NFS客戶端和服務(wù)器通訊過程:
- 首先服務(wù)器端啟動RPC服務(wù),并開啟111端口
- 服務(wù)器端啟動NFS服務(wù),并向RPC注冊端口信息
- 客戶端啟動RPC,向服務(wù)端的RPC服務(wù)請求服務(wù)端的NFS端口
- 服務(wù)端的RPC服務(wù)反饋NFS端口信息給客戶端
- 客戶端通過獲取的NFS端口來建立和服務(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ù)器共享目錄:打開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測試
這里使用 Ubuntu作為 NFS服務(wù)器端,Linux開發(fā)板作為客戶端來進(jìn)行 NFS測試。 確保網(wǎng)絡(luò)環(huán)境正常,Ubuntu、Windows和開發(fā)板能相互ping通
在ubuntu的/home/andyxi/linux/nfs目錄下創(chuàng)建test.c文件
vi test.c
在開發(fā)板中創(chuàng)建一個目錄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/
通過df命令可查看掛載的NFS目錄,卸載NFS目錄使用umount命令
-
Linux
+關(guān)注
關(guān)注
87文章
11292瀏覽量
209323 -
服務(wù)器
+關(guān)注
關(guān)注
12文章
9123瀏覽量
85324 -
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
6801瀏覽量
123283 -
端口
+關(guān)注
關(guān)注
4文章
963瀏覽量
32051 -
NFS
+關(guān)注
關(guān)注
1文章
53瀏覽量
26101
發(fā)布評論請先 登錄
相關(guān)推薦
評論