RHEL9系でOSをソフトウェアミラー構成でインストールする

AlmaLinux9でサーバ作ろうとしたら、システムディスクをソフトウェアミラー構成する場合にどうやって設定操作すればいいのか全然わからなかったのでメモとして作成

RHEL9,RockyLinux 9, Oracle Linux 9でも共通のはず

1.ディスク選択

ディスク選択では、ローカルディスクを2つ選択し、「ストレージの設定:カスタム」を選んで、「完了」をクリック

2. 初期状態確認

再インストールなどで既存のパーテーションがある場合は削除します。

3. ひとまず標準設定で作成

「ここをクリックすると自動的に作成します」をクリックしてパーテーションをひとまず作成します。

4. ボリュームグループの容量を減らす

デフォルトで作成されたボリュームグループが容量を全部もっていってるので、ボリュームグループが確保した容量を減らします。

まずは /home を選択し、ボリュームグループの下にある「変更」をクリック

・ディスクを1つだけ選択
・RAIDレベルを「なし」
・サイズポリシーを「容量固定」で「100GiB」ぐらいで設定

5. /boot/efiの容量変更

インストーラーの仕様でパーテーションの順序を指定できないので、逆に設定されても対応できるように、/bootと/boot/efiの容量を同じ「1024MiB」に指定します。

6. /bootと/boot/efiのデバイス指定

/boot/efiと/bootが1個目のディスクに作成されるように、「デバイス」の「変更」から1個目のディスクだけを選択します。

/bootについても、1つめのディスクのみを指定する

7. 2個目のディスク用に/boot2, /boot2/efi を同じ容量で作る

2個目のディスク用に/boot2, /boot2/efi を同じ容量で作る

まず、/boot2を「+」をクリックして、新規マウントポイントの追加をする

作成されたら、デバイスの「変更」を行い、2個目のディスクのみを選択する

設定後、右下の方にある「設定を更新」をクリックして、/boot2のデバイスが/dev/sdbになることを確認

続いて/boot2/efiを作成

こちらもデバイスで、2個目のディスクを選択する、ということを行い

追加として、ファイルシステムを「vfat」に変更します。

/boot,/boot/efi が sda系、 /boot2, /boot2/efi が sdb系となっていることを確認します。

8. ボリュームグループをミラー設定に変える

ボリュームグループをミラー設定に変えるため、/homeをクリックし、ボリュームグループの下の「変更」をクリックします。

以下の設定変更を行う
・デバイスを2つ選択する
・RAIDレベルを「RAID1」に変更
・サイズポリシーを「できるだけ大きく」に変更

好みに応じてボリュームグループの名前を変える

9. 設定状況を確認

うまく設定できているか確認します。

確認ポイント
・/boot, /boot/efi のデバイスが1個目にあること
・/boot2, /boot2/efi のデバイスが2個目にあること
・/boot2, /boot2/efi のパーテーション番号が 1か2であること(3以降になってないこと)

パーテーション番号が3以降になってる場合は、ボリュームグループ設定をRAIDレベルなし、デバイス1個のみ指定に変えて、やり直します。

パーテーションを増やす場合は追加していきます。

問題なければ、「完了」をクリックします。

10. パーテーションを確定します

書き換え内容を確認し、パーテーション変更を確定します。

11. インストールを続ける

このあとはインストールを普通に続けます。

12. /boot2, /boot2/efi のパーテーション確認

インストール完了したら、仮で作成している/boot2, /boot2/efi のパーテーションを確認します。

[root@almalinux ~]# df -h
ファイルシス                         サイズ  使用  残り 使用% マウント位置
devtmpfs                               4.0M     0  4.0M    0% /dev
tmpfs                                  2.8G     0  2.8G    0% /dev/shm
tmpfs                                  1.2G  8.8M  1.1G    1% /run
efivarfs                               256K   47K  205K   19% /sys/firmware/efi/efivars
/dev/mapper/almalinux_almalinux-root    70G  2.0G   68G    3% /
/dev/sdb1                              960M   39M  922M    5% /boot2
/dev/sda2                              960M  225M  736M   24% /boot
/dev/sdb2                             1022M  4.0K 1022M    1% /boot2/efi
/dev/sda1                             1022M  7.1M 1015M    1% /boot/efi
/dev/mapper/almalinux_almalinux-home    25G  204M   24G    1% /home
tmpfs                                  567M     0  567M    0% /run/user/0
[root@almalinux ~]# fdisk -l /dev/sd?
ディスク /dev/sda: 256 GiB, 274877906944 バイト, 536870912 セクタ
ディスク型式: Virtual disk
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: gpt
ディスク識別子: AD39DBC4-F496-416D-B408-26B7407C1AE3

