computerの日記

Cisco,SHELL,C,Qt,C++,Linux,ネットワーク,Windows Scriptなどの発言です

ソフトウェア RAID 5 (ソフトウェア RAID)を MDADM で設定してみる

ソフトウェア RAID 5 (ソフトウェア RAID)を MDADM で設定してみる

今回は、RAID 5 について実験してみます。

というのも、私のノートパソコンなのですが、ご多分にもれず、壊れました。そこで、昔 RAID 5 システムを使っていたのですが、そのときは、ハードディスクに異常がでたら警報音(ピー、ピーという)がしてランプが点滅したので、ホットなままそのハードディスクを抜いて(引っ張り出す把手があるので)新しいハードディスクを挿す、ということをやっていたのを思い出したのです。

あれはいい気分はしませんでしたが、不思議とちゃんと直って問題なかったので、ああ、RAID 5 はいいな、と思い出した次第です。

さて、ネットにいい資料がありましたので、この記事を参考にして、私が昔、まさしく経験したことを再現してみます。
http://www.elinuxbook.com/how-to-configure-raid-5-in-linux-using-mdadm/

準備

RAID 5 は、( Redundant Array of Independent Disks )の略となります。Redundancy とは、もし何か障害があれば、その障害データを置き換えるバックアップデータがある、ということです。RAID は、1987 年に最初発明されました。RAID 5 の主な
目的は、データをミスするか失うことから守ることにあります。そして、読み込みスピードを増して、システムのパフォーマンスを向上させる事ができます。RAID は、データを守るために、ミラーリングパリティチェック、ストライピングという技術を利用します。
RAID には、たくさんのレベルがあり、それぞれのレベルには新しく発明された特徴があります。RAID レベルのタイプには、RAID 0,RAID 1, RAID 2, RAID 3, RAID 4, RAID 5, RAID 6 RAID 10 (RAID 0RAID 1 の組み合わせ)がありますが、最も利用され、有名な RAID レベルは以下となります。

RAID 0 – データのストライピング
RAID 1 – データのミラーリング
RAID 5パリティチェック付きストライピング
RAID 6 – ダブルパリティチェック付きストライピング
RAID 10ミラーリングとストライピング

ここでは、RHEL/CentOS 7 でどのように RAID 5 (ソフトウェア RAID) を設定するかについて確認して、ハードディスクに障害をおこして復旧させるということを、VirtualBox を使って実際にやってみます。

RAID 5 はどのように動作するのか ?

1010 1110 0110

HARDDISK1 HARDDISK2 HARDDSIK3
1 1 0
0 1 1
1 1 1
0 0 0

まずは、RAID 5 がどのように動作するかを理解します。RAID 5 は、データの安全化のためにストライピングとパリティチェック技術を使用しています。RAID 5 の実際のダイアグラムのスナップショットを上記に示しました。RAID 5 には、少なくとも 3つのハードディスクが必要です。ハードディスクにデータをコピーするときには、0 か 1 の数字のバイナリの形で保存します。したがって、1010 1110 0110 と上に示したようなデータを考えてみます。これらがハードディスクにコピーされたあとには、3つのハードディスク全てに分配されます。たとえば、上に示したように、1010 は ハードディスク1 に、1110 は ハードディスク2 に、0110 が ハードディスク3 に、コピーされます。データを複数のハードディスクに分配するのは、ストライピングと呼ばれています。データをコピーした後に、RAID 5 は、パリティビットを作成して、それぞれのハードディスクに保存します。RAID 5 は、パリティビットを計算するのに、XOR テーブル (Exclusive OR) を利用します。
以下の XOR テーブルを見てください。

XOR (Exclusive OR) Table :
A B Output
0 0 0
0 1 1
1 0 1
1 1 0

上記 XOR テーブルにしたがって、RAID 5 がどのようにパリティビットを計算するかについて見てみます。RAID 5 は、一度に 2つのハードディスクを取って、パリティビットを作成します。例えば、最初にハードディスク 1 と 2、次にハードディスク 2 と 3、最後に、ハードディスク 3 と 1 のように。
今回のシナリオでは、3つのハードディスクがあり、最初に例として、ハードディスク 1 とハードディスク 2 を考えてます。

注:RAID 5 は、パリティデータを全てのハードディスクに保存します。例えば、ハードディスク 1 と 2 のパリティを作成した後、ハードディスク1 とハードディスク2 の両方にパリティを保存します。そして、これは、ハードディスク2 とハードディスク3、ハードディスク3 とハードディスク1 も同様です。
今回は、ハードディスク 1 とハードディスク 2 は、以下のデータを保存しています :

