完全な復元を必要とせずにZFSディスクを切り離して再接続することは可能ですか?


10

合計4つのドライブを持つZFSミラー化プールがあります。2台のドライブは、オフサイトバックアップのローテーションに使用することを目的としています。私の期待は、最初の再同期detachattach、ディスクを作成し、後で増分再同期のみを実行できるようにすることですが、テストでは、接続されているディスクにほぼすべてのプールが含まれているかどうかに関係なく、完全再同期を実行しているように見えます内容。

offline/ onlineアプローチを使用すると、完全に再構築するのではなく、ディスクを更新するだけで望ましい結果が得られますか?または、期待どおりにこの作業を行うには、各バックアップディスクを1ディスクプールとして使用しsend、最新のスナップショットを最新の状態にする必要があるときにいつでもそれにスナップショットを書き込むなど、まったく異なることを行う必要がありますか?


5
-1バックアップ用にドライブを切り離したり接続したりせず、ZFS設計者が意図したとおりに送信/受信コマンドを使用します。
クリスS

2
-1の代わりに@ChrisSでは、いくつかの引用を含む回答を記述してみませんか。バックアップの唯一のオプションはどこか別の場所にあるオンラインプールだとおっしゃっているようですが、それが本当かどうかを知るのは素晴らしいことですが、そうではないようです。
STW 2014年

1
申し訳ありませんが、私は傲慢な意地悪をするつもりはありませんが、Server FaultはProfessionalシステム管理者(など)のみを対象としています。ミラーを壊すバックアップの方法は、完全に管理できず、エラーが発生しやすく、専門的ではないため、実行可能なバックアップ方法と見なすべきではありません。私が提案しているのは、2つのバックアップドライブを任意のファイルシステムでフォーマットし、zfs sendコマンドを使用してバックアップディスクに保存された完全または増分バックアップストリームzfs recvを取得するか、またはを使用して複製ディスクを作成することです。このプロセスを管理するために、ある種のソフトウェアを使用することを強くお勧めします。
Chris S

あなたのポイントは有効だと思います。答えとして賛成します。私の質問を書き直して、特定のシナリオ(重要ではないが重要な社内サーバーの手間がかかるため)に焦点を当てず、「完全なドライブを必要とせずにドライブを再接続できるか再沈没?」
STW 2014年

回答:


14

ZFSアレイを壊してオフサイトのディスクを「回転」させる道を進んではいけません。ご覧のように、再構築時間は長く、再同期プロセスはデータセットの使用サイズを読み取り/検証します。

能力があれば、スナップショットとリモートシステムへのデータの送信は、クリーンで邪魔にならないアプローチです。専用の単一ディスクプール、それへのコピー、およびzpool export / import ...のプロセスを実行できると思いますが、あまりエレガントではありません。


残念ながら、2番目のZFSサーバーをオフサイトで実行するためのハードウェアまたは帯域幅がないため、スナップショット->送信のアプローチは使用できません。ただし、オフライン/オンラインの使用は機能し、ステータスが低下したと報告するトレードオフがあるようです。来週くらいにどうなるか見ていきます。
STW 2014年

1
わかった。ただし、バックアップの形式として実行中のディスクをシステムから引き出すことは、確実なソリューションではありません。これを行うと、リスクが大幅に増加します。
ewwhite 2014年

良い点は、私の計画は、それらをオフラインにし、一時停止し、ホットスワップトレイを外して、完全に停止する前に完全に停止するまで1分間与えることです
STW

1
2番目のサーバーをオンサイト(または同じサーバーの2番目のZFSアレイ)で運用できますか?ホットスワップベイをその中に入れ、メインとベイの間で同期してから、バックアップZFSアレイ全体を1つのユニットとしてサーバーに出し入れします。
ダンはFirelightによって

11

さらなる実験の後、私は公正な解決策を見つけましたが、それは大きなトレードオフを伴います。offline削除されたが切り離されていないディスクは、後でインクリメンタル再同期操作のみでオンラインに戻すことができます(「デバイスがオンラインになると、プールに書き込まれたすべてのデータが新しく利用可能なデバイスと再同期されます。」)。私のテストでは、これにより3ディスクミラーの再同期時間が28時間から30分強に短縮され、約40GBのデータ差分が生じます。

トレードオフは、オフラインのディスクを含むすべてのプールに機能低下のフラグが付けられることです。少なくとも2つのオンラインディスク(ミラープール内)がまだある場合、これは事実上警告です。整合性と冗長性はそのまま残ります。

他の人が述べたように、この全体的なアプローチは理想からはほど遠いです-スナップショットをリモートプールに送信することははるかに適していますが、私の場合は実現可能ではありません。

