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 |
Adaptec 独自の RAID 規格。通常の RAID5 + 1 HotSpare の場合、HotSpare は通常何もせず待機しているだけだが、RAID5EEはその HotSpare の I/O も有効活用しようというもの。メーカー曰く同条件の RAID5 より早いぜとのこと。
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 だなという感想です。
そして、「速いは正義」とは言いつつも、実運用に投入した後を考えると避けて通れないのが「対障害性」。
この場合 RAID5 は Disk 1 本までの故障なら耐えられる。RAID5EE と RAID10 は壊れ方にもよりますが 1 – 2 本までいける。
RAID6 は 2 本同時まで平気。(だけど書き込み速度は遅め)
対障害性についてはまとめるとこんな感じなるのかなと思います。
RAID6 > RAID5EE > RAID10 > RAID5 >= RAID1
壊れ方次第という微妙な感じではありますが、RAID5 と RAID10 どちかで考えた場合、対障害性は RAID10 の方が僅差で優れているかと。
なので、4 本だったら RAID10 が最強なんじゃね? という結論。
とりあえず、こんな具合です。
簡単ですが、「4本のDiskで組める最強のRAIDをベンチマーク測定で決める」は以上です。