サービスを止めてはならない環境で活躍する冗長化支援ツール「DRBD」。今回は、CMSツールとして多くのWebサイトで利用されている「WordPressサーバ」の高可用性をDRBDで確保する方法を解説します。前編は、必要なソフトウェアのインストールと初期設定までを説明します。
サービスを止めてはならない環境で活躍する冗長化支援ツール「DRBD(Distributed Replicated Block Device)」が有効な実用シーンとして、前回は「Sambaサーバの冗長化」に関する構築ノウハウを解説しました。この回は障害発生時の切り替えを手動で行う方法を解説しましたが、「自動」での切り替えを望まれる方も多いでしょう。そこで今回は、「自動切り替え」を実装した「高可用性WordPressサーバ」の構築ノウハウを紹介します。
高可用性システムとは、「サービスのダウンタイムが少ないシステム」を指します。HA(High Availability)構成、HAサーバ、HAクラスタなどとも呼ばれますが、本稿では高可用性システムの呼び方で統一します。DRBDを用いたシステムでは、「Pacemaker」「Corosync」というソフトウェアを組み合わせて、障害発生時に自動で切り替えを行う高可用性システムを実現します。今回はCentOS 7へインストールしたWordPressサーバを題材とし、DRBD 8.4.6、Pacemaker 1.1.13、Corosync 2.3.4をベースにインストール手順、設定ファイルの解説、構築手順を追って解説していきます。
今回構築する高可用性WordPressシステムの構成イメージは、図1の通りです。
二台のWordPressサーバは、メインの一号機(ホスト名:wp-ha1)を「プライマリ機」、他方の二号機(ホスト名:wp-ha2)を「セカンダリ機」として、高可用性システムを構成します。
DRBDでデータをリアルタイムに複製(レプリケーション)し、Pacemakerで各サービスの起動や停止を管理。そして、Corosyncで二台のサーバをお互いに監視します。監視の経路は二つのネットワークインタフェースで冗長化されています。
ユーザーはVIP(仮想IPアドレス)である「192.168.0.50」へアクセスして、WordPressによるWebサイトを閲覧します。ユーザーはVIPにアクセスしますが、通常時は一号機へアクセスすることになります。データの流れは、前出の図1の赤線のようになります。
障害発生時は、図2のように切り替わります。
障害発生時は、自動的に二号機側に切り替わりますが、ユーザーのアクセス手順は変わりません。また、WordPressのデータはリアルタイムで二号機にレプリケーション(複製)されていますので、プライマリ機を切り替えた後も、障害が発生する直前より再開できるということになります。
DRBDのレプリケーションは「リソース」と呼ばれる単位で行われます。今回はWordPress用(リソース名:r0)と、データベース用(リソース名:r1)の二つのリソースを作成し、リアルタイムにレプリケーションします。
ネットワーク構成は以下の通りです。
インタフェース | プライマリ機 | セカンダリ機 | 用途 |
---|---|---|---|
VIP | 192.168.0.50 | 仮想IPアドレス | |
eth0 | 192.168.0.51 | 192.168.0.52 | サービス用LAN |
eth1 | 10.0.0.1 | 10.0.0.2 | Corosync監視用 |
eth2 | 10.0.1.1 | 10.0.1.2 | DRBD同期+監視用 |
ここでのネットワークインタフェース名は便宜上eth0、eth1、eth2としましたが、CentOS 7では「enXXX」のようになります。
Copyright © ITmedia, Inc. All Rights Reserved.