iSCSI 和 NFS 文件鎖定和並發
我有一個需要掛載位於 NAS 上的數據共享的 linux 主機。選擇是在 NFS v3(NAS 限制)和 iSCSI 之間。最初的想法是對文件伺服器進行 NFS 掛載,為網路的其餘部分提供 samba 掛載點,並將 NFS 掛載到顯然備份數據的備份伺服器。(這個想法不適用於 iSCSI,我知道你不能/不應該有多個啟動器到同一個 iSCSI 目標。)
數據伺服器 - + - (SMB) - 使用者 1 / | - (SMB) - 使用者 (..) (NFS) + - (SMB) - 使用者 (n) SAN / \ (NFS) \ 備份伺服器
可能有缺陷的理解——我認為的問題是,由於 NFS v3 是無狀態的,它不知道哪個伺服器可以訪問該文件以及使用者正在使用它做什麼。因此,如果使用者正在通過 SMB 共享寫入文件,並且備份伺服器正在嘗試備份文件,那麼伺服器可能會備份中間/損壞的文件?如果情況確實如此,並且如果更改了配置以使 NFS 共享僅安裝在數據伺服器上,那麼備份腳本 ssh in 來完成它的工作,這種並發行為是否仍然是 NFS 的問題?(我想如果它使用鎖定文件,一切都會好起來的,但是是否還有其他核心土地鎖定方法會由於無狀態 NFS v3 而被破壞?)
似乎如果我使用僅由數據伺服器安裝的 iSCSI 共享,並且備份伺服器必須通過 SSH 來完成它,那麼所有問題都會消失。這是基於 iSCSI 呈現為塊級設備,這意味著文件訪問控制的更高級別邏輯是在作業系統級別上執行的。
最後,如果使用最後一種使用 iSCSI 的方法並且在 Samba 上啟用了 Oplocks,以解決通過 samba 連接的使用者之間的並發文件訪問,這是否也會對試圖訪問不通過 samba 的相同文件的程序施加訪問限制,即 samba使用者在備份守護程序嘗試讀取文件時寫入文件?
謝謝
NFSv3 通常與
rpc.lockd
提供網路鎖管理器協議一起部署。您的 NFS 客戶端應通過 NLM 鎖定 SAN 上的文件,因此如果數據伺服器正在訪問文件,則備份伺服器無法在並發訪問時損壞該文件。