ブログトップ

Tom's Lab

tomslabo.exblog.jp

Tomの研究所

mdadm によるソフトウェアRAID0を構築する

=============================================================
参考URL
http://d.hatena.ne.jp/do_aki/20100206/1265469602
http://wiki.mmj.jp/index.php?Fedora5%2F%CF%C0%CD%FD%A5%DC%A5%EA%A5%E5%A1%BC%A5%E0

mdadm によるソフトウェアRAID0を構築する

WD20EARS/667 2台でRAID0を行う

=============================================================
■前提事項
OS:CentOS 5.5
MEMORY:2GB CFD W2U800CQ-1GLZJ
DISK:システムディスク HTS545025B9A300
DISK:ワークディスク WD20EARS/667 x 2
電源:SPSN-050P

■注意事項
1.RAID設定は、RAIDとなるDISKの中に設定内容が入っている模様
よって、OSを再インストールしても、RAIDの設定が残っていて、
既に存在しているとかワーニングがでる

2./etc/mdadm.conf作成をしないと、Reboot後RAIDの設定が消えてしまう

3.BIOSにて「SATA AHCI MODE」をAHCIに変更しないと、DISK I/Oがとてつもなく遅くなる
上記の状態では画面も動かなくなる程CPUを食う

■LVMの仕組み
・一台のハードディスクや1つのパーティションを物理ボリューム(PV:Physical Volume)とする
・物理ボリュームは、一定のサイズの物理エクステント(PE:Physical Extent)から構成される
・1つ以上の物理ボリュームからボリュームグループ(VG:Volume Group)が構成される
・ボリュームグループ内の、物理エクステントから論理ボリュームが構成される
・論理グループは従来のパーティションと同様にブロックデバイスとして扱うことができる
・論理ボリュームのサイズを変更したり、他のディスク上へ移動したりすることができる
・論理ボリュームは複数のディスクにまたがって作成することができる
・ボリュームグループも後からサイズを変更することができる

=============================================================
【1】DISKの確認
# dmesg | grep WD
ata1.00: ATA-8: WDC WD20EARS-00MVWB0, 50.0AB50, max UDMA/133
ata2.00: ATA-8: WDC WD20EARS-00MVWB0, 50.0AB50, max UDMA/133
Vendor: ATA Model: WDC WD20EARS-00M Rev: 50.0
Vendor: ATA Model: WDC WD20EARS-00M Rev: 50.0

# fdisk -l
Disk /dev/sda: 2000.3 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

デバイス Boot Start End Blocks Id System
/dev/sda1 1 243202 1953514552 83 Linux

Disk /dev/sdb: 2000.3 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

デバイス Boot Start End Blocks Id System
/dev/sdb1 1 243202 1953514552 83 Linux

Disk /dev/sdc: 250.0 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

デバイス Boot Start End Blocks Id System
/dev/sdc1 * 1 13 104391 83 Linux
/dev/sdc2 14 30401 244091610 8e Linux LVM


【2】DISK1個目をFDISK
# fdisk /dev/sdb
・・・
※今回使用するDISKはWD20EARS-00MVWB0なので(内部4Kセクタ)、64セクタ目からパーティション
を作成する特殊なパーテョション切りをしないと、ランダムI/Oがとてつもなく遅くなる

【3】DISK2個目をFDISK
# fdisk /dev/sdc
・・・
これで /dev/sdb1 /dev/sdc1 が作成される。


