改訂履歴 | ||
---|---|---|
改訂 v0.6.5J | 2002-05-17 | Revised by: hk |
改訂 v0.6.5 | 2002-01-23 | Revised by: dmk |
DRBDは1つのカーネルモジュールと関連する複数のスクリプトで構成され、ハイアベイラビリティクラスタを構築できるように設計されたブロックデバイスを提供します。このハイアベイラビリティクラスタは、ブロックデバイス全体を(専用の)ネットワークを介してミラーリングすることによって実現されます。ネットワークRAIDを実現していると考えてください。
DRBDはデータを受け取ると、ローカルディスクに書き込み、かつ他方のマシンに送信します。他方のマシン上では、受信したデータを自身のディスクに書き込みます。
他に必要なソフトウェアは、heartbeatのようなサービスや、ブロックデバイス上で動作するいくつかのアプリケーションです。
例:
ファイルシステム及びfsck
ジャーナリングファイルシステム
リカバリ機能付きデータベース
各デバイス(DRBDは2つ以上のデバイスを提供します)には、プライマリあるいはセカンダリという状態になります。プライマリデバイスのあるノード上でアプリケーションは動作し、デバイス(/dev/nbX)にアクセスします。すべての書き込みはローカルの「さらにローレベルなブロックデバイス」に送られ、セカンダリ状態のデバイスのあるノードに送られます。セカンダリデバイスは単にデータを自身のローレベルのブロックデバイスに書き込みます。読み取りは常にローカルで実行されます。
プライマリノードが停止した場合、heartbeatがセカンダリデバイスをプライマリ状態に切り替えてアプリケーションを起動させます。(もし非ジャーナリングファイルシステムを使用している場合、fsckの実行も含まれます。)
停止したノードが再び起動した場合、それは新しいセカンダリノードであり、データ内容をプライマリ側と同期させる必要があります。これはもちろんサービスを中断せずにバックグラウンドで行われます。
私の知っている限りでは、最近のクラスタ(HP、Compaqなど)はたいてい共有されたストレージデバイスを使っています。従ってストレージデバイスは2台以上のノードに接続されていることになります(これは共有SCSIバスやファイバーチャネルを使って実現されています。)。
DRBDは共有デバイスを使うのと意味的には同じですが、非一般的なハードウェアは一切必要としません。DRBDは、私の印象では特別なストレージネットワークよりもコストの低いIPネットワーク上で動作します。
現在では、DRBDは一度に1つのノードにのみ読み書きアクセスを許可します。これは通常のフェールオーバー型HAクラスタにとって十分です。私の現在のタスクリストには載っていませんが、両ノードに読み書きアクセスを許可できるようになるにはそれほどの努力は必要ないでしょう。これには例えばGFSを使うと便利でしょう。
次のページ | ||
インストール |