お知らせ!! 「jpcmoh.myds.me」から「mohlog.com」へ変更しました
PR

RAID1 Ubuntu Server障害発生リハーサル その2

アイキャッチ RAID1リハーサルその2 Linuxをつかおう!!
記事内に広告が含まれています。
スポンサーリンク

はじめに

前回の障害発生リハーサル(起動時にSSDが一台外れてしまっていて、そのまま起動したという想定)で、最後に挙げた問題の対策です。

NOTE

Ubuntu Server は、24.04.2LTSを使用しています。

おさらいすると、以下のパターンC、SSD2のみで起動すると、/boot/efi がなくなる 件です。

befor

パターンA,B:正常時とSSD1のみ(SSD2をはずして)で起動したとき

mohlog@qe3csvr:~$ df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 769M 1.5M 768M 1% /run
efivarfs 192K 68K 120K 37% /sys/firmware/efi/efivars
/dev/md0p1 109G 6.6G 97G 7% /
tmpfs 3.8G 0 3.8G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/sda1 1.1G 6.2M 1.1G 1% /boot/efi
tmpfs 769M 12K 769M 1% /run/user/1000

パターンC:SSD2のみ(SSD1をはずして)で起動したとき

mohlog@qe3csvr:~$ df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 769M 1.5M 768M 1% /run
efivarfs 192K 68K 120K 37% /sys/firmware/efi/efivars
/dev/md0p1 109G 6.6G 97G 7% /
tmpfs 3.8G 0 3.8G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 769M 12K 769M 1% /run/user/1000

やりたいことは、常にどちらか生き残っているSSDの第1パーティションを/boot/efiに割り当てることです。

after
スポンサーリンク

/etc/fstabの設定とUUID

この設定は、/etc/fstabにあります。
青い部分がその設定です。

/etc/fstab の内容

#/etc/fstab: static file system information.
#
#Use 'blkid' to print the universally unique identifier for a
#device; this may be used with UUID= as a more robust way to name devices
#that works even if disks are added and removed. See fstab(5).
#
#/ was on /dev/md0p1 during curtin installation
/dev/disk/by-id/md-uuid-5bdb7329:d089d459:b7b6faf0:854e516f-part1 / ext4 defaults 0 1
#/boot/efi was on /dev/sda1 during curtin installation
/dev/disk/by-uuid/0D44-F66F /boot/efi vfat defaults 0 1
/swap.img none swap sw 0 0

uuidが0D44-F66Fのパーティションを/boot/efiに割り当てる設定になってます。
uuidは、パーティションに固有のIDです。管理者権限にて、「blkid」コマンドで調べられます。

mohlog@qe3csvr:~$ sudo blkid
・・・中略・・・
/dev/sdb1: UUID="6543-0896" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="・・・
・・・中略・・・
/dev/sda1: UUID="0D44-F66F" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="・・・
・・・以後省略略

UUID="0D44-F66F"である、SSD1/dev/sda1であるため、
/dev/sda1 が、/boot/efi に割り当てられているということになります。

そこで、先ほどの、/etc/fstabの一文を、以下のように変えれば、SSD2の方に割り当てることができます。

/dev/disk/by-uuid/0D44-F66F /boot/efi vfat defaults 0 1

/dev/disk/by-uuid/6543-0896 /boot/efi vfat defaults 0 1

これで起動すると、


パターンA:2つのSSDが正常時に起動したとき

mohlog@qe3csvr:~$ df -h
・・・中略・・・
/dev/sdb1 1.1G 6.2M 1.1G 1% /boot/efi
tmpfs 769M 12K 769M 1% /run/user/1000

パターンB:SSD1のみ(SSD2をはずして)で起動したとき

mohlog@qe3csvr:~$ df -h
・・・中略・・・
tmpfs 769M 12K 769M 1% /run/user/1000

パターンC:SSD2のみ(SSD1をはずして)で起動したとき

mohlog@qe3csvr:~$ df -h
・・・中略・・・
/dev/sda1 1.1G 6.2M 1.1G 1% /boot/efi
tmpfs 769M 12K 769M 1% /run/user/1000

意味なし

となり、SSD1のみ(SSD2をはずして)で起動したときがだめなので、これでは意味がありません

スポンサーリンク

対策

ここで注目すべきは、パターンAとパーターンCの比較。どちらもSSD2の第1パーティションが/boot/efiに割り当てられていますが、パターンAでは/dev/sdb1、パターンBでは/dev/sda1 になってます。
これは、正常時は/dev/sdbだったSSD2が、SSD1が取り外されたときは繰り上がって/dev/sdaとして認識されているためです。

したがって、/etc/fstabを、以下のように変えてみました。

#/etc/fstab: static file system information.
・・・中略・・・
#/boot/efi was on /dev/sda1 during curtin installation
#旧設定/dev/disk/by-uuid/0D44-F66F /boot/efi vfat defaults 0 1
/dev/sda1 /boot/efi vfat defaults 0 1
/swap.img none swap sw 0 0

これで、上記パターンA,B,Cのいずれにおいても、/boot/efiがきちんとセットされるようになりました。

after
スポンサーリンク

おわりに

今回のような設定は、ネットで検索してもでてきません。一般的には、/boot/efiもRAID1にするようです。
理由は、
自動的に同期もされませんし、
この設定では、片方のSSDがNVMe接続だったりすると、/dev/nvme0p1となって使えない、
また、他のメディアを接続したりすると、それが/dev/sdaになったりしてしまう場合があるからだと思います。
今回のように、2台のSSDを同じインターフェースで接続した場合に限りますね。

今回の環境(2台のSSDをUSBアダプタを使って、USBで接続)では、特に不具合なく動いています。このあと、SSD1台が故障した場合のSSDの交換、復旧もやってみました(この後に投稿予定)が、それもうまく行ってます。

ただ、もしかすると、他になにか不具合があるかもしれませんので、もし同じように実施される場合は、自己責任でお願いします。

参考 /boot/efi の中身と更新(同期)

/boot/efi の中身は、以下のファイルです。更新頻度は少ないと思われるので、手動で更新(同期)します。

mohlog@qe3csvr:/boot/efi/EFI$ ls -l /boot/efi/EFI/boot
合計 1876
-rwxr-xr-x 1 root root 966664 3月 10 09:37 BOOTX64.EFI
-rwxr-xr-x 1 root root 88344 3月 10 09:37 fbx64.efi
-rwxr-xr-x 1 root root 856280 3月 10 09:37 mmx64.efi

mohlog@qe3csvr:/boot/efi/EFI$ ls -l /boot/efi/EFI/ubuntu
合計 4392
-rwxr-xr-x 1 root root 108 3月 10 09:37 BOOTX64.CSV
-rwxr-xr-x 1 root root 162 3月 10 09:37 grub.cfg
-rwxr-xr-x 1 root root 2656136 3月 10 09:37 grubx64.efi
-rwxr-xr-x 1 root root 856280 3月 10 09:37 mmx64.efi
-rwxr-xr-x 1 root root 966664 3月 10 09:37 shimx64.efi


更新は、以下のコマンドで実施できます。(管理者権限で実行)
dpkg-reconfigure grub-efi-$(dpkg --print-architecture)

使い方は、次回のSSD交換の記事で紹介します。
ポイントは、最後に出てくるインストール先で、RAIDを組んでいる2つのSSDを指定することです。そうすることで、2つのSSDに同じものがインストールされ、更新と同期がいっぺんにできます。

Configuring grub

コメント

タイトルとURLをコピーしました