Linux MintをRAID1で動かす

このホームページはレンタルサーバーで運用しているのですが、研究室にLinuxサーバーが1台あると何かと便利かと考え、Ubuntu系のLinux Mint Xfce4をインストールしました。バックアップをとるのが面倒だったのでSSDをRAID1の構成で構築したのですが、素直にバックアップをとった方が簡単だったかもと思いますが、備忘録として作成方法を残しておきます。
こちらのページこちらのページを参考にインストールしましたが、ちょっと厄介な点があります。RAID1とはハードディスク(またはSSD)2台をミラーリングで同じ内容を記憶しておき、どちらかのディスクが壊れてもバックアップとして片側のディスクだけで動作が可能な冗長化の手法です。基本的にはLinuxやWindowsなどのOSを読み込む前にパソコンはBIOSなどの小さなプログラムから必要なドライバなどを確保しながら実行して、最終的なOSまでたどり着きます。OSがインストールされている領域がRAID1でミラーリングされていると、その手前のUEFIを実行している段階でRAID1に対応させないと、どのファイルを次に読み込めばよいのか不明になってしまいます。つまり、UEFIでRAID1で構成されたディスクに対応させるようセットアップする必要があり、その点が、ちょっと厄介なのです。

まず、Linux Mint 20.3のXfce Editionをダウンロードして起動用のCD-Rを作成しました。そのCD-Rからコンピュータを起動して、まずは、SSDのパーティションを作成します。パーティションやフォーマットを実行できるソフトGPartedを立ち上げて、今回は、参考ページと同じくGPTパーティションでテーブルを作成しました。

500GBのSSDを2台設置したので、そのラベルは、sdaとsdbになっています。それぞれ、同じ構成でパーティションを作成していきます。次の図は、そのうちのsdaの方の構成です。

SSD2台のフォーマットを行ったら、そのまま続いて、ターミナルを開いて、コマンドを入力してRAID1を構成していきます。

suso apt update
sudo apt install mdadm

mdadmはソフトウェア的にRAIDを構成するためのソフトで(ハードウェア的にRAIDを構成するコンピュータもある)、起動するCD-Rには入っていないので、ネットワーク経由で、ここでインストールする必要があります。

sudo mdadm --create /dev/md0 --level=raid1 --raid-devices=2 /dev/sda2 /dev/sdb2
sudo mkfs.ext4 /dev/md0

RAID1で記録するデバイスは、sdaとsdbのSSDの中の2番目のパーティションですが、md0という名前の仮想的なディスクを作成し、そのディスクに書き込みを行うと、実際のsda2とsdb2の両方に保存されるという設定です。そのRAID1の仮想ディスクmd0のフォーマットも行っています。2つのディスクの内容が同一になるのを少し待ちます。「cat /proc/mdstat」とコマンドを打つと、どの程度進んだか進捗状況が確認できます。

ディスクの同期が終了したら、起動しているCD-RからLinux Mintをインストールしていきます。デスクトップにある「Install Linux Mint」をダブルクリックして、指示の通りに進めていきます。ただ、インストール先を選択するときは注意が必要です。「それ以外」を選んで、具体的に先ほど作成したRAID1のディスクmd0を選びます。

このままインストールを進めて行っても、最後に文句を言われてしまいます。

GRUBと呼ばれるブートローダーUEFIのインストールがRAID1に対応していないためエラーが発生します。このままではLinuxが立ち上がらないので、「試用を続ける」を選んで、手動で修正していきます。再度、ターミナルからのコマンドです。

sudo mount /dev/md0 /mnt
sudo mount /dev/sad1 /mnt/boot/efi
for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done

必要なファイルをマウントしたら、そのディレクトリにchrootします。

sudo chroot /mnt

そのディレクトリでもmdadmをインストールして、また、Linuxのkernelを調べます。

apt install mdadm
dpkg --list | grep linux-image

ここで表示されるkarnelの数字を使って再インストールします。ただ、参考にしたページと同じように「rm -rf /boot/*」を実行したらエラーが出たのですが、構わず続けました。

apt-get install --reinstall linux-image-5.4.0-91-generic
grub-install --recheck /dev/sda
update-grub
exit

ここまで来れば、あと一息。コンピュータを再起動すれば、再インストールしたGRUBでLinux Mintが起動するはずです。(祈るのみ)
ただ、GRUBをインストールしたのはsdaのみなので、sdbにもGRUBをインストールして、どちらからでもLinuxが起動できるよう中身をrsyncでコピーします。

お疲れ様でした。サーバーの構築となると、ここから、まだまだ初期設定やサービスのインストールがありますが、ひとまずは小休止でしょう。このページを参考にして記載ミスなど、ご連絡頂けましたら幸いです。