work.log

元エンジニアの備忘録的ブログ

4本のDiskで組める最強のRAIDをベンチマーク測定で決める

投稿:2013-09-06 19:34  更新:

RAID1 から RAID10 までのベンチマークを取得しましたので公開します。

RAID って沢山種類があるけど、サーバでは RAID1 か RAID5 しか使った事がなかったので、本当はどれが良いのか気になったのが発端です。

I/O の速さを求めるだけが RAID ではないですが、ここでは「速いは正義」という事で比較します。

※ ただし、RAID0 は除く。

また、RAID は構成状況によってもだいぶ性能が変わると思うので、あくまでも今使える環境での最強を決めるという事で。

測定環境

本当は FreeBSD を直接インストールして測った方がより正確だと思いますが、今回は VMware ESXi 上に建てた VM から測定しています。

計測に使用する機器の共通構成は以下です。

Disk SATA 2.5 500GB x4 (7,200rpm)
RAID Controller Adaptec RAID 5405 256MB Cache

RAID はこんな感じに組んでそれぞれ用意します。RAID1 以外で設定できる RAID ストライプサイズは 256KB に統一します。

RAID1 Disk x2
RAID5 Disk x4
RAID5EE Disk x3 (+ 1 HotSpare)
RAID6 Disk x4
RAID10 Disk x4
RAID5EE について

Adaptec 独自の RAID 規格。通常の RAID5 + 1 HotSpare の場合、HotSpare は通常何もせず待機しているだけだが、RAID5EEはその HotSpare の I/O も有効活用しようというもの。メーカー曰く同条件の RAID5 より早いぜとのこと。

Adaptec RAID5EE の簡単な資料

VMware の構成はこんな感じです。

VMware ESXi 5.1.0 update1
Guest OS FreeBSD 9.1 amd64

計測方法は VM を 1 つ起動して、fio, dd を使って RAID1 – RAID10 まで計測してスコアを取っていくというシンプルなテストです。

fio は見どころ満載な結果を吐き出しますが、今回は IOPS だけに注目。

fio では各メニュー 1 回づつ計測し、計測後は作成したファイルを削除し 10 秒スリープしてから次の測定をするようにしています。テストレシピはこんな感じで用意しおきます。

[read-1M]
name=iotest
directory=/home/
filename=fio.file
direct=1
rw=read
bs=1M
size=1G
numjobs=1
thread=1

[write-1M]
name=iotest
directory=/home/
filename=fio.file
direct=1
rw=write
bs=1M
size=1G
numjobs=1
thread=1

[randread-512KB]
name=iotest
directory=/home/
filename=fio.file
direct=1
rw=randread
bs=512KB
size=1G
numjobs=1
thread=1

[randwrite-512KB]
name=iotest
directory=/home/adn/bench_tools
filename=fio.file
direct=1
rw=randwrite
bs=512KB
size=1G
numjobs=1
thread=1

[randread-4KB]
name=iotest
directory=/home/
filename=fio.file
direct=1
rw=randread
bs=4KB
size=1G
numjobs=1
thread=1

[randwrite-4KB]
name=iotest
directory=/home/
filename=fio.file
direct=1
rw=randwrite
bs=4KB
size=1G
numjobs=1
thread=1

dd は以下のコマンドで書き込み速度を 3 回計測して書き込み速度の平均値を出します。fio の時と同様に計測後はテストファイルを削除し 10 秒スリープさせます。

# dd if=/dev/zero of=/home/tmp.dd bs=1M count=2048

RAID別のベンチマーク測定結果

上記のテスト結果はこんな感じになりました。

fio

test menu bs RAID1 RAID5 RAID5EE RAID6 RAID10
sequential read 1MB 312 642 390 453 597
sequential write 1MB 78 153 104 110 115
random read 512KB 82 157 146 165 239
random write 512KB 82 60 59 51 113
random read 4KB 140 136 129 127 142
random write 4KB 72 89 79 44 91

dd

bs RAID1 RAID5 RAID5EE RAID6 RAID10
2048MB 85.82 MB/sec 161.69 MB/sec 114.47 MB/sec 137.25 MB/sec 120.14 MB/sec

まとめ

かなり個人的な見解ですが、以下の理由で最強の RAID は RAID10 に決めました。

速さは fio の結果に注目して RAID10 が全体的に良かったという単純な理由から。(実際は僅差ですし、 dd を見ると RAID5 なんですけどね。)

ただ、RAID5 も十分に速いし実効容量まで含んで考えると、Disk を沢山使うならやっぱり RAID5 だなという感想です。

本当は RAID5EE との比較用に、「RAID5 + 1 HotSpare」 構成も用意するべきでしたがすっかり忘れていました。これは時間があったら別で計測します。

そして、「速いは正義」とは言いつつも、実運用に投入した後を考えると避けて通れないのが「対障害性」

この場合 RAID5 は Disk 1 本までの故障なら耐えられる。RAID5EE と RAID10 は壊れ方にもよりますが 1 – 2 本までいける。

RAID6 は 2 本同時まで平気。(だけど書き込み速度は遅め)

対障害性についてはまとめるとこんな感じなるのかなと思います。

RAID6 > RAID5EE > RAID10 > RAID5 >= RAID1

壊れ方次第という微妙な感じではありますが、RAID5 と RAID10 どちかで考えた場合、対障害性は RAID10 の方が僅差で優れているかと。

なので、4 本だったら RAID10 が最強なんじゃね? という結論。

とりあえず、こんな具合です。

簡単ですが、「4本のDiskで組める最強のRAIDをベンチマーク測定で決める」は以上です。

おすすめのVPSサーバ

  • OSが選べる
  • VPS同士でLANが組める
  • 複数台構成向き

このブログで使っています。

  • 転送量が多いサービスに
  • 借りてるのは3年間一度もdown無し!

よく見られている記事

  • 本日
  • 週間
  • 月間