Carpe Diem

  Top > スポンサー広告> 自宅サーバ > ソフトウェアRAID を構築する  

スポンサーサイト

-- - --/-- [--] - --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ソフトウェアRAID を構築する

2014 - 03/08 [Sat] - 14:48

VMware 上の CentOS でソフトウェアRAIDを構築します。
ソフトウェアRAIDはハードウェアRAIDよりも負荷が高いですが、勉強する上では手軽です。

方針としては
/dev/sda - システム
/dev/sdb - RAID用ディスク
/dev/sdc - RAID用ディスク
/dev/sdd - RAID用ディスク

として、sdb ~ sdd を使ってRAID5を構築します。

◆RAID用ディスク作成
VMの設定画面から追加します。
raid01.png

HDDの追加
raid02.png

容量は10G程度にします。もっと多くてもできますが、RAIDの構築に時間がかかるので今回は少なめで。
raid03.png

これを3回程繰り返して、 sdb - sdd のディスクを用意します。
raid04.png

追加したら再起動してデバイスを認識させます。再起動すると


$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sda3 /dev/sdb /dev/sdc /dev/sdd

と新たに sdb - sdd デバイスが追加されます。


◆追加したディスクのパーティション作成
sdb - sdd をそれぞれ以下のとおりにパーティションを作成します。

# fdisk /dev/sdb

このディスクのシリンダ数は 17365 に設定されています。
間違いではないのですが、1024 を超えているため、以下の場合
に問題を生じうる事を確認しましょう:
1) ブート時に実行するソフトウェア (例. バージョンが古い LILO)
2) 別の OS のブートやパーティション作成ソフト
(例. DOS FDISK, OS/2 FDISK)

コマンド (m でヘルプ): n // n で新しいパーティションを作成
コマンドアクション
e 拡張
p 基本領域 (1-4)
p // p でprimary diskに
領域番号 (1-4): 1 // sd*1を作成
最初 シリンダ (1-17365, default 1): // デフォルト値で良いのでEnter
Using default value 1
終点 シリンダ または +サイズ または +サイズM または +サイズK (1-17365, default 17365): // デフォルト値で良いのでEnter
Using default value 17365

コマンド (m でヘルプ): t // t でパーティション・タイプを変更する。一覧は l で表示できる
Selected partition 1
16進数コード (L コマンドでコードリスト表示): fd // fd でタイプを RAID に
領域のシステムタイプを 1 から fd (Linux raid 自動検出) に変更しました

コマンド (m でヘルプ): w // w でwrite
領域テーブルは交換されました!

ioctl() を呼び出して領域テーブルを再読込みします。
ディスクを同期させます。



◆RAID構築
mdadm コマンドで RAID アレイを作成します。
/dev/sdb1, /dev/sdc1, /dev/sdd1 の 3個のパーティションを使って、RAID レベル 5 の RAID アレイ /dev/md0 を作成。


# mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sd[bcd]1


RAID の状態を確認します。

# cat /proc/mdstat

a) 構築中の場合

Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 sdd1[3] sdc1[1] sdb1[0]
20947968 blocks level 5, 512k chunk, algorithm 2 [3/2] [UU_]
[>....................] recovery = 1.4% (261668/17781632) finish=13.3min speed=21805K/sec

b) 完了した時

Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 sdd1[3] sdc1[1] sdb1[0]
20947968 blocks level 5, 512k chunk, algorithm 2 [3/3] [UUU]


構築したRAIDの設定を保存しておきます。

# mdadm --detail --scan >> /etc/mdadm.conf


◆RAIDをフォーマット
/dev/md0 に EXT3 ファイルシステムを作成します。

# mkfs -t ext3 /dev/md0


◆マウントして確認
/data にマウントする設定にします。まずマウント先を作成。

# mkdir /data

設定します。

# vi /etc/fstab
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/dev/md0 /data ext3 defaults 1 2 // 追加

マウントします。

# mount -a


確認します。

# df -l
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda3 16307112 2365528 13113220 16% /
tmpfs 957344 0 957344 0% /dev/shm
/dev/sda1 297485 37173 244952 14% /boot
/dev/md0 20618876 176196 19395284 1% /data


10G のHDD3つで RAID5 なので 20G で合ってます。
ダミーファイルを作ってみると


# dd if=/dev/zero of=testfile bs=1M count=100
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 0.163935 s, 640 MB/s


# df -l
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda3 16307112 2365528 13113220 16% /
tmpfs 957344 0 957344 0% /dev/shm
/dev/sda1 297485 37173 244952 14% /boot
/dev/md0 20618876 278700 19292780 2% /data


確かに容量が変化して書き込めることが確認できます。


◆HDDを1つ削除しても動作するか確認
※SELinux を disabled にしておかないと面倒なことになるので注意
VMwareの設定から1つディスクを削除します。
raid05.png

※VMだと再起動しないとディスク増減の変更が認識されないかもしれないです。
ステータスを確認すると確かに減ってます。

# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 sdc1[1] sdb1[0]
20947968 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_]


ですが先ほどのようにファイルを作成したりしても、問題なくディスクの読み書きができることを確認できます。


◆新たにHDDを追加してRAIDが再構築されるか確認
新たにVMの設定画面からHDDを追加します。
HDDの削除、再追加で
/dev/sdd
が新しくなりました。

追加した後、先ほどと同様にパーティションを作成します。
/dev/sdd1
ができます。

そののち、以下のコマンドで /dev/md0 に追加します。

# mdadm --add /dev/md0 /dev/sdd1

以下のコマンドで再構築しているのが確認できます。完了したらRAIDの修復完了です。

# cat /proc/mdstat




ソース:
CentOSでソフトウェアRAIDの構築
Linuxでmdadmを使ったソフトウェアRAIDの構築・管理メモ
Linux fdiskコマンドでパーティションを作成する
容量指定のダミーファイルを作成したい
mdadmによるRAIDの修復

コメントの投稿





管理者にだけ表示を許可する

 | ホーム | 

プロフィール

Cicatrice

Author:Cicatrice
備忘録

検索フォーム

カテゴリ

最新記事

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。