安全なアプローチでは、重要な鍵素材を保護し、安全にインポートし、正しい暗号化ルートを読み込み、別の復元が可能であることを証明する復旧ワークフローを、単一のコマンドではなく、観測可能なゲートの連続として扱います。
ホームNAS上の暗号化されたZFSデータセットでは、実際のリスクは、暗号化されたデータセットをマウントできないこと、またはそのスナップショットを復旧可能なデータとしてまだ信頼できないことです。現在の識別情報と復旧ポイントを記録し、最も侵襲性の低い判別から始め、別の変数を変更する前に成功と失敗の結果を解釈し、ストレージが不安定になった場合や、復旧可能なコピーが一つしかなく、それが露出する場合は停止してください。以下のワークフローは、元のワークロードが正常に動作するか、証拠がエスカレーション境界に達した時点でのみ完了します。
鍵を保護し、障害状態を記録する
障害の原因が理解できるまで、自動インポート、レプリケーション、スクラブ、アプリケーションによる書き込みを停止します。プール、データセット階層、暗号化ルート、鍵の形式と場所、最後に確認されたマウントポイント、正確なエラー、そしてその鍵を別の復旧ホストでテストしたことがあるかどうかを記録します。
ネイティブZFS暗号化では、鍵の読み込みとデータセットのマウントが分離されています。ZFSの暗号化ルートと鍵の動作では、暗号化ルートと継承される鍵について説明されています。そのため、誤った子データセットに有効な鍵を提供したり、暗号化されたすべてのデータセットが個別の鍵を持つと想定したりすると、誤解を招く復旧作業につながる可能性があります。
鍵ファイルと復旧メモの保護されたコピーを作成し、端末の履歴やサポートログに秘密情報を出力しないでください。検証済みの鍵またはバックアップが存在しない場合、プールデバイスが不安定な場合、またはコマンドが破壊的な修復を提案した場合は、直ちに停止します。
本番パスを露出させずにプールをインポートする
復旧ホストでデバイスの識別情報を確認し、代替ルートを指定するか、稼働中のパスにデータセットをマウントせずにプールをインポートします。鍵を読み込む前に、プールの状態とデータセットのプロパティを確認します。プールのインポートに成功したことが証明するのは、プールのメタデータが読み取り可能であることだけであり、暗号化された内容を復号できることではありません。
encryptionroot、keystatus、keylocation、canmount、mountpointを再帰的に確認します。対象の暗号化ルートに対してのみ鍵を読み込み、分離されたパスの下で制御されたマウントを試みる前に、ステータスが利用可能に変わったことを確認します。
鍵の読み込みに失敗した場合は、誤った鍵素材、アクセスできない鍵の場所、破損した暗号化メタデータ、通常のマウントポイント競合を区別します。正確なエラーを保存し、既知の原因を一つ変更してからのみ再試行します。推測を繰り返すと、信頼できる証拠を得られなくなる可能性があります。
ソースを変更せずにスナップショットを調査する
スナップショットを一覧表示し、想定した復旧ポイントが存在することを確認します。ソースプールが十分に健全であれば、選択したスナップショットを別のストレージにクローンまたはレプリケートし、本番データセットを読み書き可能な状態でマウントするのではなく、分離したコピーを使用します。調査中は元のスナップショットを不変のまま維持します。
暗号化されたrawレプリケーションでは、暗号文と暗号化プロパティを保持できますが、受信側にも対応する鍵階層が必要です。独立した暗号化されたZFSのrawレプリケーションでは、暗号化されたraw送信と通常のストリームの違いが説明されています。そのため、受信したすべてのデータセットが同じ方法でロック解除されると想定せず、意図的に方法を選択してください。
ターゲット容量がソースと異なる場合は、ZimaSpaceのより小さいファイルシステムへのスナップショット復元ワークフローを使用します。ここでのゲートはより単純です。選択したスナップショットにアクセスでき、鍵を読み込め、テストコピーが既存のマウントを上書きしないことが必要です。
分離したターゲットに復元し、読み取り可能性を証明する
選択したポイントを一時的なマウントポイントを持つ別のデータセットに復元またはクローンします。代表的なファイルのハッシュ、ACL、拡張属性、所有者、スパースファイル、アプリケーションデータを比較します。データベースの場合は、インプレースで本番ファイルを開くのではなく、ネイティブバックアップを復元するか、分離したポートでコピーしたインスタンスを起動します。
復旧環境を再起動するか、エクスポートして再インポートし、記録された場所から再び鍵を読み込んでマウントを繰り返します。これにより、成功がキャッシュされた鍵、一時的なシェル状態、または本番環境から偶然継承されたマウントに依存していなかったことを証明できます。
復旧が完了するのは、別のオペレーターが鍵の手順に従い、対象のデータセットをマウントし、元のホストなしで検証済みデータを復元できる場合だけです。鍵が利用できない場合、すべての保護されたコピーで復号に失敗する場合、またはデバイスエラーが発生する場合は、エスカレーションしてください。ファイルシステムの修復で失われた暗号化鍵を再構成することはできません。
サポートとヒント
もっと読む

名前を変更したデータセットと安定したファイルハンドルのためのNFS移行チェックリスト
ストレージの識別情報が変わるとファイルハンドルも変わる可能性があることを前提としてください。クライアントを停止し、エクスポートを意図的に切り替え、再マウントして、開いているファイルと新規ファイルを検証してください。

Windows、macOS、Linux向けSMBクライアントのトラブルシューティングガイド
各クライアントで同じサーバー、アカウント、共有、ファイル操作を使用し、検出、認証情報、ポリシー、ストレージの障害が混在しないようにします。

アプリ、データベース、バックアップ向けホームサーバーのシークレットローテーションチェックリスト
ローテーションは依存関係の移行として扱い、すべての利用箇所を洗い出し、可能な場合は認証情報を重複配置し、新しい値を検証してから、古い値を無効化し、復旧をテストします。