要約すると、プールからディスクを削除し、後で完全な再同期化を必要とせずに追加する必要がある場合、私がお勧めするアプローチは次のとおりです。

  • プール内のディスクをオフラインにします。 zpool offline pool disk
  • ドライブをスピンダウンします(物理的にプルする場合): hdparm -Y /dev/thedisk
  • ドライブをオフラインにした状態でプールを機能低下状態のままにする
  • ディスクをプールに戻すには: zpool online pool disk

また、これはまだテストされていないため、デルタ再同期処理が正確でない可能性があります。「ライブ」プールまたはオフラインディスク、あるいはその両方で問題が発生する可能性があります。それが起こった場合は更新しますが、今のところ、このアプローチを実験します。


1
resilverがデータエラーを引き起こす場合、これらは時間の経過とともに、またはzpoolスクラブで自動的に修復されます。
the-wabbit 2014年

スクラブの価値を実感しました。オフラインでのスクラブが成功してバックアップディスクが削除されるまで待機します
STW

2
簡単な更新です。この1年で、このアプローチは十分に機能しました。オフサイトバックアップの毎月の復元テストは成功し、一貫しています。(単一のディスクではなく)アレイをローテーションすることは、オフサイトコピーにある程度の冗長性を提供することをお勧めします。可能であれば、そうすることをお勧めします。全体的にこれはハックなアプローチであり、いくつかのリスクをもたらしますが、私たちのデータのかなり安全で安価なオフサイトバックアップを提供しています。
STW

トランスポートがすべてのドライブにゆっくりと損傷を与える可能性があるため、アレイ内のすべてのドライブを回転させないように主張します。ドライブがオンサイトのままであっても、ローテーションは行いません。
Costin Gușă 2019年

2

2015年10月15日更新:今日、zpool splitコマンドを発見しました。このコマンドは、新しいプール(新しい名前)を既存のプールから分割します。 同じシステムに両方のプールが存在する(そして個別にスクラブされる)ことができるsplitためoffline、およびよりもはるかにクリーンdetachです。新しいプールはexport[ed]、システムから取り外す前に、クリーンに(適切に)することもできます。

(私の元の投稿は以下の通りです。)

警告! このページのさまざまなコメントはzpool detach、ドライブで可能である(または可能である可能性がある)ことを意味し、ドライブを再接続して、ドライブに含まれるデータにアクセスします。

ただし、このスレッド(および私自身の実験) によるとzpool detach、切り離されたドライブから「プール情報」が削除されます。言い換えれば、a detachドライブをすばやく再フォーマットするようなものです。後detachのデータの多くはまだドライブ上にあってもよいが、次のようになります事実上不可能ドライブを再マウントして使用可能なファイルシステムとしてデータを表示します。

その結果、detach破壊されたプールを回復できるdestroyと私は信じているので、より破壊的であるように見えzpool importます!

Aはdetachありませんumountでもzpool exportでもzpool offline

私の実験では、最初zpool offlineにデバイス、次にzpool detach同じデバイスの場合、プールの残りの部分は、デバイスが存在していたことを忘れています。ただし、デバイス自体はoffline[d]以前のものだったため、デバイス自体にがdetach[ed]通知されることはありませんdetach。したがって、デバイス自体はまだプール情報を保持しており、別のシステムに移動できますimport[ed](機能低下状態)。

さらに保護するためdetachに、offlineコマンドの後、コマンドを発行する前に、デバイスを物理的に取り外すこともできますdetach

私はこれを使用することを願っていますoffline、そしてdetach、その後、import私のプールをバックアップするために処理します。元のポスターと同様に、4台のドライブを使用し、2台を常時ミラーで使用し、2台を月次のローテーションのオフサイト(およびオフライン)バックアップに使用する予定です。オフサイトに輸送する前に、別のシステムにインポートしてスクラブすることにより、各バックアップを検証します。元のポスターとは異なり、毎月バックアップドライブ全体を書き換えてもかまいません。実際、私は新鮮な部分を持つために完全な書き直しを好みます。


0

同じマシンで、ミラー内の2つのドライブで新しいプールを作成してみましたか?次に、作業プールでスナップショットを作成してから、そのスナップショットを新しいプールに送信し、繰り返します。次に、次のスナップショットの送信は増分になります。これは同じシステム/サーバー/マシン内のプールであるため、「リモートシステムへのデータの送信」とは異なります。この設定を使用しても、zpool split / offline / detach / attachを適用できますが、2番目の(コピー)プールでのみ実行でき、ソースプールでは実行できません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.