ミラーリングツール「DRBD」によるデータ保護:Heartbeatでかんたんクラスタリング(4)(1/3 ページ)
「Heartbeat」の適切な導入によってHAクラスタを構成し、Linux上で動作しているサービスの可用性を上げることができます。続いて、肝心のデータそのものを保護できるツール「DRBD」について紹介しましょう。
Heartbeatを補完するDRBD
前回記事「HAを見守る『Watchdog』と『STONITH』」までの3回にわたって、Heartbeatが提供するHA(高可用性)クラスタ構築機能とそれを用いたWebサービス(Apache)の管理、さらに「STONITH」と「Watchdog」による自浄機能について解説してきました。
システム全体を見回したとき、次に気になる点としては、肝心のストレージ部(データ)をどのように冗長化し、保護するかが挙げられるでしょう。そこで今回は、データのミラーリングを行うオープンソースのソフトウェア「DRBD:Distributed Replicated Block Device」(http://www.drbd.org/)を紹介したいと思います。
最適なデータの保持・保護方法は?
データを冗長化し、保護する技術には、ストレージハードウェア製品も含めいくつかの選択肢があります。「Webなどのサービス用データをどこに、どのように置くか」を考える場合、状況によって結論は変わってきます。
選択肢 | 特徴 |
---|---|
SAN | ハードウェア自体が容易に冗長化構成を取れるようになっている。 またHBAを二重化することも可能。ただし、コストは高くなる |
iSCSI | 少し前までは、安定性に問題があった。最近ようやくLinuxでの使用も安定。 NFSに比べ、プロトコルは軽い |
NFS | 古くからあるもので安定している。ただし、プロトコル的に重い |
1つの例として「SAN」(Storage Area Network)があります。データを格納するストレージ自体が冗長化されている製品も多いですし、サーバをSANに接続するためのHBA(Host Bus Adapter)を二重化することも可能ですが、コストもかさみます。
現在ならば、SCSIブロックをIP化してしまう「iSCSI」も選択肢として挙げられるでしょう。ですが最近までiSCSIは、「iSCSi接続を確立するためのイニシエータが不安定だ」などといわれることもありました。また、データを共有する「NFS」(Network File System)を用いてほかのサーバにデータを保存することもできます。しかし外部にデータを置くとなると、どうしても、その分コストも高くなってしまいます。
最もコストを抑える方法を考えた場合に浮上してくる選択肢がDRBDです。Heartbeatによるサービスの冗長化を前提とした環境、つまり、サービスを提供するサーバを複数台で構成する環境において、その構成内でストレージを冗長化することができます。
自動的にミラーリングを行うDRBD
DRBDとは具体的に何をするソフトウェアなのかというと、特定のパーティションを対象に、ネットワークを介して自動的にミラーリングを行ってくれます。ちょうどネットワークを介してRAID1を実現してくれるようなものです。
DRBDを利用する際の注意点としては、ミラーリングの対象をブロックデバイス(/dev/sda1など)で指定する必要があることです。このため、「ある特定のディレクトリ以下すべて」といったような、rsyncコマンドでの指定のようなことはできません。また同様の理由から、DRBDを用いるためには、OSのインストール時点であらかじめ構成を考えておかねばなりません。
しかし、DRBDによるミラーリングは、指定したブロックデバイスに何らかの変更があったときに自動的に行われます。ですから、いったん設定してしまえば、後は運用に当たってこれといって煩わしいこともありません。またカーネルランドで動作しますので、ある程度の速度も保証されます。
使用できるファイルシステムにも特に制限はありません。ただ、フェイルオーバー時のファイルシステムチェックによるダウンタイムを軽減させるためにも、ジャーナルファイルシステムを用いるのがよいでしょう。
なお、バージョン8.0.0以降では、OCFS2(Oracle Cluster File System 2)とGFS(Global Filesystem 2)に限ってですが、アクティブ/アクティブ構成も可能になりました。ただし、使用できるLinuxカーネルのバージョンは2.6系のみとなっています。
もう1つ、オープンソース版DRBDの制限として、最大で2台構成までしかサポートされていません(商用版では3台構成が行えるようです)。2台構成までとなるとシステム構成全体に制限が生じることもあるでしょう。そういったときは、SANやiSCSIといったほかの手段を用いることになります。
最新バージョンと0.7.x系の違いは?
DRBDの最新バージョンとしては、執筆時点では8.2.4がリリースされています。しかしながら、Heartbeatと連動させて使用する場合には注意点があります。それは「Heartbeat自体が、drbd-0.7.xまでしかサポートしていない」ということです。これは、前述したとおり、DRBDがサポートしているLinuxカーネルのバージョンに制限があるためと考えられます。
DRBDバージョン | Linux Kernelのサポート | Heartbeatの対応 |
---|---|---|
0.7系 | 2.4系、2.6系 | ○ |
8.x系 | 2.6系 | ×(ただし、DRBD側がHeartbeat v1用リソースファイルを提供) |
現在のDRBD開発の主流は0.7系ではなく8.x系列となっていることから、Heartbeat本体もこれに追従してほしいところですが、現時点では0.7系を使用せざるを得ません。ただし、DRBDではHeartbeat v1設定用のリソースファイルを提供しています。Heartbeat v1設定を採用するのならば、DRBDの最新版を使用することが可能です。
関連記事
http://www.atmarkit.co.jp/flinux/rensai/heartbeat02/heartbeat02b.html
Heartbeatでかんたんクラスタリング
第2回 インストールとApache用の設定方法
以上から、本記事ではHeartbeatではv2設定を使用して説明を進めます。また、2.4系のカーネルで冗長化構成を試したい方もいると思いますので、DRBDについては0.7系の最新版、バージョン0.7.25を使用していきましょう。
Copyright © ITmedia, Inc. All Rights Reserved.