☰
ホーム ラインナップ サポート ニュース ログイン
Linuxmaniaトップ > 活用ガイド > RAIDボリュームからのブートとパーティション

Linuxmania:活用ガイド


■RAIDボリュームからのブートとパーティション


システム全体をソフトウェア RAIDのボリュームとして、RAIDボリュームからシステムを起動したい場合の注意点をご紹介します。

HDD 1MBRbiosgrubRAID 1

/boot
RAID

   /   
SWAP
・・・MBRbiosgrubSWAP
HDD NMBRbiosgrubSWAP



SWAP領域



SWAP領域に冗長性を持たす意味はあまりありません。 システム全体をRAIDボリューム上に構築したい場合でも、SWAP領域は別途用意します。 Linuxは起動時に存在するSWAP領域を自動で使用しますので、HDD を交換した際などには残りのSWAP領域を自動で使用します。

SWAP領域は余裕があれば実メモリより大きめに確保します。 例えば実メモリ 4GB を HDD 3 台に分ける場合、 各 2GB で、計 6GB を確保するなどするとよいでしょう。

各 HDD にSWAP領域を確保 HDD故障で残ったSWAP領域
HDD 1RAID

   /   
SWAP
・・・SWAP
HDD NSWAP
HDD 1RAIDSWAP
・・・RAID
   /   
SWAP
HDD NSWAP


SWAP領域用に RAID 0 を構築することによって、高速化を図ることも考えられます。 RAID 0 ボリュームは HDD 1台の故障で破壊されますので、 HDD を交換した場合には後に再度SWAP領域用の RAID 0 ボリュームを作成する必要があります。
SWAP領域用に RAID 0 を構築 HDD故障時にSWAP領域は不可
HDD 1RAID

   /   
RAID 0

SWAP
・・・
HDD N
HDD 1RAIDRAID 0

SWAP
・・・RAID
   /   
HDD N


/boot



Linux の ソフトウェア RAID は Linux により実現されているため、GRUB ブートローダが Linux カーネルを起動するまでは基本的には使用できません。 このため、システム全体をRAIDボリューム上に構築したい場合でも、/boot を GRUB ブートローダが読み込める場所へ、すなわちRAIDボリュームの外に出す工夫が必要となります。

/boot パーティションは、100MB から 200MB 程度を確保します。

※ /boot ディレクトリにはカーネルと起動イメージ(initrd)があります。
※ 例外的に RAID 1 だけは、初期の GRUB からサポートされています。
※ GRUB2 ではこの他の RAID もサポートされはじめましたが、このページでは紹介しません。

最初の HDD の最初のパーティションに /boot をインストールする方法が最も簡単です。しかし、最初の HDD が故障した場合には、たとえRAIDボリュームが縮退して運用可能であっても、/boot が無くなるため起動できなくなってしまいます。
HDD 1 に /boot HDD 1 故障時は起動不可
HDD 1/bootRAID

   /   
・・・
HDD N
HDD 1/bootRAID
・・・RAID
   /   
HDD N

RAID 1 だけは、初期の GRUB からサポートされていますので、/boot に使用する部分を RAID 1 の多重ミラーとして構築することで、HDD 故障時の起動、再起動が可能となります。
/boot を RAID 1 にする HDD 1 故障時も起動可能
HDD 1RAID 1

/boot
RAID

   /   
・・・
HDD N
HDD 1/bootRAID
・・・RAID 1
/boot
RAID
   /   
HDD N



MBR(マスターブートレコード)



起動するためには、GRUB を MBR へインストールする必要があります。 縮退時も考慮して、全ての HDD の MBR へそれぞれ GRUB をインストールしておくことをお勧めします。 また、HDD 交換時にも新しい HDD の MBR への GRUB のインストールをお勧めします。

Ubuntu の Alternative版のインストーラにて、このように /boot を RAID 1 に設定してインストールした場合には、自動で /dev/sda から /dev/sdX まで全てに grub-install が実行されます。

HDD 1MBRRAID 1

/boot
RAID

   /   
・・・MBR
HDD NMBR

※ MBR は、HDD の先頭セクタです。


GPT(GUID パーティションテーブル)



2TBを超す HDD ではパーティションテーブルに GPT を利用しますが、GPT からブートするためには 予約済み BIOS ブート領域(biosgrub)というパーティション約1MBを用意する必要があります。 手作業でパーティションテーブルを設定する際には忘れがちなので注意しましょう。

※ GPT からのブートは GRUB2 からサポートされています。

HDD 1MBRbiosgrubRAID 1

/boot
RAID

   /   
・・・MBRbiosgrub
HDD NMBRbiosgrub

Ubuntu のインストーラでは、ガイドによるパーティショニングを試しに行ってみることで、biosgrub が必要かどうかを判断することもできます。

セクタ指定を 2048 の倍数に



gdisk を使用してパーティションを切る場合には、Ubuntu インストーラのガイドによるパーティショニングに習い、 2048 の倍数のセクタから開始し、 2048 の倍数マイナス 1 のセクタで終了するように設定することをお勧めします。 デフォルトでは First sector = 34 からユーザが使用できる領域ですが、 2047 セクタまでの約1MBは、空き領域としておくということになります。 先頭から 33 セクタより前のセクタは、MBR、GPTヘッダとGPT予約領域 ですので、ユーザが意識する必要はなく設定も出来ません。 末尾に端数のセクタが残りますが、これも空き領域としておくということになります。 さらに最後の34セクタにも先頭と同様なGPTヘッダとGPT予約領域がありますが、同様にユーザは意識する必要はなく設定も出来ません。

※ 2048 の倍数は、仕様ではありませんので、こだわる必要はありませんが、他のOSや設定ツールとの互換や、RAIDのストライプサイズと実際のセクタが揃うことでのパフォーマンス向上などが考えられます。
※ ここでいうセクタは CHS ではなく LBA です。
※ 1 sector は 512 byte です。

2TB HDD での設定例

00MBR
133GPTヘッダとGPT予約領域
Start (sector)End (sector)SizeCodeName
342047空き領域設

定

可

能

範

囲
204840951024.0 KiBEF02BIOS boot partition設

定

範

囲
4096395263191.0 MiBFD00Linux RAID
39526439031234551.8 TiBFD00Linux RAID
390312345639070289911.9 GiB8200Linux swap
3907028992空き領域
Start (sector)End (sector)SizeCodeName
最後から 33 手前最後GPTヘッダとGPT予約領域

※ 4096 = 2048 * 2
※ 395264 = 2048 * 193
※ 3903123456 = 2048 * 1905822
※ 3907028992 = 2048 * 1907729


参考






[作成日 2011/04/26]