クラスタについて

OSS

高可用性とクラスタ

高可用性とは

高可用性とは、簡単に言えば、止まらずに動く性能ということです。コンピュータを使ってシステムを作ると、障害などのためにサービスが停止してしまう可能性があります。この停止時間が少ないシステムのことを、高可用性があるシステムと呼びます。

システムの停止には、次のようないくつかの原因があります。

  • 外部要因(ほこり、温度変化など)による故障
  • 停電などの電源障害
  • コンピュータのOSの不具合
  • アプリケーションプログラムの不具合
  • コンピュータの故障
  • 地震や水害などの災害
  • 人的ミス

高可用性を実現するためには、これらの要因をできるだけ減らし、何かがあっても、停止しないような仕組みを作る必要があります。

システムの稼働率の考え方

システムの稼働率は、次のMTBF(Mean Tiem Between Failure)、MTTR(Mean Time To Repair)という2つの数値を使って考えるのが一般的です。

MTBF =故障回数/稼働時間の合計 MTTR =故障回数/修理時間の合計

この2つの数値を使って、稼働率は次のように表されます。

稼働率 =MTBF + MTTR/MTBF

  • 1:MTBF(平均故障間隔)
    ある機器やシステムが故障するまでの時間の平均値。使用を開始して、あるいは故障から回復してから、次に故障するまでの平均時間。
  • 2:MTTR(平均復旧時間)
    故障したコンピュータシステムの復旧にかかる時間の平均。システムの保全性の指標として用いられ、値が小さいほど復旧までの時間が短く、保全性が高いシステムといえます。

稼働率の計算

例えば、1年に3回故障し、1回の修理に2日かかる場合を考えてみましょう。この修理時間は、ハードウェア保守として、翌日オンサイトを契約した一般的な場合です。

図:365日の稼働状況

  • 稼働日数:359日(稼働日数ー修理日数)
  • 稼働時間:359×24=8616(時間)
  • 故障回数:3回
  • 修理時間:2日×3回×24時間 = 144(時間)

MTBF =3/8616= 2872(時間) MTTR =3/144= 48(時間)

稼働率 =2872/2872 + 48≒ 0.9836

稼働率は、98.36%であることが分かります。

シングル構成のシステムの稼働率

稼働率は、ある瞬間にそのコンピュータが動作している確率を示しています。複数のコンピュータを組み合わせてシステムを作った場合の稼働率は、一般的な確率計算の方法で算出できます。例えば、先ほどの98.36%のハードウェアを2つ組み合わせて、WEB-DB連携のシステムを作った場合を考えてみましょう。

図:WEB-DB連携のシステム

システムの稼働率
WWWサーバの稼働率×DBサーバの稼働率=0.9836×0.9836≒0.9675

システム全体の稼働率は、約96.75%となることが分かります。

このように、コンピュータを直列に並べてシステムを構成すると、システム全体の稼働率は1台のコンピュータの稼働率よりも低くなります。

アクティブスタンバイシステムの稼働率

図のように、アクティブスタンバイのクラスタシステムを構成した場合の稼働率は、どうなるでしょうか?

図:アクティブスタンバイシステム

この場合には、2つのサーバが同時に壊れない限りは、システムは稼働し続けることができます。

両方のシステムが壊れる確率
(1-0.9836)×(1-0.9836)=0.00027
稼働率
1-両方のシステムが壊れる確率=1-0.00027=0.99973

稼働率は、99.97%の稼働率となりました。

このように、同じ機能のコンピュータを並列に並べてシステムを構成すると、システム全体の稼働率は1台のコンピュータの稼働率よりも高くなります。

HAクラスタ

本サイトで紹介しているクラスタシステムは、HAクラスタ(HA: High Availability)と呼ばれています。

HAクラスタは、高可用性を実現するシステムで、コンピュータの故障、アプリケーションプログラムやOSの不具合に対して効果があります。しかし、決して万能な訳ではありません。災害、人為的なミス、電源障害、外部要因による故障などは防げません。また、アプリケーションプログラムの障害やOSの障害についても、私たちが想定できる問題への対処はできますが、まったく想定していないような問題に対処できる訳ではありません。

クラスタは万能なツールではありませんが、上記の計算のように、システムの可用性を高めることができます。クラスタを実現するためには、次の3つの機能が欠かせません。

  • コンピュータが故障したことを検知する機能
  • 故障を検知してから切り替える機能(フェールオーバー機能)
  • 故障を修理してから元に戻す機能(フェールバック機能)

こうした機能を実現するのが、クラスタソフトと呼ばれるソフトウェアなのです。

オープンソースソフトウェアのクラスタソフト

従来、クラスタを実現するためのソフトウェアは、非常に高価なものでした。また、メーカーが指定したハードウェアを使わなければならないなど、利用する側の制約が非常に多いソフトウェアがほとんどでした。

こうした問題は、オープンソースソフトウェアのクラスタソフトウェアが登場してきたことで大きく変わってきました。オープンソースソフトウェアですので、ソフトウェアは無料で入手することができます。また、一般的なLinuxがインストールできるハードウェアであれば、メーカーの制約などもありせん。そのため、用途に合わせてハードウェアを選ぶことができ、安価にクラスタが実現できるようになりました。

一方、こうしたオープンソースソフトウェアのクラスタソフトウェアには、商用サポートも提供されているものもあり、必要に応じてサポート契約をすることもできます。

オープンソースソフトウェアのクラスタソフトウェアの登場で、クラスタシステムの導入価格が大きく下がりました。また、サポートなどの選択肢も増えました。これまで敷居の高かったクラスタ技術ですが、状況が大きく変化し、幅広く使える条件が整ってきたのです。

参考情報