こんにちは。nemotoです。
画像を整理していたら、数年前と比べて1枚あたりの容量が随分増えたなぁと思いません?
みなさんも大事な画像・動画など、もしものトラブルを考え、DVD、自宅サーバ、オンラインストレージなどの冗長を用いて運用しているのではないでしょうか?
でも心配性なあなた。
その環境に障害があったらどうしよう?とか考えたりしませんか?
そんなことを考えた私もRAIDで冗長性の向上も考えてしまったので、今日はLinux(CentOS)上に、mdadmを用いたソフトウェアでのRAID構築についてです。
また、実験的に実施するのでUSBメモリを用いてRAIDを構築します。(USB3本でRAID5)
1.mdadmのインストール
自身の環境にmdadmがインストールされていない場合は、インストールしてください。
[bash] # yum install mdadm [/bash]
2.RAID用パーティションの構築
RAID構築用のUSBを接続し、対象デバイスにRAID用パーティションタイプ(Linux raid autodetect)を設定します。
今回対象となるUSBは sdb / sdc / sdd として認識されていますので、設定した結果は以下になります。
[bash] # fdisk -l /dev/sdb Disk /dev/sdb: 7743 MB, 7743995904 bytes 239 heads, 62 sectors/track, 1020 cylinders Units = cylinders of 14818 * 512 = 7586816 bytes Device Boot Start End Blocks Id System /dev/sdb1 1 1020 7557149 5 Extended /dev/sdb5 1 1020 7557118 fd Linux raid autodetect [/bash]
[bash] # fdisk -l /dev/sdc Disk /dev/sdc: 7743 MB, 7743995904 bytes 239 heads, 62 sectors/track, 1020 cylinders Units = cylinders of 14818 * 512 = 7586816 bytes Device Boot Start End Blocks Id System /dev/sdc1 1 1020 7557149 5 Extended /dev/sdc5 1 1020 7557118 fd Linux raid autodetect [/bash]
[bash] # fdisk -l /dev/sdd Disk /dev/sdd: 7743 MB, 7743995904 bytes 239 heads, 62 sectors/track, 1020 cylinders Units = cylinders of 14818 * 512 = 7586816 bytes Device Boot Start End Blocks Id System /dev/sdd1 1 1020 7557149 5 Extended /dev/sdd5 1 1020 7557118 fd Linux raid autodetect [/bash]
参考までに上記のパーティションの設定手順は以下。
[bash] # fdisk /dev/sdb Command (m for help): n Command action e extended p primary partition (1-4) e Partition number (1-4): 1 First cylinder (1-1020, default 1): Using default value 1 Last cylinder or +size or +sizeM or +sizeK (1-1020, default 1020): Using default value 1020 Command (m for help): n Command action l logical (5 or over) p primary partition (1-4) l First cylinder (1-1020, default 1): Using default value 1 Last cylinder or +size or +sizeM or +sizeK (1-1020, default 1020): Using default value 1020 Command (m for help): t Partition number (1-5): 5 Hex code (type L to list codes): fd Changed system type of partition 5 to fd (Linux raid autodetect) Command (m for help): w [/bash]
3.RAIDアレイの作成と初期化
RAIDアレイの作成とは、複数のデバイスを1つのデバイスとして認識させるために行います。
今回は/dev/md0という名前でRAID5を指定し作成します。
[bash] # mdadm -C /dev/md0 -l5 -n3 /dev/sdb5 /dev/sdc5 /dev/sdd5 mdadm: array /dev/md0 started. [/bash]
RAIDアレイを作成しましたら、次にRAIDアレイを利用するパーティションタイプで初期化します。
今回はファイルシステムext3で初期化します。
[bash] # mke2fs -j /dev/md0 mke2fs 1.39 (29-May-2006) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 1889408 inodes, 3778496 blocks 188924 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=3871342592 116 block groups 32768 blocks per group, 32768 fragments per group 16288 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 24 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. [/bash]
4.マウント
あとはマウントしていただければ完了です。
[bash] # mkdir /raid # mount /dev/md0 /raid/ [/bash]
さてマウントしたパーティションのサイズを確認してみてください。
[bash] # df -h | grep /dev/md0 /dev/md0 15G 165M 14G 2% /raid [/bash]
実際に用意したデバイス(USB)は約8GサイズほどのUSBを3つ用意していますが、実際に有効なパーティションサイズは2/3のサイズとなっています。
これはRAIDアレイをRAID5で構築したことで、1/3の容量をパリティとして利用する為です。
ご覧のとおり、構築までの手順はさほど難しくはないと思います。
次回は、障害時のリカバリ方法について書こうかなと思っています。
ではまた。