RAID 1 を構成する2010/05/05 |
特定のパーティションを RAID 1 構成にします。
ここでは例として /home を RAID 1 構成にしてみます。
この例の前提としては、/home に割り当てるだけの十分な空き容量があるディスクが2台搭載されている必要があります。
十分な容量がなければ新規にハードディスクを2台追加搭載するか、
もしくは、iSCSIでネットワークストレージをマウントしてください。
iSCSIを使った場合、ネットワーク越しの RAID 1 となります。
|
|
[1] | 既存ディスクの空き領域、もしくは新規に追加したディスク2台に、同容量のRAIDパーティションを作成してください。 パーティション作成手順はこちらを参考にしてください。 リンク先の例ではLVMパーティションを作成していますが、ここではRAIDパーティションです。RAIDのパーティションタイプは「fd」です。 RAIDパーティションを作成すると以下のようになります。 |
[root@dlp ~]#
sfdisk -l /dev/sdc
Disk /dev/sdc: 2610 cylinders, 255 heads, 63 sectors/track
Device Boot Start End #cyls #blocks Id SystemUnits = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0 /dev/sdc1 0+ 2609 2610- 20964793+ fd Linux raid autodetect /dev/sdc2 0 - 0 0 0 Empty /dev/sdc3 0 - 0 0 0 Empty /dev/sdc4 0 - 0 0 0 Empty |
[2] | 2台のハードディスクに RAID 1 用の領域が確保できたら、次は RAID 1 を構成する設定をします。 以下のようにフォーマットをした時点で RAID 1 の構成完了でミラーが始まります。 |
[root@dlp ~]# mdadm --create /dev/md0 --level=raid1 --raid-devices=2 /dev/sdc1 /dev/sdd1 mdadm: array /dev/md0 started.
[root@dlp ~]#
vi /etc/mdadm.conf # 新規作成
DEVICE /dev/sd[a-z]*
ARRAY /dev/md0 level=raid1 devices=/dev/sdc1,/dev/sdd1 MAILADDR root@localhost cat /proc/mdstat # 状態確認 ( [UU]となっていればOK ) Personalities : [raid1] md0 : active raid1 sdd1[1] sdc1[0] 20964672 blocks [2/2] [UU] unused devices: <none> |
[3] | RAIDデバイスにファイルシステムを作成し、そこへ /home をマウントして設定完了です。 |
[root@dlp ~]# pvcreate /dev/md0 Physical volume "/dev/md0" successfully created [root@dlp ~]# vgcreate vg_home /dev/md0 Volume group "vg_home" successfully created [root@dlp ~]# lvcreate -L 10G -n lv_home vg_home Logical volume "lv_home" created [root@dlp ~]# mkfs -t ext3 /dev/vg_home/lv_home [root@dlp ~]# mount /dev/vg_home/lv_home /mnt [root@dlp ~]# cp -pR /home/* /mnt/ [root@dlp ~]# umount /mnt [root@dlp ~]# mount /dev/vg_home/lv_home /home [root@dlp ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_00-lv_00 26G 13G 12G 54% / /dev/sda1 99M 13M 81M 14% /boot tmpfs 2.0G 0 2.0G 0% /dev/shm /dev/mapper/vg_home-lv_home 9.9G 152M 9.2G 2% /home
[root@dlp ~]#
vi /etc/fstab # 最終行に作成した RAID ARRAY を追記 /dev/mapper/vg_home-lv_home /home ext3 defaults 1 2
|
[4] | mdmonitor を起動すると RAID を監視することができます。障害発生時にはroot宛にメールが送信されます。 |
[root@dlp ~]# /etc/rc.d/init.d/mdmonitor start Starting mdmonitor: [ OK ] [root@dlp ~]# chkconfig mdmonitor on
|
[5] | 例えばハードディスクの故障で異常が発生した場合は、以下のようにして RAID ARRAY を再構成します。 当然ですが、RAID ARRAY 参加のディスクが全て故障したら終わりなので、以下は片方だけ故障した場合です。 |
# 異常発生時にはステータスが以下のようになる [root@dlp ~]# cat /proc/mdstat Personalities : [raid1] md0 : active (auto-read-only) raid1 sdb1[0]
104855127 blocks super 1.2 [2/1] [U_]
unused devices: <none>
# まずは新しいハードディスクと交換し、そこへ raidautodetect パーティションを作成する # その後は以下の通り # 再作成したパーティションをRAID ARRAYに追加 [root@dlp ~]# mdadm --manage /dev/md0 --add /dev/sdc1
mdadm: added /dev/sdc1
[root@dlp ~]# cat /proc/mdstat # 同期が開始する Personalities : [raid1] md0 : active raid1 sdc1[2] sdb1[0] 104855127 blocks super 1.2 [2/1] [U_]
[>....................] recovery = 4.9% (5200000/104855127) finish=7.9min speed=208000K/sec
unused devices: <none>
# しばらく時間を置くと同期が完了し以下のようなステータスになる [root@dlp ~]# cat /proc/mdstat Personalities : [raid1] md0 : active raid1 sdc1[2] sdb1[0]
104855127 blocks super 1.2 [2/2] [UU]
unused devices: <none> |