Japan
サイト内の現在位置を表示しています。
HAクラスター入門 ~第2回 あらゆるものを冗長化?~
CLUSTERPRO オフィシャルブログ ~クラブロ~はじめに
前回は『design for failure』について考え方を紹介しました。今回は『Single Point Of Failure』です。日本語だと『単一障害点』という言い方になりますが、よく『SPOF』なんて略称が用いられます。そもそもSPOFとは、『障害が発生するとシステム全体がダウンしてしまうような箇所』のことを言います。ここでポイントとなるのが障害が発生した箇所が『単一』であることです。前回用いた図を使ってどこがSPOFとなるのか見てみましょう。
SPOFと冗長化
実はこの図で示されているパーツのほぼ全てがSPOFとなっています。
HDDは複数個ありRAIDコントローラで冗長化されているので、HDD自体はSPOFという扱いになりませんが、それ以外はSPOFという扱いです。「冷却ファンは2つあるじゃないか!」とツッコミがあるかもしれませんが、「各CPUに対して冷却ファンは1つ」であるとすれば、それはSPOFとなります。冷却ファンが故障すればCPUが冷却できなくなり、CPUが熱暴走で動かなくなってしまいます。結果としてシステムダウンに陥ってしまうというわけです。
では、SPOFを防ぐにはどうしたらよいでしょうか。答えはSPOFとなってしまう箇所の冗長化です。『障害が発生するとシステム全体がダウンしてしまうような箇所』が単一として存在することが原因なので、そこを冗長化し、複数の箇所をもうけるのです。そうすることで一箇所に障害が発生しても、別の箇所が正常に動きさえすればシステム全体がダウンになることが防げます。
パーツによって冗長化の手段が異なるので1つひとつ見ていきましょう。
(PCサーバーで一般的に用いられる技術を中心に解説していきます。)
- CPU : マザーボードとOSが対応していれば、障害が発生したCPUを切り離し、残ったCPUでOSの稼働を継続させることができます。ただ、最近のPCサーバーでは対応していないものも多いようです。
- メモリ : メモリミラーリング機能を搭載しているマザーボードであれば、複数のメモリで冗長化が可能です。ただし、OSから認識できる容量はメモリの搭載容量の半分になります。
- HDD : 複数のHDDでRAID(ミラーリングなど) を構成することで冗長化が可能です。一般的にはRAIDコントローラに複数のHDDを接続し、RAIDを構成します。RAIDコントローラがない場合でも、OSの機能でソフトウェア的にRAIDを実現することが可能です。専用のRAIDコントローラを使う場合と比べパフォーマンスは落ちてしまいますが、コストを抑えることができます。
- 拡張ボード(LAN/FC) : 複数のインターフェースを束ねて仮想的に1つものとして扱う技術 ※ があります。複数の拡張ボードを用意し、各ボードのインターフェースを束ねることでボード障害に対応することができます。
- ※LANの場合、チーミングやボンディングと言います。またFCに関してはマルチパスI/Oやデバイスマッパーマルチパスと言います。この辺りはOS文化の違いでしょうが、細かい解説は割愛します。
- 電源ユニット : 電源ユニットを複数搭載することで冗長化することができます。これにUPS(無停電電源装置)をプラスして停電対策を行っていることが多いです。一時的な停電や瞬断の対策としてUPSは非常に効果的です。
- 冷却ファン : 風の流れる方向に2つの冷却ファンを配置することで冗長化できます。片方が止まっても、もう片方のファンで風を届けることができます。
まとめ
さて、実はまだ冗長化できていないコンポーネント(SPOF となっている箇所)があります。マザーボードやRAIDコントローラ、それにOS※ です。ここまでくると1台のサーバーでは解決できないため、『もう1台サーバーを用意して冗長化をするのはどうか?』というアイディアが当然のように出てくるとは思いますが、それは次回のネタということで。
- ※OS上で動くアプリケーションに関しては各アプリケーションの仕様に依存しますが、1つのOS内でアプリケーションそのものが冗長化されていることはほとんどありませんので、OSやその上で動くものは全て冗長化できないものとして扱います。
おまけ・・・マザーボードを含めほぼ全てのコンポーネントを冗長化したフォールトトレラントサーバというものがありますが、やはりOS部分はSPOFとなってしまいます。
次の記事はこちら:HAクラスター入門 ~第3回 複数のサーバーでクラスタリング?~
お問い合わせ