前回は、DRBDとheartbeatを使ったクラスタシステムの2つ目の具体的な構成事例として、Windowsファイルサーバをクラスタ構成にする方法について解説しました。今回は、DRBDを使ったPostgreSQLによるデータベースサーバの構築事例を紹介します。
データベースサーバの冗長性
データベースサーバは、ネットワークの中でさまざまなデータを共有するためのサーバです。最近では、JavaやPHPなどを使ったWebアプリケーションサーバからデータを参照し、様々な業務やサービスのシステムを作る場合にも使われています。
こうした用途では、負荷分散装置などを使うことで、フロントのWWWサーバの冗長性や拡張性については比較的簡単に確保することができます。しかし、ハードディスク上にデータを保管するデータベースサーバは、容易に冗長化することができません。そのため、データベースサーバが何らかの原因で停止すると、システム全体が停止してしまうような構成になっていることが非常に多いようです。
こうした問題に対して、Oracleをはじめとする製品のデータベースソフトウェアでは、データのリプリケーション(複製)の手法を用意したり、様々な分散データベースを構築するための機能を用意しています。しかし、こうした製品は非常に高価であり、容易には使用できません。
オープンソースのデータベースであるPostgreSQLやMySQLでも、少しずつレプリケーションの技術が導入され、クラスタ化しようという試みが行われています。しかし、こうした機能はまだまだ未完成であり、利用できる用途は限定的です。最近では、pgpoolのようにミドルウェアのレベルで冗長性を確保しようとするソフトウェアも登場しています。
DRBDとheartbeatを使ったクラスタ
こうしたデータベースサーバにも、heartbeatとDRBDを使ったクラスタの技術を導入することが可能です。この構成では、OSのレベルでデータの複製が保証されますので、データベースソフトウェア側には特別な機能は必要ありません。
ただし、ネットワークを使ってデータの複製を行うため、書き込み時のパフォーマンスの劣化を避けることはできません。そのため、データベースの性能については十分に考慮する必要があります。
今回は、この例のようにPostgreSQLを使ってデータベースのクラスタを構築する方法について解説します。
この記事は参考になりましたか?
- 止まらないシステムはLinuxで作る!~オープンソースを活用したHAサーバ構築入門連載記事一覧
-
- heartbeatとldirectordを使って自律負荷分散型のWWWサーバを構築する
- heartbeatとDRBDとPostgreSQLでデータベースのクラスタを構築する
- heartbeat+DRBD+sambaでWindowsファイルサーバを二重化する
- この記事の著者
-
デージーネット 恒川 裕康(デージーネット ツネカワ ヒロヤス)
株式会社デージーネット 代表取締役。「より安全で」、「より快適で」、「より楽しい」インターネットの実現をテーマとして、クラスタシステムを使った高信頼サーバの構築、SPAM対策やウイルスチェック対策のためのソフトウェアの開発、携帯サイト向けのシステム開発など、オープンソースソフトウェアを活用した事業を展開して...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア