ソフトウェアRAIDにGRUBをインストールすると、どのような利点/欠点がありますか?

ソフトウェアRAIDにGRUBをインストールすると、どのような利点/欠点がありますか?

利点ソフトウェアRAID-1にGRUBをインストールする必要がありますか?

欠点ソフトウェアRAID-1にGRUBをインストールする必要がありますか?


ほとんどのチュートリアル/ヘルプセクションでは、GRUBが次の場所にあると仮定しているので、この質問をします。ノーマル(つまり、RAIDではなく)パーティション。

それでは、ソフトウェアRAIDの上にGRUBをインストールすることに反対する妥当な理由はありますか?それともこれはコンベンションだけですか?

以下のすべては私の不足している知識を反映しており、必然的にエラーが含まれていることをお知らせします。エラーを発見したら訂正や説明をしていただきありがとうございます。ありがとう:0)

そのため、個人的にRAID-1にインストールした後、チュートリアル/リカバリ手順がより混乱していました。たとえば、fsck /dev/sda1 RAID以外のシステムでは大丈夫ですが、いいえ単一の md ドライブ (AFAIK) で実行する必要がある操作です。

私が理解しているのは、ソフトウェアRAIDなので、最初のブートドライブに障害が発生すると、とにかくブートが停止することです。 (IEは、mdドライブを管理するのに十分なOSがロードされるまで、実際には最初にRAIDドライブにロードされないため、RAID-1でのみ起動できます。したがって、GRUBがロードされると、最初のドライブからのみデータを読み込みます)

答え1

Grub 2(Grub 1.9xとも呼ばれる)は、デフォルトでLinux RAID-1をサポートしています。 Grub 1(Grub 0.9xまたはGrub Legacyとも呼ばれます)はこれをサポートしていませんが、Grubはディスクからのみ読み取るため、サポートしているふりをすることができます。これは、RAID-1のディスクの1つから読み取るのと同じではありません。アレイをインポートするのはアレイと同じくらい良いです(パフォーマンスを除いて、ここでは重要ではありません。ディスクの1つが失敗しない限り、通常はBIOSディスクの順序を変更すると、Grubは失敗していないディスクから読み取られます)。

したがって、ブートディスクにGrubを設定し、2台目のシステムディスクとともにGrubを含むパーティションをRAID-1デバイスに設定すると(Grub 1を使用してgrub-install各ディスクを1回実行)、どちらのディスクにも障害が発生してもシステムは引き続き起動します。これは、RAID-1と比較してGrubの利点の1つですが、大きな利点です。

RAID-1設定でGrubを使用しても動作上の副作用はありません。ただし、設置コストが発生する可能性があります。多くのLinuxインストーラは、重要な設定を開始する操作を正しく実行しません。手動で作成または編集する必要があるかもしれません/boot/grub/device.map

Grub Legacy で始まる以前のドキュメントでは、Grub が RAID をサポートしていないと記載されている場合があります。事実ですが、上で書いたように、読み取り専用RAID-1サポートが無料で提供されます(他のRAIDモードも使用可能)。まだGrub 2のすべてのチュートリアルが更新されているわけではなく、Grub 2を使用してもインストーラのサポートは必ずしも完全ではありません。したがって、Grub 1をRAID-1アレイに配置することをお勧めします。ただし、ディストリビューションインストーラがそれをサポートするか、Grub設定を簡単に操作できる場合にのみ可能です(正しく起動するにはCDから数回起動する必要があります)。

答え2

RAIDデバイスのパフォーマンスが低下してもシステムは起動し続けるため、ソフトウェアRAIDデバイス(使用している場合)にGRUBをインストールすることをお勧めします。 RAIDデバイスの一部ではない場合、ブートセクタは冗長性を持たず、ハードドライブの障害やファイルシステムの破損時に起動できなくなる可能性があります。ソフトウェア攻撃にGRUBをインストールすると、どのような欠点があるのか​​わかりません。

おそらく、ほとんどの文書では、GRUBがRAIDデバイスにインストールされていない理由は、最近までこれが不可能だったと仮定しています。以前のバージョンのGRUBではこれをサポートしておらず、今後もサポートしません。しかし、GRUB 2も昨年ごろにリリースされたバージョンでのみサポートを開始しました。

さらに詳しく説明すると、GRUB 2はモジュラー方式で設計されています。その結果、GRUBは起動前に必要なモジュール(必要な場合)をロードして起動デバイスを識別するのに十分な機能を追加しました。以下は、RAID 1grub-pcバージョン1.99〜20110112-1の上にLVMを使用するDebian squeezeの2.6.32カーネルの構成の一部です。raidデバイスはRAID 1デバイスの上にあるLVM論理ボリュームであるため、起動を続行する前にモジュールをロードしてください。mdraid1xlvm

    insmod raid
    insmod mdraid1x
    insmod lvm
    insmod part_msdos
    insmod part_msdos
    insmod ext2
    set root='(debian-boot)'
    search --no-floppy --fs-uuid --set=root 93ea47bb-16a1-4b52-a7eb-f17ea430d6cf
    echo    'Loading Linux 2.6.32-5-vserver-686-bigmem ...'
    linux   /vmlinuz-2.6.32-5-vserver-686-bigmem root=/dev/mapper/debian-root ro  quiet
    echo    'Loading initial ramdisk ...'
    initrd  /initrd.img-2.6.32-5-vserver-686-bigmem

これはテストが簡単なので、いくつかの実験をお勧めします。

答え3

私はここで古い地の昆虫について話しています。

利点:ブートメニューの変更、カーネルアップデート、およびInit-RDは2つのディスク(またはそれ以上)に自動的に転送されます。手動でコピーする必要はありません。

逆に、raid 1を設定するときは注意を払う必要があります。誤った順序でこれを実行すると、2番目のディスクを起動できなくなります。問題は、grubがraidデバイスを使用できないことです。そのため、代わりに/dev/hdaNまたは/dev/sdaNを使用します。ただし、現在のsdaが失敗した場合、古いsdbはsdaになります。

回避策は、単一のパーティションに設定しますが、後でデータを失うことなくraid 1メタ情報を追加できるように、パーティションの最後に少しのスペースを残すことです。

最初のディスクにMBRをインストールし、最初のディスクにgrubをインストールします。 ddを使用して両方を2番目のディスクにコピーします。以降、Raid1が設定されました。

関連情報