【4】RAIDデバイスファイルの作成 (既にRAIDデバイスとして作成されている場合あり)
# mknod /dev/md0 b 9 1
mknod: `/dev/md0': ファイルが存在します


【5】RAID0 の構築
# mdadm --create --verbose /dev/md0 --level=0 --raid-devices=2 /dev/sda1 /dev/sdb1
mdadm: chunk size defaults to 64K
mdadm: /dev/sda1 appears to be part of a raid array:
level=raid0 devices=2 ctime=Sat Jul 10 09:57:40 2010
mdadm: /dev/sdb1 appears to be part of a raid array:
level=raid0 devices=2 ctime=Sat Jul 10 09:57:40 2010
Continue creating array? y
mdadm: array /dev/md0 started.


【6】LVMの構築
以下のコマンドで、LVM(logical volume manager)ボリュームを作成

## 物理ボリューム(PV)の初期化)
# pvcreate /dev/md0
Physical volume "/dev/md0" successfully created

# pvscan
PV /dev/sdc2 VG VolGroup00 lvm2 [232.78 GB / 0 free]
PV /dev/md0 VG VolGroup01 lvm2 [3.64 TB / 3.64 TB free]
Total: 2 [1.87 TB] / in use: 2 [1.87 TB] / in no VG: 0 [0 ]

## ボリュームグループ(VG)の作成
# vgcreate VolGroup01 /dev/md0
Volume group "VolGroup01" successfully created

# vgscan
Reading all physical volumes. This may take a while...
Found volume group "VolGroup00" using metadata type lvm2
Found volume group "VolGroup01" using metadata type lvm2

# vgdisplay /dev/VolGroup01
--- Volume group ---
VG Name VolGroup01
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 3.64 TB
PE Size 4.00 MB
Total PE 953864
Alloc PE / Size 0 / 0
Free PE / Size 953864 / 3.64 TB
VG UUID AcyspD-xur0-2mT4-XYIV-X9v2-9HP5-i8tB4y


## 論理ボリューム(LV)の作成
## -l(エクステント数(PE))または-L(バイト数(Size):単位にkKmMgGtTどれかをつける)

# lvcreate -l 953864 -n LogVol00 VolGroup01
Logical volume "LogVol00" created

## 確認
# lvdisplay -C
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
LogVol00 VolGroup00 -wi-ao 228.84G
LogVol01 VolGroup00 -wi-ao 3.94G
LogVol00 VolGroup01 -wi-a- 3.64T

# lvscan
ACTIVE '/dev/VolGroup00/LogVol00' [228.84 GB] inherit
ACTIVE '/dev/VolGroup00/LogVol01' [3.94 GB] inherit
ACTIVE '/dev/VolGroup01/LogVol00' [3.64 TB] inherit

【7】RAID確認
# cat /proc/mdstat
Personalities : [raid0]
md0 : active raid0 sdb1[1] sda1[0]
3907028864 blocks 64k chunks

unused devices:


【8】/etc/mdadm.conf作成
mdadmコマンドでソフトRAIDを構築した後、/etc/mdadm.confを作成しないと再起動時にソフトRAIDがスタートしない模様

# vi /etc/mdadm.conf

DEVICE /dev/sd[abcd]1
ARRAY /dev/md0 devices=/dev/sda1,/dev/sdb1


【9】RAID設定がリブート後ちゃんと残っているいるか一旦リブートして確認
# reboot

# cat /proc/mdstat
Personalities : [raid0]
md0 : active raid0 sda1[0] sdb1[1]
3907028864 blocks 64k chunks


【10】フォーマット
最後に ext3 でフォーマット。

# mkfs.ext3 /dev/VolGroup01/LogVol00
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
488390656 inodes, 976756736 blocks
48837836 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
29809 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848, 512000000, 550731776, 644972544

Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 34 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.

※IDEで、 4Teraのmkfsなら5時間?
AHCIで、4Teraのmkfsなら10分


【11】/etc/fstabに登録

# mkdir /video
# mount -t ext3 /dev/VolGroup01/LogVol00 /video

/etc/fstab に以下の内容を追加して再起動

# vi /etc/fstab
/dev/VolGroup01/LogVol00 /video ext3 defaults 0 0

【12】reboot後確認
# df -k

以下メモ
==================================================================================
■RAID削除
## 物理ボリューム(PV)の削除
# lvremove raid
Logical volume "video_lv" successfully removed

## ボリュームグループ(VG)の削除
# vgremove /dev/raid
Volume group "raid" successfully removed

## 論理ボリューム(LV)の削除
# pvremove /dev/md0
Labels on physical volume "/dev/md0" successfully wiped

# mdadm --query
[PR]
by TomsLabo | 2010-07-11 21:39 | Linuxネタ