Harddisk 1 Harddisk 2
1 1
0 1
1 1
0 0

パリティの計算方法:

ここで、 XOR テーブルを利用して、パリティチェックを計算してみます。
例 :

ハードディスク 1 の最初のビットは 1 であり、ハードディスク 2の最初のビットは 1であるので、 XOR テーブルは、A=1 B=1 Output=0
我々の最初のパリティビットは、0 となる。

ハードディスク 1 の2番目のビットは 0 であり、ハードディスク 2の2番目のビットは 1であるので、 XOR テーブルは、A=0 B=1 Output=1
我々の2番目のパリティビットは、1 となる。

ハードディスク 1 の3番目のビットは 1 であり、ハードディスク 2の3番目のビットは 1であるので、 XOR テーブルは、A=1 B=1 Output=0
我々の3番目のパリティビットは、0 となる。

ハードディスク 1 の4番目のビットは 0 であり、ハードディスク 2の4番目のビットは 0であるので、 XOR テーブルは、A=0 B=0 Output=0
我々の3番目のパリティビットは、0 となる。

Harddisk 1 Harddisk 2 Parity Check
1 1 0
0 1 1
1 1 0
0 0 0

したがって、ハードディスク 1 と 2 のパリティデータは、0 1 0 0 です。パリティデータを作成したのちに、ハードディスク1 と 2 の両方に、データを保存して、ハードディスクの障害に備えるのです。

FAID 5 は、上記のステップで、ハードディスク 2 と 3、ハードディスク 1 と 3 についてパリティピットを作成します。

最初のハードディスクである、ハードディスク 1 に障害が発生して、新しいハードディスクに交換したとしましょう。この場合、RAID 5 は、新しいハードディスクにどんな計算方法でデータをリカバするのでしょうか。

以下の方法をとります。

ハードディスク 2 には、それ自身だけでは、復旧できないのですが、RAID 5 は、パリティチェックデータを使用して、ハードディスク 1 のデータを復旧するのです。計算方法は以下となります。

ハードディスク 2 とパリティは、以下のデータを保存している :
Harddisk 2 Parity Check
1 0
1 1
1 0
0 0

したがって、ハードディスク 2 のデータとパリティから、 1 0 1 0 の結果を得るので、元のハードディスク 1 のデータを得るのです。
このように、例えばハードディスク 3 に障害が発生しても、同様のステップを経て、新しいハードディスクを交換してもデータを
復元できるのです。

RAID 5 の基本的な理解は以上となります。
では、以下の方法で、mdadm を使用して、RAID 5 (ソフトウェア RAID)を設定してみます。

前述の議論のとおり、 RAID 5 を設定するには、少なくとも 3 つの同じサイズのハードディスクが必要です。ここに、それぞれ 8GB のサイズのハードディスクを用意しました。つぎのアウトプットを見てください。

ーーーーーーーーーーーーーーー
Disk /dev/sda: 22.6 GB, 22630023168 bytes, 44199264 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: gpt


# Start End Size Type Name
1 2048 411647 200M EFI System EFI System Partition
2 411648 2508799 1G Microsoft basic
3 2508800 44197887 19.9G Linux LVM

Disk /dev/sdb: 3145.7 GB, 3145728000000 bytes, 6144000000 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 /dev/sdc: 8589 MB, 8589934592 bytes, 16777216 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 /dev/sdd: 8589 MB, 8589934592 bytes, 16777216 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 /dev/sde: 8589 MB, 8589934592 bytes, 16777216 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 /dev/mapper/cl-root: 3164.9 GB, 3164916940800 bytes, 6181478400 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 /dev/mapper/cl-swap: 2147 MB, 2147483648 bytes, 4194304 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
ーーーーーーーーーーーーーーーーー

さて、それぞれのハードディスクにパーティションを作成して、RAID 5 すなわち、fd にする必要があります。
以下のステップを実行します。

注:RAID 5 を設定するには、3つのパーティションを作成するか、3つのハードディスクを設定するかします。
今回は、3つのハードディスクを使用します。

/dev/sdc にパーティションを作成します。

========
# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0xd56ff420.

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-6291455, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-16777215, default 16777215):
Using default value 16777215
Partition 1 of type Linux and of size 8 GiB is set