デバイス   開始位置  終了位置    セクタ サイズ タイプ
/dev/sda1      2048   2099199   2097152     1G EFI システム
/dev/sda2   2099200   4196351   2097152     1G Linux ファイルシステム
/dev/sda3   4196352 536868863 532672512   254G Linux RAID


ディスク /dev/sdb: 256 GiB, 274877906944 バイト, 536870912 セクタ
ディスク型式: Virtual disk
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: gpt
ディスク識別子: 77F9F7E9-068F-4F6B-8CA1-F0C23721890B

デバイス   開始位置  終了位置    セクタ サイズ タイプ
/dev/sdb1      2048   2099199   2097152     1G Linux ファイルシステム
/dev/sdb2   2099200   4196351   2097152     1G Microsoft 基本データ
/dev/sdb3   4196352 536868863 532672512   254G Linux RAID
[root@almalinux ~]#

1個目のディスクと2個目のディスクでパーテーションの/boot, /boot/efiの順序が逆になっていました。

13. /boot2, /boot2/efi のマウント設定解除

/etc/fstab から /boot2, /boot2/efi のエントリを削除します。

</etc/fstab の編集内容は省略>

また、手動で umount します

[root@almalinux ~]# umount /boot2/efi
[root@almalinux ~]# umount /boot2
[root@almalinux ~]# df -h
ファイルシス                         サイズ  使用  残り 使用% マウント位置
devtmpfs                               4.0M     0  4.0M    0% /dev
tmpfs                                  2.8G     0  2.8G    0% /dev/shm
tmpfs                                  1.2G  8.8M  1.1G    1% /run
efivarfs                               256K   47K  205K   19% /sys/firmware/efi/efivars
/dev/mapper/almalinux_almalinux-root    70G  2.0G   68G    3% /
/dev/sda2                              960M  225M  736M   24% /boot
/dev/sda1                             1022M  7.1M 1015M    1% /boot/efi
/dev/mapper/almalinux_almalinux-home    25G  204M   24G    1% /home
tmpfs                                  567M     0  567M    0% /run/user/0
[root@almalinux ~]#

14. /bootと/boot/efiの中身をddコマンドで丸コピー

パーテーションの情報が異なってることは気にしないで、 1個目ディスクのパーテーション1にある /boot/efi を2個目ディスクのパーテーション1に丸コピーします。

同様に 1個目ディスクのパーテーション2 /boot を 2個目ディスクのパーテーション2に丸コピーします。

[root@almalinux ~]# dd if=/dev/sda1 of=/dev/sdb1 bs=10240
104857+1 レコード入力
104857+1 レコード出力
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 23.3005 s, 46.1 MB/s
[root@almalinux ~]# dd if=/dev/sda2 of=/dev/sdb2 bs=10240
104857+1 レコード入力
104857+1 レコード出力
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 20.9083 s, 51.4 MB/s
[root@almalinux ~]#

blkid コマンドを実行して、同じUUIDとなっていることを確認します。

[root@almalinux ~]# blkid /dev/sd*
/dev/sda: PTUUID="ad39dbc4-f496-416d-b408-26b7407c1ae3" PTTYPE="gpt"
/dev/sda1: UUID="D14E-432E" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="00d955a6-b2cc-4659-8bcb-f40bb6484f02"
/dev/sda2: UUID="7353a543-10d3-4ff5-8db1-9405cd38a5fa" TYPE="xfs" PARTUUID="0e4f1623-0552-4e6a-b1ee-8d4dfa88d47b"
/dev/sda3: UUID="14892d7b-9a8d-c7c3-6dc5-26fd1435d076" UUID_SUB="be4ef8ad-56b5-b6be-8b97-7794a5132363" LABEL="almalinux:pv00" TYPE="linux_raid_member" PARTUUID="24e3bb46-6938-48e1-9e5d-20b8d748179f"
/dev/sdb: PTUUID="77f9f7e9-068f-4f6b-8ca1-f0c23721890b" PTTYPE="gpt"
/dev/sdb1: UUID="D14E-432E" TYPE="vfat" PARTUUID="76f36082-17b8-406b-bc80-269057b944a5"
/dev/sdb2: UUID="7353a543-10d3-4ff5-8db1-9405cd38a5fa" TYPE="xfs" PARTUUID="34de2199-82b1-49a2-a09f-d58cd9598563"
/dev/sdb3: UUID="14892d7b-9a8d-c7c3-6dc5-26fd1435d076" UUID_SUB="2103c67d-0ab9-996f-d170-1b51ff955622" LABEL="almalinux:pv00" TYPE="linux_raid_member" PARTUUID="11caecc2-105b-4b50-a5ab-fbbe312867f1"
[root@almalinux ~]#

