CentOS 6
Sponsored Link

RAID 1 を構成する
2011/07/12
 
特定のパーティションを 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/sdb
Disk /dev/sdb: 20886 cylinders, 255 heads, 63 sectors/track
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0
Device     Boot     Start     End     #cyls     #blocks     Id     System
/dev/sdb1     0+     20885     20886-     167766763+     fd     Linux raid autodetect
/dev/sdb2     0     -     0     0     0     Empty
/dev/sdb3     0     -     0     0     0     Empty
/dev/sdb4     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/sdb1 /dev/sdc1
mdadm: Note: this array has metadata at the start and
    may not be suitable as a boot device. If you plan to
    store '/boot' on this device please ensure that
    your boot-loader understands md/v1.x metadata, or use
    --metadata=0.90
Continue creating array?
y

mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[root@dlp ~]#
vi /etc/mdadm.conf
# mdadm.conf written out by anaconda
MAILADDR root
AUTO +imsm +1.x -all
# 追記

DEVICE /dev/sd[a-z]*
ARRAY /dev/md0 level=raid1 devices=/dev/sdb1,/dev/sdc1
[root@dlp ~]#
cat /proc/mdstat
   
# 状態確認 ( [UU]となっていればOK )

Personalities : [raid1]
md0 : active raid1 sdc1[1] sdb1[0]
    104855127 blocks super 1.2 [2/2] [UU]
    [==========>..........] resync = 50.1% (52600064/104855127) finish=4.2min speed=206060K/sec
unused devices: <none>
# しばらく時間を置くと同期が完了し以下のようなステータスになる

[root@dlp ~]#
cat /proc/mdstat

Personalities : [raid1]
md0 : active raid1 sdc1[1] sdb1[0]
    104855127 blocks super 1.2 [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 50G -n lv_home vg_home

  Logical volume "lv_home" created
[root@dlp ~]#
mkfs -t ext4 /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     1M-blocks     Used     Available     Use%     Mounted on
/dev/mapper/vg_dlp-lv_root
    20G     6.9G     12G     37%     /
tmpfs     3.9G     0     3.9G     0%     /dev/shm
/dev/sda1     485M     34M     426M     8%     /boot
/dev/mapper/vg_home-lv_home
    50G     182M     47G     1%     /home
[root@dlp ~]#
vi /etc/fstab
# 最終行に作成した RAID ARRAY を追記

/dev/mapper/vg_home-lv_home  /home   ext4    defaults        0 0
[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 パーティションを作成する

# その後は以下の通り

[root@dlp ~]#
mdadm --manage /dev/md0 --add /dev/sdc1
 
# 再作成したパーティションをRAID ARRAYに追加

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>
 
Tweet