障害時にサブサーバへ自動で切り替える「高可用性WordPressシステム」の作り方 前編:DRBDの仕組みを学ぶ(5)(1/4 ページ)
サービスを止めてはならない環境で活躍する冗長化支援ツール「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をベースにインストール手順、設定ファイルの解説、構築手順を追って解説していきます。
DRBDで冗長化した「高可用性WordPressシステム」を構築する
今回構築する高可用性WordPressシステムの構成イメージは、図1の通りです。
前提条件
- WordPressは、プライマリ機とセカンダリ機へ共にインストール済みとして解説します
- WordPressのインストール手順は、本稿では割愛します(WordPressについては、別途こちらなどを参照ください)
- プライマリ機とセカンダリ機で「Apache」および「MariaDB」が起動している場合は一時停止して、自動起動もオフにしてください
- WordPressをインストールした領域は「/var/www/html/wordpress」、MariaDBの領域は「/var/lib/mysql」として解説します
二台の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.
関連記事
- DRBD(Distributed Replicated Block Device)とは何か
障害監視ツールなどと一緒に使うことで、サービスの継続提供を助けるDRBD。Linuxカーネルに統合されている機能ですが、上手に使いこなしているでしょうか? 本連載では、DRBDの動作や使いどころを順を追って紹介していきます。 - ミラーリングツール「DRBD」によるデータ保護
「Heartbeat」の適切な導入によってHAクラスタを構成し、Linux上で動作しているサービスの可用性を上げることができます。続いて、肝心のデータそのものを保護できるツール「DRBD」について紹介しましょう。 - ここが変わったCentOS 7──「新機能の概要とインストール」編
「CentOS 7」を皆さんどれだけ理解していますでしょうか。CentOS 7は、以前のバージョンから使い勝手がかなり変わりました。本連載では、今さら聞けない/おさらいしたいというインフラエンジニアに向け、CentOS 7の概要と基礎から活用Tipsまでを紹介していきます。 - DRBD+iSCSI夢の共演(前編)〜 Windowsドライブをミラーリングで保護 〜
Linux上で動作するオープンソースソフトウエア「DRBD」とiSCSIを組み合わせ、部門内のWindows端末のデータをバックアップするシステムを構築してみよう - OSSとLinuxで高可用システム構築を支援、サードウェア
- Sambaサーバー構築、5つのべからず− 若葉マーク管理者に捧げる
LinuxやUNIXをWindowsのファイルサーバー/プリントサーバーとしてしまうことができる「Samba」は、手軽にファイル共有環境を構築することができ、サーバー管理入門にもぴったりです。インターネット上の関連情報も豊富ですが、しっかり出所を確かめないと誤った設定を招く恐れがあります。