Linux 上的 ZFS 唯讀掛載 + Solaris 上的同步讀寫掛載

Linux 上的 ZFS 唯讀掛載 + Solaris 上的同步讀寫掛載

我們必須定期將相當大的檔案從 Solaris 複製到 Linux(使用網路)。目前一個文件需要近半天的時間。 Solaris 中的檔案位於 ZFS 檔案系統上。

所以我想,這真是太糟糕了——我們也許可以在 Linux 上安裝 ZFS。

但 ZFS 不是叢集(或可叢集)檔案系統。

假設:所以我認為我們可以,因為我們只是從 Solaris 複製 - 我們可以以唯讀方式安裝相同的 ZFS 檔案系統,因此在這種情況下不必進行叢集?因為寫入僅在 Solaris 端(我們無法在那裡卸載它)。

Solaris 機器非常繁忙,網路卡幾乎總是非常繁忙。因此,透過將檔案副本移至 FC,速度應該會更快。

該 Linux 機器是 VMWare 主機上的虛擬來賓。所以,是的,可以提供 Linux 來賓相同的 FC 結構。

想法?我認為假設部分是我最需要尋找回饋的地方。不確定是否可以在 Linux 上進行 ZFS 唯讀掛載 + 在 Solaris 上同時進行讀寫掛載。

答案1

那根本不可能。無論讀取/權限如何,ZFS 都不允許同時掛載在兩台主機上。如果您在 Solaris 上安裝時嘗試將其安裝在 linux 上,則必須強制執行。如果這樣做,Solaris 將因內核恐慌而崩潰。當我在第二個 Solaris 盒子上強制導入而它安裝在第一個盒子上時,我在兩個 Solaris 上發生了這種情況。而且,如果你能在linux上導入或不導入zpool,ZFS版本也會發揮作用。如果你想嘗試我建議如下:

  1. 克隆儲存上的 lun
  2. 將複製的 lun 映射到 Linux 盒子
  3. 試試在linux上掛載zpool

答案2

阻止這種情況發生的原因是 ZFS 將元資料快取在記憶體中,因為它假設它是唯一改變磁碟狀態的元資料。無論主機安裝什麼讀取/寫入應該沒問題。在以唯讀方式安裝的另一台主機上,元資料將從其下方更改,並且在某個時刻(相當快),它將從磁碟中其認為具有有效元資料但已被覆蓋的位置讀取塊另一個系統。

您可以嘗試 BitsOfNix 概述的 lun 克隆方法,或者您可以嘗試設定定期快照/發送/接收腳本以嘗試保持最新狀態。或者您可以嘗試從 Solaris 主機共用資料集並透過 NFS 將其掛載到 Linux 主機上。

相關內容