NFS檔案系統掛載選項詳解

2021-09-26 12:17:29 字數 3547 閱讀 7487

伺服器端開啟nfs服務後,客戶端就可以掛載了。客戶端可以像操作本地檔案系統一樣操作nfs檔案系統。客戶端在掛載nfs檔案系統時可以加一些選項,一般可以指定下列選項。

1. soft and hard

前面的文章中提到過,客戶端和伺服器通過rpc機制進行通訊,客戶端向伺服器傳送rpc請求,伺服器解析rpc請求中的資訊進行處理,然後向客戶端傳送應答訊息。rpc請求具有乙個超時時間,如果在這個時間內客戶端沒有接收到應答訊息,就會重發剛才的rpc請求。客戶端可以設定超時重發次數。當超過重試次數後客戶端會根據soft/hard選項進行不同處理。如果客戶端使用了soft,則認為rpc請求失敗,不再重**送這個rpc請求。如果客戶端使用了hard,則客戶端繼續重**送失敗的rpc請求。

2.timeo and retrans

這是和rpc請求重傳相關的兩個引數。timeo表示rpc訊息等待時間,如果客戶端在這個時間內沒有接收到應答訊息,則認為rpc訊息失敗了。retrans表示rpc請求重試次數,當達到這個次數時客戶端根據soft/hard選項進行不同處理。

3.rsize and wsize

客戶端和伺服器通過rpc機制進行通訊。當客戶端讀取伺服器中檔案內容時,伺服器將檔案內容封裝在rpc應答訊息中返回給客戶端。但是rpc訊息有乙個長度限制,當檔案內容超出這個長度時,伺服器需要將檔案內容封裝在多個rpc應答訊息中傳輸。rsize就指定了每個rpc應答訊息中最多可以傳輸的資料量。wsize含義和rsize類似,當客戶端向伺服器檔案寫入資料時也是將資料封裝在rpc訊息中傳輸給伺服器,wsize表示寫操作中每個rpc訊息最多可以傳輸的資料量。如果客戶端在掛載nfs檔案系統時沒有指定rsize/wsize的值,則客戶端和伺服器會自行協商出乙個合適的數值。

4.ac and noac

這是和檔案快取相關的乙個選項。為了提高系統效能,nfs客戶端可以快取檔案屬性資訊,在一定的時間範圍內這些屬性快取是有效的。這就存在檔案同步的問題,因為nfs檔案系統可以供多個客戶端掛載,不同客戶端上的使用者可以同時訪問同乙個檔案,如何保持檔案同步是乙個非常麻煩的問題。如果客戶端掛載檔案系統時使用了ac選項,則表示啟用檔案屬性快取機制。在檔案屬性快取的有效期內,如果其他客戶端已經修改了檔案屬性(比如撤銷了檔案寫許可權),這個客戶端無法及時感知這種變化。當客戶端寫伺服器發起write請求時,首先檢查本地檔案屬性快取,發現自己具有寫許可權,於是就將資料傳送給伺服器。但是由於其他客戶端已經撤銷了寫許可權,因此這些資料是不能寫到伺服器的磁碟中的,write請求失敗,這就會降低系統效能。如果客戶端在掛載檔案系統時使用了noac選項,則客戶端不會快取檔案屬性資訊。當客戶端向伺服器發起write請求時,首先會發起乙個getattr請求獲取檔案屬性,如果發現沒有寫許可權,就不會向伺服器傳輸資料了。但是相比於ac選項,客戶端在發起write請求前需要先發起getattr請求,這同樣會降低系統效能。因此,當客戶端數量比較少,客戶端與伺服器的互動不頻繁時可以使用ac選項。而保持檔案同步更好的辦法是在nfs檔案系統中使用檔案鎖。

5.acregmin and acregmax

這也是和檔案屬性快取相關的兩個選項。如果客戶端使用了ac選項則會建立檔案屬性快取。這個快取具有乙個有效期,當超過這個期限後就認為檔案屬性無效了。這個有效期是乙個動態變化的數值。初始有效期是acregmin。在這個有效期內,客戶端可能會再次獲取檔案屬性,更新本地檔案屬性快取。如果更新檔案屬性快取時發現快取中的資料有效,則會將有效期加倍,但是有效最大值不能超過acregmax。如果更新檔案屬性時發現快取中的資料已經無效了,則會將有效期重新設定為acregmin。

6.acdirmin and acdirmax

這兩個選項的含義和acregmin、acregmax相同,但是acregmin/acregmax針對普通檔案,acdirmin/acdirmax針對目錄檔案快取。使用者可以為普通檔案和目錄檔案快取設定不同的有效期。

7.actimeo

這個選項表示將acregmin、acregmax、acdirmin、acdirmax設定成統一的數值,都使用actimeo指定的時間。

