NFS詳解(概念+實驗演示)

目錄

NFS概念

一、NFS服務介紹

1.1什麼是NFS?

1.2NFS的文件傳輸

1.3什麼是RPC服務?

二、NFS通訊原理

2.1RPC於NFS如何通訊?

2.2RPC又是如何知道每個NFS功能的端口?

2.3什麼是portmap?

三、NFS的優缺點

3.1優點

3.2缺點

四、部署

4.1包安裝

4.2掛載

4.2.2 三種掛載方式:

實驗演示

一、參數詳解

二、練習:


 

NFS概念

一、NFS服務介紹

1.1什麼是NFS?

NFS就是Network File System的縮寫,它最大的功能就是可以通過網絡,讓不同的機器、不同的操作系統可以共享彼此的文件

1.2NFS的文件傳輸

NFS這個服務器的端口開在2049,但由於文件系統非常複雜。因此NFS還有其他的程序去啓動額外的端口,這些額外的用來傳輸數據的端口是隨機選擇的,是小於1024的端口;既然是隨機的那麼客戶端又是如何知道NFS服務器端到底使用的是哪個端口呢?這時就需要通過遠程過程調用(Remote Procedure Call,RPC)協議來實現了.RPC服務(portmap 或rpcbind服務)

1.3什麼是RPC服務?

RPC(Remote Procedure Call)即遠程過程調用。RPC 最主要的功能就是在指定每個 NFS 功能所對應的 port number ,並且回報給客戶端,讓客戶端可以連結到正確的port上去

 

二、NFS通訊原理

2.1RPC於NFS如何通訊?

       由於NFS啓用的功能相當多,所以對應的端口不固定,需要RPC來統一管理NFS端口,PRC最主要的功能就是指定每個NFS功能所對應的port number,並且通知客戶端,讓客戶端可以連接到正常端口上去。

2.2RPC又是如何知道每個NFS功能的端口?

首先當NFS啓動後,就會隨機的使用一些端口,然後NFS就會向RPC去註冊這些端口,RPC就會記錄下這些端口,並且RPC會開啓111端口,等待客戶端RPC的請求,如果客戶端有請求,那麼服務器端的RPC就會將之前記錄的NFS端口信息告知客戶端。如此客戶端就會獲取NFS服務器端的端口信息,就會以實際端口進行數據的傳輸了。

提示:在啓動NFS SERVER之前,首先要啓動RPC服務(即portmap服務,下同)否則NFS SERVER就無法向RPC服務區註冊,另外,如果RPC服務重新啓動,原來已經註冊好的NFS端口數據就會全部丟失。因此此時RPC服務管理的NFS程序也要重新啓動以重新向RPC註冊。

特別注意:一般修改NFS主配置文件後,是不需要重啓NFS的,直接在命令執行/etc/init.d/nfs  reload或exportfs –rv即可使修改的/etc/exports生效。具體往下看,後面有操作演示。

2.3什麼是portmap?

功能:主要是把RPC程序號轉化爲Internet的端口號。

特點:只在第一次建立連接時候幫助網絡應用程序找到正確的port,當雙方正確連接時,端口就和應用綁定,portmap就無用。相當於媒婆、中介。

       

 

 

圖解通訊過程

 

1)首先服務器端啓動RPC服務,並開啓111端口

2)服務器端啓動NFS服務,並向RPC註冊端口信息

3)客戶端啓動RPCportmap服務),向服務端的RPC(portmap)服務請求服務端的NFS端口

4)服務端的RPC(portmap)服務反饋NFS端口信息給客戶端。

5)客戶端通過獲取的NFS端口來建立和服務端的NFS連接並進行數據的傳輸。

 

 

三、NFS的優缺點

3.1優點

a.節省本地存儲空間將常用的數據存放在一臺服務器可以通過網絡訪問

b.簡單容易上手

c.方便部署非常快速,維護十分簡單

3.2缺點

a.侷限性容易發生單點故障,及server機宕機了所有客戶端都不能訪問

b.在高併發下NFS效率/性能有限

c.客戶端沒用用戶認證機制,且數據是通過明文傳送,安全性一般(一般建議在局域網內使用)

d.NFS的數據是明文的,對數據完整性不做驗證

e.多臺機器掛載NFS服務器時,連接管理維護麻煩

 

 

四、部署

4.1包安裝

nfs-utils:NFS主程序

rpcbind:PRC主程序

4.2掛載

4.2.1常用參數:

 

