USBメモリでRAID 5を構築・USBメモリの増設方法
タイムセールしてたので・・・
USBメモリを追加して4本でRAID 5構成にしてみます。追加するUSBメモリは、現在使用しているUSBメモリの容量と同じか大きい物である必要があります。既に外付けUSBハブのポートに空きはありませんが、Raspberry Pi 3本体のUSBポートには2ポート空いていますので、ここにUSBメモリを追加してみます。追加したUSBメモリは、今回も同じTranscendの64GB USB3メモリTS64GJF710SP。(Amazonタイムセールに、ついついポチッとしてしまいました ^^;)
因に"/boot/config.txt" には、USBバスへの電流供給を増やす設定(max_usb_current=1)はしてありません。(Raspberry Pi 3では、この設定をしても無効だとの情報もあり)もしかしたらACアダプタの供給電力が不足して動作が不安定になるかもしれませんが、取り合えずこのままで試してみましょう。
大まかな手順は以下のようになります。
- パーティションの作成、デバイス名固定
- RAIDアレイへの追加
- RAIDアレイの拡張
- ファイルシステムの領域拡張
- ストライドとストライプ幅の最適化
- 確認のため再起動
1. パーティションの作成、デバイス名固定
Raspberry Pi 3本体のUSBポートにTS64GJF710SPを挿すと、/dev/sdd が現われました。先ずパーティションを作成しなおし、デバイス名を固定します。パーティション作成、udevによるデバイス名固定までは同じ手順です。
# fdisk -l /dev/sdd
Disk /dev/sdd: 58.9 GiB, 63199772672 bytes, 123437056 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
Disklabel type: dos
Disk identifier: 0x00000000
Device Boot Start End Sectors Size Id Type
/dev/sdd1 2048 123437055 123435008 58.9G fd Linux raid autodetect
# ls -l /dev/usbmd*
lrwxrwxrwx 1 root root 3 8月 13 11:06 /dev/usbmd -> sdd
lrwxrwxrwx 1 root root 4 8月 13 11:06 /dev/usbmd1 -> sdd1
|
これをRAIDアレイに追加します。
2.RAIDアレイへの追加
# umount /media ※念のため作業中は一旦RAIDアレイをアンマウントしておく
# mdadm --manage /dev/md0 --add /dev/usbmd1 ※新しいUSBメモリデバイスを追加する
# mdadm --misc --detail /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Sat Jul 30 11:24:03 2016
Raid Level : raid5
Array Size : 123369472 (117.65 GiB 126.33 GB)
Used Dev Size : 61684736 (58.83 GiB 63.17 GB)
Raid Devices : 3
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Sat Aug 13 11:10:45 2016
State : clean
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 256K
Name : RaspberryPi3:0 (local to host RaspberryPi3)
UUID : c26559b7:abb329b4:1960d0d5:7b9c8287
Events : 90
Number Major Minor RaidDevice State
0 8 33 0 active sync /dev/sdc1
1 8 17 1 active sync /dev/sdb1
3 8 1 2 active sync /dev/sda1
4 8 48 - spare /dev/sdd1
|
スペアとして追加されてますね。
3. RAIDアレイの拡張
# mdadm --grow /dev/md0 --raid-disks=4 ※構成ディスク数を4に増やし、拡張する
# mdadm --misc --detail /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Sat Jul 30 11:24:03 2016
Raid Level : raid5
Array Size : 123369472 (117.65 GiB 126.33 GB)
Used Dev Size : 61684736 (58.83 GiB 63.17 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Sat Aug 13 11:12:34 2016
State : clean, reshaping
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 256K
Reshape Status : 0% complete
Delta Devices : 1, (3->4)
Name : RaspberryPi3:0 (local to host RaspberryPi3)
UUID : c26559b7:abb329b4:1960d0d5:7b9c8287
Events : 104
Number Major Minor RaidDevice State
0 8 33 0 active sync /dev/sdc1
1 8 17 1 active sync /dev/sdb1
3 8 1 2 active sync /dev/sda1
4 8 49 3 active sync /dev/sdd1
# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 sdd[4] sdc1[0] sda1[3] sdb1[1]
123369472 blocks super 1.2 level 5, 256k chunk, algorithm 2 [4/4] [UUUU]
[>....................] reshape = 0.3% (205808/61684736) finish=234.7min speed=4363K/sec
unused devices: <none>
|
RAIDに組み込まれ、RAIDアレイの再構成が始まりました。構成に234分かかると言うので、速度制限を上げてみます。
# cat /proc/sys/dev/raid/speed_limit_min
1000
# cat /proc/sys/dev/raid/speed_limit_max
200000
# echo 500000 >/proc/sys/dev/raid/speed_limit_min
# echo 500000 >/proc/sys/dev/raid/speed_limit_max
|
すると、残り時間が180分くらいになりましたが、値を大きくしたからと言って極端に短くなるわけではないようです。
仕方ないので放置して昼寝でもしながら待ちます。完了した状態は、このようになります。
# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 sdd1[4] sdc1[0] sda1[3] sdb1[1]
185054208 blocks super 1.2 level 5, 256k chunk, algorithm 2 [4/4] [UUUU]
unused devices: <none>
|
RAID構成情報("/etc/mdadm/mdadm.conf" )は更新する必要がない様子です。見てのとおり全く変わっていません。
# mdadm --detail --scan
ARRAY /dev/md0 metadata=1.2 name=RaspberryPi3:0 UUID=c26559b7:abb329b4:1960d0d5:7b9c8287
# tail -1 /etc/mdadm/mdadm.conf
ARRAY /dev/md0 metadata=1.2 name=RaspberryPi3:0 UUID=c26559b7:abb329b4:1960d0d5:7b9c8287
|
4. ファイルシステムの領域拡張
ext4ファイルシステムのサイズを拡張します。
# resize2fs /dev/md0
resize2fs 1.42.12 (29-Aug-2014)
Please run 'e2fsck -f /dev/md0' first.
|
ん?先にfsckしろだと?まぁやってみますか。
# e2fsck -f /dev/md0
e2fsck 1.42.12 (29-Aug-2014)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/md0: 97/7716864 files (1.0% non-contiguous), 11404668/30842368 blocks
# resize2fs /dev/md0
resize2fs 1.42.12 (29-Aug-2014)
Resizing the filesystem on /dev/md0 to 46263552 (4k) blocks.
The filesystem on /dev/md0 is now 46263552 (4k) blocks long.
|
5. ストライドとストライプ幅の最適化
拡張できたっぽいので、ストライドとストライプ幅を最適化します。
# tune2fs -E stride=64,stripe-width=192 /dev/md0
tune2fs 1.42.12 (29-Aug-2014)
Setting stride size to 64
Setting stripe width to 192
|
UUIDが変わっていない事を確認して、マウントします。
# tune2fs -l /dev/md0 | grep UUID
Filesystem UUID: f8b8beba-56e0-4f91-a717-8f2bc7459453 ※UUIDも変わっていない
# mount /media
# df -h
ファイルシス サイズ 使用 残り 使用% マウント位置
/dev/md0 174G 42G 124G 26% /media
|
6. 確認のため再起動
RAIDアレイ構成とファイルシステムサイズが拡張されたので、再起動しても大丈夫か試してみます。reboot後、以下を確認。
# df -h
# cat /proc/mdstat
# mdadm --misc --detail /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Sat Jul 30 11:24:03 2016
Raid Level : raid5
Array Size : 185054208 (176.48 GiB 189.50 GB)
Used Dev Size : 61684736 (58.83 GiB 63.17 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Sat Aug 13 20:10:25 2016
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 256K
Name : RaspberryPi3:0 (local to host RaspberryPi3)
UUID : c26559b7:abb329b4:1960d0d5:7b9c8287
Events : 927
Number Major Minor RaidDevice State
0 8 49 0 active sync /dev/sdd1
1 8 33 1 active sync /dev/sdc1
3 8 17 2 active sync /dev/sdb1
4 8 1 3 active sync /dev/sda1
|
問題ない様子ですので、以上で作業は完了。
因に再起動すれば、速度制限("/proc/sys/dev/raid/speed_limit_min", "/proc/sys/dev/raid/speed_limit_max" )はリセットされます。
|