ほんとは2つのディスクで同じUUID,PARTUUIDがあるとダメなのですが、そこらへんをちゃんと対応しようとすると面倒なので、省略します。(あまり良くないですよ!)

試した限りでは、同じUUID,PARTUUIDがあったとしても、どちらがマウントされるかわからない、という動作をしていましたが、対象となるのは書き換えられることが kernelとgrub2のアップデートがあった場合のみなので、影響が少ない、という判断からです。

kernelとgrub2のアップデートがあった場合は手動でddコマンドを実行して丸コピーします。

15. パーテーション情報修正

まず、いまのパーテーション情報を確認するため parted -lを実行します。(fdisk -l はフラグ情報が表示されず、また情報更新がうまくいってない場合があるので推奨しない)

[root@almalinux ~]# parted -l
モデル: VMware Virtual disk (scsi)
ディスク /dev/sda: 275GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt
ディスクフラグ:

番号  開始    終了    サイズ  ファイルシステム  名前                  フラグ
 1    1049kB  1075MB  1074MB  fat32             EFI System Partition  boot, esp
 2    1075MB  2149MB  1074MB  xfs
 3    2149MB  275GB   273GB                                           raid


モデル: VMware Virtual disk (scsi)
ディスク /dev/sdb: 275GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt
ディスクフラグ:

番号  開始    終了    サイズ  ファイルシステム  名前  フラグ
 1    1049kB  1075MB  1074MB  fat32
 2    1075MB  2149MB  1074MB  xfs                     msftdata
 3    2149MB  275GB   273GB                           raid


エラー: /dev/md127: ディスクラベルが認識できません。
モデル: Linux Software RAID Array (md)
ディスク /dev/md127: 273GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: unknown
ディスクフラグ:

[root@almalinux ~]#

2個目ディスクのパーテーション1と2のフラグ情報が異なっているので、修正します。

まず、bootとespフラグを設定します。

[root@almalinux ~]# parted /dev/sdb
GNU Parted 3.5
/dev/sdb を使用
GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。
(parted) set
パーティション番号? 1
反転するフラグ? boot
新しい状態?  [on]/off?
(parted) print
モデル: VMware Virtual disk (scsi)
ディスク /dev/sdb: 275GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt
ディスクフラグ:

番号  開始    終了    サイズ  ファイルシステム  名前  フラグ
 1    1049kB  1075MB  1074MB  fat32                   boot, esp
 2    1075MB  2149MB  1074MB  xfs                     msftdata
 3    2149MB  275GB   273GB                           raid

(parted)

続けてパーテーション2のmsftdataフラグを解除します。

(parted) set
パーティション番号? 2
反転するフラグ? msftdata
新しい状態?  on/[off]?
(parted) print
モデル: VMware Virtual disk (scsi)
ディスク /dev/sdb: 275GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt
ディスクフラグ:

番号  開始    終了    サイズ  ファイルシステム  名前  フラグ
 1    1049kB  1075MB  1074MB  fat32                   boot, esp
 2    1075MB  2149MB  1074MB  xfs
 3    2149MB  275GB   273GB                           raid

(parted)

問題なければ「q」で抜けて、変更されたことを確認します。

(parted) q
通知: 必要であれば /etc/fstab を更新するのを忘れないようにしてください。

[root@almalinux ~]# parted -l
モデル: VMware Virtual disk (scsi)
ディスク /dev/sda: 275GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt
ディスクフラグ:

番号  開始    終了    サイズ  ファイルシステム  名前                  フラグ
 1    1049kB  1075MB  1074MB  fat32             EFI System Partition  boot, esp
 2    1075MB  2149MB  1074MB  xfs
 3    2149MB  275GB   273GB                                           raid


