如何從斷開連接和重新連接的磁碟機陣列匯入 ZFS 池?

如何從斷開連接和重新連接的磁碟機陣列匯入 ZFS 池?

這與從崩潰的系統導入池不同,因為系統尚未崩潰。作業系統很好(在不同的池/磁碟機組/SATA 總線上)。

我想在重新啟動之前複製一些關鍵文件(並且不會將其清理乾淨,因為客戶端服務不足的遠端資料中心中沒有附近的智慧手)。

在這種情況下,USB 球童消失,然後重新連接(電源故障/故障),但 zfs 認為池仍處於安裝狀態,但所有 IO 都楔入其中 - sdd 和 sde 現在已變為 sdf 和 sdg。

該池是透過 /dev/disk/by-id 掛載的,但當然這些 ID 是相同的(在 /dev 中現在指向 sd[fg]),舊池尚未匯出。

每個 zpool 命令都會楔入,因為我假設它接觸 /dev/sdd 和 sde,然後掛起整個 shell(現在在螢幕視窗中的第 10 個 bash shell 上...)。

然而,該陣列工作正常——dd if=/dev/sdf1 of=/dev/null工作正常,iostat 顯示該驅動器上的 IO(與 sdg 相同)。因此,驅動器無需楔入即可讀取。

但是任何 zpool 指令,甚至zpool import -Nd /dev/sdf1 poolname newpoolname會觸及 sd[de] 世界和楔子中的某個地方。

我可以運行什麼 zpool import 命令,以便它絕對不會嘗試接觸任何其他驅動器?zpool import -d /dev/sdf1 -N newname(或“舊名稱新名稱”)只是楔子。

最後的手段可能是將整個驅動器作為原始映像添加到另一個系統,然後在那裡(透過循環設備)搞亂 zpool,但發送 4TB 將永遠花費時間。

相關內容