Command (m for help): t # To change the Partition ID
Selected partition 1
Hex code (type L to list all codes): fd # "fd" は、RAIDパーティションID です。
Changed type of partition 'Linux' to 'Linux raid autodet1ect'

Command (m for help): w # To save the Partition
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
ーーーーーーーーーーーーーーー

/dev/sdd、/dev/sde にも同様にパーティションを作成します(省略)。

さて、パーティションテーブルをシステムをリスタートせずに、partprobe コマンドを使用して保存してみます。以下のコマンドを実行する。

ーーーーーーーーーーーーーーーー
# partprobe /dev/sdc
# partprobe /dev/sdd
# partprobe /dev/sde
ーーーーーーーーーーーーーーーー

さて、RAID パーティションを作成した後のパーティションテーブル見てみます。

ーーーーーーーーーーーーーーーー
Disk /dev/sda: 22.6 GB, 22630023168 bytes, 44199264 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: gpt


# Start End Size Type Name
1 2048 411647 200M EFI System EFI System Partition
2 411648 2508799 1G Microsoft basic
3 2508800 44197887 19.9G Linux LVM

Disk /dev/sdb: 3145.7 GB, 3145728000000 bytes, 6144000000 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 /dev/sdc: 8589 MB, 8589934592 bytes, 16777216 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: 0x249194cd

Device Boot Start End Blocks Id System
/dev/sdc1 2048 16777215 8387584 fd Linux raid autodetect

Disk /dev/sdd: 8589 MB, 8589934592 bytes, 16777216 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: 0x17f0171e

Device Boot Start End Blocks Id System
/dev/sdd1 2048 16777215 8387584 fd Linux raid autodetect

Disk /dev/sde: 8589 MB, 8589934592 bytes, 16777216 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: 0x922fbad9

Device Boot Start End Blocks Id System
/dev/sde1 2048 16777215 8387584 fd Linux raid autodetect

Disk /dev/mapper/cl-root: 3164.9 GB, 3164916940800 bytes, 6181478400 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 /dev/mapper/cl-swap: 2147 MB, 2147483648 bytes, 4194304 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
ーーーーーーーーーーーーーーーーー

さて、RAID に必要なパーティションを作成したので、RAID 5 (ソフトウェア RAID)を設定していきます。
RAID 5 を設定するには、mdadm というパッケージが必要です。デフォルトでは、インストールされているはずですが、インストールされていなければ、以下のコマンドにより、インストールします。

# yum -y install mdadm

# rpm -q mdadm
mdadm-3.4-14.el7_3.1.x86_64

では、RAID 5 Array を作成します。

# mdadm -C /dev/md0 --level=raid5 --raid-devices=3 /dev/sdc1 /dev/sdd1 /dev/sde1
mdadm: Defaulting to version 1.2 metadata
[ 1592.845647] md/raid:md0: raid level 5 active with 2 out of 3 devices, algorithm 2
mdadm: array /dev/md0 started.

上記コマンドのうち :

mdadm – RAID Arrey を作成するコマンド
-C – RAID を作成する
/dev/md0 – RAID ドライブのシンタックス
--level – RAID レベル, ここでは、RAID 5
--raid-devices – いくつハードディスクを使うか, ここでは、3つのハードディスクを使用する。

作成した RAID 5パーティションをチェックするには、以下のコマンドを使用します。

ーーーーーーーーーーーーーーー
# mdadm --detail /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Sun Jun 18 05:43:07 2017
Raid Level : raid5
Array Size : 16766976 (15.99 GiB 17.17 GB)
Used Dev Size : 8383488 (8.00 GiB 8.58 GB)
Raid Devices : 3
Total Devices : 3
Persistence : Superblock is persistent

Update Time : Sun Jun 18 05:43:49 2017
State : clean
Active Devices : 3
Working Devices : 3
Failed Devices : 0
Spare Devices : 0

Layout : left-symmetric
Chunk Size : 512K

Name : localhost.localdomain:0 (local to host localhost.localdomain)
UUID : 09a7208f:869034d1:056672cf:238f70d1
Events : 18

Number Major Minor RaidDevice State
0 8 33 0 active sync /dev/sdc1
1 8 49 1 active sync /dev/sdd1
3 8 65 2 active sync /dev/sde1
ーーーーーーーーーーーーーーーーーーーー

さて、RAID 5 パーティションを作成したので、ファイルシステムを作成してフォーマットしなければいけません。
したがって、RAID 5 のフォーマットは、以下のコマンドを使用します。