モデル: VMware Virtual disk (scsi)
ディスク /dev/sdb: 275GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt
ディスクフラグ:

番号  開始    終了    サイズ  ファイルシステム  名前  フラグ
 1    1049kB  1075MB  1074MB  fat32                   boot, esp
 2    1075MB  2149MB  1074MB  xfs
 3    2149MB  275GB   273GB                           raid


エラー: /dev/md127: ディスクラベルが認識できません。
モデル: Linux Software RAID Array (md)
ディスク /dev/md127: 273GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: unknown
ディスクフラグ:

[root@almalinux ~]#

15. ソフトウェアミラーの同期速度を早くする

Linuxの初期設定では同期速度の上限が2024年時点で考えると引きすぎる値に設定されており、同期完了までに非常に時間がかかります。

[root@almalinux ~]# cat /proc/sys/dev/raid/speed_limit_max
200000
[root@almalinux ~]# cat /proc/sys/dev/raid/speed_limit_min
1000
[root@almalinux ~]#

同期完了までの時間はcat /proc/mdstat で確認できます

[root@almalinux ~]# cat /proc/mdstat
Personalities : [raid1]
md127 : active raid1 sdb3[1] sda3[0]
      266204160 blocks super 1.2 [2/2] [UU]
      [========>............]  resync = 42.6% (113405440/266204160) finish=25.4min speed=100187K/sec
      bitmap: 2/2 pages [8KB], 65536KB chunk

unused devices: <none>
[root@almalinux ~]#

今すぐ設定を変えるには /proc/sys/dev/raid/speed_limit_max と /proc/sys/dev/raid/speed_limit_min に直接値を入れます。

[root@almalinux ~]# echo 2000000 > /proc/sys/dev/raid/speed_limit_max
[root@almalinux ~]# echo 2000000 > /proc/sys/dev/raid/speed_limit_min
[root@almalinux ~]# cat /proc/sys/dev/raid/speed_limit_max
2000000
[root@almalinux ~]# cat /proc/sys/dev/raid/speed_limit_min
2000000
[root@almalinux ~]#

maxとminを同じ値にしても現代では問題にはならないようです。

恒常的な設定変更は /etc/sysctl.d/98-mdadm.conf というファイルを作成し、「dev.raid.speed_limit_max = 2000000」「dev.raid.speed_limit_min = 2000000」を設定します。

[root@almalinux ~]# vi /etc/sysctl.d/98-mdadm.conf
[root@almalinux ~]# cat /etc/sysctl.d/98-mdadm.conf
dev.raid.speed_limit_max = 2000000
dev.raid.speed_limit_min = 2000000
[root@almalinux ~]#

16. UEFIの起動デバイス設定を確認

Linux上で「」を実行するとUEFIに設定されている起動デバイス設定を確認することができます。

[root@almalinux ~]# efibootmgr
BootCurrent: 0004
BootOrder: 0004,0000,0001,0002,0003
Boot0000* EFI Virtual disk (0.0)
Boot0001* EFI Virtual disk (1.0)
Boot0002* EFI VMware Virtual SATA CDROM Drive (0.0)
Boot0003* EFI Network
Boot0004* AlmaLinux
[root@almalinux ~]# efibootmgr -v
BootCurrent: 0005
BootOrder: 0004,0000,0001,0002,0003
Boot0000* EFI Virtual disk (0.0)        PciRoot(0x0)/Pci(0x15,0x0)/Pci(0x0,0x0)/SCSI(0,0)
Boot0001* EFI Virtual disk (1.0)        PciRoot(0x0)/Pci(0x15,0x0)/Pci(0x0,0x0)/SCSI(1,0)
Boot0002* EFI VMware Virtual SATA CDROM Drive (0.0)     PciRoot(0x0)/Pci(0x11,0x0)/Pci(0x3,0x0)/Sata(0,0,0)
Boot0003* EFI Network   PciRoot(0x0)/Pci(0x16,0x0)/Pci(0x0,0x0)/MAC(000c29031475,1)
Boot0004* AlmaLinux     HD(1,GPT,00d955a6-b2cc-4659-8bcb-f40bb6484f02,0x800,0x200000)/File(\EFI\almalinux\shimx64.efi)
[root@almalinux ~]#

