2017年8月3日木曜日

RAID 6 か RAID 10 か、ファイルサーバはどちらにする?

ファイルサーバにはどんなRAIDが適切か


ファイルサーバを構築するにあたってストレージをどうするかという点について考察てみたいと思います。

HCI を当たり前のように組める中堅企業以上であればいざ知らず、小規模から中小企業あたりであればファイルサーバにRAIDコントローラーを挿してHDD複数台でRAID運用、というケースが割と多いのではないかと思います。

故障や復旧の手間、コストなど全体的なバランスから最近ではRAID 6もしくはRAID 10あたりが良く使われているようです。

RAIDについては素晴らしい解説がされているブログなどもあり、ここでは細かいところに踏み込みませんが、今回自社に導入するにあたりかなり悩んだためその経過をメモしておこうかと。

そもそもなんでRAIDにするかといえば

「ディスクの故障を前提とした耐障害性」+「パフォーマンス向上」

を意図しているわけで。

RAIDが世に出た当初の目的からすれば、あまり高価でないディスクでも耐障害性を高めたいということなので、特に前者を意識してしまうのですが、数十人以上が同時アクセスするファイルサーバですからパフォーマンスもアップしたいところです。

RAID 6 はパリティ生成による書き込みパフォーマンスの低下が指摘されてる一方で、ストライピングによる読み込みパフォーマンスの向上が期待されるため、どちらかというと読み込みが多いシーンでは有利です。耐障害性も計算上ではRAID 10より高いですが、リビルド負荷が大きいのでリビルド中は全体のパフォーマンスが下がってしまうなど、ふだんはいいけれど復旧時が大変という印象。

RAID 10は書き込みはシンプルなためランダムアクセスでも速度が低下しにくく、というかむしろディスクを増やすごとにストライピングのメリットも効いてくるためRAID 6より有利です。逆にディスク台数が6台くらいまでであれば4台でストライピングされるRAID 6のほうが3台でストライピングされるRAID 10より読み込みが有利なのではないかということは理解できます。


ファイルサーバにどちらを採用するかという点で非常に悩みました。
今回使っている DELL PERCH730 は意外とRAID 6が速いという情報もあり、もともと容量小さいSASディスクを有効活用しようとするとRAID 6に気持ちが揺れます。

一方でファイルサーバとして複数が同時アクセスし続けるハードウエアのため、少しでもパフォーマンスが高いほうがありがたいというのもあります。それほど大きくないExcelファイルなどへのアクセスがほとんどで、ランダムRead、ランダムWriteがほとんどであると考えるとRAID 10のほうが実用環境で有利な感じがします。

故障時のディスク交換、リビルドに関してもRAID 10のほうがリビルド中の負荷が少なく、ホットスワップのメリットが活かしやすい。

思い悩んだ結論としては、やっぱりRAID 10かなと。
容量についてはあまりアクセス頻度が高くないデータはアーカイブ中心の別ファイルサーバに逃がすとして、比較的頻度が高いデータに絞れば数TBでも足りそうです。
(動画や巨大な画像等は使わない業種のため)

耐障害性としては同じグループのドライブ(3台)が同時にすべて故障するというかなりのレアケースでない限りはデータロスすることは無いので、実運用上問題なさそうです。リビルド負荷も低そうですし。

アーカイブ中心のファイルは別途SATAの大容量ディスクでRAID 1を組んだサーバに入れておきます。こちらはアクセス負荷が少ないのでパフォーマンスはあまり意識しなくても良いのでWesterm Digital の RED といった回転数抑え目ディスクで十分です。


今回のファイルサーバ構成
・起動用ドライブ HDD 2台の RAID 1 構成
・データ用ドライブ HDD 6台の RAID 10 構成
の2仮想ドライブにしてみました。

ついでにアーカイブを中心としたファイルサーバを併用しました。
アーカイブ用ファイルサーバの構成
・ドライブは SATA HDD 2 台の RAID 1 構成
・OSドライブとデータドライブはパーティションを分けて運用
といった1仮想をソフトウエアRAIDで組みます。


RAID を運用するにあたって


RAID 運用をしている多くの人は故障時のことをあまり意識していないと思います。
まぁ、通常のリース期間ではRAID1以上を組んでいると意外とデータロスする確率が低いのでしょうが...

結局HDDが故障しても気が付かなくて、RAIDの冗長性が無くなった後にもう一台壊れて気づくなんてことであれば、初めからRAIDを組まなかったケースと比べて単にオシャカになるまでの時間が伸びただけです。(それはそれでメリットありますが)

RAIDを運用し始めたら故障時の交換を意識して運用すべきだと強く思います。
できれば運用開始前に一度意図的に1つディスクを引っこ抜いて、違うディスクで正常にリビルドできるかくらいを確かめたいところです。

HDDの故障だけを想定して4時間対応などの高い保守に入るくらいであれば、1本余計にディスクを買っておくのもありです。
SAS 2.5インチの容量大き目(1TB以上)あたりだとなかなか入手が困難だったりもしますので、多少高めでもメーカー純正品を手配しておくか、ディスク構成を見直してホットスペアにしておくことも要検討です。

私はいまのところ毎晩差分バックアップを取っておいて、障害発生時にはいったん直近の差分データを取ったうえでメーカー保守待ちという体制です。
当日午前1時に取得したバックアップからの差分だけであればそれほど時間がかからないので、メーカーの保守要員が到着するまではこれを頻繁に取得してデータロスを防ぎます。
RAIDディスク交換中にやらかしがあってもいいように、どちらにしてもバックアップを取ることになりますし。

この辺、大規模になってそんなこと現実的に無理な場合はやっぱり保守をがっちり入るのと、そもそものハードウエアをきちんと冗長化(HCIやら外部のバケモノディスクなどを使って)しておけば良いのでしょうね。



0 件のコメント:

コメントを投稿