4.2.2 三種掛載方式:

  1. 手動掛載(臨時掛載)
  2. 開機自動掛載
  3. autofs掛載(自動掛載)

 

下面將根據詳細的實驗演示來詳解NFS的操作與掛載

 

實驗演示

一、參數詳解

服務器端

1.進入主配置文件中

a)聲明需要共享的目錄

b)*代表當前主機的IP地址

c)設置權限爲只讀或讀寫

2.重新加載配置文件,查看本主機的掛載目錄爲/data

 

客戶端

1.將NFS服務器的共享目錄手動掛載到/mnt下

  • 由於共享目錄是隻讀權限,則不能創建、修改(注意這裏提示的是文件系統的權限拒絕)

注:

1.若更改服務器的主配置文件中的內容,客戶端則不需要再次掛載,因爲掛載的目錄就是最新的(更改後的,類似於棧)

2.客戶端的root用戶去向共享目錄添加文件時,映射到的是共享目錄的其他用戶,即應該站在服務器的角度。

  • 測試:

首先,更改服務器的共享目錄權限,將其他用戶的訪問增加寫權限,然後再客戶端創建一個1文件,其所屬用戶於所屬組都爲nfsnobody

服務器端:

客戶端:

3.若客戶端有一個用戶在共享目錄下創建文件,客戶端顯示的所屬用戶於所屬組是用戶本身,而服務器端顯示的是uid與gid,包括上一個案例中的nfsnobody其實就是uid爲65534的一個用戶。

客戶端:

服務器端:

若此時,在服務器端創建一個hehe用戶,其uid就是1001,則根據linux中的uid匹配原則,客戶端的haha用戶創建的ha1文件,在服務器端顯示的是hehe用戶創建的

案例詳解參數:

若在服務器端指定權限的uid,gid爲1005,客戶端上uid不是1005的用戶創建的文件都是1005創建的,這是因爲服務器的主配置文件中指定了NFS文件系統的權限,但是如果客戶端有一個uid爲1005的用戶,那麼之前創建的文件都變成這個用戶的了,服務器端仍是1005的uid創建的文件,同理,若服務器端有一個uid爲1005的用戶,之前創建的文件都變成uid爲1005這個用戶創建的了

客戶端:

 

 

假設情況

客戶端

服務器端

總之,文件的所屬組,所屬用戶是根據本地的uid,gid來識別的,這點要牢記

二、練習:

架設一臺NFS服務器,並按照以下要求配置

1、開放/nfs/shared目錄,供所有用戶查詢資料 ro

2、開放/nfs/upload目錄,爲192.168.211.0/24網段主機可以上傳目錄,rw   o=rwx並將所有用戶及所屬的用戶組映射爲nfs-upload,UIDGID均爲210

3、將/home/tom目錄僅共享給192.168.211.131這臺主機,並只有用戶tom可以完全訪問該目錄

 

分析:

第一個文件的權限是所有用戶都可以查詢資料 則保持文件創建時的初始權限 755

第二個文件的權限是指定網段的用戶可以上傳文件,則其他用戶有讀寫執行權限  757;參數設置含義是客戶端上傳的文件在服務器上都是以uid,gid爲210的來進行處理,且都爲nfs-upload用戶與組,所以要在服務器上創建uid,gid爲210的所屬用戶與組

第三個文件的權限是隻有tom用戶可以訪問,即其他用戶是沒有權限的 750

以上都是再目錄權限層更改操作權限

 

服務器端配置:

通過下面的這條命令使服務器端讀取配置了的文件

創建uid,gid爲210的nfs-upload用戶,tom用戶

 

創建文件後,更改權限

查看掛載的文件

 

客戶端進行測試:

首先,在服務器上創建一些用於測試的文件

 

客戶端上創建文件並掛載

創建/shared,掛載的是NFS服務器的/nfs/shared

創建/upload文件,掛載的是NFS服務器的/nfs/upload

 

在131主機上創建/tom 文件,掛載的是NFS服務器的/home/tom

 

測試:

1.不能再客戶端的shared文件下創建文件是因爲服務器端對此文件的權限是隻讀,這是文件系統層的拒絕

2.再客戶端創建一個文件,由於映射關係的存在,則服務器端的此文件的所屬用戶與組應該是nfs-upload,而客戶端顯示的仍然是服務器設置的匿名用戶創建文件時的uid,gid都爲210

 

3.由於只有tom用戶纔可以訪問這個tom文件夾,所以客戶端的root也不能cd到tom文件夾下

tem用戶可以進入tom文件夾內


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章