Heartbeatの特徴とユニークな機能Heartbeatでかんたんクラスタリング(1)(1/3 ページ)

サーバが落ちたときに代替機がそのサービスを引き継ぐことにより、サービスのダウンタイムを減少させるHAクラスタを、オープンソースソフトウェアの「Heartbeat」を使って構成する方法を紹介します。第1回はまず、クラスタリングの基本とHeartbeatの特徴を説明します

» 2007年11月13日 00時00分 公開
[花島タケシVA Linux Systems Japan株式会社]

はじめに

 今回から数回にわたって、オープンソースのHA(高可用性)クラスタ構築ソフトウェア「Heartbeat」を題材にして、「クラスタリングとは何か?」というところから、Heartbeat自体の解説、Heartbeatを用いてのHAクラスタの構築、モニタリングなどについて解説していきたいと思います。皆さんお付き合いのほど、よろしくお願いいたします。

関連記事

http://www.atmarkit.co.jp/flinux/index/indexfiles/clusterindex.html

連載記事 「Linuxクラスタリングへの招待」


クラスタリングって何だろう?

 まず、「クラスタリングとは何か」というところから始めてみましょう。この質問に簡単に答えてしまうと「あるミッションに対し、複数のコンピュータ(群=クラスタ)をもって対処する構成」だといえます。ですが、状況に応じてさまざまなミッションのタイプがありますから、それに対するクラスタリング(構成)も自然と変わってきます。

 なお、Linuxでのクラスタリングの歴史は意外と古くまでさかのぼることができます。約十年前の雑誌ですでに、数値演算系のクラスタリングが紹介されていました。またその後、1999年にLinux Virtual Serverプロジェクト[注1]が「IPVS」をリリースし、ロードバランシングクラスタを構築できるようになっています。また、HAクラスタ用の商用製品は、2000年ごろから、ディストリビューションとは別にサードパーティ製品としていくつかリリースされています。

【注1】 http://www.linuxvirtualserver.org/を参照


ミッション別クラスタリングとその目的

 では次に、ミッション別に、クラスタリングの方式にどのようなものがあり、その目的は何かという点を説明していきましょう。

 クラスタリングは、下記のように大きく3つに分類することができます。

  1. HPCクラスタ
  2. ロードバランスクラスタ
  3. HAクラスタ

HPCクラスタ

 多くの人にとって「HPC」という言葉は聞き慣れないものであると思います。これは「ハイ・パフォーマンス・コンピューティング」(High Performance Computing)の略です。具体的には、数値演算シミュレーション一般を指す用語です。分子レベルのシミュレーションから自動車設計、天気予報など、その及ぶ範囲は広大です。金融シミュレーションなどもこの分野に含まれます。

 HPCクラスタの起源は、大型汎用機がまだ高価で、PCが非力だった時代にさかのぼります。目的は、「非力なマシンでも、数を集めてネットワーク接続し、分散計算させることにより大きなパフォーマンスを得る」ということです。かつては、PVM[注2]というライブラリがメインで使用されていましたが、現在ではMPI(Messge Passing Interface)規格のLAM[注3]MPICH[注4]が主に使われることが多くなっています。

図1 HPCクラスタの構成例 図1 HPCクラスタの構成例

 ただし、計算するPCの数をどんどん増やしても、「アムダールの法則」や通信オーバヘッドといった理由から、その効率には限界があります。このため、パフォーマンスの高いPCを効率的な台数で使用する形が現在の主流です。また、このクラスタを構築するツールとして、SCore[注5]NCAPI Rocks[注6]などがあります。

ロードバランスクラスタ

 多数のクライアントからの非同期なリクエストに対し、レスポンスを上げるために構成されます。Webサーバなどでの利用が代表例です。実際の構成としては、クライアントに対応するロードバランシングサーバを配置し、その要求を複数台のサーバ適宜に割り振るといった形になります。

 前述のLinux Virtual Serverプロジェクトの成果であるIPVSは、ロードバランシングサーバを構成するために用いられます。現在では、このロードバランサ部をPCサーバから専用ハードウェア(=アプライアンス)にすることにより、さらなるパフォーマンスの追求が行われています。

図2 ロードバランシングクラスタの構成例 図2 ロードバランシングクラスタの構成例

HAクラスタ

 HAは「ハイ・アベイラビリティ」(High Availability)の略で、日本語では「高可用性」と訳されます。その目的は、名前からも分かるように、あるサービスを提供するサーバが落ちたときに代替機がそのサービスを引き継ぐことにより、サービスのダウンタイムを減少させ、冗長性を持たせることにあります。

 最も基本的な構成では、アクティブなサーバ1台に対し、スタンバイのサーバを1台用意するという形になります。そして、この2台が相互にお互いの状態を通知・監視するために、シリアルやネットワーク通信(一般的にこれを「ハートビート」と呼ぶ)を行います。

 アクティブなサーバに問題があった場合、スタンバイしているサーバがサービスを引き継ぎます。これらのサーバが提供するサービスによっては、保持しているディスクデータに差異があってはいけないこともあります。そうした場合には、SANなどの共有ストレージを使用したり、ディスクストレージデータのネットワークを用いてのミラーリングなどを行い、統一性を持たせています。

 このHAクラスタの場合、サーバだけを冗長化しても意味がないことが多く、サービスを提供するネットワークやSANに接続するためのHBAカードなどについても冗長化するケースが多いです。

 このクラスタを構築するためのソフトには、有償製品として、LifeKeeper[注7]、Red Hat Cluster Suite[注8]などがあります。そしてオープンソースソフトウェアとしてはHeartbeat[注9]、keepalived[注10](微妙に違う部分もありますが)などがあります。

図3 HAクラスタの構成例 図3 HAクラスタの構成例

 本連載では、以降、Heartbeatについて解説していきたいと思います。

       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。