
私は Debian Jessie を搭載したサーバーを所有しています。4 つのドライブ (sda から sdd) があり、すべて同じようにパーティション分割されています。システムはすべてのドライブで raid1 md raid になっています。すべてのドライブに grub があり、ディスクを相互に交換できます。各ディスクは起動可能で、システムは正常に起動します。すべてのドライブにまったく同じフォーマットが含まれています。
sdx1 - Boot Partition, GRUB installed
sdx2 - Raid 1 /boot
sdx3 - Raid 1 /
sdx4 - Raid 10 swap
sdx5 - non-md btrfs Raid 6 /data
データ パーティションは raid6 btrfs です。現在、ドライブをより大きなドライブに交換して容量をアップグレードしようとしています。2 つの障害が発生する可能性があるため、最初に思いついたのは、ドライブの 1 つを交換して再起動し、障害が発生した RAID アレイを新しくインストールしたドライブで復元し、再構築後にすべてが正常に戻ることでした。
しかし、ドライブを RAID アレイを無効にするものに交換すると、マシン (残念ながら現在はヘッドレス) は起動しなくなります。 一日中ディスクを互いに交換しても、問題なく起動します。 しかし、ディスクを取り外したり、RAID の一部ではないものに交換したりすると、起動に失敗します。
何か見落としているのでしょうか? ディスクが欠落している/アレイが劣化している状態でも自動的に起動できることを md に伝えるにはどうすればよいのでしょうか? 結局のところ、md に関する限り、4 つのディスクのうち 1 つでもシステム全体をサポートできます。データ パーティションは少なくとも 2 つのドライブが必要なので別の問題ですが、これは純粋な btrfs raid であるため、md はそれを気にする必要はありません。
現在のユースケースでは、ドライブを RAID から取り外し、アップグレードしてから元に戻すだけで済むことはわかっていますが、障害が発生した場合、システムの起動に失敗したときにドライブを取り外すことはできません。
答え1
更新と回答として、その間に、ここで本当に欠けているのは fstab の nofail フラグだけであることがわかりました。ファイルシステムは劣化しており、nofail オプションが設定されていないと、劣化した状態でファイルシステムをマウントすることはできません。
答え2
私の知る限り、個別のブート パーティションを持たずに起動できる RAID を mdadm で作成することはまだ不可能です。ここで説明されているのと同様の方法で設定すると想定しています。これは RAID10 を使用しますが、他の RAID レベルにも適用されます。
3 台または 4 台 (またはそれ以上) のディスク ソフトウェア RAID10 を使用して、起動可能な冗長 Debian システムを作成する方法は?
BIOS で他のディスクを起動するように設定していない可能性があります。または、起動パーティションがまったく同じではなく、同じ UUID を持つ正確なコピーではありません。
特定のディスクを起動できるようにするには、そのディスクにブート セクタが必要であり、BIOS をそのディスクから起動するように構成する必要があります (RAID の一部である他のブート ディスクのリストとともに)。もちろん、起動を正常に完了するには、ディスクにブート パーティションも必要です。これらのブート パーティションは RAID の一部ではないため、各ブート ディスクには独自のパーティションがあります。各ブート パーティションにまったく同じファイル システムが含まれていること (たとえば、dd を使用してコピーする) と、各ディスクにそのブート パーティションのイメージを使用して作成されたブート セクタがあることを確認すれば、システムはどのディスクからでも起動できるはずです。RAID が劣化した場合でも、劣化した RAID によって正常な起動が妨げられることはありません。そうでない場合、RAID を持つことの大きな利点が無意味になります。
リンクから引用:
RAID の一部である各ディスクには、RAID の一部ではない約 1 GB の起動可能なパーティションが必要です。これらのパーティションは通常どおりに作成し、サイズは正確に同じである必要があります。これらを起動可能としてマークし、ディスクの 1 つのマウント ポイントは /boot にする必要があります。他のディスクはマウント解除したままにできます。
dd を使用してブート パーティションの正確なコピーを作成したら、次の操作を実行します。
ここで、BIOS が 3 つのディスクすべてから起動するように設定されていることを確認します。順序は関係ありません。BIOS が任意のディスクから起動しようとする限り、ディスクの 1 つに障害が発生した場合でも、UUID がまったく同じであるため、システムは自動的にもう 1 つのディスクから起動します。