注:ここでは、xfs ファイルシステムを使用してフォーマットしています。もちろん、要求に応じて、他の異なるファイルシステムを使用してもよいです。

ーーーーーーーーーーーーーーーーーーー
# mkfs.xfs /dev/md0

meta-data=/dev/md0 isize=512 agcount=16, agsize=262016 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=4191744, imaxpct=25
= sunit=128 swidth=256 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=8 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
ーーーーーーーーーーーーーーーーーーー

さて、RAID ドライブをマウントするディレクトリを作成します。2つの方法でドライブをマウントできます。

1) 一時的なマウント 2) 永続的なマウント

一時的なマウントは、システムの再起動後に、自動的にアンマウントされ、次回ブート時にはマウントされないということである。
一時的なマウントをする場合には、以下のステップにしたがいます。

ーーーーーーーーーーーーーーーーーーー
# mkdir /data-md0
# mount /dev/md0 /data-md0
# ls -l /data/
total 0
ーーーーーーーーーーーーーーーーーーー

マウントされたデバイスをチェックするには、以下のコマンドを使用します。

ーーーーーーーーーーーーーーーーーーー
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/cl-root 2.9T 1.7G 2.9T 1% /
devtmpfs 910M 0 910M 0% /dev
tmpfs 920M 0 920M 0% /dev/shm
tmpfs 920M 8.4M 912M 1% /run
tmpfs 920M 0 920M 0% /sys/fs/cgroup
/dev/sda2 1014M 175M 840M 18% /boot
/dev/sda1 200M 9.5M 191M 5% /boot/efi
tmpfs 184M 0 184M 0% /run/user/0
/dev/md0 16G 33M 16G 1% /data-md0
ーーーーーーーーーーーーーーーーーーー

2. 永続的なマウントは、システムを再起動してもパーティションがマウントされるように、/etc/fstab 設定ファイルにパーティションファイルシステムを記述します。

ーーーーーーーーーーーーーー
# vi /etc/fstab

#
# /etc/fstab
# Created by anaconda on Sun May 7 09:29:16 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/cl-root / xfs defaults 0 0
UUID=7ae3c25b-9467-4b3a-aaa0-8e6ee1eb9d61 /boot xfs defaults 0 0
UUID=A5BE-AA40 /boot/efi vfat umask=0077,shortname=winnt 0 0
/dev/mapper/cl-swap swap swap defaults 0 0

/dev/md0 /data-md0 xfs defaults 0 0
ーーーーーーーーーーーーーー

マウントテーブルをリフレッシュするために、以下のコマンドを実行します。

ーーーーーーーーーーーーーー
# mount -a
ーーーーーーーーーーーーーー

/etc/fstab により RAID 5 ドライブ をマウントしたのちに、マウントが適切にされたかを df -h コマンドを使用して、確認します。

ーーーーーーーーーーーーーー
# df -h | grep /dev/md0
/dev/md0 16G 33M 16G 1% /data-md0
ーーーーーーーーーーーーーー

では、今度はトラブルシュートをやってみます。
3つのハードディスクのうちの 1つに障害が発生したとします。データをどうやって復旧しましょうか。心配しなくても、いつもデータを復旧する方法はあります。
この Redundancy フィーチャーのおかげで RAID 技術がこんなにも有名になっているのです。世界中でこの技術は使われています。

これから、ハードディスクに障害が発生した時にデータを復旧させる方法を示します。以下のステップにしたがってください。
まずは、シナリオを作成して、以下のコマンドを使用してどれか一つのハードディスク、今回は /dev/sdd1 を実験的に障害をおこさせてみます。

ーーーーーーーーーーーーーーー
# mdadm /dev/md0 -f /dev/sde1 # ハードディスクに障害を発生させる
[ 3865.594531 ] md/raid:md0: Disk failure on sde1, disabling device.
[ 3865.594531 ] md/raid:md0: Operation continuing on 2 devices.
mdadm: set /dev/sde1 faulty in /dev/md0
ーーーーーーーーーーーーーーー

上記コマンドのうち :
f – ハードディスクに障害を発生させる

障害をおこしたハードディスクをチェックするには、以下のコマンドを使用します。
このように、/dev/sdd1 に障害が発生している事が確認できます。

ーーーーーーーーーーーーーーーーー
# mdadm --detail /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Sun Jun 18 05:43:07 2017
Raid Level : raid5
Array Size : 16766976 (15.99 GiB 17.17 GB)
Used Dev Size : 8383488 (8.00 GiB 8.58 GB)
Raid Devices : 3
Total Devices : 3
Persistence : Superblock is persistent

