![共享區塊設備檔案系統(無需聯網的叢集檔案系統)](https://rvso.com/image/567644/%E5%85%B1%E4%BA%AB%E5%8D%80%E5%A1%8A%E8%A8%AD%E5%82%99%E6%AA%94%E6%A1%88%E7%B3%BB%E7%B5%B1%EF%BC%88%E7%84%A1%E9%9C%80%E8%81%AF%E7%B6%B2%E7%9A%84%E5%8F%A2%E9%9B%86%E6%AA%94%E6%A1%88%E7%B3%BB%E7%B5%B1%EF%BC%89.png)
Linux下有沒有可以多次掛載並且支援並發檔案存取的檔案系統?基本上我想要類似叢集檔案系統的東西,但不需要為分散式鎖定管理器提供正在運行的網路。這對於可以與主機或另一個虛擬機器共享資料而無需建立網路連結的虛擬機器來說非常方便。我想避免這種情況,以保持網路架構的安全(DMZ 中的虛擬機器)但共享大檔案。無需擴展,只需兩台機器安裝相同的塊設備即可。
難道不能將檔案鎖定資訊直接保存在磁碟上嗎?
答案1
我猜你可以給 N 個虛擬機並存取相同的區塊設備,但只能只讀。你注意到「猜測」這個詞。
如果任何虛擬機器開始修改內容,事情就會很快崩潰,因為快取其他虛擬機器的任何磁碟現在都將無效。
將文件鎖定資訊保存在磁碟上的困難在於,目前還沒有人做到這一點。如果不深入思考,磁碟上的原子讀/修改/寫事務的想法可能是根本問題。
我想您可以採用一個已經是多執行緒的典型檔案系統,找出使用鎖的位置,並將其變更為磁碟上的某種讀取/修改/寫入操作。
磁碟上讀取/修改/寫入的另一個問題是,如果您執行大量鎖定,您的效能將非常糟糕,因為對磁碟上任何內容的每次更改都需要:
- 鎖定磁碟(尋找、讀/修改/寫)
- 讀取您想要更改的磁區(尋找/讀取)
- 進行更改並寫入(寫)
- 解鎖磁碟(查找、讀取/修改/寫入)
它可能沒有幫助,但如果你真的不想連網,我會考慮將 BSD Jails 之類的東西作為更輕量級的虛擬機器系統。
答案2
回答我自己的問題:在(半)虛擬化的情況下,有一些共享檔案系統不斷發展,可用於在實例之間共享檔案而無需網路。我認為 XenFS 是一種尚未積極開發的方法。但是對於 KVM,希望很快地對於 XEN,有一個基於 virtio 庫的資料夾共享機制,稱為9p_virtio。