目次
RAID1 に Ubuntu Server 20.04.1 LTS を インストールした
Ubuntu Server を RAID1 にインストールすることで、
HDD の障害に強いサーバーを作ろうと思った。
前々から RAID1 にインストールしようとしているけど
いつも挫折していたが、今回やっとできたのでざっくりメモしておく。
(後から記憶で書いたので間違いあるかも)
1. HDD の パーティションを 作成しておく。
作成しておくといっても、インストール前なので、LiveCD で
Ubuntu を起動して操作する。
Ubuntu Desktop は インストール用メディアが LiveCD としても
動作するので、それを使った。
パーティションは MBR ではなく GPT にした。
使用するマザーボートは UEFI 対応なので GPT 使える。
HDD のサイズは 250GB x 2 の RAID1 なので、GPT にするのは
必須ではないが、GPT の方が 起動が早いらしい。
作成したパーティションは以下の通り。
Number Start (sector) End (sector) Size Code Name 1 2048 1050623 512.0 MiB EF00 EFI system partition 2 1050624 468862094 223.1 GiB FD00 Linux RAID Number Start (sector) End (sector) Size Code Name 1 2048 1050623 512.0 MiB EF00 EFI system partition 2 1050624 468862094 223.1 GiB FD00 Linux RAID
(別の HDD に SWAP 領域あるので、ここには作らななかった。普通に作るならSWAPパーティションも作る))
2. RAID1 を組む。
LiveCD で起動したまま RAID1 を構成する。
LiveCD から起動では mdadm が入っていないのでインストールする。
apt install mdadm (ネットワーク接続要)
とりあえず 1 台だけ組み込んで /dev/md0 作っとく。
mdadm –create /dev/md0 –level=raid1 –raid-devices=2 missing /dev/sda2
ext4 で フォーマットしておく。
3. Ubuntu Server 20.04.1 LTS を インストール
LiveCD を終了して、Ubunts Server の インストールを行う。
/dev/md0 にインストール。
grub は、/dev/sda にインストール。これ、必要かどうかわからないけど。
次の GRUB インストールが重要。
4. GRUB を再インストール
LiveCD でもう一回起動。mdadm 入れて raid1 組む。
ここを参考にした。 https://qiita.com/TsutomuNakamura/items/04176b91d791de46142c
復旧したいOS がインストールされているデバイスをマウント
# mount /dev/md0 /mnt # mount /dev/sda1 /mnt/boot/efi
その他クリティカルな部分もマウント
# for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done
マウントが完了したらマウントしたディレクトリにchroot
# chroot /mnt
インストールされていたkernel を確認
# dpkg --list | grep linux-image ii linux-image-5.4.0-42-generic 5.4.0-42.46 ii linux-image-generic 5.4.0.42.46
kernel を確認したら /boot 領域を一旦全部削除
# rm -rf /boot/*
kernel を再インストール。
# apt-get install --reinstall linux-image-5.4.0-42-generic
grub ローダをインストール。
# grub-install --recheck /dev/sda # update-grub # exit # <- chroot を抜ける
LiveCD 終わらせて再起動すれば、インストールしたディスクで起動できるはず。
5. /boot/eft の冗長化
Grub は、一方のディスクにしか入っていないので耐性アップのためコピーする。
/boot/eft の冗長化は以下を参照。 https://ginkyo.hatenablog.jp/entry/2018/11/06/135154
sda1 と sdb1 の中身を確認。
$ sudo ls /boot/efi/ EFI $ sudo mount /dev/sdb1 /mnt/ $ sudo ls /mnt/ (何も出力されない)
/boot/efi を sdb1 にコピー
$ sudo rsync -a /boot/efi/ /mnt/
6. 動作確認
起動して RAID1 に sdb 足して、同期が完了するまで待つ。
同期が完了したら、あとは、RAID1 の HDD 一方を外して それぞれ起動することを確認して完了。