treedown’s Report

システム管理者に巻き起こる様々な事象を読者の貴方へ報告するブログです。会社でも家庭でも"システム"に携わるすべての方の共感を目指しています。

※https化しました。その影響でしばらくリンク切れなどがあるかもしれませんが徐々に修正していきます。 リンク切れなどのお気づきの点がございましたらコメントなどでご指摘いただけますと助かります。

部長、そろそろRAIDで安心したくないですか?

今回はRAIDについて記事にします。
ただ、RAIDの深い考察はいろいろな方が記事にしています。
特に故障率、復旧時に考慮すること、実際の復旧作業、構築作業の注意点、などは他の先人の方々の記事をお読みください。
素晴らしい記事がいっぱいです。

ここでは、
RAIDの解説を読んだがよく分からない方(それでもサーバに用意しなければならなくなった方)
サーバ管理者だけど、どのRAIDを選べばいいか分からない方
なんで世の中のシステム屋はRAIDで保護するのかいまいちピンと来ない方
と、まあRAIDの深い記事を読み漁るための準備知識を補完してみようと思っています。

Q.何故人はRAIDを入れようとするのか?
A.HDDが壊れても使えるようにするためです。

Q.そもそもRAIDてなんですか?
A.HDD複数台をひとまとめにして1台のHDDが故障で脱落してもサーバとしてはデータが損失しないよう、かつ継続して稼働するための保護技術です。

でも世の中にはRAIDで安心は購入できたのに安全が購入できていないかった不幸な事例も数多くあります。
RAID投資で安心だけでなく安全も購入できるよう本記事が役に立てば幸いです。
考えるのは3ステップです。
----------------------------------------------
1)RAID構成にするかどうか。

最大にして最初の決断です。
RAIDにして一番よかったと思える瞬間は予測不可能な故障による停止時間を最小化できたときです。
その代わりRAID構成を管理/監視するという業務をトレードオフにします。
停止時間が長くてもよければ高価なRAIDに投資するよりもバックアップへの投資に回した方がきっとためになります。
つまるところRAIDの有無に関わらずバックアップは必要、だから停止時間が許容されるなら、しっかりとしたバックアップを業務設計し実施することでRAIDの投資分バックアップのストレージやライセンス購入費用に回した方がためになる、ということです。
バックアップがある前提でRAIDによる停止時間の最小化を計画するのであれば、RAIDにした効果を実感することができるでしょう。

2)どのRAIDにするか。

保護するためのRAID(1/5/6/10)か、スピードアップのためのRAID(0)か、です。
 ※すいませんがRAID01は使ったことがありません。
最近はメーカPCでもスピードアップのためにHDD(ないしSSD)2台でRAID0が構成されている機種も(高級機では)たまに見かけます。
しかしながらここではRAID0は除外とさせていただきまして、保護するためのRAIDについて言及します。

とにかく最小コストで停止時間を最小にし保護したい場合ないしHDDが最大でも2台しか装填できない場合⇒RAID1=ミラーリング
予算に多少余裕があって保護と速度を両立させたい場合ないし、HDDが3台までしか装填できない場合=RAID5=パリティ付ストライプ
予算により余裕があって保護と速度を両立させたい場合=RAID6=ダブルパリティ付ストライプ/RAID10=ミラーリング&ストライピング

さらに、RAID6とRAID10の判断基準は、

RAID5を取り扱った経験があるから分かりやすいしどうせHDDは4台までしか搭載できない=RAID6
HDD故障復旧時、リビルド中であってもユーザがアクセスしてくる環境で、リビルドを早く完了させたい=RAID10

一昔前の商談においては、メーカやSIerのエンジニアからRAID5かRAID6を提案される経験が多かったのですが、最近ではRAID10が流行りとなっている印象があります。
(最近の製品ではたぶんRAID6よりRAID10の方がパフォーマンスが出やすいからだと思われます。)

RAID6/10のどっちが優れているか、という言及はここではできませんが、私はリビルドが迅速に完了することに価値を感じますので、予算が許せばRAID10を選択することが多いです。
もう少し拡張できるなら、
 HDD2台でRAID1⇒OSインストール場所
 3台目以降のHDD4台以上でRAID10⇒データ保管場所
 残る1台のHDDはデータ領域のホットスペアに割り当て
と、2アレイで用意することが多いです。
いずれを選択しても、重要なことは故障に備えることです。

蛇足ですが、、、
いざ自分で余っているPCを自宅サーバ化する際RAID5を採用したらパフォーマンスが出ない。
世の中ではRAID5をよく見かけるのに、こんな遅いの?こんなもん?
となることがあります。
これはハードウェアRAIDかどうかということに加えて、RAIDボードにライトバックキャッシュ(とバッテリ)が用意されていないからです。RAID5は本来書き込みは遅い技術です。
最近オンボードRAIDでもRAID5対応する機器がある(BIOS/UEFIで設定)ようですが、この場合でも(BIOS/UEFIにある)設定値に「Write Chache」とある項目でライトバックに設定しないとRAID5でも期待ほどの速度が出なくます。
ライトバックにした場合にはRAIDカードにバッテリが用意されているか確認して、場合によってはUPSを用意し不意の電源OFFに備えましょう。

3)RAIDを取り巻く備えを出来るか