上記の場合、「最初はBoot0004で指定されている、ディスク1個目のパーテーションにあるshimx64.efiを読み込んで起動」となっている

設定に書かれてるディスクが何なのかは「blkid|grep <UUID>」を実行して確認することができる。

[root@almalinux ~]# blkid|grep 00d955a6-b2cc-4659-8bcb-f40bb6484f02
/dev/sda1: UUID="D14E-432E" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="00d955a6-b2cc-4659-8bcb-f40bb6484f02"
[root@almalinux ~]#

なお、丸コピーした方の/dev/sdb1の方はPARTUUIDが別の値になっていました。

[root@almalinux ~]# blkid|grep vfat
/dev/sdb1: UUID="D14E-432E" TYPE="vfat" PARTUUID="76f36082-17b8-406b-bc80-269057b944a5"
/dev/sda1: UUID="D14E-432E" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="00d955a6-b2cc-4659-8bcb-f40bb6484f02"
[root@almalinux ~]#

仮想ディスクを置き換えた場合

上記の仮想マシンでsdaを新しく作り直して起動した場合を実験した

起動時の注意点

起動開始後、ここでしばらく停止したあと、起動が継続した

起動直後の状態

起動後の/proc/mdstatは以下

[root@almalinux ~]# cat /proc/mdstat
Personalities : [raid1]
md127 : active raid1 sdb3[1]
      266204160 blocks super 1.2 [2/1] [_U]
      bitmap: 1/2 pages [4KB], 65536KB chunk

unused devices: <none>
[root@almalinux ~]#

パーテーション情報は下記。交換したので/dev/sdaの情報はない

[root@almalinux ~]# parted -l
エラー: /dev/sda: ディスクラベルが認識できません。
モデル: VMware Virtual disk (scsi)
ディスク /dev/sda: 275GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: unknown
ディスクフラグ:

モデル: VMware Virtual disk (scsi)
ディスク /dev/sdb: 275GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt
ディスクフラグ:

番号  開始    終了    サイズ  ファイルシステム  名前  フラグ
 1    1049kB  1075MB  1074MB  fat32                   boot, esp
 2    1075MB  2149MB  1074MB  xfs
 3    2149MB  275GB   273GB                           raid


エラー: /dev/md127: ディスクラベルが認識できません。
モデル: Linux Software RAID Array (md)
ディスク /dev/md127: 273GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: unknown
ディスクフラグ:

[root@almalinux ~]#

AlmaLinux 9だとsgdiskがあるのでそちらで確認

[root@almalinux ~]# sgdisk --print /dev/sda
Creating new GPT entries in memory.
Disk /dev/sda: 536870912 sectors, 256.0 GiB
Model: Virtual disk
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 17F6C261-2F3C-49AA-8395-E81BC4FA1AAA
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 536870878
Partitions will be aligned on 2048-sector boundaries
Total free space is 536870845 sectors (256.0 GiB)

