オープンソース

高可用性とクラスタ

高可用性とは

キャラクター:クラー

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

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

  • 外部要因(ほこり、温度変化など)による故障
  • 停電などの電源障害
  • コンピュータの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がインストールできるハードウェアであれば、メーカーの制約などもありせん。そのため、用途に合わせてハードウェアを選ぶことができ、安価にクラスタが実現できるようになりました。

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

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

参考情報

一押しOSS情報「クラスタのOSS」

高可用性とクラスタ
高可用性とは、止まらずに動く性能ということです。HAクラスタは、この高可用性を実現するシステムです。
OSSで構築するクラスタのメリット
ここではオープンソースソフトウェアを駆使したクラスタのメリットについて紹介します。
Pacemaker
〜OSSのクラスタソフトウェア〜
Pacemakerは、クラスタシステム全体を管理するオープンソースソフトウェアです。Pacemakerが動作するには、クラスタの各ノードの管理と、ノード間の通信を行うクラスタの基盤となる仕組み(クラスタ基盤ソフト)が別に必要です。
corosync〜OSSのクラスタ管理ソフト〜
corosyncはクラスタ基盤ソフトウェアです。Pacemakerと共に使われ、通信や監視などの機能を提供します。
DRBD
〜ネットワークミラーリング用ソフト〜
DRBDは、クラスタシステムでデータ共有を行うために使われるネットワークミラーリング用のソフトウェアです。現在はオーストリアのLinbit社が開発、サポートを行っているオープンソースソフトウェアです。
クラスタシステムとデータ共有
クラスタシステムを設計する時にはデータの共有をどのように行うか。これはとても悩ましい問題です。ここではクラスタシステムで良く利用されるファイル共有方法について紹介します。
クラスタシステムのサポート
オープンソースのクラスタソフトウェアは、各種サポート付きで利用することも可能です。
Hawk〜OSSのクラスタ管理用GUI〜
Hawkでは、HAクラスタシステムの設定や管理を、ウェブインタフェースから行うことができます。そのため、コマンドラインの操作に不慣れな場合でも、HAクラスタシステムの運用・管理を簡単に行うことが可能になります。
Heartbeat〜OSSのクラスタ管理ソフト〜
HeartbeatはOSSの基盤クラスタソフトとして、もっとも代表的なソフトウェアです。Heartbeatは、クラスタノード間でのメッセージの交換、ハードウェアの制御などの機能を提供します。
クラスタ導入の注意点
クラスタシステムは、大変複雑なシステムです。ここでは、クラスタ構築を行う場合の注意点について解説します。

ご検討用の資料をご用意しております。

様々な事例を集めたモデルプラン(費用例付き)をお送りしています。

代表的な事例を集めた「モデルプラン」をお送りしています。費用の例も記載しておりますので、価格感も知って頂ける資料となっております。
ご希望の方は、下記よりお申し込みください。


モデルプランをご希望の方

デモの申し込みイメージ

各種費用についてのお問い合わせ

コンサルティング費用、設計費用、構築費用、運用費用、保守費用など、各種費用についてのお見積もりは以下のフォームよりお気軽にお問合せ下さい。


unboundやPowerDNSを使用したDNSサーバのモデルプランをご希望の方

全国対応可能イメージ

高可用性とクラスタの先頭へ