RAID 1 を構成する2026/01/12 |
|
稼働中のシステムに ディスク 2 台を増設して RAID 1 を構成します。 |
|
| [1] | 当例では、新たに ディスク [sdb], [sdc] を追加して RAID 1 を構成します。 増設した 2 台のディスクにパーティションを作成し、RAID フラグをセットしておきます。 |
|
dlp:~ # parted --script /dev/sdb "mklabel gpt" dlp:~ # parted --script /dev/sdc "mklabel gpt" dlp:~ # parted --script /dev/sdb "mkpart primary 0% 100%" dlp:~ # parted --script /dev/sdc "mkpart primary 0% 100%" dlp:~ # parted --script /dev/sdb "set 1 raid on" dlp:~ # parted --script /dev/sdc "set 1 raid on"
|
| [2] | RAID 1 を構成します。 |
|
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 ) dlp:~ # cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 vdc1[1] vdb1[0]
167638016 blocks super 1.2 [2/2] [UU]
[=>...................] resync = 8.4% (14097152/167638016) finish=12.9min speed=197006K/sec
bitmap: 2/2 pages [8KB], 65536KB chunk
unused devices: <none>
# 同期が完了すると以下のようなステータスになる # 以上で RAID 1 設定完了 dlp:~ # cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 vdc1[1] vdb1[0]
167638016 blocks super 1.2 [2/2] [UU]
bitmap: 0/2 pages [0KB], 65536KB chunk
unused devices: <none>
|
| [3] | RAID デバイスへのファイルシステムの作成とシステムへのマウントは通常通りです。 |
|
# 例として btrfs でフォーマットして /mnt にマウント dlp:~ # mkfs.btrfs /dev/md0
btrfs-progs v6.14
See https://btrfs.readthedocs.io for more information.
Performing full device TRIM /dev/md0 (159.87GiB) ...
NOTE: several default settings have changed in version 5.15, please make sure
this does not affect your deployments:
- DUP for metadata (-m dup)
- enabled no-holes (-O no-holes)
- enabled free-space-tree (-R free-space-tree)
Label: (null)
UUID: 94428a4f-0045-4588-a8a0-2b398f3b43a3
Node size: 16384
Sector size: 4096 (CPU page size: 4096)
Filesystem size: 159.87GiB
Block group profiles:
Data: single 8.00MiB
Metadata: DUP 1.00GiB
System: DUP 8.00MiB
SSD detected: no
Zoned device: no
Features: extref, skinny-metadata, no-holes, free-space-tree
Checksum: crc32c
Number of devices: 1
Devices:
ID SIZE PATH
1 159.87GiB /dev/md0
dlp:~ # mount /dev/md0 /mnt dlp:~ # df -hT /mnt Filesystem Type Size Used Avail Use% Mounted on /dev/md0 btrfs 160G 5.8M 158G 1% /mnt # fstab に記載する場合は # md*** の名前はハードウェア構成の変更等により変わるため UUID で記載する dlp:~ # blkid | grep md /dev/md0: UUID="94428a4f-0045-4588-a8a0-2b398f3b43a3" UUID_SUB="6af28951-43a7-4ac1-a5ca-320a5144b130" BLOCK_SIZE="4096" TYPE="btrfs"
dlp:~ #
vi /etc/fstab # 調べた UUID で記述
.....
.....
UUID=579cbec6-00f9-420a-b025-5dc2c4e15275 swap swap defaults 0 0
UUID=a4cf22d2-1ad1-40de-8b5a-fa9cc08dae4a /.snapshots btrfs subvol=/@/.snapshots 0 0
UUID=94428a4f-0045-4588-a8a0-2b398f3b43a3 /mnt btrfs defaults 0 0
# 以上で md*** の名前が変わった場合も正常にマウントされる dlp:~ # df -hT /mnt Filesystem Type Size Used Avail Use% Mounted on /dev/md127 btrfs 160G 5.8M 158G 1% /mnt |
| [4] | いずれか一方のディスクが故障した場合は、以下のようにして RAID ARRAY を再構成できます。 |
|
# 異常発生時にはステータスが以下のようになる dlp:~ # cat /proc/mdstat
Personalities : [raid1]
md0 : active (auto-read-only) raid1 sdb1[0]
167638016 blocks super 1.2 [2/1] [U_]
bitmap: 0/2 pages [0KB], 65536KB chunk
unused devices: <none>
# 故障ディスクを新しいディスクと交換して [2] の手順でパーティション作成する # その後は以下のように RAID ARRAY に追加する dlp:~ # mdadm --manage /dev/md0 --add /dev/sdc1
mdadm: added /dev/sdc1
dlp:~ # cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdc1[1] sdb1[0]
167638016 blocks super 1.2 [2/2] [UU]
[=>...................] resync = 6.3% (10603904/167638016) finish=12.6min speed=206316K/sec
bitmap: 2/2 pages [8KB], 65536KB chunk
unused devices: <none>
|
|
|