Number  Start (sector)    End (sector)  Size       Code  Name
[root@almalinux ~]# sgdisk --print /dev/sdb
Disk /dev/sdb: 536870912 sectors, 256.0 GiB
Model: Virtual disk
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 77F9F7E9-068F-4F6B-8CA1-F0C23721890B
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 536870878
Partitions will be aligned on 2048-sector boundaries
Total free space is 4029 sectors (2.0 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048         2099199   1024.0 MiB  EF00
   2         2099200         4196351   1024.0 MiB  8300
   3         4196352       536868863   254.0 GiB   FD00
[root@almalinux ~]#

新ディスクへパーテーション設定

sgdiskコマンドの-Rオプションでパーテーションの丸コピーが可能(UUIDも同じになる)ので、まずは「sgdisk 元ディスク -R コピー先ディスク」を実行

[root@almalinux ~]# sgdisk /dev/sdb -R /dev/sda
The operation has completed successfully.
[root@almalinux ~]# sgdisk --print /dev/sda
Disk /dev/sda: 536870912 sectors, 256.0 GiB
Model: Virtual disk
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 77F9F7E9-068F-4F6B-8CA1-F0C23721890B
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 536870878
Partitions will be aligned on 2048-sector boundaries
Total free space is 4029 sectors (2.0 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048         2099199   1024.0 MiB  EF00
   2         2099200         4196351   1024.0 MiB  8300
   3         4196352       536868863   254.0 GiB   FD00
[root@almalinux ~]#

この状態だと下記のようにUUIDが同じになってしまっている

[root@almalinux ~]# blkid /dev/sd*
/dev/sda: PTUUID="77f9f7e9-068f-4f6b-8ca1-f0c23721890b" PTTYPE="gpt"
/dev/sda1: PARTUUID="76f36082-17b8-406b-bc80-269057b944a5"
/dev/sda2: PARTUUID="34de2199-82b1-49a2-a09f-d58cd9598563"
/dev/sda3: PARTUUID="11caecc2-105b-4b50-a5ab-fbbe312867f1"
/dev/sdb: PTUUID="77f9f7e9-068f-4f6b-8ca1-f0c23721890b" PTTYPE="gpt"
/dev/sdb1: UUID="D14E-432E" TYPE="vfat" PARTUUID="76f36082-17b8-406b-bc80-269057b944a5"
/dev/sdb2: UUID="7353a543-10d3-4ff5-8db1-9405cd38a5fa" TYPE="xfs" PARTUUID="34de2199-82b1-49a2-a09f-d58cd9598563"
/dev/sdb3: UUID="14892d7b-9a8d-c7c3-6dc5-26fd1435d076" UUID_SUB="2103c67d-0ab9-996f-d170-1b51ff955622" LABEL="almalinux:pv00" TYPE="linux_raid_member" PARTUUID="11caecc2-105b-4b50-a5ab-fbbe312867f1"
[root@almalinux ~]#

別のUUIDにするため、新しいディスクの方のUUIDを変更する「sgdisk -G 新しいディスク」を実行して、UUIDが書き換わることを確認

[root@almalinux ~]# sgdisk -G /dev/sda
The operation has completed successfully.
[root@almalinux ~]# blkid /dev/sd*
/dev/sda: PTUUID="290fa63c-919c-488e-a7ca-96e5a6cf6077" PTTYPE="gpt"
/dev/sda1: PARTUUID="bec0b916-9e2d-4f0d-82e5-34d981e4ead6"
/dev/sda2: PARTUUID="eccf0943-1b37-46e1-9697-4e59c92c5cf2"
/dev/sda3: PARTUUID="cebc1012-90d8-4e0a-aecb-49a5e4c5a8ea"
/dev/sdb: PTUUID="77f9f7e9-068f-4f6b-8ca1-f0c23721890b" PTTYPE="gpt"
/dev/sdb1: UUID="D14E-432E" TYPE="vfat" PARTUUID="76f36082-17b8-406b-bc80-269057b944a5"
/dev/sdb2: UUID="7353a543-10d3-4ff5-8db1-9405cd38a5fa" TYPE="xfs" PARTUUID="34de2199-82b1-49a2-a09f-d58cd9598563"
/dev/sdb3: UUID="14892d7b-9a8d-c7c3-6dc5-26fd1435d076" UUID_SUB="2103c67d-0ab9-996f-d170-1b51ff955622" LABEL="almalinux:pv00" TYPE="linux_raid_member" PARTUUID="11caecc2-105b-4b50-a5ab-fbbe312867f1"
[root@almalinux ~]#

新ディスクに/bootと/boot/efiの中身をコピー

新ディスクのパーテーション1,2の中身が無いので、ddコマンドを使って丸コピーする

[root@almalinux ~]# dd if=/dev/sdb1 of=/dev/sda1 bs=10240
104857+1 レコード入力
104857+1 レコード出力
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 26.0448 s, 41.2 MB/s
[root@almalinux ~]# dd if=/dev/sdb2 of=/dev/sda2 bs=10240
104857+1 レコード入力
104857+1 レコード出力
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 26.7893 s, 40.1 MB/s
[root@almalinux ~]#

blkidで新ディスクにPARTUUIDなどが表示されるようになったことを確認

[root@almalinux ~]# blkid /dev/sd*
/dev/sda: PTUUID="290fa63c-919c-488e-a7ca-96e5a6cf6077" PTTYPE="gpt"
/dev/sda1: UUID="D14E-432E" TYPE="vfat" PARTUUID="bec0b916-9e2d-4f0d-82e5-34d981e4ead6"
/dev/sda2: UUID="7353a543-10d3-4ff5-8db1-9405cd38a5fa" TYPE="xfs" PARTUUID="eccf0943-1b37-46e1-9697-4e59c92c5cf2"
/dev/sda3: PARTUUID="cebc1012-90d8-4e0a-aecb-49a5e4c5a8ea"
/dev/sdb: PTUUID="77f9f7e9-068f-4f6b-8ca1-f0c23721890b" PTTYPE="gpt"
/dev/sdb1: UUID="D14E-432E" TYPE="vfat" PARTUUID="76f36082-17b8-406b-bc80-269057b944a5"
/dev/sdb2: UUID="7353a543-10d3-4ff5-8db1-9405cd38a5fa" TYPE="xfs" PARTUUID="34de2199-82b1-49a2-a09f-d58cd9598563"
/dev/sdb3: UUID="14892d7b-9a8d-c7c3-6dc5-26fd1435d076" UUID_SUB="2103c67d-0ab9-996f-d170-1b51ff955622" LABEL="almalinux:pv00" TYPE="linux_raid_member" PARTUUID="11caecc2-105b-4b50-a5ab-fbbe312867f1"
[root@almalinux ~]#

なお、ほんとはPARTUUIDが重複していたら問題になるのだが、Linuxの仕様で同じのがあったらどちらか片方だけマウントする、ので、問題ないと見なして無視することにしている。

ミラー設定実施

新ディスクのパーテーション3番が Linux RAIDとして設定されていることを確認

[root@almalinux ~]# fdisk -l /dev/sda
ディスク /dev/sda: 256 GiB, 274877906944 バイト, 536870912 セクタ
ディスク型式: Virtual disk
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: gpt
ディスク識別子: 290FA63C-919C-488E-A7CA-96E5A6CF6077

デバイス   開始位置  終了位置    セクタ サイズ タイプ
/dev/sda1      2048   2099199   2097152     1G EFI システム
/dev/sda2   2099200   4196351   2097152     1G Linux ファイルシステム
/dev/sda3   4196352 536868863 532672512   254G Linux RAID
[root@almalinux ~]#

mdadmコマンドでパーテーションを追加

[root@almalinux ~]# cat /proc/mdstat
Personalities : [raid1]
md127 : active raid1 sdb3[1]
      266204160 blocks super 1.2 [2/1] [_U]
      bitmap: 1/2 pages [4KB], 65536KB chunk

unused devices: <none>
[root@almalinux ~]# mdadm /dev/md127 -a /dev/sda3
mdadm: added /dev/sda3
[root@almalinux ~]# cat /proc/mdstat
Personalities : [raid1]
md127 : active raid1 sda3[2] sdb3[1]
      266204160 blocks super 1.2 [2/1] [_U]
      [>....................]  recovery =  0.0% (88640/266204160) finish=100.0min speed=44320K/sec
      bitmap: 1/2 pages [4KB], 65536KB chunk

unused devices: <none>
[root@almalinux ~]#

追加と同時に同期が開始されていることを確認

同期が終わる前に再起動したらどうなる?

絶賛初期同期中の状態で再起動したら、どうなる?

[root@almalinux ~]# cat /proc/mdstat
Personalities : [raid1]
md127 : active raid1 sda3[2] sdb3[1]
      266204160 blocks super 1.2 [2/1] [_U]
      [>....................]  recovery =  1.5% (4163008/266204160) finish=96.7min speed=45128K/sec
      bitmap: 1/2 pages [4KB], 65536KB chunk

unused devices: <none>
[root@almalinux ~]# reboot

再起動…

初回起動時みたいに変な待ち時間もなくすんなりと起動

状態を確認してみます

[root@almalinux ~]# cat /proc/mdstat
Personalities : [raid1]
md127 : active raid1 sdb3[1] sda3[2]
      266204160 blocks super 1.2 [2/1] [_U]
      [>....................]  recovery =  2.4% (6543616/266204160) finish=105.6min speed=40966K/sec
      bitmap: 1/2 pages [4KB], 65536KB chunk

unused devices: <none>
[root@almalinux ~]# df -h
ファイルシス                         サイズ  使用  残り 使用% マウント位置
devtmpfs                               4.0M     0  4.0M    0% /dev
tmpfs                                  2.8G     0  2.8G    0% /dev/shm
tmpfs                                  1.2G  8.8M  1.1G    1% /run
efivarfs                               256K   48K  204K   19% /sys/firmware/efi/efivars
/dev/mapper/almalinux_almalinux-root    70G  2.1G   68G    3% /
/dev/mapper/almalinux_almalinux-home    25G  204M   24G    1% /home
/dev/sda2                              960M  225M  736M   24% /boot
/dev/sdb1                             1022M  7.1M 1015M    1% /boot/efi
tmpfs                                  567M     0  567M    0% /run/user/0
[root@almalinux ~]# parted -l
モデル: VMware Virtual disk (scsi)
ディスク /dev/sda: 275GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt
ディスクフラグ:

番号  開始    終了    サイズ  ファイルシステム  名前  フラグ
 1    1049kB  1075MB  1074MB  fat32                   boot, esp
 2    1075MB  2149MB  1074MB  xfs
 3    2149MB  275GB   273GB                           raid


モデル: VMware Virtual disk (scsi)
ディスク /dev/sdb: 275GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt
ディスクフラグ:

番号  開始    終了    サイズ  ファイルシステム  名前  フラグ
 1    1049kB  1075MB  1074MB  fat32                   boot, esp
 2    1075MB  2149MB  1074MB  xfs
 3    2149MB  275GB   273GB                           raid


エラー: /dev/md127: ディスクラベルが認識できません。
モデル: Linux Software RAID Array (md)
ディスク /dev/md127: 273GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: unknown
ディスクフラグ:

[root@almalinux ~]#

無事に同期が開始されていました。

/bootはsdaから、/boot/efi はsdbからマウントする、というちょっと気持ち悪い状況になってますが、まああまり気にしないでおきます。

この状態での注意点としてはkernelやgrub2のアップデートがあった場合に、マウントしていない側のパーテーションにデータをコピーしてあげる必要がある、ということです。

ちなみに、もう1回再起動したら、今度は /boot, /boot/efi ともにsdbをマウントしていました。

[root@almalinux ~]# df -h
ファイルシス                         サイズ  使用  残り 使用% マウント位置
devtmpfs                               4.0M     0  4.0M    0% /dev
tmpfs                                  2.8G     0  2.8G    0% /dev/shm
tmpfs                                  1.2G  8.8M  1.1G    1% /run
efivarfs                               256K   48K  204K   19% /sys/firmware/efi/efivars
/dev/mapper/almalinux_almalinux-root    70G  2.1G   68G    3% /
/dev/mapper/almalinux_almalinux-home    25G  204M   24G    1% /home
/dev/sdb2                              960M  225M  736M   24% /boot
/dev/sdb1                             1022M  7.1M 1015M    1% /boot/efi
tmpfs                                  567M     0  567M    0% /run/user/0
[root@almalinux ~]#

1個目ディスク抜いて起動した後、ディスクを戻した場合

仮想マシンじゃなくて、ACEMAGIC PC S1の/dev/nvme0n1ディスクと/dev/sdaディスクをミラーする設定にしていた。

テストでnvmeを抜いて、起動することを確認したあと、戻して再起動した。

再起動直後の/proc/mdstat

[osakanataro@niselog ~]$ cat /proc/mdstat
Personalities : [raid1]
md127 : active raid1 sda3[1]
      497876992 blocks super 1.2 [2/1] [_U]
      bitmap: 2/4 pages [8KB], 65536KB chunk

unused devices: <none>
[osakanataro@niselog ~]$

nvme0n1について登録が外れている。

今回はパーテーションが残ってるので、それをmdadmコマンドで指定してディスク追加

[osakanataro@niselog ~]$ sudo mdadm /dev/md127 -a /dev/nvme0n1p3
mdadm: re-added /dev/nvme0n1p3
[osakanataro@niselog ~]$ cat /proc/mdstat
Personalities : [raid1]
md127 : active raid1 nvme0n1p3[0] sda3[1]
      497876992 blocks super 1.2 [2/1] [_U]
      [=====>...............]  recovery = 29.0% (144735232/497876992) finish=9.2min speed=638464K/sec
      bitmap: 2/4 pages [8KB], 65536KB chunk

unused devices: <none>
[osakanataro@niselog ~]$

だいたい同じだったようですぐに同期が終わった

[osakanataro@niselog ~]$ cat /proc/mdstat
Personalities : [raid1]
md127 : active raid1 nvme0n1p3[0] sda3[1]
      497876992 blocks super 1.2 [2/2] [UU]
      bitmap: 0/4 pages [0KB], 65536KB chunk

unused devices: <none>
[osakanataro@niselog ~]$

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

モバイルバージョンを終了