Serviceguard for Linuxでクラスタ環境の管理

2006年12月28日(木)
古賀 政純

Serviceguard for Linuxにおける仮想IPアドレス

前回はRed Hat Eterprise Linux 4におけるクラスタリングについて説明するとともに、HAクラスタリングを実現するServiceguard for Linux(以下、SGLX)の解説をしました。続く今回は、SGLXを使ったクラスタがどのようになっているかを説明していきます。

SGLXで構成されたHAクラスタシステムは、複数のクラスタノードから構成されているため、ノードごとにそれぞれが固有のIPアドレスを持っています。これをステーショナリIPアドレスと呼びます。

なお、クラスタサービスが起動しているいないにかかわらず、メンテナンスなどの理由により、クラスタノードに直接ログインしなければならない場合は、ステーショナリIPアドレスを使ってアクセスします。

SGLXには仮想IPアドレスと呼ばれる機能があります。仮想IPアドレスにより、クライアント側からクラスタシステムをみると、あたかも単一サーバからサービスが提供されているかのように見えます。

仮想IPアドレスは、ホストに対して割り当てられるのではなく、SGLXが提供するサービスに対して割り当てられます。SGLXでは複数の異なる サービスを同時にクライアントに提供することができますので、仮想IPアドレスもそのサービスの数だけ複数持つことができます。サービスを提供していたク ラスタノードに障害が発生しても、他のノードがそのサービスに関連づけられた仮想IPアドレスを引き継ぎ、クライアントは障害前と同じIPアドレスでサー ビスを受けることが可能となります。

この仮想IPアドレスの機能によって、クライアントがクラスタのどのノードでサービスが稼動しているかを意識することなくサービスが稼動しているクラスタノードへアクセスすることができます。


SGLXにおけるApache、MySQL、Sambaの仮想IPアドレス
図1:SGLXにおけるApache、MySQL、Sambaの仮想IPアドレス
(画像をクリックすると別ウィンドウに拡大図を表示します)

SGLXにおいて仮想IPを実現するには、パッケージ制御スクリプトと呼ばれるファイルに仮想IPアドレスを記述します。仮想IPアドレスはステーショナリIPアドレスと同様に/etc/hostsファイルやDNSサーバに登録することができます。

もしクラスタのネットワークに障害が発生し、クラスタノード同士が通信できなくなると、SGLXは正常な通信ができるクラスタノード同士(サブクラスタ)で、クラスタの再編成を試みます。

SGLXでは、これから再編成されようとしているクラスタノード数が、障害前に構成していた正常なクラスタノード数の過半数以上を超えた場合、その 過半数を超えたノードでクラスタが再編成されます。過半数を満たさないサブクラスタのノードは停止します。しかし2ノードクラスタの場合は、過半数をみた すノードがないので、どちらのクラスタノードをクラスタシステムとして残すかを決める仕組みが必要になります。

クラスタロックの方式

クラスタノードをクラスタシステムとして残す方法として、SGLXにおいては「クラスタロック」という概念があります。



ネットワーク障害時におけるクラスタロック
図2:ネットワーク障害時におけるクラスタロック
(画像をクリックすると別ウィンドウに拡大図を表示します)

2ノードクラスタのように、同じサイズのサブクラスタ(この場合のサイズは1台)のどちらが残るかを決めるにはクラスタロックが必要となります。SGLXにおけるクラスタロックの方式としては以下の2種類を選択できます。


  • ロックLUN方式
  • クォーラムサーバ方式
表1:SGLXにおけるクラスタロックの方式

この2つの方式について、もう少し詳しく解説します。

ロックLUN方式

ロックLUN方式は、クラスタの状態を保存しておくクラスタロックLUN領域を共有ストレージの一部に持ちます。クラスタノードはクラスタの状態をロックLUN領域に定期的にアクセスすることで確認します。

クラスタに障害が発生した場合、クラスタノードはロックLUN領域にマーキングを行います。マーキングが成功したノードはクラスタの再編成を行い、マーキングができなかったノードはクラスタとして構成されず停止します。


ロックLUN方式のSGLXシステム構成
図3:ロックLUN方式のSGLXシステム構成
(画像をクリックすると別ウィンドウに拡大図を表示します)

ロックLUN方式では共有ストレージにロックLUN専用の領域としてフォーマットします。ロックLUN領域はfdiskコマンドでパーティションを 作成し、Linux領域(idは83)として確保します。SGLXはロックLUN領域の状態を定期的にチェックしており、ロックLUN領域に障害が発生し た場合はクラスタノードの/var/log/messagesファイルにメッセージが記録されるようになっています。

クォーラムサーバ方式

一方のクォーラムサーバ方式は、クラスタノード以外に別途クォーラムサーバと呼ばれるクラスタの調停役のサーバを1台配置します。障害発生時に、ク ラスタノードはクォーラムサーバにアクセスし、クォーラムサーバのメモリにマーキングを行います。クォーラムサーバのマーキングに成功したノードはクラス タの再編成を行います。

クォーラムサーバはServiceguard Quorum Serverとして無償で提供されています。Serviceguard Quorum ServerはRPMパッケージで提供されており、rpmコマンドで容易にインストールできます。クォーラムサーバ方式のSGLXのシステム構成を以下に 示します。


クォーラムサーバ方式のSGLXシステム構成
図4:クォーラムサーバ方式のSGLXシステム構成
(画像をクリックすると別ウィンドウに拡大図を表示します)
日本ヒューレット・パッカード株式会社 プリセールス統括本部 ソリューションセンター OSS・Linux担当 シニアITスペシャリスト

兵庫県伊丹市出身。1996年頃からオープンソースに携わる。2000年よりUNIXサーバーのSE及びスーパーコンピューターの並列計算プログラミング講師を担当。科学技術計算サーバーのSI経験も持つ。2005年、大手製造業向けLinuxサーバー提案で日本HP社長賞受賞。2006年、米国HPからLinux技術の伝道師に与えられる「OpenSource and Linux Ambassador Hall of Fame」を2年連続受賞。日本HPプリセールスMVPを4度受賞。現在は、Linux、FreeBSD、Hadoop等のOSSを駆使したスケールアウト型サーバー基盤のプリセールスSE、技術検証、技術文書執筆を担当。日本HPのオープンソース・Linuxテクノロジーエバンジェリストとして講演活動も行っている。Red Hat Certified Engineer、Red Hat Certified Virtualization Administrator、Novell Certified Linux Professional、EXIN Cloud Computing Foundation Certificate、HP Accredited Systems Engineer Cloud Architect、Red Hat Certified System Administrator in Red Hat OpenStack、Cloudera Certified Administrator for Apache Hadoop認定技術者。HP公式ブログ執筆者。趣味はレーシングカートとビリヤード

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています