UbuntuでSoftware RAID 5

categories: linux

自宅サーバのHP ProLiant MicroserverにウエスタンデジタルのWD10EALX(1TB / 7200rpm / 6Gbps)を3台追加してソフトウェアRAID 5にしてみる。 5インチベイ(オプションの光学ドライブが付くところ)にブート用としてIntel SSD X25-V(40GB)を入れてすでにUbuntu Server 10.04 LTSをインストール済み。下のドライブベイに新しいHDD 3台入れる。(購入時付いていたドライブは外した。)

ドライブ構成
/dev/sda WD10EALX
/dev/sdb WD10EALX
/dev/sdc WD10EALX
/dev/sdd X25-V (boot用、セカンダリポートなので後にマップされてる)

ちなみにHP ProLiant Microserverについて知りたい人は以下が参考になる。(Remote Access Card はおすすめ)

INTERNET Watch 清水 理史さんレビュー
第415回:HP MicroServerで作る最強ホームサーバー10TB+GeForce GT430+USB3.0でVailを搭載
クラウド Watch 山本 雅史さんレビュー
マニア心をくすぐる小型サーバー「ProLiant MicroServer」のハードウェアを徹底分析
マニア心をくすぐる「HP MicroServer」を試す【OSインストール&ベンチマーク編】
マニア心をくすぐる「HP MicroServer」を試す【リモート管理カード編】

話を戻して

RAID用パッケージをインストール

mdadmを入れる

$ sudo apt-get install mdadm

Linux raid 自動検出パーティションを作る

fdiskで基本パーティション1に全シリンダを割当て、システムIDをfd(Linux raid auto)にする。(3台分)

$ sudo fdisk /dev/sda
コマンド (m でヘルプ): n
コマンドアクション
   e   拡張
   p   基本パーティション (1-4)
p
パーティション番号 (1-4): 1
最初 シリンダ (1-121601, 初期値 1):
初期値 1 を使います
Last シリンダ, +シリンダ数 or +size{K,M,G} (1-121601, 初期値 121601):
初期値 121601 を使います

コマンド (m でヘルプ): t
選択した領域 1
16進数コード (L コマンドでコードリスト表示): fd
領域のシステムタイプを 1 から fd (Linux raid 自動検出) に変更しました

コマンド (m でヘルプ): w
パーティションテーブルは変更されました!

ioctl() を呼び出してパーティションテーブルを再読込みします。
ディスクを同期しています。
$ sudo fdisk /dev/sdb (sdb, sdcも同様に設定)
$ sudo fdisk /dev/sdc

RAID作成

$ sudo mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sda1 /dev/sdb1 /dev/sdc1
mdadm: array /dev/md0 started.

バックグラウンドで構築が開始し完了まで数時間掛かるが、この状態でも操作可能なので先に進む。

設定ファイル作成

構成を設定ファイル /etc/mdadm/mdadm.conf に追記

$ sudo sh -c 'mdadm -Es >> /etc/mdadm/mdadm.conf'

LVMインストール

これでフォーマットして使っても良いけど、これだけ容量があると後でパーティション別けたくなるかもしれないのでLVMを導入しておく。

$ sudo apt-get install lvm2

物理ボリューム作成(PV)

$ sudo pvcreate /dev/md0
  Physical volume "/dev/md0" successfully created

ボリュームグループ作成(VG)

$ sudo vgcreate vg0 /dev/md0
  Volume group "vg0" successfully created

論理ボリューム作成(LV)

vg0 の全容量割り当てる

$ sudo lvcreate -l 100%VG -n lv0 vg0
  Logical volume "lv0" created

これで /dev/vg0/lv0 が作成したLVMのデバイス名になる。

ファイルシステム作成

どのファイルシステムを使うか悩むところだが、今回はEXT4にした。

$ sudo mkfs.ext4 -j /dev/vg0/lv0

これもちょっと時間が掛かる。

マウントポイント作成

$ sudo mkdir /media/raid

マウント

ちゃんとマウント出来るか試す。

$ sudo mount -t ext4 /dev/vg0/lv0 /media/raid

出来たのでアンマウントもしてみる。

$ sudo mount /media/raid

fstabに登録

自動マウントするように fstab に追記

/dev/vg0/lv0    /media/raid     ext4    defaults        0       0

RAID構築の確認

構築が完了したかは以下のコマンドで確認(recovery = xx.x%が消えたら完了)

$ cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 sdc1[3] sdb1[1] sda1[0]
      1953519872 blocks level 5, 64k chunk, algorithm 2 [3/2] [UU_]
      [====>................]  recovery = 22.4% (219018240/976759936) finish=295.9min speed=42666K/sec

unused devices: <none>

以上で構築完了。(recovery完了まで待たなくても使えます。)

tags:

Comments

  • ディスク速度やCPU使用率はどのような状況でしょうか?
    ベンチマークなど試されておりましたらご教示ください。

    • 特にベンチマークはやってませんでしたが、簡単なのを試したらこんな感じでした。

      $ sudo hdparm -t /dev/sda
      Timing buffered disk reads: 534 MB in 3.00 seconds = 177.81 MB/sec
      $ sudo hdparm -t /dev/md0
      Timing buffered disk reads: 720 MB in 3.00 seconds = 239.99 MB/sec
      $ vmstat
      procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
      r b swpd free buff cache si so bi bo in cs us sy id wa
      0 0 0 3829376 12360 57584 0 0 789 1 109 146 0 1 99 0

  • ありがとうございます!

    結果からすると読み取りキャッシュが効いているような感じですかね??

    • オプションに -t を指定しているので実際にデバイスにはアクセスしてると思います。
      しかしSSDより速くてビックリした。

  • あ、ごめんなさい。
    実際にデバイスにはアクセスしているようですが、CPU使用率とアクセス速度からしてデバイスのキャッシュが効いているのでこの速度がでているのではないかと想像していました。

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です。コメントは承認制です。

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

Trackback URL