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

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

クラスタLVMとパッケージ

SGLXにおける共有ストレージは、全クラスタノードから物理的に接続されている必要がありますが、共有ストレージ内で冗長化されている1つのリ ソースにアクセスできるのは1ノードのみです。複数のクラスタノードが共有ストレージ上で構成されている1つのリソースに同時にアクセスすることはできま せん。

もし複数のクラスタノードが共有ストレージ上の1つのリソースへ同時にアクセスすると、共有ストレージ上のデータは破壊されてしまいます。しかし、複数のクラスタノードから、共有ストレージ上に存在する別々のサービスにアクセスすることは可能です。

この機能を実現するためには共有ストレージ上にLVM領域を作成します。SGLXでは共有ストレージ上に、冗長化したいリソースごとにLVMボ リュームグループを作成します。SGLXで管理されるリソースは、共有ストレージ上に作成したLVMのボリュームグループに一対一で対応します。

例えば、高可用性を持ったApacheサーバとMySQLサーバを1つのクラスタシステムで実現するためには、Apache用のLVMボリュームグ ループとMySQL用のLVMボリュームグループを作成します。これにより、ApacheとMySQLのデータを単一の物理ストレージ上に持ち、別々のク ラスタノードから同時に各アプリケーションを利用することが可能となります。

ノードに障害が発生した場合、そのノード上で実行されていたアプリケーションやデータが保存されているボリュームグループは、障害ノードで非アクティブ化され、待機している正常なクラスタノードでアクティブになります。


ApacheとMySQLのリソースをLVMボリュームグループ上に配置
図5:ApacheとMySQLのリソースをLVMボリュームグループ上に配置
(画像をクリックすると別ウィンドウに拡大図を表示します)

可用性をもったアプリケーション、リソース(仮想IPアドレス、ディスク領域、ファイルシステム、プロセスなど)、フェイルオーバー先のノード名な どをひとまとめにしたものをSGLXではパッケージと呼びます。SGLXで冗長化されるアプリケーションは、パッケージとして取り扱います。パッケージの 実行に必要なものとして、以下の2種類のファイルがあります。


  • パッケージ構成ファイル
  • パッケージ制御スクリプト
表2:パッケージの実行に必要なファイル

パッケージ構成ファイルには、パッケージ名、サービス名、フェイルオーバーポリシー、所属するLANのサブネットなどを記述します。一方パッケージ 制御スクリプトには、そのアプリケーションが利用するLVMボリュームグループ、ファイルシステムの種類、マウントポイント、仮想IPアドレス、カスタム スクリプトなどを記述します。

パッケージ制御スクリプトの作成方法

SGLXはアプリケーションをクラスタノードで起動、停止する際に、パッケージ制御スクリプトを実行します。パッケージ構成ファイル、パッケージ制御ファイルは、管理者がスクラッチから作成する必要はなく、以下のコマンドで簡単に雛形を生成できます。

パッケージ構成ファイルの雛形pkg.confを生成する方法

# cmmakepkg -p /usr/local/cmcluster/conf/pkg01/pkg.conf

パッケージ制御スクリプトの雛形pkg.cntlを生成する方法

# cmmakepkg -s /usr/local/cmcluster/conf/pkg01/pkg.cntl

SGLXではパッケージ構成ファイル、パッケージ制御スクリプトを冗長化したいアプリケーションごとに用意します。また各アプリケーションは、異な るLVMボリュームグループを利用しますので、例えばApache用とMySQL用にそれぞれパッケージ構成ファイルとパッケージ制御スクリプトを生成 し、それぞれの制御スクリプトには異なるLVMボリュームグループを記述します。

これらパッケージ構成ファイル、パッケージ制御スクリプトの雛形からシステム要件にあった設定に変更した後、全クラスタノードにファイルをコピーし、パッケージ構成ファイルのチェックとコンパイルを行います。

パッケージ構成ファイルの内容をチェックするためのコマンドとしてcmcheckconfコマンドが用意されていますので、必ずチェックを行います。

パッケージ構成ファイルのチェック

# cmcheckconf -P /usr/local/cmcluster/conf/pkg01/pkg.conf

チェックしてエラーがない場合は、cmapplyconfコマンドにより、パッケージ情報をコンパイルします。コンパイルすると、クラスタバイナリファイルとしてSGLXに組み込まれます。

パッケージ構成ファイルのコンパイル

# cmapplyconf -P /usr/local/cmcluster/conf/pkg01/pkg.conf

以上のようにSGLXは、クラスタ構成ファイル、クラスタ制御スクリプト、Serviceguard for Linux Toolkitのモニタリングスクリプトなどにより、カスタマイズ性が非常に高く、様々なベンダーのオリジナルアプリケーションに対してクラスタ化が可能 となっている点が特徴です。

日本ヒューレット・パッカード株式会社 プリセールス統括本部 ソリューションセンター 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メルマガ会員のサービス内容を見る

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