背景
ベアメタルサーバーにて、ストレージ2台でソフトウェアRAID1(ミラー)構成でOS起動する設定メモ、個人的にまとめて検証してみた。
RHELやCentOSの情報は見掛けるけど、Ubuntu環境でも試してLinux環境の汎用性のある情報としたいかなと思っています。
ハードウェアRAIDカードが導入簡単だけど安くはないのでSATAで簡単にソフトウェアRAIDで冗長化しましょう。
動作環境
この手の情報はネットで検索するとVirtualboxで試したページはよくあるけど、実機のベアメタルサーバーで実際に動作するかは、メーカーや機種によってBIOSの動作も違ってくるので一概に言えないのでご了承下さい。あくまで参考までに。
今回は皆さんの自宅ラックに数台はよくある、FUJITSUのPRIMERGYシリーズの中古ラックマウントサーバーの実機で検証しました。
BIOS設定
最初にベアメタルサーバーの実機のBIOS設定をします。[F2]や[DEL]キーでBIOS画面を表示させます。
ここでBIOS設定のSATAモードは[RAID Mode]ではなく[AHCI Mode]に設定します。
この[RAID Mode]はいわゆるFakeRAIDとも言われているWindows OSのドライバーソフトが前提のソフトウェアRAID設定です。
この種のFakeRAIDはLinuxではドライバーソフトが不足しているので原則として使用不可です。一部にはRHELのドライバーソフトがある場合があります。
Ubuntu Server インストーラー
ubuntuのソフトウェアRAID環境をインストールする時は、「Desktop」版や通常の「Server(Live)」版ではインストールがうまく出来ないので、必ず「Alternative Ubuntu Server installer」版を使用しましょう。
今回は「Ubuntu Server 18.04.3 LTS」を使用しました。
言語設定
日本語を選択すると途中で止まってしまうので、英語のままでインストールします。
ただしキーボードや地域設定は日本語でも問題はありませんでした。
ストレージのパーティション構成
今回は単体のストレージ全体として2つのパーティションを作成します。ひとつはOS起動用、もうひとつがOSやユーザー用です。
それを2台「/dev/sda」「/dev/sdb」でRAID1(ミラー)構成にしますので、合計4つのパーティションになります。
そのパーティションではRAID属性のパーティション上にExt4のファイルフォーマットを構築します。
なおLVMについては今回は使用しません。
OS起動用パーティション作成
ストレージの最初にOS起動用のパーティションを作成します。
サイズは1GBもあれば十分です。2台のストレージにそれぞれ「/dev/sda1」「/dev/sdb1」作成します。
パーティションはRAID属性に設定します。また必ずOS起動フラグ(bootable flag:)を有効(on)にしましょう。
Ext4のファイルフォーマットはRAIDを構成した後なのでここでは設定しません。間違えないように。
OSやユーザー用パーティション作成
ストレージの残りの空き領域はOSやユーザー用として、2台のストレージにそれぞれ「/dev/sda2」「/dev/sdb2」作成します。
またパーティションはRAID属性に設定します。
Ext4のファイルフォーマットはRAIDを構成した後なのでここでは設定しません。間違えないように。
RAID構成デバイスMDを作成
RAID構成ストレージはMDデバイスとして認識されます。2台のストレージに作成したRAID属性のパーティションをそれぞれ組み合わせて、MDデバイスを作成します。
もしも作成後に画面表示内容が変わらない場合は、1つ画面を戻して再認識させると表示されます。
Ext4ファイルフォーマット設定
作成されたRAIDのMDデバイスにExt4ファイルフォーマットのパーティションを作成します。
パーティション作成の最終確認
ストレージのソフトウェアRAID構成が想定通りかよく確認して、インストールのパーティション作成を実行します。
特にOS起動用RAIDパーティションのOS起動フラグを忘れていないか確認しましょう。
これで最後までインストールが無事に完了して再起動出来ると思います。
OS起動確認
再起動後、RAIDの同期設定が進行しているので確認してみます。
$ cat /proc/mdstat
RAID同期が完了したら、それぞれのストレージ単独でOS起動するか確認してみましょう。