CentOSでソフトウェアRAIDの構築
|
RAID レベルとして RAID0/1/4/5/6/10 がサポートされている。
大まかな手順は次のようになる。
- RAID を構成するディスクに RAID 用パーティションを作成 (fdisk コマンドなど)。
- mdadm コマンドで RAID アレイを作成。
- /etc/mdadm.conf を作成。
- RAID アレイをフォーマット(ファイルシステム作成)。
ディスクに RAID 用パーティションを作成
例では SCSI ハードディスクを 3個増設し、その 3個のディスクを使って RAID アレイを構築する。
デバイス名は次の3つを使用して説明する。
- /dev/sdb
- /dev/sdc
- /dev/sdd
IDE(PATA) ハードディスクの場合、デバイス名は /dev/hdb などになる。
fdisk コマンドで RAID 用パーティションを作成
fdisk コマンドを使い、RAID アレイとして使用する全てのディスクに RAID 用のパーティションを作成する。
[root@centos5 ~]# fdisk /dev/sdc このディスクのシリンダ数は 17365 に設定されています。 間違いではないのですが、1024 を超えているため、以下の場合 に問題を生じうる事を確認しましょう: 1) ブート時に実行するソフトウェア (例. バージョンが古い LILO) 2) 別の OS のブートやパーティション作成ソフト (例. DOS FDISK, OS/2 FDISK) コマンド (m でヘルプ): n コマンドアクション e 拡張 p 基本領域 (1-4) p 領域番号 (1-4): 1 最初 シリンダ (1-17365, default 1): Using default value 1 終点 シリンダ または +サイズ または +サイズM または +サイズK (1-17365, default 17365): Using default value 17365 コマンド (m でヘルプ): t Selected partition 1 16進数コード (L コマンドでコードリスト表示): fd 領域のシステムタイプを 1 から fd (Linux raid 自動検出) に変更しました コマンド (m でヘルプ): w 領域テーブルは交換されました! ioctl() を呼び出して領域テーブルを再読込みします。 ディスクを同期させます。
それぞれのディスクに RAID 用パーティションが 1つずつ作成される。
mdadm コマンドで RAID アレイを作成
/dev/sdb1, /dev/sdc1, /dev/sdd1 の 3個のパーティションを使って、RAID レベル 5 の RAID アレイ /dev/md0 を作成する。
[root@centos5 ~]# mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sd[bcd]1 mdadm: /dev/sdb1 appears to contain an ext2fs file system size=53344896K mtime=Thu Oct 1 19:40:51 2009 Continue creating array? y mdadm: array /dev/md0 started.
- --level=RAID Level
- RAID レベルを指定する。
- --raid-devices=RAIDアレイを構成するデバイスの数
- RAIDアレイを構成するデバイスの数を指定する。
RAID の状態を表示する
RAID5 アレイを構成するには時間がかかる。RAID アレイの状態は cat /proc/mdstat で確認できる。
RAID アレイ構築中(RAID5 の場合)
[root@centos5 ~]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 sdd1[3] sdc1[1] sdb1[0]
35563264 blocks level 5, 64k chunk, algorithm 2 [3/2] [UU_]
[>....................] recovery = 1.4% (261668/17781632) finish=13.3min speed=21805K/sec
RAID アレイ構築完了
[root@centos5 ~]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 sdd1[2] sdc1[1] sdb1[0]
35563264 blocks level 5, 64k chunk, algorithm 2 [3/3] [UUU]
/etc/mdadm.conf を作成
/etc/mdadm.conf に RAID アレイの情報を記述する。アレイ情報は次のコマンドを実行することで表示できる。
[root@centos5 ~]# mdadm --detail --scan
ARRAY /dev/md0 level=raid5 num-devices=3 UUID=7a523b57:92ba42fc:6cd356de:ab45d2c0
ARRAY の行を /etc/mdadm.conf に追記する。
[root@centos5 ~]# mdadm --detail --scan >> /etc/mdadm.conf
RAID アレイにファイルシステムを作成しマウントする
RAID アレイ構築完了後、/dev/md0 に EXT3 ファイルシステムを作成する。
[root@centos5 ~]# mkfs -t ext3 /dev/md0
/dev/md0 デバイスを、例えば /data ディレクトリにマウントするには、/etc/fstab に次のような行を追記して、mount コマンドを実行する。
/etc/fstab
/dev/md0 /data ext3 defaults 1 2
/data ディレクトリを作成し、mount する。
[root@centos5 ~]# mkdir /data [root@centos5 ~]# mount -a
RAID アレイを監視する
RAID アレイを監視し、障害が発生した場合メールで知らせることができる。
/etc/mdadm.conf にメールアドレスを設定(追記)する。
MAILADDR foo@example.com
mdmonitor を起動するだけ。ついでに OS 起動時に自動するようにしておく。
[root@centos5 ~]# /etc/init.d/mdmonitor start [root@centos5 ~]# chkconfig mdmonitor on
mdmonitor は、mdadm を --monitor モードで起動し RAID アレイを監視している。
[root@centos5 ~]# mdadm --monitor /dev/md0
メールが送れるかテストするには、次のようにする。
[root@centos5 ~]# mdadm --monitor --test --oneshot --scan
- --test
- テストメッセージを送る。
- --oneshot
- 1回だけ RAID アレイをチェックし終了する。
- --scan
- mdadm.conf に書かれた設定情報を読み取る。
RAID アレイを解除する
手順としては、次のようになる。
- アンマウントする。
- RAIDアレイを無効化 (deactivate) する。
- RAIDアレイを構成するデバイスの superblock を消去する。
- それぞれのデバイスを初期化する。
[root@centos5 ~]# umount /raid
[root@centos5 ~]# mdadm --misc --stop /dev/md0
deactivate できているか確認。
[root@centos5 ~]# cat /proc/mdstat Personalities : [raid5] unused devices: <none> [root@centos5 ~]# mdadm -D /dev/md0 mdadm: md device /dev/md0 does not appear to be active.
[root@centos5 ~]# mdadm --misc --zero-superblock /dev/sdb1 /dev/sdc1 /dev/sdd1
[root@centos5 ~]# fdisk /dev/sdb [root@centos5 ~]# fdisk /dev/sdc [root@centos5 ~]# fdisk /dev/sdd