web-dev-qa-db-ja.com

デバイスが再割り当てされていない場合、エクスポート後にzpoolを回復できますか?

「testpool」と呼ぶzpoolがありました。

testpoolには、3つのデバイスと、「test」と呼ばれる単一のzfsが含まれていました。

'test'を新しい小さなプールに移動する必要がありました。新しいプールに同じ名前「testpool」を付けたかったのです。

基本的には以下を行いました。

zfs send testpool@backup > /tmp/test-dump
zpool export -f testpool
zpool create -f testpool newdevice
zfs receive -F testpool < /tmp/test-dump

残念ながら、testpool @backupスナップショットが間違ったスナップショットであることがわかりました。古すぎる。 OLDテストプールにあった3つのデバイスをまだ再割り当てしていません。 (これらの3つのデバイスはいずれも「newdevice」ではなく、別個の3です。)

それらのデバイスでデータを回復する方法はありますか?新しい小さなプールに古いzpoolと同じ名前を付けたので、私はほとんどSOLだと思っています。しかし、そうでない場合は、それを知っておくとよいでしょう。

編集:詳細

'zpool import'を実行して、これを取得しました。

bash-3.00# zpool import
  pool: testpool
    id: 14781458723915654709
 state: ONLINE 
action: The pool can be imported using its name or numeric identifier.
config:

    testpool    ONLINE
      c5t8d0    ONLINE
      c5t9d0    ONLINE
      c5t10d0   ONLINE

したがって、新しい名前を付けながら、数値識別子を使用してこのzpoolをインポートするための構文が必要だと思います。

S。

1
cali-spc

はい。引数なしでzpool importを実行すると、使用可能なプールが識別されます。

古いテストプールのデバイスがまだそこにあると仮定すると、「古い」テストプールが表示され、その横にプールのGUID)が表示されます。

そのプールのGUIDを取得したら、zpool import $id oldtestpoolを実行できます。プールがインポートされた後、新しいテストプールのマウントポイントと重複しないようにマウントポイントを変更できます。

4
Tim Kennedy