首頁 系統教程 Linux 初步認識Linux下的NFS服務

初步認識Linux下的NFS服務

Jan 23, 2024 pm 05:18 PM
linux linux教程 紅帽 linux系統 linux指令 linux認證 紅帽linux linux視頻

Linux NFS服务的初步了解

#RPC簡介

1)服務消費方(client)呼叫以本機呼叫方式呼叫服務;

2)client stub接收到呼叫後負責將方法、參數等組裝成能夠進行網路傳輸的訊息體;

3)client stub找到服務位址,並將訊息傳送到服務端;

4)server stub收到訊息後進行解碼;

5)server stub根據解碼結果呼叫本地的服務;

6)本機服務執行並將結果傳回給server stub;

7)server stub將回傳結果打包成訊息並傳送至消費方;

8)client stub接收到訊息,並進行解碼;

9)服務消費方得到最終結果。

NFS簡介

NFS(Network File System)即網路檔案系統,是FreeBSD支援的檔案系統中的一種,它允許網路中的電腦之間透過TCP/IP網路共享資源。在NFS的應用程式中,本地NFS的客戶端應用可以透明地讀寫位於遠端NFS伺服器上的文件,就像存取本機檔案一樣。
目前NFS主要有兩個版本(NFSv2,NFSv3)兩個版本,而NFSv2和NFSv3除了3版本支援更多的新特性以外,最主要的區別應該是NFSv2是使用UDP協定進行傳輸的,所以NFSv2的連接在複雜網路環境下可能沒有那麼可靠,而NFSv3同時支援UDP和TCP協定。

剛剛看了一下,Centos7已經支援NFSv4協定了,這裡就不貼NFSv4了,有時間了再去看v4吧。

當client端要掛載NFS共享卷的時候,會發送RPC請求給服務端,而NFS服務端會在用戶驗證後將一個隨機的cookie傳送至客戶端,以便客戶端使用這個cookie來認證那些要存取的共享卷。

NFS的驗證支援內建的IP/主機權限分配,同時也被tcp wrappers所限制。

Redhat上的NFS服務

Redhat核心中預設就開啟了NFS支持,並且透過NFS的Daemon來控制NFS服務端的啟動,而負責將網路套接字和RPC呼叫綁定起來,還需要一個rpcbind服務(在redhat5中名為portmap),如果你在系統中找不到nfs服務,是因為沒有安裝nfs-utils這個包,這個包提供了一些工具和服務腳本等。

整個NFS服務大概包含以下幾個(抄自紅帽官方文檔,但有點老了好像):

  • nfs — 啟動回應的RPC程序來回應NFS
  • nfslock — 這是一個可選的服務,用來回應客戶端對檔案加鎖的請求。
  • rpcbind(portmap) — 這個是rpc服務的守護進程,用來建立連線並且回應rpc請求。

NFS服務提供了這幾個RPC呼叫(函數):

  • rpc.mountd — 這個函數用來回應客戶端的mount請求並且驗證所要求的檔案系統是否有權可用,這個程序由nfs服務來啟動。
  • rpc.nfsd — nfs服務的主程式(函數)。
  • rpc.lockd — 上面nfslock這個服務的主要呼叫(函數),主要用來回應客戶的檔案加鎖請求。
  • rpc.statd — 這個呼叫(函數)主要是用來當nfs server重啟或不正常關閉時通知client的,由nfslock服務啟用。
  • rpc.rquotad — nfs服務用於支援配額的呼叫(函數)。
配置NFS服務

NFS的設定檔在/etc/exports
預設是一個空文件,只需要按照如下格式配置即可,一行一個共享卷

host:限定主機(網域)
1.單一主機或IP
2.通配符*(匹配任意字元)或?(符合任意單一字元),用在網域名稱或主機名稱中
3.IP/MASK,例如 192.168.110.0/24

