zpoolエクスポートは正確に何をしますか?

zpoolエクスポートは正確に何をしますか?

zpool exportの部分を読んだ後、man zpool少し心配になります。

システムから指定されたプールをエクスポートします。すべてのデバイスはエクスポートされたとマークされていますが、まだ他のサブシステムで使用されていると見なされます。十分な数のデバイスが存在する限り、システム間でデバイスを移動およびインポートできます(エンディアンが異なるシステムも含む)。

「しかし、まだ他のサブシステムで使用されていると見なされます」とはどういう意味ですか? 「十分な数のデバイスがある限り」とはどういう意味ですか?

背景:

本番サーバーのVMストレージをZFSスナップショットに基づいてスタンバイサーバーにコピーするかなり複雑なバックアップスクリプトがあります(正確には、ホストとVMのさまざまなスクリプトシステムが連携してファイルシステムを固定します)。 VMを選択し、ZFSスナップショットを作成し、VMのファイルシステムの固定を解除してから、スナップショットをスタンバイサーバーにコピーします。この部分は魅力のように動作します。

ところで、実際には複製以外に一種のバックアップが必要です。つまり、VMストレージをディスクにバックアップしてから、接続されたボックスから取り出し、別の場所に安全に保管したいと思います。

私は最善のアプローチについて慎重に考え、次のアイデアを考えました。

  • スペアサーバーにSATA / SASハードドライブキャリアを取り付けると、そこにハードドライブを接続または取り外しできます(またはバックプレーンに接続されている既存のキャリアの1つを使用できます)。
  • スタンバイ サーバーに新しい HDD を挿入し、その HDD のみで構成された VDEV を含む新しい ZPOOL を作成します。
  • 本番サーバーにそのVMストレージを新しいZPOOLにコピーするようにします。またコピーされたZPOOLに。
  • コピーが完了したら、新しいZPOOLをエクスポートして新しいHDDを取り外し、安全な場所に保管してください。 **
  • スペアサーバーに2番目の新しいHDD(ZPOOLの略)を挿入し、最初の2つの手順を繰り返します。 ****
  • など...(たとえば、現在のバックアップサーバーに接続されているHDDを毎日別のHDDに交換したり、7台のHDDを使用して毎週交換するなど)。

**これは私が好きではないステップです(上記のセクションを読んだ後)。一方では、エクスポート前にファイルシステムがアンマウント(したがってフラッシュ)されているため、ZPOOL(唯一のデバイス)をエクスポートした後にHDDを削除するのに問題はないはずです。一方、マニュアルには、プールをエクスポートした後もHDDがまだ「他のサブシステムで使用されていると見なされます」と記載されています。

だから私はこのステートメントが正確に何を意味するのか、そしてハードドライブを考慮する方法を知りたいのです。いいえ他のサブシステムは廃止されました。

****私はこれに少しの努力をしなければならないことがわかりました。計画は、udevHDDが接続されたときにバックアップサーバーが認識し、既存のZPOOLをインポートできるようにする適切な規則を持つスクリプトを作成することです(HDDはUSBではなくSATA-3またはSAS 12Gを介して直接接続されます)。しかし、それは問題の一部ではありません。

結論として:

正確にzpool export、ZPOOLの唯一のデバイスHDDをエクスポートしてから安全に物理的に取り外すには、どのような手順を実行する必要がありますか?

ベストアンサー1

私はあなたが説明するのと似たようなことをしていますが、zpoolエクスポートを使用すると少し混乱する可能性があると思います。

zpoolエクスポートは、システムからフルプルスナップショットなどを削除します。あなたが望むものではありませんか?

要求されたタスクを実行するための最初のステップは、私たちが扱っているzpoolの種類を理解することです。特に単純なミラープールが必要な場合があります。少なくとも3つのドライブ。

私の場合、3つのミラーを持つzpoolがあります。安全に保管するためにデータをオフサイトに移動する場合は、移動中のドライブを「オフライン」に設定してからアレイから取り外します。これは次のとおりです。

      pool: pool_09
 state: ONLINE
  scan: resilvered 1000G in 2h15m with 0 errors on Sun Nov 22 19:49:53 2020

config:

        NAME                         STATE     READ WRITE CKSUM
        pool_09                      ONLINE       0     0     0
          mirror-0                   ONLINE       0     0     0
            c0t5000C500B0BCFB13d0    ONLINE       0     0     0
            c0t5000C500B0889E5Bd0    ONLINE       0     0     0
            c0t5000C500B09F0C54d0    ONLINE       0     0     0
        logs
          mirror-1                   ONLINE       0     0     0
            c0t5F8DB4C095690612d0s3  ONLINE       0     0     0
            c0t5F8DB4C095691282d0s3  ONLINE       0     0     0


      # zpool offline  pool_09 c0t5000C500B0BCFB13d0

これにより、プールに2つのミラーリングされたドライブが残るため、まだローカルエラーに耐えることができます。私はドライブを他のシステムにインポートしませんが、なぜそれを行うことができないのかわかりません。別の建物に持って行きました。

ミラーを再同期する準備ができたら、取り外したドライブをアレイに挿入して「オンライン」に切り替えます。

zpool online pool_09 c0t5000C500B0BCFB13d0

オンラインに切り替えると、ZFSはドライブを自動的に再同期し、プロセスを繰り返すことができます。

これを行うために複数の回転ドライブを使用したくないでしょう。これがうまくいくかどうかはわかりません。 10xミラーセットのようなものがあればそうです。取り外したドライブがアレイから外れている時間が長いほど、再同期に時間がかかります。

別のオプションは、zfsがすべてのデータを送信する別のプールを作成し、プールをエクスポートしてオフサイトにインポートすることです。まだこれを行っていませんが、うまくいきます。しかし、おそらくはるかに遅いでしょう。

おすすめ記事