スナップショットをより小さいファイルシステムに復元できますか?

エヴァ・ウォン は テクニカルライター であり ZimaSpaceの常駐ティンカーでもあります。 生涯のオタクであり、 ホームラボとオープンソースソフトウェアに情熱を持っています。彼女は複雑な技術的概念をわかりやすく、 実践的なガイドに翻訳することを専門としています。エヴァはセルフホスティングは楽しくあるべきで、怖がるものではないと信じています。彼女のチュートリアルを通じて、コミュニティが ハードウェアのセットアップを解明する手助けをしています。初めてのNAS構築からDockerコンテナの習得まで。

ファイルレベルでは、参照中のデータが収まれば対応できる場合がありますが、ブロックレベルまたはボリュームレベルのスナップショットはジオメトリを保持することが多く、より小さいターゲットへ直接受信できない場合があります。

この判断が重要になるのは、移行したNASデータセットに十分な空き論理容量がある一方で、以前のスナップショットのソースのほうが大きかった場合です。競合する2つの状態は、より小さいターゲットへのファイルレベル再構築と、ブロックレベルまたはファイルシステムの受信におけるジオメトリ制約です。保存済みの設定と破棄可能なデータから始め、一度に1つの分岐だけを観察し、データ損失、権限、可用性のリスクを拡大する場合はテストを中止してください。

スナップショットをより小さいストレージへ復元する判断の条件を定義する

何かを変更する前に、ソフトウェアとファームウェアのバージョン、デバイス識別情報、マウントまたはネットワークパス、空き容量、権限、観測可能な症状など、環境を記録します。ベースラインには、移行したNASデータセットに十分な空き論理容量がある一方で、以前のスナップショットのソースのほうが大きかった状態を再現できるだけの詳細を残す必要があります。

最初の候補は、より小さいターゲットへのファイルレベル再構築です。2つ目は、ブロックレベルまたはファイルシステムの受信におけるジオメトリ制約です。現在のzfs receiveの動作は、テストで使用する仕組みまたはコマンドの境界を定義しますが、この特定のホームサーバーでの観測に取って代わるものではありません。

判別テストを実行する前に、合格条件と中止条件を記述します。合格とは、一方の分岐が予測した証拠が変化し、無関係なサービスは変更されないことです。不合格の場合は、推測に基づく修正を連鎖的に実行するのではなく、システムを保存済みの状態に戻せる必要があります。

元の要件を下げずに主張をテストする

次の判別テストを使用します。参照されているデータと必要なメタデータを測定し、正確なツールを使って、破棄可能なより小さいターゲットへ復元または受信します。変更した変数に結果の原因を帰属できるよう、ワークロード、クライアント、パス、ファイルセット、タイミングを一定に保ちます。

ZFS受信の境界を使って、分岐を実際に切り分けられる項目を選び、そのタイムスタンプ、終了ステータス、エラーテキスト、デバイスまたはスナップショットの識別情報、レイテンシ、転送バイト数、権限、復旧状態を記録します。アイデンティティ、耐久性、アプリケーション状態がテスト対象の主張に含まれる場合、コマンドが正常終了しただけでは不十分です。

再起動、再接続、再マウント、またはコールドキャッシュが元の条件の一部である場合は、そのイベントの後にテストを1回繰り返します。最初の実行が破壊的である場合や、環境を復元できない場合は中止し、破棄可能なコピーで再現してください。

zfs list -o name,used,refer,logicalused
# 破棄可能なターゲットへの正確な受信またはファイル復元をテスト

合格、不合格、例外の結果を解釈する

合格: ツールがターゲットを受け入れ、復元されたファイルとプロパティが余裕を持って収まる。結論が普遍的な主張にならず、条件付きのままとなるよう、合格した正確なバージョン、識別情報、ワークロードを記録します。

