突然ですが、システムの信頼性を高めるにはどうしたら良いのでしょうか?
答えは「止まらないシステムを作れば良い!」なのですが、具体的に止まらないシステムを作るにはどうすれば良いのでしょうか?
今回は止まらないシステムの方式の一つとして「デュプレックスシステム」に関して解説します。
ホットスタンバイやコールドスタンバイという聞いたことあるような言葉も出てきます!
デュプレックスシステムとは?
デュプレックス(Duplex)という言葉は英語で「重複の、二重の」といった意味があります。ですので、デュプレックスシステムと言ったら単体では無く、予備のシステムがあることになります。
そして、デュプレックス以外にデュアルシステムというものもあります。
デュアル(Dual)と言う言葉も「二重の」といった意味があります。
じゃあ、デュプレックスとデュアルはどう違うんじゃい!ってことになりますが、英語的なニュアンスとしては以下のようになるようですね。
デュプレックスとデュアルの違い
- Duplexは大元から2つあるものが一緒にいる感じ
- Dualは根元は同じでその先が2ついる感じ
うーん、これでも分かり難い感じがしますので、システムのイメージに置き換えてみます。
先ずはデュプレックスシステムのイメージです。障害が発生したら従系(予備系)に切り替わる方式ですね。
次にデュアルシステムのイメージです。常に2台で同じ処理を行い、それぞれの結果を照合して最終的な結果を出しているので、片方に障害が発生してもサービスを提供し続けることができる方式ですね。
これで何となく違いが分かりましたかね。
では、本題のデュプレックスシステムに入りましょう!
デュプレックスシステムは主系と従系の概念で複数のシステムで構成されますが、この従系の待機のさせ方によって、三つの方式がありますので、一つずつ解説していきます。
ホットスタンバイとは?
ホットスタンバイは従来のシステムをいつでも(常に)稼働可能な状態で待機させておく方式です。下図にありますように、従系の電源ONにし、主系と同じようにOSやアプリケーションを稼働させておきます。
更にデータの同期も常に行っているので、主系のシステムに障害が発生した場合には、直ぐに従系に切り替えることでサービスを提供し続けることができます。
因みに主系に障害が発生した際に従系に切り替えることをフェールオーバと呼びます。
ウォームスタンバイとは?
ウォームスタンバイは従系のシステムの電源は常に入れておきOSも立ち上がっている状態なので、ここまではホットスタンバイと同じなのですが、主系と同じアプリケーションは動作していないです。その代わりに、別の用途のアプリケーション(例えばバッチ処理)を動かしていたりします。
よって、従系に切り替えるためには、主系と同じアプリケーションの立ち上げが必要になるので、ホットスタンバイに比べると切り替わりに時間が掛かります。
コールドスタンバイとは?
コールドスタンバイは従系のシステムの機器だけ用意しておき、電源をオフにして待機させておく方式です。
障害が発生した際は電源を入れてOSが立ち上がるところから始まり、アプリやデータベースなどのミドルウェアを立ち上げていきます。ですので、ホットスタンバイ、ウォームスタンバイに比べ切替に最も時間が掛かります。
3つの方式の比較
ここまでデュプレックスシステムの三つの方式に関して解説してきましたが、それぞれの方式による違いは以下の二つです。
- 従系(予備系)への切替時間
- システム構築、維持のためのコスト
先ほどまでの解説では各方式の切替時間に着目してましたが、実は方式の違いでコストも変わってくるのです。
切替時間を短くしようとすると、従系を主系と同じ状態で常に稼働させていなければならいため、コストが掛かります。反対に切替時間が短くてもよければ、電源をオフにしておいても良いので、コストは安くすみます。つまり、速度とコストは反比例の関係になります。
クラウド上におけるサーバ(インスタンス)やミドルウェアは利用時間に応じて課金されたりするので、従系のサーバを落としておけると課金されないので、コストが安くなります。
そのシステムのサービス提供のレベルに応じて、3つの方式を使い分けることが重要ということになりますね。
まとめ
今回はシステムの信頼性を上げるデュプレックスシステムとデュアルシステムの違いと、デュプレックスシステムの三方式の違いに関して解説しました。
それぞれの方式によって信頼度やコストに違いが出てくるので、システムが提供するサービスのレベルによって、最適な方式を選択する必要がありますね。
システムの信頼性を上げるためには今回のデュプレックスシステムやデュアルシステムのように2系統のシステム構成にするほかに「負荷分散のためのシステム構成」というものがあります。こちらは信頼性に加えて性能向上も実現するためのシステム構成になります。こちらは別の記事で解説できればと思います。
システムの構成には色々な方法があって覚えるの大変ですが、その技術によって安心、安全なシステムが作られているのですね。
スマホも無くすと慌ててしまうので、もし無くしても直ぐ代替機を使えるようにホットスタンバイしておきたいですね。コスト掛かりますが。。。
以上です!