LoginSignup
19
16

More than 5 years have passed since last update.

システムの可用性についてHAクラスタで出来ること

Posted at

最近、"HAクラスタソフト を使用して DB サーバをクラスタ構成にする" という機会があったので、そもそも何で HAクラスタソフト をシステムに導入するんだっけ? から振り返ってみようと思います。
(ちなみに、HAクラスタソフトは Pacemaker を使いました)

そもそもシステムって

動かないと困るんです

基幹系システムから ECサイトまで、世の中のシステムが常に動くのはもはや当たり前のようになっています。

障害が発生しシステムが予期せず止まってしまうと、経済損失はおろか、人命に関わる 事態を引き起こしてしまうことがあります。

安定して動かすために

上記のような事態を引き起こさないために、安定して動くシステムを構築する必要があります。

そこで非機能要求の 1 つである 可用性 を実現する必要があります。

可用性はシステムが障害に強く、安定して稼働する能力のことであり、稼働率 で数値表現することが出来ます。

稼働率 A = \frac{MTBF (動作可能時間)}{MTBF + MTTR (動作不能時間)} 

稼働率と対応するシステム例を以下に示します。(※)システム例はあくまで目安です。

稼働率 許容停止時間 (年間) システム例
100% 0 分 (30秒) 人命に関わるシステム
99.999% 5 分 電気、水道などのインフラ系
99.99% 53 分 金融、保険
99.90% 8.8時間 メール
99.00% 3.6日 商用でない社内システム

可用性を実現するために

システムに要求される可用性を実現するためには色々な方法があります。

  • RAID
  • ロードバランサ
  • レプリケーション
  • クラスタリング (HAクラスタ)

上記の中から、構築の対象とした HAクラスタ について当記事で紹介します。
(※) HA : High Availability

HAクラスタ

概要

クラスタとは、複数の PC をネットワークで接続して、1 つの PC のように振る舞う仕組みのことです。

中でも HAクラスタでは、複数の PC を以下の 2 つに分けて稼働させます。

  • 現用系 (Master) : サービスが起動している
  • 待機系 (Slave) : サービスが起動せず待機している

何が出来るか

クラスタ構成にした PC に HAクラスタソフトを導入しすることで、現用系で障害が発生した場合に素早く・正確にシステムを復旧することが出来ます。

  • 現用系サービスの再起動による復旧
  • サービス起動主体の、待機系への切替えによる復旧 (フェールオーバー)

HAクラスタソフトの導入により 稼働率約 99.99 %復旧時間約 53 分 のシステムを構築出来ると言われています。

どうして復旧できるか

HAクラスタソフトは、PC 内の様々なサービスが正常に稼働しているかを常に監視しています。
加えて、ソフトがインストールされている PC(ノード) 間で通信を行い、以下を確認しています。

  • 監視対象の障害発生有無
  • 接続されているノードの生死

これより、監視対象のサービスまたは各ノードで発生した障害をリアルタイムに検知し、復旧対応をとることが出来ます。

以下に HAクラスタソフトで監視することが出来るサービス例を示します。
なお、クラスタソフトによっては自分で監視対象をカスタムすることも出来ます。

  1. ネットワーク監視
  2. アプリケーション・ミドルウェア監視
  3. OS 機能監視
  4. ディスク監視
  5. ノード (自己・他者間) 監視

HAクラスタ監視対象.png

以上より、HAクラスタで実現できることを説明しました。最後に、HAクラスタの組み方にはどういったパターンがあるかを紹介します。

HAクラスタ の組み方

HAクラスタの組み方は、「ディスク構成」 × 「Master / Slave のサービス構成」で決まります。

どの構成を選択するかは、実行処理の負荷、トランザクション管理、データの引継ぎなどに考慮した上で、システム要件に沿って決める必要があります。

ディスク構成

ディスク構成は、主に「シェアード構成」「シェアード・ナッシング構成」の 2 つに分類出来ます。

HAクラスタ構成.png

構成 特徴 注意点
シェアード構成 Master/Slave 間で共有ディスクを利用 共有ディスクが 単一障害点とならない設計にする
シェアード・ナッシング構成 Master と Slave でデータをレプリケーションする レプリケーションでデータ損失が発生しない設計にする

サービス構成

Master / Slave のサービス構成は、主に「Active/Standby」「Active/Active」「N : 1」「N : M」の 4 つに分類出来ます。

MasterSlave構成.png

構成 特徴 注意点
Active/Standby 1 台ずつ Master/Slave があり、全サービスが Master で起動 1 台の Master で全サービスが起動することの負荷
Active/Active 1 台ずつある Master/Slave それぞれで異なるサービスが起動 サービス間のデータ引継ぎトランザクション管理
N : 1 複数台の Master に分散してサービスが起動 同上
N : M それぞれ複数台ある Master/Slave に異なるサービスが分散して起動 同上(より複雑化)

おわりに

当記事では以下を紹介しました。

  • システムが動かない影響と対策
  • 可用性を実現するための HAクラスタで出来ること
  • HAクラスタの組み方

可用性(の中でも HAクラスタ)に話を絞りましたが、システム構成を考える上では他にも性能、セキュリティ etc... 実現しなければいけない要件が沢山あり、難しいですが面白いですね。

参考

19
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
16