Linuxで動作するオープンソースソフトウェアを組み合わせ、高い信頼性を備えたシステムを実現する「Linux-HA」が新しくなり、さらに高い信頼性を実現するようになりました。最新のLinux-HAの特徴と、導入から設定方法まで基本的な環境構築を解説します(編集部)
Linuxで動作するオープンソースソフトウェア(OSS)だけでHigh Availabilityクラスタ(HAクラスタ)環境を実現するLinux-HAは、サービスの可用性やデータの保存性に対する要求が高くなったこの数年で非常に注目されている分野です。
Linux-HAとは複数のOSSを組み合わせた環境の総称で、Heartbeat、Corosync、OpenAIS、DRBDなどを組み合わせて実現するHA環境をいいます。Heartbeatのバージョン3へのアップデートでは、Heartbeat バージョン2から実装されたクラスタリソースマネージャ(CRM)機能が独立し、新たに「Pacemaker」となって加わりました。
Heartbeatから独立することにより、Pacemakerは対応するサービスが増え、XMLベースで難解だった設定も「crmシェル」の実装により簡単に動作するようになりました。Linux-HAがさらに実用的になったといえるでしょう。
HAクラスタの基本構成は、2台のサーバによるアクティブ/スタンバイ構成です。サービスはアクティブノードで提供し、スタンバイノードはサービスを提供せずにアクティブノードの予備機として動作しています。2台のサーバはアクティブ側もスタンバイ側も互いに存在を認識し合い、相互監視を行っています。
今回紹介するLinux-HA環境では、Heartbeat V3、Pacemaker、DRBDの3つのOSSを組み合わせて、ApahceサービスをHAクラスタ化してみます。
Linux-HAの代名詞ともいえるOSSがHeartbeatです。Heartbeat単体でも、サービスの状態の監視を除いた、ごく簡単なHAクラスタ環境を構築することが可能です。
Pacemakerとの組み合わせで、リソースの状態まで監視するHAクラスタ環境を構築できます。この場合Heartbeatは、各ノードの死活監視とノード間の通信を担うインフラストラクチャモードとして動作し、Pacemaker同士の通信の基盤として動作します。電源不良やカーネルパニックなど、ハードウェアやOS全体に関する障害が発生した場合はHeartbeatが障害を検知します。
Linux-HAによるHAクラスタ環境の中核として動作するソフトウェアがPacemakerです。Pacemakerは、Heartbeat V2に実装されたCRMが独立したもので、単体では動作しません。HeartbeatまたはCorosyncなどのインフラストラクチャのサブプロセスとして動作します。今回は、HeartbeatからPacemakerを起動するHAクラスタを構築します。
クラスタリソースマネージャという名前のとおり、Pacemakerは仮想IPアドレスやApache、MySQLなどのサービスをリソースとして扱い、起動や停止、動作状態を監視します。そして異常を検知すると、自動的に、動作するリソースが起動するノードを制御(管理)します。
アクティブ/スタンバイのHAクラスタ環境で、かつ共有ストレージを使わない環境ではデファクトスタンダードともいえるOSSです。DRBDはネットワークケーブルを利用して2台以上のサーバのブロックデバイスをレプリケーション(ミラーリング)します。
DRBDでは共有ストレージサーバを必要としないため、低コストでHAクラスタ環境を構築できます。さらに、共有ストレージのようにノード間で共有するデータがないため、SPOF(Single Point of Failure:単一障害点)がなくなります。Linux-HAではこれを「シェアードナッシング型HAクラスタ環境」といいます。
【お知らせ】
なお、9月10日、11日に開催されるオープンソースカンファレンス2010では、Linux-HA JapanブースにてHAクラスタ環境のデモの展示と、セミナーを行います。Linux-HAについてさらに詳しく知りたいという方は、ぜひ足を運んでください。
オープンソースカンファレンス2010 Tokyo/Fall
http://www.ospn.jp/osc2010-fall/
以上、Linux-HAで構築するHAクラスタ環境の概要を説明しましたが、Linux-HAは考えるよりも、動きを体感する方が早く理解できるでしょう。
サーバの冗長化で最も重要なことは、「何をどのように冗長化するか」という目的を明確に定義することです。
今回は、基本的なサービスとして、Apacheで構築されたWebサービスを提供するサーバを冗長化しましょう。構成はアクティブ/スタンバイ形式でApacheのプロセスの状態を監視し、異常があった場合にはスタンバイサーバへ切り替わる(フェイルオーバーする)構成と決めてみます。
Copyright © ITmedia, Inc. All Rights Reserved.