不合格: ストリームに元のボリュームジオメトリが必要である、スナップショットがより多くのデータを参照している、またはメタデータと予約容量が容量を超えている。不合格だからといって、もう一方の分岐が自動的に証明されるわけではありません。ネットワーク、メモリ、権限、ソースの整合性が両方に影響する可能性があるため、エスカレーションする前に共通の依存関係を切り分けてください。

例外または曖昧な結果: スナップショットイメージを縮小または強制するのではなく、新しく作成したより小さいファイルシステムへファイルを復元します。復元可能なコピーが存在するまで、ログを保持し、修復、プルーニング、破棄、再パーティション、再帰的な所有権変更コマンドを実行しないでください。

元のワークロードで判断を確認する

観測した分岐に対応するアクションを適用し、その後、縮小した代替条件ではなく元の条件を再現します。ツールがターゲットを受け入れ、復元されたファイルとプロパティが余裕を持って収まる状態が、2サイクル、または関連する再起動、スリープ、中断、負荷遷移を通じて維持された場合にのみ、判断が有効になります。

復元の検証を使って直近の依存ワークフローを確認しますが、元のトリガーは変更しないでください。無関係なデータセット、共有、コンテナ、ユーザー、復旧ポイントは、以前のアクセス性とタイミングを維持する必要があります。

中止の境界は明確です。ストリームに元のボリュームジオメトリが必要である、スナップショットがより多くのデータを参照している、またはメタデータと予約容量が容量を超えている場合は、最後に検証済みの設定へ戻し、証拠を保持します。分岐が再現可能な場合にのみ、より深いプラットフォームまたはハードウェアのテストへエスカレーションしてください。

ターゲットの結果が得られたら、個別のバックアップジョブと比較し、修正によって隣接するサービスへリスクを移さないようにします。新しいバックアップ、識別情報、タイムアウト、または可用性の障害を伴うターゲットテストの成功は、依然として変更の失敗です。

よくある質問

スナップショットをより小さいストレージへ復元する場合、残る疑問は通常、表示される使用済み容量によって復元が収まるか判断できるか、ZFSデータセットを縮小できるか、最も安全な移行経路は何か、という点です。以下の回答では、これらのエッジケースを主な判断から分けて扱います。

合格の境界は変わりません。ツールがターゲットを受け入れ、復元されたファイルとプロパティが余裕を持って収まることです。後続の条件によってファイルシステム、識別情報、ネットワークパス、またはアプリケーションのバージョンが変わる場合は、その変更によって影響を受ける判別テストだけを繰り返します。

ストリームに元のボリュームジオメトリが必要である、スナップショットがより多くのデータを参照している、またはメタデータと予約容量が容量を超えている場合は、実験を広げるのを止めてください。その時点では、スナップショットイメージを縮小または強制するのではなく、新しく作成したより小さいファイルシステムへファイルを復元し、プラットフォーム、ストレージ、またはハードウェアの担当者へエスカレーションする前に証拠を保持します。

表示される使用済み容量によって、復元が収まるか判断できますか?

それだけでは判断できません。スナップショット、メタデータ、予約容量、圧縮、受信のセマンティクスが必要容量に影響します。

ZFSデータセットは縮小できますか?

データセットは固定サイズのボリュームではありませんが、zvolと受信先プールには異なる制約があります。

最も安全な移行経路は何ですか?

より小さいターゲットを作成し、ファイルまたはテスト済みのストリームを復元して検証し、合格するまでソースを保持します。

スナップショットをより小さいストレージへ復元する場合の実際の答えは、依然として条件付きです。ツールがターゲットを受け入れ、復元されたファイルとプロパティが余裕を持って収まることが条件です。ストリームに元のボリュームジオメトリが必要である、スナップショットがより多くのデータを参照している、またはメタデータと予約容量が容量を超えている場合は、スナップショットイメージを縮小または強制するのではなく、新しく作成したより小さいファイルシステムへファイルを復元してください。元のワークロードに耐えられない部分的な成功は、互換性とはいえません。

サポートとヒント

もっと読む

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.