再インストールされたオペレーティングシステムのzfsプールの再作成

再インストールされたオペレーティングシステムのzfsプールの再作成

zfs rootインストールシステムのディスクを交換する必要があります。

以前は次のようでした(テスト目的でOSを再インストールする前、インストール後にやりたかった作業でもあります)。

zpool Attach rpool /dev/sda2 /dev/sdb を使用してミラーを作成する

NAME        STATE     READ WRITE CKSUM
    rpool       ONLINE       0     0     0
   mirror-0  ONLINE       0     0     0
      sda2      ONLINE       0     0     0
       sdb      ONLINE       0     0     0

OSを再インストールしました。

NAME        STATE     READ WRITE CKSUM
    rpool       ONLINE       0     0     0
      sda2      ONLINE       0     0     0

sdb保存データ...

    pool: rpool-12312656247996879599
     id: 12312656247996879599
    state: DEGRADED
 status: One or more devices contains corrupted data.
 action: The pool can be imported despite missing or damaged devices.  The
        fault tolerance of the pool may be compromised if imported.
   see: http://zfsonlinux.org/msg/ZFS-8000-4J
 config:
        rpool-12312656247996879599  DEGRADED
          mirror-0  DEGRADED
            sda2    FAULTED  corrupted data
            sdb     ONLINE

OSの再インストール後にミラーを作成し、sdbのデータを現在のミラーに同期したいと思います。 OSを再インストールした後、それぞれ1つのrpoolと1つのsdbプールがありました。両方のプールでデータを送受信でき、sdbプールを破壊してrpoolに接続してミラーを作成できます。しかし、手動でファイルを同期(送信/受信)し、sdbを壊さずにプールからrpoolに接続する方法があるかどうか疑問に思いますか?

答え1

以前のプールからディスクを取り出してsda2内容を消去し、新しいプール(新しいシステムを含む)をインストールしました。これは冗長vdev(ミラー)なので、デフォルトでは、それぞれ1つのディスクを持つ2つの異なるプールがあります(フォールトトレランスがないことを意味します)。まだ2つのオプションがあります。新しいオプションを使用するか、古いオプションを復元することです。


sda2既存のプールを捨てて新しいインストール()を使用するには:このステップ:

  • ディスクをフォーマットsdbし、ディスク上のすべてのデータを削除します。
  • フォーマットされたディスクを新しいプールに接続します。zpool attach rpool sda2 sdb
  • 再同期が完了するまで待ってから確認してください。zpool status rpool
  • システムが両方のディスクから起動できるように、起動セクタデータをコピーします(GRUBを使用していると仮定)。installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/sdb

新しいプールを放棄して(ダウングレードされた)古いプール(sdb)に戻る場合:

  • システムをシャットダウンし、ディスクを物理的に取り外します。sda2
  • システムを起動すると、以前のプールが有効な起動可能なルートプールとして認識されます。 (上記の手順と同様に、以前にそのディスクにブートセクタを追加した場合にのみ機能します。そうしないと、ブートエラーが発生します。)
  • ディスクをsda2システムに物理的に再接続してフォーマットします。
  • ディスクをsda2古いプールに接続します。zpool attach rpool sdb sda2

Solaris / illumosシステムがある場合は、それを使用して現在の場所で(同じスナップショット内の他のスナップショットから)beadmアップグレード、テスト、および復元を実行することもできます。rpoolこれにより、一時的に冗長性を放棄せずに回復できます。

関連情報