Update Time : Sun Jun 18 06:21:00 2017
State : clean, degraded
Active Devices : 2
Working Devices : 2
Failed Devices : 1
Spare Devices : 0

Layout : left-symmetric
Chunk Size : 512K

Name : localhost.localdomain:0 (local to host localhost.localdomain)
UUID : 09a7208f:869034d1:056672cf:238f70d1
Events : 20

Number Major Minor RaidDevice State
0 8 33 0 active sync /dev/sdc1
1 8 49 1 active sync /dev/sdd1
- 0 0 2 removed

3 8 65 - faulty /dev/sde1
ーーーーーーーーーーーーーーーーーー

次のステップは、システムからハードディスクを排除します。以下のコマンドを実行します。

========
[root@localhost ~]# mdadm /dev/md0 -r /dev/sde1 # 障害が発生したハードディスクを排除する
mdadm: hot removed /dev/sde1 from /dev/md0
========

上記コマンドのうち :
r – ハードディスクを取り除く

以下の出力で、障害をおこしたハードディスクがシステムから除外されたのが確認できます。
この状態では、新しいハードディスクに入れ替える必要があります。

ーーーーーーーーーーーーーー
# mdadm --detail /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Sun Jun 18 05:43:07 2017
Raid Level : raid5
Array Size : 16766976 (15.99 GiB 17.17 GB)
Used Dev Size : 8383488 (8.00 GiB 8.58 GB)
Raid Devices : 3
Total Devices : 2
Persistence : Superblock is persistent

Update Time : Sun Jun 18 06:32:29 2017
State : clean, degraded
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0

Layout : left-symmetric
Chunk Size : 512K

Name : localhost.localdomain:0 (local to host localhost.localdomain)
UUID : 09a7208f:869034d1:056672cf:238f70d1
Events : 21

Number Major Minor RaidDevice State
0 8 33 0 active sync /dev/sdc1
1 8 49 1 active sync /dev/sdd1
- 0 0 2 removed
ーーーーーーーーーーーーーーーー

ということで、新しいハードディスク、/dev/sdf を接続しました。RAID の設定をします。以下のステップにしたがいます。

ーーーーーーーーーーーーーーーー
[root@localhost ~]# fdisk /dev/sdf
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


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-6291455, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-16777215, default 16777215):
Using default value 16777215
Partition 1 of type Linux and of size 8 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.
ーーーーーーーーーーーーーーーーーー

では、ハードディスク /dev/sdf1 RAID 5 ドライブ、すなわち、/dev/md0 に加えます。

ーーーーーーーーーーーーーーーーーー
[root@localhost ~]# mdadm /dev/md0 -a /dev/sdf1 # 新しいハードディスクを RAID ドライブに加える
mdadm: added /dev/sdf1
ーーーーーーーーーーーーーーーーーー

上記のコマンドのうち :
a – 新しいハードディスクを加える、という意味です。

状態を、以下のコマンドで確認します。
以下に出力されている用に、/dev/sdf1 が RAID ドライブに追加されました。

ーーーーーーーーーーーーーーーーーーーー
# mdadm --detail /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Sun Jun 18 05:43:07 2017
Raid Level : raid5
Array Size : 16766976 (15.99 GiB 17.17 GB)
Used Dev Size : 8383488 (8.00 GiB 8.58 GB)
Raid Devices : 3
Total Devices : 3
Persistence : Superblock is persistent

Update Time : Sun Jun 18 06:42:56 2017
State : clean
Active Devices : 3
Working Devices : 3
Failed Devices : 0
Spare Devices : 0

Layout : left-symmetric
Chunk Size : 512K

Name : localhost.localdomain:0 (local to host localhost.localdomain)
UUID : 09a7208f:869034d1:056672cf:238f70d1
Events : 44

Number Major Minor RaidDevice State
0 8 33 0 active sync /dev/sdc1
1 8 49 1 active sync /dev/sdd1
3 8 81 2 active sync /dev/sdf1
ーーーーーーーーーーーーーーーーー

以上で、RAID 5 (ソフトウェア RAID) を Linux 上で設定する方法を終わります。

大切なデータを冗長化技術を使って守るのは、システムの基本だと思います。せっかく利用できるものはどんどん利用してみましょう。
今回の実験を終了します。

次回をお楽しみに。