天天看點

use export and import move ZPOOL's underdev from one machine to another OR upgrade a zfs version OR recover destroyed pools

前面我們介紹了zfs的pool, 類似lvm. 由多個塊裝置組成.

如果這些塊裝置要從一個機器轉移到另一台機器的話, 怎麼實作呢?

zfs通過export和import來實作底層塊裝置的轉移.

在已有pool的主機上, 先将會讀寫pool或dataset的正在運作的程式停止掉, 然後執行export.

執行export會把cache flush到底層的塊裝置, 同時解除安裝dataset和pool.

import時, 可能需要指定塊裝置的目錄, 但是并不需要指定順序.

例如 :

因為我這裡用的是檔案, 是以把檔案拷貝到對應的其他主機, 然後指定檔案所在目錄,

如果是塊裝置的話, 不需要指定目錄.

使用name 導入.

接下來我export後修改一下目錄和檔案名, 并且拷貝到另一台主機.

恢複destroy的zpool, 當pool被destroy後, 還可以恢複, 因為資料都還在, 隻是pool删掉了.

zpool版本更新, 比如一個pool從版本20的機器遷移到版本28的機器, 那麼可以更新到28, 但是這樣的話, 這個pool就不能再回到版本20的機器上使用了.

[參考]1. https://pthree.org/2012/12/10/zfs-administration-part-v-exporting-and-importing-zpools/