RAID関連する備えとして、

  1.  ホットスペアのディスクを用意する。
  2.  オンサイト(すぐディスクが故障交換できる)保守をメーカと締結する。
  3.  EoLが長い製品(コンシューマー向けではない部品)で構成する。
  4.  RAIDボードが(同一代品保有かメーカ保守に入っているので)保守できる状態にしておく。
  5.  ハードウェア監視機能(ProliantのiLOやSystemXのIMM)を利用しRAIDが監視でき、OS稼働中でもリビルドの状態が可視化できる。


HDDの故障でRAIDが崩壊するのであれば、RAIDを入れる意味がないことになります。RAIDの選択と同時にRAID崩壊前にどの様な対処で食い止めるのが一番体制に合っているか検討すると違った視点が出てくるかもしれません。
そのための助けになる備えとして思いつくのが上記の5点になります。(きっと他にももっとあります。)
私個人の感覚では、RAID10を採用すると予算がなくなってしまうようであれば、RAID5に格下げしたとしてもRAIDを取り巻く備えを用意します。

監視を動化し、故障を早めに把握して、故障から時間をおかず交換動作が出来るように準備する、というのは購入時に故障復旧をどうするか運用管理業務設計の段階です。これを考えておかなければ、いざ障害発生となったときになかなかうまく動けないことが多いです。

不安をあおるわけではありませんが実際に体験したRAID崩壊の危機を。
構成1:SAS(旧SCSI)HDD4台でRAID5(うちホットスペア×1)
症状:HDDが1台故障しホットスペアと交代、ハードの保守員がHDDを交換しホットスペアに登録、「ホットスペアがなかったら危なかったですね。」などと安堵して会話している最中に2台目が故障。かなりテンパったが幸いリビルドが完了していることが確認できたのでRAID5構成自体は3台中2台が無事生存している状態。再度(同日2回目の)メーカからHDDを取り寄せを実施して何とか2台目故障も交換しデータは守られた。
※巷でよく言われるRAID5リビルド時の2台目故障ですね。現実にこれはあるという事例です。この場合はホットスペアを用意していたおかげで2台目のHDD故障が発生しましたがデータは守られました。
長時間パフォーマンスが犠牲になった点を批判する人は居たのですが、最悪の事態は避けることができたので上出来です。知らないっていうのは罪ですね。

構成2:SASHDD2台でRAID1(ホットスペアなし)
症状:引っ越しのため運搬したところOSが起動しなくなる。最初は起動していたのだが、OSが強制停止したのち起動しなくなる。片肺稼働(ミラー先)での起動も×。やむを得ず引っ越し前のイメージバックアップから復元。
※まさかのRAID1で2台同時故障でした。こうなるとハードウェア保守でHDD交換してバックアップからの復元しか手段がなくなります。
引っ越し直前でイメージバックアップを取得していたのでどうにか復旧できました。

構成3:SATAHDD4台でソフトウェアRAID1×2+ソフトウェアRAID5(ホットスペアなし)
症状:やや複雑な構成をしているNASで1台故障が発生、発見が遅れHDD1台故障を交換しリビルド中に2台目が故障。SATAソフトウェアRAIDなのでとにかくリビルドが遅いことと前出のRAID5と違ってホットスペアがないので2台目の故障であえなく復旧失敗。後日2台目の故障HDDを交換し再インストール⇒データリストアで何とか復旧。
※ホットスペアを用意するスロットがないオールインワンタイプのサーバだったことと管理機能が上手く動かなかったので故障後の発見が遅れたことが残念な結果となってしまいました。
結局バックアップからの復元で何とか復活しましたが、SATAソフトウェアRAIDではSASハードウェアRAIDよりリビルドに時間が掛かる分復旧時の2台目故障が発生することが多いのかもしれません。
管理者向けの資源配布サーバだったのでユーザに影響しなかったのは幸いでした。

構成4:SASHDD6台でRAID5(ホットスペアあり)
症状:5台のHDDで構成されたRAID5アレイのうち1台が故障とハードウェア監視機能からエラーアラートが発行されている。しかしRAIDアレイから切り離し&ホットスペア切替が実行されずそのまま稼働している。(RAIDボードではエラーを検出していないらしい。)
メーカ保守員の説明では「エラーの1台はセクタエラーかファイルシステムにエラーがあるのでアレイから切り離されないが不良ブロックに書き込まれたデータは既に欠損している可能性が高い。
この場合復旧のためには以下のステップが必要となる。
1)データをすべてバックアップ
2)エラーディスクを交換
3)OSを再インストール
4)データリストア
メーカ保守員としては(2)エラーディスクを交換しかできないので(1)が終わったら呼んでください。(2)を実施したのち、(3)(4)を実施してください。」(ぇぇぇ…。)
※幸いHyper-VのホストOSだったので一時的に別Hyper-Vのホストにゲストを移行し稼働確認することで、OS再インストールから復旧までは可能でした。
ただしエラーのせいでゲストOSのsyslogサーバの(冗長していた)1台が犠牲になりました。
故障している箇所が可視化できない分、この障害に遭遇した場合、精神的にこたえますね。

と、このようにRAIDは万能ではありません。事例中半分がバックアップ頼みでしたので、RAIDに頼りきることなくバックアップ施策がいかに重要かということがご理解いただければ幸いです。

ちなみに表題の質問の答えは
「ファイルサーバだからRAID1ぐらいは欲しいよね。」と、好感触の返事をもらえました。
そのサーバはリプレイス2回を経て、最終的にRAID1+RAID10の2アレイ構成で稼働しています。