Ubuntu 26.04

RAID 1 を構成する2026/06/22

 

稼働中のシステムに HDD 2 台を増設して RAID 1 を構成します。

[1] 当例では、以下のような構成のシステムに、新たに sdb, sdc を追加して RAID 1 を構成します。
増設ディスクは内蔵ディスク または iSCSI ディスクでも OK です。
root@dlp:~#
df -h

Filesystem                         Size  Used Avail Use% Mounted on
tmpfs                              3.1G  1.1M  3.1G   1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv   77G  6.9G   66G  10% /
tmpfs                              7.6G     0  7.6G   0% /dev/shm
none                               1.0M     0  1.0M   0% /run/credentials/systemd-journald.service
none                               1.0M     0  1.0M   0% /run/credentials/systemd-resolved.service
tmpfs                              7.6G     0  7.6G   0% /tmp
/dev/vda2                          2.0G   96M  1.7G   6% /boot
none                               1.0M     0  1.0M   0% /run/credentials/systemd-networkd.service
none                               1.0M     0  1.0M   0% /run/credentials/serial-getty@ttyS0.service
none                               1.0M     0  1.0M   0% /run/credentials/getty@tty1.service
tmpfs                              1.6G  8.0K  1.6G   1% /run/user/0
[2] 増設した 2 台のハードディスクにパーティションを作成し、RAID フラグをセットしておきます。
root@dlp:~#
apt -y install parted
root@dlp:~#
parted --script /dev/sdb "mklabel gpt"

root@dlp:~#
parted --script /dev/sdc "mklabel gpt"

root@dlp:~#
parted --script /dev/sdb "mkpart primary 0% 100%"

root@dlp:~#
parted --script /dev/sdc "mkpart primary 0% 100%"

root@dlp:~#
parted --script /dev/sdb "set 1 raid on"

root@dlp:~#
parted --script /dev/sdc "set 1 raid on"
[3] RAID 1 を構成します。
# 関連ツールインストール

root@dlp:~#
apt -y install mdadm
root@dlp:~#
mdadm --create /dev/md0 --level=raid1 --raid-devices=2 /dev/sdb1 /dev/sdc1

To optimalize recovery speed, it is recommended to enable write-indent bitmap, do you want to enable it now? [y/N]? y
mdadm: Note: this array has metadata at the start and
    may not be suitable as a boot device.  If you plan to
    store '/boot' on this device please ensure that
    your boot-loader understands md/v1.x metadata, or use
    --metadata=0.90
Continue creating array [y/N]? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.

# 状態確認 ( [UU] となっていれば OK )

root@dlp:~#
cat /proc/mdstat

Personalities : [raid1]
md0 : active raid1 vdc1[1] vdb1[0]
      83817472 blocks super 1.2 [2/2] [UU]
      [>....................]  resync =  2.1% (1801344/83817472) finish=6.0min speed=225168K/sec
      bitmap: 1/1 pages [4KB], 65536KB chunk

unused devices: <none>

# 同期が完了すると以下のようなステータスになる
# 以上で RAID 1 設定完了

root@dlp:~#
cat /proc/mdstat

Personalities : [raid1]
md0 : active raid1 vdc1[1] vdb1[0]
      83817472 blocks super 1.2 [2/2] [UU]
      bitmap: 0/1 pages [0KB], 65536KB chunk

unused devices: <none>
[4] 例えば、いずれか一方のハードディスクが故障した場合は、以下のようにして RAID ARRAY を再構成できます。
# 異常発生時にはステータスが以下のようになる

root@dlp:~#
cat /proc/mdstat

Personalities : [raid1]
md0 : active raid1 sdc1[1] sdb1[0]
      83817472 blocks super 1.2 [2/1] [U_]
      bitmap: 1/1 pages [4KB], 65536KB chunk

unused devices: <none>

# 故障ディスクを新しいディスクと交換し [2] の手順でパーティション作成する
# その後は以下のように RAID ARRAY に追加する

root@dlp:~#
mdadm --manage /dev/md0 --add /dev/sdc1

mdadm: added /dev/sdc1
root@dlp:~#
cat /proc/mdstat

Personalities : [raid1]
md0 : active raid1 sdc1[1] sdb1[0]
      83817472 blocks super 1.2 [2/2] [UU]
      [====>................]  resync = 24.9% (20902592/83817472) finish=7.4min speed=140632K/sec
      bitmap: 1/1 pages [4KB], 65536KB chunk

unused devices: <none>
[5] 使用する場合は、通常通り、任意のファイルシステムでフォーマットして、任意のマウントポイントにマウントします。
# 例として ext4 でフォーマットして /mnt にマウント

root@dlp:~#
mkfs.ext4 /dev/md0

root@dlp:~#
mount /dev/md0 /mnt

root@dlp:~#
df -hT

Filesystem                        Type   Size  Used Avail Use% Mounted on
tmpfs                             tmpfs  3.1G  1.1M  3.1G   1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv ext4    77G  6.9G   66G  10% /
tmpfs                             tmpfs  7.6G     0  7.6G   0% /dev/shm
none                              tmpfs  1.0M     0  1.0M   0% /run/credentials/systemd-journald.service
none                              tmpfs  1.0M     0  1.0M   0% /run/credentials/systemd-resolved.service
tmpfs                             tmpfs  7.6G     0  7.6G   0% /tmp
/dev/vda2                         ext4   2.0G   96M  1.7G   6% /boot
none                              tmpfs  1.0M     0  1.0M   0% /run/credentials/systemd-networkd.service
none                              tmpfs  1.0M     0  1.0M   0% /run/credentials/serial-getty@ttyS0.service
none                              tmpfs  1.0M     0  1.0M   0% /run/credentials/getty@tty1.service
tmpfs                             tmpfs  1.6G  8.0K  1.6G   1% /run/user/0
/dev/md0                          ext4    79G  2.1M   75G   1% /mnt

# fstab に記載する場合は
# md*** の名前はハードウェア構成の変更等により変わるため UUID で記載する

root@dlp:~#
blkid | grep md

/dev/md0: UUID="69c55c65-ae4d-4f87-930e-7472cfc01cca" BLOCK_SIZE="4096" TYPE="ext4"

root@dlp:~#
vi /etc/fstab
# 調べた UUID で記述

/dev/disk/by-id/dm-uuid-LVM-erWnsN0Pa3zr88v013HdtnpuhTNEzusmYQKNhgpZWV85w8vRYJ9V95j6XDZoejBm / ext4 defaults 0 1
# /boot was on /dev/vda2 during curtin installation
/dev/disk/by-uuid/69d717a4-94be-4d65-b2fd-0205c466f245 /boot ext4 defaults 0 1
/swap.img       none    swap    sw      0       0
/dev/disk/by-uuid/69c55c65-ae4d-4f87-930e-7472cfc01cca /mnt  ext4 defaults 0 0

# 以上で md*** の名前が変わった場合も正常にマウントされる

root@dlp:~#
df -hT /mnt

Filesystem     Type  Size  Used Avail Use% Mounted on
/dev/md127     ext4   79G  2.1M   75G   1% /mnt
関連コンテンツ