「移行元:zpool export」 → 「移行先:zpool import」
とやればよい。exportは省略できるので、移行元がいきなり潰れたとしてもまあOK。
のように便利なimportだけど、マニュアルによると destroy したプールの復活にも使えると。
ということでやってみた。
ZFSでは ufs上に作成されたフツーのファイルをデバイスとしてプール構築できるので、それで試そう。
$mkdir /zdev
$mkfile 500m /zdev/file01
$zpool create test01 /zdev/file01
$mkfile 500m /zdev/file01
$zpool create test01 /zdev/file01
これだけで500MBで作成した1つのファイルをデバイス扱いして「test01」というzpool ができる。
確認してみよう。
$zpool status test01
プール: test01
状態: ONLINE
スクラブ: 何も要求されませんでした
構成:
NAME STATE READ WRITE CKSUM
test01 ONLINE 0 0 0
/zdev/file01 ONLINE 0 0 0
エラー: 既知のデータエラーはありません
$zfs list test01
NAME USED AVAIL REFER MOUNTPOINT
test01 120K 460M 18K /test011
プール: test01
状態: ONLINE
スクラブ: 何も要求されませんでした
構成:
NAME STATE READ WRITE CKSUM
test01 ONLINE 0 0 0
/zdev/file01 ONLINE 0 0 0
エラー: 既知のデータエラーはありません
$zfs list test01
NAME USED AVAIL REFER MOUNTPOINT
test01 120K 460M 18K /test011
OK。
早速だがプールを壊す。
zpoolの操作は何も出力されないので、いつも不安なんだが。。。
$zpool destroy test01
$zpool status test01
cannot open 'test01': no such pool
$zpool status test01
cannot open 'test01': no such pool
デストロイ完了!「test01」プールは葬られた。
それではimportして行こう。
"zpool import" とすると接続されているデバイスから使えそうなzpoolを見繕ってくれる。
これは"/dev/dsk" を自動で探索してリストアップしてくれるんだけど、今回はデバイスの場所が違うので "-d" オプション で探索場所を指定して実行。
$zpool import -d /zdev
インポートできるプールがありません
インポートできるプールがありません
普通にやるとこうなる。移行元で export したものはここでリストアップされるが、destroy だとしてくれない。
destroy済みも表示するには "-D"オプション、ラージでー だ。
$zpool import -Dd /zdev
プール: test01
ID: *******************
状態: ONLINE (DESTROYED)
アクション: プールの名前または数値識別子を使用してプールをインポートできます。
構成:
test01 ONLINE
/zdev/file01 ONLINE
プール: test01
ID: *******************
状態: ONLINE (DESTROYED)
アクション: プールの名前または数値識別子を使用してプールをインポートできます。
構成:
test01 ONLINE
/zdev/file01 ONLINE
DESTROYEDなプールが表示された、後は"-f"オプションをつけ、インポートするzpoolを指定するだけだ。
$zpool import -fDd /zdev test01
相変わらず何も出力してくれないが、うまくマウントできているはず。。
$zpool status test01
プール: test01
状態: ONLINE
スクラブ: 何も要求されませんでした
構成:
NAME STATE READ WRITE CKSUM
test01 ONLINE 0 0 0
/zdev/file01 ONLINE 0 0 0
エラー: 既知のデータエラーはありません
$zfs list test01
NAME USED AVAIL REFER MOUNTPOINT
test01 120K 460M 18K /test01
プール: test01
状態: ONLINE
スクラブ: 何も要求されませんでした
構成:
NAME STATE READ WRITE CKSUM
test01 ONLINE 0 0 0
/zdev/file01 ONLINE 0 0 0
エラー: 既知のデータエラーはありません
$zfs list test01
NAME USED AVAIL REFER MOUNTPOINT
test01 120K 460M 18K /test01
見事復活。ちなみに名前を指定してインポートも可能(引数をもう一個追加する)なので、プールの名前がかぶっていても大丈夫だ。
ファイルで作る zpool は練習用に色々使えていいですね、mkfileの使いやすさとあいまって良好な感じ。