(29)網路檔案系統

2022-08-17 05:15:16 字數 1863 閱讀 2270

一、簡介

nfs(網路檔案系統)為客戶程式提供透明的檔案訪問。nfs的基礎是sun rpc:遠端過程呼叫。客戶程式使用nfs不需要做什麼特別的工作,當nfs核心檢測到被訪問的檔案位於乙個nfs伺服器時,就會自動產生乙個訪問該檔案的rpc呼叫。

遠端過程呼叫(remote procedure call)是一種不同的網路程式設計方法。客戶程式編寫時只是呼叫了伺服器程式提供的函式。在乙個rpc過程中,實際上發生了下面一些過程:

(1) 當客戶程式呼叫遠端的過程時,它實際上只呼叫了乙個位於本機上的由rpc程式生成的函式,這個函式稱為客戶殘樁(stub),客戶殘樁將過程的引數封裝為乙個網路報文並將該報文傳送給伺服器程式。  

(2) 伺服器主機上的乙個伺服器殘樁負責接收這個網路報文,它從網路報文中提取引數,然後呼叫伺服器程序。

(3) 當伺服器函式返回時,它返回到伺服器殘樁。伺服器殘樁提取返回值,把返回值封裝成乙個網路報文,然後將報文傳送給客戶殘樁。

(4) 客戶殘樁從接收的網路報文中取出返回值,將其返回給客戶程式。

二、xdr:外部資料表示

xdr用來對rpc呼叫報文和應答報文中的值進行編碼,這些值包括rpc首部字段(xid、程式號、接收狀態等)、過程引數和過程結果。xdr定義了很多資料型別以及它們如何在乙個rpc報文中傳輸的具體形式。傳送者必須採用xdr格式構造乙個rpc報文,然後接收者將xdr格式的報文轉換為本機形式。

三、埠對映器

包含遠端過程的rpc伺服器程式使用的是臨時視窗,這就要求跟蹤rpc程式使用了哪乙個臨時埠。埠對映器本身必須由乙個知名埠111,同時由乙個程式號(100000),乙個版本號(2)。伺服器程式使用rpc呼叫埠對映器註冊本身,客戶程式使用使用rpc呼叫埠對映器查詢。

埠對映器提供4個服務程序:

四、nfs協議

(1) 訪問的是乙個本地檔案還是nfs檔案對於客戶是透明的,當檔案被開啟時,由核心決定。

(2) nfs客戶通過它的tcp/ip模組向nfs伺服器傳送rpc請求。nfs主要使用udp,最新的實現也可以使用tcp。

(3) nfs伺服器一般在埠2049接收作為udp資料報的客戶請求。

(4) nfs伺服器收到客戶請求時,它將這個請求傳遞給本地檔案訪問例程,後者訪問伺服器主機上的乙個本地檔案。

(5) 大多數nfs伺服器是多執行緒的,可以處理多個請求。

(6) 客戶也可以執行多個nfs客戶。

五、檔案控制代碼

檔案控制代碼是乙個不透明的物件,用來引用伺服器上的乙個檔案或目錄。伺服器建立檔案控制代碼,把它傳遞給客戶,然後客戶訪問檔案時使用這個控制代碼。

六、安裝協議

客戶必須在訪問伺服器上乙個檔案系統中的檔案之前,使用安裝協議安裝哪個檔案系統。一般時客戶主機引導時完成。

七、nfs過程

nfs伺服器主要提供一下15個過程:

(1) getattr:返回檔案屬性

(2) setattr:設定檔案屬性

(3) status:返回乙個檔案系統的狀態

(4) lookup:查詢乙個檔案

(5) read:讀資料

(6) write:寫資料

(7) create:建立檔案

(8) remove:刪除檔案

(9) rename:重新命名檔案

(13) mkdir:建立目錄

(14) rmdir:刪除目錄

(15) readdir:讀目錄。

tcp上的nfs詳見p355。

八、無狀態

nfs的乙個特徵是nfs伺服器是無狀態的。無狀態設計的理由是為了在伺服器崩潰並且重啟動時,簡化伺服器崩潰恢復操作。

九、伺服器崩潰

(1)如果伺服器檔案系統是「硬」安裝的,則客戶向伺服器的請求將永遠重傳下去;

(2)如果伺服器檔案系統是「軟」安裝的,客戶重傳了固定數目的次數後就會放棄。

Centos 7網路檔案系統nfs搭建

server端 1 通過yum安裝nfs yum install y nfs 2 啟動nfs systemctl enable nfs server 開機啟動 systemctl start nfs server 啟動nfs systemctl status nfs server 狀態3 配置nfs...

網路檔案系統

作用 smb server message block sum cifs common internet file system miscrosoft 伺服器是linux,共享檔案 1 selinux 要開啟enforcing 3 sumba使用者必須是本地使用者 4 檢視sumba使用者 pdbe...

網路檔案系統

1 讀取光碟 2 安裝rpcbind和nfs utils安裝包 3 列出檔案是否在執行 4 啟動服務nfs nfs server 5 檢視啟動服務情況 13 在客戶端上檢視,使用showmount e 伺服器ip 確認被防火牆攔截 14 在伺服器上禁用防火牆 systemctl stop firew...