8.sec

指定nfs服務使用的認證方式。伺服器需要對客戶端進行認證,認證通過後才處理客戶端傳送的請求;如果認證失敗,則拒絕這個請求。有效的認證方式包括none, sys, krb5, krb5i, krb5p, lkey, lkeyi, lkeyp, spkm, spkmi, and spkmp,預設的認證方式是sys。

9.sharecache and nosharecache

這是和檔案快取共享相關的乙個選項。客戶端可以多次掛載同乙個檔案系統,比如我們將同乙個檔案系統分別掛載到了/mnt1和/mnt2兩個目錄下。

mount -t nfs nfs-server:/tmp/nfs/root  /mnt1

mount -t nfs nfs-server:/tmp/nfs/root  /mnt2

這兩個檔案系統中的檔案都會在客戶端建立檔案快取,sharecache表示這兩個檔案系統使用同乙份快取,如果我們在/mnt1中執行了寫操作,則快取中儲存的就是最新的資料了,那麼當我們在/mnt2中執行讀操作時,由於快取中的資料已經是最新的了,直接從快取中讀取資料就可以了,就不必從伺服器讀取資料了。nosharecache表示這兩個檔案系統使用兩份快取,由於/mnt1和/mnt2使用了兩份快取,那麼由於/mnt1中執行了寫操作,資料傳輸到了伺服器中,那麼/mnt2快取中的資料就不是最新的了。因此,當我們在/mnt2中執行讀操作時,必須向伺服器請求資料,這就降低了系統效率。這個選項的預設值是sharecache,客戶端多次掛載同乙個檔案系統時共享快取。

10.lookupcache

這是和目錄項快取相關的乙個選項,這個選項的值可以是all,  none,  pos or positive。客戶端可以向伺服器發起lookup請求查詢某個檔案。如果查詢的檔案存在,查詢到的結果標記為positive;如果查詢的檔案不存在,查詢的結果標記為negative。如果lookupcache的值是pos(或者positive,這兩個值完全相同),則nfs客戶端認為positive的結果有效,而negative的結果無效。這樣,如果客戶端想刪除標記為positive的檔案,不需要提前查詢這個檔案在伺服器端是否存在。如果要建立乙個標記為negative的檔案,需要提前查詢伺服器端是否存在同名檔案,因為客戶端不信任標記為negative的快取。如果lookupcache的值是all,則客戶端既信任標記為positive的快取,也信任標記為negative的快取。如果lookupcache的值是none,則客戶端既不信任標記為positive的快取,也不信任標記為negative的快取。預設值是all。

11.fsc

這個選項是也是一種快取機制,但是和前面提到的快取不同,這是一種磁碟快取。當客戶端讀取檔案內容時,如果本地快取中的資料有效,則直接從本地快取中讀取資料。如果本地快取中的資料無效或者根本沒有資料,則向伺服器請求資料。因為資料需要從伺服器傳輸到客戶端來,因此會受到網路環境影響,效率比較低。為此,人們提出了fscache快取。fscache快取是一種本地快取,但是將資料儲存在客戶端的磁碟中。當客戶端接收到伺服器傳過來的資料後,一方面將資料放入快取中(記憶體中),供客戶端的程序使用,另一方面將資料儲存在磁碟中。這樣,下次再讀取資料時就可以不向伺服器傳送請求了,而是直接從本地磁碟中讀取資料到快取中,這就加快了資料訪問速率。當然,fscache快取只能用在唯讀檔案系統中或者修改頻率不頻繁的檔案系統中,否則客戶端需要頻繁更新fscache快取中的資料,反而降級了系統效能。ycnian

nfs檔案系統掛載

1.首先把所有防毒軟體和防火牆都關了 2.在linux系統上用 setup 設定網路配置 3.將虛擬機器設為橋連 vm settings ethernet bridged 4.用 ifconfig eth0 192.168.1.16 設定你虛擬機器的ip位址 我的虛擬機器為192.168.1.16 ...

掛載nfs檔案系統

1.從裝置掛在開發機目錄 1.1.ubuntu啟動nfs伺服器 假設本機ubuntu的ip位址為 192.168.1.77 使用root使用者登入 使用如下命令啟動nfs伺服器 sudo etc init.d nfs kernel server restart 備註 前提需要安裝nfs伺服器,ps ...

NFS掛載根檔案系統

首先確保你的檔案系統可以正常工作,通過nfs掛載只是幾個服務的事情而已,我的系統是ubuntu 10.04 既然是nfs伺服器,那麼就需要開啟相關的服務。首先來安裝吧 sudo apt get install nfs kernel server 有的服務直接安裝apt get 在10.04上不支援,...