私は ZFS 初心者で、大きな失敗をしました。同じプールの下に別々のミラーを置けることに気づかなかったため、複数の ZFS プールがありました。アレイをまだ再構築中なので、ミラーの 1 つが空でした。それを破棄してメイン プールに追加したら、すべてうまくいきました。
その後、そのミラーの読み取りプロパティを読み取り専用に設定しようとしましたが、できませんでした。次に、そのミラーだけを削除しようとしましたが、できませんでした。最後に、プールをエクスポートし、2 番目のミラー (データなし) を上書きして、メイン プールをインポートしようとしました。そのミラーが欠落/劣化しているが、1 番目のミラーは問題ないという私の考えは、それほど幸運ではありませんでした。ミラー 0 は正常に機能している (と思われる) にもかかわらず、zpool をまったくインポートできなくなりました。
これについてハッキングできる方法があるかどうか疑問に思っています。インポートするために、追加のミラーの UUID/PARTUUID を手動で設定することを考えていましたが、もちろんオンライン上のすべては ext4 に関するものであり、ZFS の UUID を操作する方法は見つかりませんでした。
これを強制的にインポートしたり、2 番目のミラーの zpool の期待を削除して最初のミラーをマウントする方法は考えられますか? または、最終的に、データを破壊せずにミラー 0 を独自の zpool に移動する方法はありますか?
虚しく感じている...
ここにいくつかのデータがあります:
zpool 名bigdataa
mirror-0 should have a functionion set of data
pool: bigdataa
id: 8521961398473378259
state: UNAVAIL
status: One or more devices contains corrupted data.
action: The pool cannot be imported due to damaged devices or data.
see: http://zfsonlinux.org/msg/ZFS-8000-5E
config:
bigdataa UNAVAIL insufficient replicas
mirror-0 ONLINE
12d9fdf5-9912-4b47-a67c-73376cabe161 ONLINE
0f8cbe38-fce7-ba4d-85fb-f0b624ef4c70 ONLINE
615ac488-0519-4a31-88ea-ddc81595c9b7 ONLINE
mirror-2 UNAVAIL insufficient replicas
aef43ae1-2bff-4eac-8c91-7818b1ec37fd FAULTED corrupted data
8d1e0a1e-9736-4a28-a968-555fe65e9d17 FAULTED corrupted data
答え1
徹底的に調査しましたが、プールをマウントする方法が見つかりませんでした。今後は個別のプールを維持して、個々のミラーのプロパティを操作し、問題がない場合に単一のミラーをマウントし (この動作には満足していません...)、MergeFS を使用して最終的な単一のプールを提示します。
私は UFS Explorer RAID Recovery を試しました (結局必要だったのは UFS Explorer Recovery だけで、価格は 70 カナダドルでした。これはずっと簡単で、今ではツールキットに素晴らしいソフトウェアが加わりました)。昨夜、スキャンが完了し、すべてのファイルが見つかったようです。200 カナダドルの値段は受け入れて最終結果を更新しますが、状況は良さそうです!
更新: 現在、すべてのファイルを保存していますが、今のところすべて順調です。皮肉なことに、パーティション/ファイル構造が変更されていないため、「失われたファイルをスキャン」する必要すらなかったことに気付きました。どうやら、このソフトウェアは、プールを「インポート」したり、他のディスクを使用可能にしたりしなくても、ミラー内の個々のディスクを表示できるようです。(スキャンせずに、他のミラー ディスクで直接「ファイルを表示」することでこれを確認しました)
この人たちは自分が何を言っているのか分かっていないようです... 否定的/役に立たないフィードバックで荒らしをする人が大嫌いです...
https://www.ixsystems.com/community/threads/recovery-tool-for-zfs.23008/post-138885
答え2
ここで構築した方法では、データがミラー 0、ミラー 2、および別のディスクにストライプ化 (RAID-0) されていることがわかります。そのため、ミラー 2 を上書きすると、ZFS はデータの半分が失われたと判断し、プールをまったくインポートできませんでした。これは、3 つのディスク RAID-0 アレイをセットアップしてからディスクの 1 つを消去した場合と似ています。ストライプ化の仕組みにより、すべてのデータにアクセスできなくなります。
これが、ミラー 2 にも読み取り専用プロパティを設定できなかった理由です。これは、RAID-0 アレイ内の 1 つのディスクを読み取り専用としてマークしようとするようなものですが、書き込みは RAID-0 アレイ内のすべてのディスクにストライプ化される必要があるため、これは実行できません。ストレージ デバイスの 3 つおきのブロックを読み取り専用としてマークすることはできません。
ミラー 2 にはまだデータがなかったようですが、ZFS はそれを認識していなかったため、ディスクが上書きされた後にアレイのインポートを拒否したようです。
おそらく、プール内のすべてのデバイス/vdev が互いにミラーリングされていると想定していると思いますが、実際には ZFS はプール内の各 vdev にわたってデータをストライプ化します。このため、データをストライプ化するのではなくミラーリングする場合は、特別なミラー vdev を作成する必要があります。