NFS 目錄中伺服器之間的磁碟性能
我正在設置兩個 linux 伺服器。
ServerA 有 /apps/data。
ServerB 已安裝在
/data
ServerAs 路徑/apps/data
上,帶有NFS
.如何處理各種操作的負載?按含義:
問:
例如,通過在 ServerB 上啟動 gzip(可以是 cp 作為第二個範例),I/O 由 ServerA 或 ServerB 處理
磁碟如何執行?意思是 ServerB 將文件獲取到他的磁碟以執行 gzip 然後將其放回 NFS 並通過網路同步?(兩台伺服器的IO增加+網路流量)
您有一個通過 NFS 共享
ServerA
並由ServerB
.如果您在 上的那個目錄中執行文件操作
ServerB
,則不會發生磁碟 I/OServerB
,但伺服器之間會有網路 I/O,ServerA
最終將執行實際的磁碟操作(通過 NFS 守護程序的指令) .您正在訪問的文件不會像與
rsync
or同步一樣在伺服器之間傳輸scp
,但文件的塊將通過 NFS 傳輸,並在讀取數據時直接交給讀取數據的程序,或者交給伺服器進行寫入根據需要寫入磁碟。這是使用RFC 1094 (NFSv2) 或RFC 1813 (NFSv3)描述的 NFS 協議發生的。同樣,不會對 進行磁碟操作
ServerB
,除非它需要交換或者您正在執行的操作在非 NFS 掛載目錄(例如/tmp
)中分配空間。事實上,在沒有任何物理磁碟連接的
ServerB
情況下很可能存在。這被稱為“無盤系統”,過去在 90 年代初我第一次遇到 Unix 的電腦實驗室中很流行(在Sun SPARCstation IPC上,它具有本地但其他所有東西都通過 NFS 安裝)。/tmp
由於網路 I/O,在 NFS 上工作會比在本地磁碟上工作要慢,但對於日常命令行工作來說,除非您定期處理文件中的大量數據,否則它幾乎沒有多大關係。