はじめに
- CentOSのディスク上で複数パーティションを用意して、RAIDアレイを構築してみる
- 実行環境
- 対象OS:centos7
- 対象デバイス:外付けHDD
RAID用パーティションの作成
ディスクの確認
/dev/vdb
をRAID構築用デバイスとして使用します
# fdisk -l
(一部省略)
Disk /dev/vdb: 42.9 GB, 42949672960 bytes, 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
パーティションの作成
パーティションタイプは「fd」に設定する
※同様に/dev/vdb2
,/dev/vdb3
,/dev/vdb4
も作成しておきます
# fdisk /dev/vdb
(一部省略)
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-83886079, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-83886079, default 83886079): 20000000
Partition 1 of type Linux and of size 9.5 GiB is set
Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): fd
Changed type of partition 'Linux' to 'Linux raid autodetect'
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
# fdisk -l /dev/vdb
Disk /dev/vdb: 42.9 GB, 42949672960 bytes, 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x0f36cd1b
Device Boot Start End Blocks Id System
/dev/vdb1 2048 20000000 9998976+ fd Linux raid autodetect
RAIDアレイの作成
/dev/vdb1
と /dev/vdb2
がアクティブなデバイス、/dev/vdb3
がスペアデバイスとして構成されるRAID1(ミラーリング)のRAIDアレイ/dev/md0
を作成する。
-C
でmdデバイス名
-l
でRAIDレベル
-n
でアクティブなデバイス数
-x
でスペアデバイス数
を指定する。
# mdadm -C /dev/md0 -l 1 -n 2 -x 1 /dev/vdb1 /dev/vdb2 /dev/vdb3
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
RAIDアレイの確認
/proc/mdstat
ファイルもしくは、mdsatの-Q
, -D
オプションでRAID状態を確認する。
# cat /proc/mdstat
Personalities : [raid0] [raid1]
md0 : active raid1 vdb3[2](S) vdb2[1] vdb1[0]
9989760 blocks super 1.2 [2/2] [UU]
unused devices: <none>
# mdadm -Q /dev/md0
/dev/md0: 9.53GiB raid1 2 devices, 1 spare. Use mdadm --detail for more detail.
# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Sun Sep 29 11:43:01 2019
Raid Level : raid1
Array Size : 9989760 (9.53 GiB 10.23 GB)
Used Dev Size : 9989760 (9.53 GiB 10.23 GB)
Raid Devices : 2
Total Devices : 3
Persistence : Superblock is persistent
Update Time : Sun Sep 29 11:48:47 2019
State : clean
Active Devices : 2
Working Devices : 3
Failed Devices : 0
Spare Devices : 1
Consistency Policy : resync
Name : comsec-cent01:0 (local to host comsec-cent01)
UUID : bd6006bb:a653fb7d:a884192f:01cd9a65
Events : 17
Number Major Minor RaidDevice State
0 252 17 0 active sync /dev/vdb1
1 252 18 1 active sync /dev/vdb2
2 252 19 - spare /dev/vdb3
RAID構成デバイスの変更(デバイスが故障した時など)
/dev/vdb2
に不良マークをつける(故障したとする)。
vdb2
に不良マーク(F)が付き、vdb3がアクティブとなっていることが確認できる。
# mdadm --manage /dev/md0 -f /dev/vdb2
mdadm: set /dev/vdb2 faulty in /dev/md0
# cat /proc/mdstat
Personalities : [raid0] [raid1]
md0 : active raid1 vdb3[2] vdb2[1](F) vdb1[0]
9989760 blocks super 1.2 [2/2] [UU]
unused devices: <none>
故障した/dev/vdb2
をRAIDアレイから削除する
# mdadm --manage /dev/md0 -r /dev/vdb2
mdadm: hot removed /dev/vdb2 from /dev/md0
# cat /proc/mdstat
Personalities : [raid0] [raid1]
md0 : active raid1 vdb3[2] vdb1[0]
9989760 blocks super 1.2 [2/2] [UU]
unused devices: <none>
新しい/dev/vdb4
をRAIDアレイに追加する
# mdadm --manage /dev/md0 -a /dev/vdb4
mdadm: added /dev/vdb4
# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 vdb4[3](S) vdb3[2] vdb1[0]
9989760 blocks super 1.2 [2/2] [UU]
unused devices: <none>
システム再起動に自動認識する方法
以下の通り、/etc/mdadm.conf
を作成する。
mdadm -D --scan
コマンドで現在のアレイ情報が出力されるので、設定ファイルに記載する。
# echo "DEVICE partitions" >> /etc/mdadm.conf
# mdadm -D --scan >> /etc/mdadm.conf
# cat /etc/mdadm.conf
DEVICE partitions
ARRAY /dev/md0 metadata=1.2 spares=1 name=comsec-cent01:0 UUID=bd6006bb:a653fb7d:a884192f:01cd9a65