1. NFS服務簡介
NFS是 Network File System的縮寫,即網絡文件存儲系統(tǒng),最早是由Sun 公司發(fā)展出來的,它最大的功能就是可以通過網絡,讓不同的機器、不同的操作系統(tǒng)可以共享彼此的文件。 NFS客戶機可以將網絡中的NFS服務器共享的目錄掛載到本地端的文件系統(tǒng)中,在本地端的系統(tǒng)中來看,那個遠程主機的目錄就像是自己的一個磁盤分區(qū)一樣,使用起來非常方便。 一般用來存儲共享視頻,圖片等靜態(tài)數據。
NFS的掛載原理:如下圖示,NFS服務器設置好共享目錄/home/nfs后,其他NFS客戶端就可以將該目錄掛載到自己文件系統(tǒng)的某個掛載點(可自己定義)。 掛載好后在客戶端本地就能夠看到服務端/home/nfs里的所有數據
NFS是通過網絡來進行數據傳輸,因此有對應的網絡端口。 那么客戶端是如何知道 NFS服務器端到底使用的是哪個端口呢? 這時就需要通過遠程過程調用(Remote Procedure Call, RPC)協(xié)議來實現(xiàn)了!
RPC與NFS通訊原理:NFS支持的功能很多,不同的功能啟用的端口并不固定,客戶端要知道NFS服務器端的相關端口才能建立連接進行數據傳輸,RPC就是用來統(tǒng)一管理NFS端口的,其對外的端口是111。 RPC會記錄NFS端口的信息,并且通知客戶端,讓客戶端可以連接到正常端口上去。
那么RPC是如何知道每個NFS功能的端口呢? 首先當NFS啟動后,會隨機的使用一些端口,然后NFS會向RPC去注冊這些端口,并記錄下來,同時RPC會開啟111端口,等待客戶端RPC的請求。 若客戶端有請求,那么服務器端的RPC就會將之前記錄的NFS端口信息告知客戶端。 如此客戶端就會獲取NFS服務器端的端口信息,進行數據傳輸了。
注意:在啟動NFS服務器之前,首先要啟動RPC服務(即portmap服務)否則NFS服務器就無法向RPC服務區(qū)注冊。 如果RPC服務重新啟動,原來注冊好的NFS端口數據會全部丟失,此時RPC服務管理的 NFS程序也要重啟以重新向RPC注冊。
NFS客戶端和服務器通訊過程:
- 首先服務器端啟動RPC服務,并開啟111端口
- 服務器端啟動NFS服務,并向RPC注冊端口信息
- 客戶端啟動RPC,向服務端的RPC服務請求服務端的NFS端口
- 服務端的RPC服務反饋NFS端口信息給客戶端
- 客戶端通過獲取的NFS端口來建立和服務端的NFS連接并進行數據的傳輸
2. Linux下部署NFS服務
2.1 安裝NFS服務
使用如下命令安裝NFS服務和RPC服務
sudo apt-get install nfs-kernel-server rpcbind
安裝完成后,創(chuàng)建共享文件夾供nfs服務器使用,此處在用戶根目錄下創(chuàng)建了linux/nfs文件夾
配置nfs服務器共享目錄:打開nfs配置文件/etc/exports,在末尾添加
/home/andyxi/linux/nfs *(rw,sync,no_root_squash)
修改完/etc/exports以后保存退出,重啟NFS服務
sudo /etc/init.d/nfs-kernel-server restart
2.2 NFS測試
這里使用 Ubuntu作為 NFS服務器端,Linux開發(fā)板作為客戶端來進行 NFS測試。 確保網絡環(huán)境正常,Ubuntu、Windows和開發(fā)板能相互ping通
在ubuntu的/home/andyxi/linux/nfs目錄下創(chuàng)建test.c文件
vi test.c
在開發(fā)板中創(chuàng)建一個目錄get,設置虛擬機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
+關注
關注
87文章
11123瀏覽量
207906 -
服務器
+關注
關注
12文章
8701瀏覽量
84545 -
操作系統(tǒng)
+關注
關注
37文章
6545瀏覽量
122743 -
端口
+關注
關注
4文章
916瀏覽量
31856 -
NFS
+關注
關注
1文章
52瀏覽量
26051
發(fā)布評論請先 登錄
相關推薦
評論