options:掛載選項,用於限定前面主機的掛載權限。
常用選項:

  • ro,rw:只讀或可讀寫
  • sync:同步,當client的寫入請求完成後,立即將記憶體中的資料寫入到磁碟,並且這樣做是安全的。
  • async:異步,當client的寫入請求完成後,server不是立即將資料寫入磁碟,而是在某個時機(空閒或….鬼知道)寫入到磁碟,這就造成了資料遺失的可能性。
  • wdelay(write delay):寫入延遲,這是一個最佳化選項,允許伺服器延遲將資料寫入磁碟,這樣如果第二次client的寫入請求到來,將兩次資料使用一次write系統呼叫寫入到磁碟。
  • nowdelay:與上相反,僅在sync模式下可使用。
  • root_squash:「壓扁」root,因為client將文件寫入到server時,是使用client寫入用戶的uid直接映射為server同uid的用戶,這樣root用戶存放到nfs share volume上的文件,在server端屬主和屬群組還是root,有一定的安全隱患,所以可用此選項將root壓扁為nfsnobody使用者。
  • all_squash:壓扁所有用戶,可使用anonuid=,anongid=來指定壓扁為哪個用戶。

以上是初步認識Linux下的NFS服務的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1670
14
CakePHP 教程
1428
52
Laravel 教程
1329
25
PHP教程
1274
29
C# 教程
1256
24
Linux體系結構:揭示5個基本組件 Linux體系結構:揭示5個基本組件 Apr 20, 2025 am 12:04 AM

Linux系統的五個基本組件是:1.內核,2.系統庫,3.系統實用程序,4.圖形用戶界面,5.應用程序。內核管理硬件資源,系統庫提供預編譯函數,系統實用程序用於系統管理,GUI提供可視化交互,應用程序利用這些組件實現功能。

git怎麼查看倉庫地址 git怎麼查看倉庫地址 Apr 17, 2025 pm 01:54 PM

要查看 Git 倉庫地址,請執行以下步驟:1. 打開命令行並導航到倉庫目錄;2. 運行 "git remote -v" 命令;3. 查看輸出中的倉庫名稱及其相應的地址。

notepad怎麼運行java代碼 notepad怎麼運行java代碼 Apr 16, 2025 pm 07:39 PM

雖然 Notepad 無法直接運行 Java 代碼,但可以通過借助其他工具實現:使用命令行編譯器 (javac) 編譯代碼,生成字節碼文件 (filename.class)。使用 Java 解釋器 (java) 解釋字節碼,執行代碼並輸出結果。

sublime寫好代碼後如何運行 sublime寫好代碼後如何運行 Apr 16, 2025 am 08:51 AM

在 Sublime 中運行代碼的方法有六種:通過熱鍵、菜單、構建系統、命令行、設置默認構建系統和自定義構建命令,並可通過右鍵單擊項目/文件運行單個文件/項目,構建系統可用性取決於 Sublime Text 的安裝情況。

Linux的主要目的是什麼? Linux的主要目的是什麼? Apr 16, 2025 am 12:19 AM

Linux的主要用途包括:1.服務器操作系統,2.嵌入式系統,3.桌面操作系統,4.開發和測試環境。 Linux在這些領域表現出色,提供了穩定性、安全性和高效的開發工具。

laravel安裝代碼 laravel安裝代碼 Apr 18, 2025 pm 12:30 PM

要安裝 Laravel,需依序進行以下步驟:安裝 Composer(適用於 macOS/Linux 和 Windows)安裝 Laravel 安裝器創建新項目啟動服務訪問應用程序(網址:http://127.0.0.1:8000)設置數據庫連接(如果需要)

git軟件安裝 git軟件安裝 Apr 17, 2025 am 11:57 AM

安裝 Git 軟件包括以下步驟:下載安裝包運行安裝包驗證安裝配置 Git安裝 Git Bash(僅限 Windows)

sublime快捷鍵怎麼使用 sublime快捷鍵怎麼使用 Apr 16, 2025 am 08:57 AM

Sublime Text 提供了提高开发效率的快捷键,包括常用的(保存、复制、剪切等)、编辑(缩进、格式化等)、导航(项目面板、文件浏览等)以及查找和替换快捷键。熟练使用这些快捷键可显著提升 Sublime 的使用效率。

See all articles