DRBD Proxy

DRBD Proxy配備に関する検討事項

DRBD Proxyプロセスは、 DRBDが設定されているマシン上に直接配置するか、個別の専用サーバに配置することができます。DRBD Proxyインスタンスは、複数のノードの複数のDRBDデバイスのプロキシとして機能することができます。

DRBD ProxyはDRBDに対して完全に透過的です。通常は大量のデータパケットがDRBD Proxyを含む転送経路に溜まるため、アクティビティログがかなり大きくなります。これは、プライマリノードのクラッシュ後の長い再同期の実行を引き起こす可能性があるので、それはDRBDのcsums-alg設定を有効にすることをお勧めします。

インストール

DRBD Proxyを入手するには、(日本では)株式会社サードウェアまたはその販売代理店に連絡してください。特別な理由がない限り、常に最新バージョンのDRBD Proxyを使用してください。

DebianとDebianベースのシステム上でDRBD Proxyをインストールするには、(DRBD Proxyのバージョンとアーキテクチャは、ターゲットのアーキテクチャに合わせてください)​​dpkgを次のように使用します。

	dpkg -i drbd-proxy_1.0.16_i386.deb
      

RPMベースのシステム(SLESやRedhat) にDRBD Proxy をインストールする場合は、次のコマンドを使用します。(DRBD Proxyのバージョンとアーキテクチャは、ターゲットのアーキテクチャに合わせてください)

	rpm -i drbd-proxy-1.0.16-1.i386.rpm
      

DRBD Proxyの設定には drbdadm が必要なので、これもインストールします。

DRBD Proxyバイナリだけでなく、 /etc/init.dに通常に入る起動スクリプトもインストールします。DRBD Proxy を起動/停止するには、通常はこの起動スクリプトを使ってください。このスクリプトは単に起動/停止するだけでなく、drbdadm を使って DRBD Proxy の動作も設定します。

ライセンスファイル

DRBD Proxy の実行には、ライセンスファイルが必要です。DRBD Proxyを実行したいマシンにライセンスファイルを設定してください。このファイルは drbd-proxy.licenseと呼ばれ、DRBD Proxy を実行するすべてのマシンの/etcディレクトリにコピーしなければなりません。

          cp drbd-proxy.license /etc
        

設定

DRBD ProxyはDRBDのメイン設定ファイルで設定します。設定は、追加のオプションセクションproxyとホストセクション内のproxy onセクションで行います。

DRBDノードで直接実行されるプロキシのDRBD Proxy の設定例を次に示します。

resource r0 {
        protocol A;
        device     minor 0;
        disk       /dev/sdb1;
        flexible-meta-disk  /dev/sdb2;

	proxy {
	      compression on;
	      memlimit 100M;
	}

        on alice {
                address 127.0.0.1:7789;
                proxy on alice {
                        inside 127.0.0.1:7788;
                        outside 192.168.23.1:7788;
                }
        }

        on bob {
                address 127.0.0.1:7789;
                proxy on bob {
                        inside 127.0.0.1:7788;
                        outside 192.168.23.2:7788;
                }
        }
}

inside IPアドレスはDRBDとDRBD Proxyとの通信に使用し、 outside IPアドレスはプロキシ間の通信に使用します。

DRBD Proxyの制御

drbdadmには proxy-upおよびproxy-downサブコマンドがあり、名前付きDRBDリソースのローカルDRBD Proxyプロセスとの接続を設定したり削除したりできます。これらのコマンドは、/etc/init.d/drbdproxyが実装する startおよびstopアクションによって使用されます。

DRBD Proxyには、 drbd-proxy-ctlという下位レベル構成ツールがあります。このツールをオプションを指定せずに呼び出した場合は、対話型モードで動作します。helpコマンドで、使用可能なコマンドを表示できます。

Help for drbd-proxy.
--------------------

add connection <name> <ip-listen1>:<port> <ip-connect1>:<port>
   <ip-listen2>:<port> <ip-connect2>:<port>
   Creates a communication path between two DRBD instances.

set memlimit <name> <memlimit-in-bytes>
   Sets memlimit for connection <name>

del connection <name>
   Deletes communication path named name.

show
   Shows currently configured communication paths.

show memusage
   Shows memory usage of each connection.

list [h]subconnections
   Shows currently established individual connections
   together with some stats. With h outputs bytes in human
   readable format.

list [h]connections
   Shows currently configured connections and their states
   With h outputs bytes in human readable format.

list details
   Shows currently established individual connections with
   counters for each DRBD packet type.

quit
   Exits the client program (closes control connection).

shutdown
   Shuts down the drbd-proxy program. Attention: this
   unconditionally terminates any DRBD connections running.

トラブルシューティング

DRBD proxyのログはsyslogの LOG_DAEMON ファシリティに記録されます。通常ログは/var/log/daemon.logに記録されます。

例えば、proxy が接続に失敗すると、”Rejecting connection because I can't connect on the other side.”というようなメッセージがログに記録されます。その場合は、DRBDが(スタンドアローンモードでなく)両方のノードで動作していて、両方ノードでプロキシが動作していることを確認してください。また、両方のノードで設定値を確認してください。