検索
特集

体験! 新しくなったLinux-HAHeartbeat+Pacemaker+DRBDで高可用Linux(2/3 ページ)

Linuxで動作するオープンソースソフトウェアを組み合わせ、高い信頼性を備えたシステムを実現する「Linux-HA」が新しくなり、さらに高い信頼性を実現するようになりました。最新のLinux-HAの特徴と、導入から設定方法まで基本的な環境構築を解説します(編集部)

Share
Tweet
LINE
Hatena

ハードウェアとOS環境の整備

 まず、Linux-HAを動作させるハードウェアを2台用意します。専用のハードウェアが用意できない場合には、VMWareまたはVirtualBoxのような仮想環境でも動作します。

ハードウェア動作条件

  1. Linuxが動作するサーバマシン
  2. ネットワークポートを2個以上搭載していること(可能なら3つ)
  3. 搭載メモリ1GB以上を推奨

 OSはCentOS 5.5を標準インストールして使用しますが、ここで1つ注意点があります。DRBDはパーティションを冗長化するため、DRBD用の領域を空けておく必要があるのです。

図3
図3 パーティション構成

 OSインストール時にApache(Webサーバ)もインストールします。OSと関連するソフトウェアは、2台のサーバ両方に同じようにインストールして、単体でも正常にWebサービスが提供できる状態にします。今回、Webサーバの設定はデフォルト値を使用しているため、DocumentRootは「/var/www/html」となります。

 HAクラスタ構成でWebサービスを提供する場合は、仮想IPアドレスを使用して、ノード間でサービスのプロセスと仮想IPアドレスの付け替えを行います。また、Linux-HAはホストネームを使用するため、ホストネームとIPアドレスの名前解決ができるように/etc/hostsファイルまたはDNSサーバに両ノードのホストネームを登録します。

図4
図4 ネットワーク構成

ソフトウェア環境の整備

 Linux-HA環境は、clusterlabsのWikiサイトからリポジトリを登録すれば、簡単にインストールできます。今回はCentOSを使用しているため、パッケージマネージャyumを使ってインストールします。そのほかのディストリビューションの場合は、clusterlabsのWikiサイトを参考にインストールしてください。

 Webサーバの冗長化はLinux-HAに含まれるHeartbeat、Pacemaker、DRBDという3つのOSSを組み合わせて実現します。

HeartbeatとPacemakerのインストール

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 yumコマンドでパッケージをインストールします。依存関係のおかげで、PacemakerをインストールするとHeartbeatもインストールされるようになっています。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

DRBDのインストール

 DRBDを動作させるには、カーネルモジュールのインストールが必要です。アプリケーション本体とカーネルモジュールの2つのパッケージをインストールします。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 Linux-HAのインストールができたら、デフォルトでは自動起動してしまうDRBDとWebサーバを、自動起動しないように設定します。これらのサービスの起動および停止はPacemakerから制御するため、必須の作業となります。

DRBDでデータを複製する

 2台のノードで同じサービスを提供することが確認できたら、DRBDの準備を行います。

 DRBDの準備手順は次のとおりです。まず、OSインストール時に空き容量として確保していた領域にパーティションを作成し、そのパーティションを使用してレプリケーションされたDRBDデバイスを作成します。「/etc/drbd.d/」以下にリソースの設定ファイルを作成し、DRBDの設定を行います。

 リソースファイルの拡張子は、デフォルトでは「.res」にすることが決められており、/etc/drbd.confによりインポートされています。今回の例では、/dev/sda3がDRBDでレプリケーションされるブロックデバイスとなります。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 設定ができたら、DRBDデバイスを使うのに必要なメタデータの作成を行います。DRBDはこのメタデータを使って両ノードの整合性を取っています。初回のメタデータの作成時にはいくつか対話式のメニューが出てきますが、すべて[yes]か[Enter]を押して進めます。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 メタデータの作成が正常にできれば、両ノード間のDRBDの接続が可能な状態となります。DRBDを接続してアクティブ側ノードのDRBDを[Primary]にして、初期同期を行います。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 DRBDの同期が実行されたら、ファイルシステムを作成します(同期中でも作成可能です)。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 このとき、必ずDRBDデバイスに対してファイルシステムを作成してください。/dev/sda3にファイルシステムを作成してしまうとメタデータが破壊されてしまい、再度作成し直すことになってしまいます。

 ファイルシステムができたら、Webサーバで使用するデータ領域をDRBD上に配置します。/mnt/drbd0ディレクトリを作成し、DRBDデバイスは常にそこにマウントされるようにして/var/www/htmlディレクトリのシンボリックリンクを張ります。

 スタンバイ側では/mnt/drbd0のディレクトリにDRBDデバイスがマウントされていないため、デッドリンク状態になっていることがポイントとなります。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 これでDRBDの準備は完了です。「/var/www/html」内に適当なHTMLファイルを用意して保存してください。正常にリンクされていれば、/mnt/drbd0/html内にも作成したHTMLファイルができるはずです。

Heartbeatの設定

 続いて、Pacemakerのインフラストラクチャとして動作するHeartbeatの設定を行います。Heartbeatは、Pacemakerとの組み合わせでは、ノード管理部分を設定するだけで動作します。

 ただしインストール直後は設定ファイルが存在しません。ドキュメントディレクトリから設定ファイル本体「ha.cf」と通信に使用する「authkeys」ファイルをコピーし、ベースとなる設定ファイルとして使用します。

 ha.cfファイルの1行目にある「crm yes」は、Pacemakerと組み合わせて使用する場合に追加します。この設定が存在すると、HeartbeatはPacemakerをサブプロセスとして起動するようになります。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る