DRBD · 3 min read · Jan 30, 2026
DRBD 8.3 第三ノードのレプリケーションと Debian Etch
DRBD 8.3 第三ノードのレプリケーションと Debian Etch
DRBD 8.3 + Debian Etch のインストールとセットアップガイド
第三ノードのセットアップ
by Brian Hellman
最近リリースされた DRBD 8.3 には、第三ノード 機能が自由に利用できるコンポーネントとして含まれています。この文書では、標準の Debian Etch インストールでの第三ノードのセットアップの基本を説明します。このチュートリアルの最後には、SAN、iSCSI ターゲット、ファイルサーバー、またはデータベースサーバーとして利用できる DRBD デバイスが作成されます。
注: LINBIT サポートの顧客はセクション 1 をスキップし、パッケージリポジトリを利用できます。
LINBIT は第三ノードソリューションをホストしています。詳細については、[email protected] までお問い合わせください。
前書き:

セットアップは次のようになります:
- 三つのサーバー: alpha, bravo, foxtrot
- alpha と bravo はプライマリおよびセカンダリのローカルノード
- foxtrot はリモートネットワーク上の第三ノード
- alpha と bravo は外部接続用に 192.168.1.x ネットワーク (eth0) にインターフェースを持っています。
- alpha と bravo にはレプリケーション用に 172.16.6.10 と .20 を使用するクロスオーバーリンク (eth1) があります。
- Heartbeat は、地理的に多様な場所にあるディザスタリカバリノードと通信するために 192.168.5.2 の仮想 IP を提供します。
セクション 1: ソースのインストール
これらの手順は、3 つのノードそれぞれで実行する必要があります。
前提条件:
- make
- gcc
- glibc 開発ライブラリ
- flex スキャナー生成器
- 現在のカーネルのヘッダー
特権ユーザーとしてコマンドラインに次のコマンドを入力して、これらの依存関係を満たします:
apt-get install make gcc libc6 flex linux-headers-uname -r libc6-dev linux-kernel-headers
依存関係がインストールされたら、DRBD をダウンロードします。最新バージョンは常に http://oss.linbit.com/drbd/ から入手できます。現在のバージョンは 8.3 です。
cd /usr/src/
wget http://oss.linbit.com/drbd/8.3/drbd-8.3.0.tar.gz
ダウンロードが完了したら:
- DRBD を解凍します。
- ソースディレクトリに移動します。
- ソースをコンパイルします。
- DRBD をインストールします。
tar -xzvf drbd-8.3.0.tar.gz
cd /usr/src/drbd-8.3.0/
make clean all
make install
モジュールをロードして確認します:
modprobe drbd
cat /proc/drbd
version: 8.3.0 (api:88/proto:86-89)
GIT-hash: 9ba8b93e24d842f0dd3fb1f9b90e8348ddb95829 build by root@alpha, 2009-02-05 10:36:11
この手順が 3 つのノードそれぞれで完了したら、次のセクションに進みます。
セクション 2: Heartbeat の設定
第三ノードのセットアップには、DRBD の上に DRBD をスタックする必要があります。第三ノードが接続するための仮想 IP が必要です。これには、シンプルな Heartbeat v1 設定を設定します。このセクションは alpha と bravo のみで実行されます。
Heartbeat をインストールします:
apt-get install heartbeat
authkeys ファイルを編集します:
vi /etc/ha.d/authkeys
auth 1
1 sha1 yoursupersecretpasswordhereファイルが作成されたら、ファイルの権限を変更します。このステップを実行しないと、Heartbeat は起動しません。
chmod 600 /etc/ha.d/authkeysauthkeys ファイルを bravo にコピーします:
scp /etc/ha.d/authkeys bravo:/etc/ha.d/ha.cf ファイルを編集します:
vi /etc/ha.d/ha.cfdebugfile /var/log/ha-debug
logfile /var/log/ha-log
logfacility local0
keepalive 1
deadtime 10
warntime 5
initdead 60
udpport 694
ucast eth0 192.168.1.10
ucast eth0 192.168.1.20
auto_failback off
node alpha
node bravoha.cf ファイルを bravo にコピーします:
scp /etc/ha.d/ha.cf bravo:/etc/ha.d/haresources ファイルを編集します。ここで作成された IP は、第三ノードが参照する IP になります。
vi /etc/ha.d/haresourcesalpha IPaddr::192.168.5.2/24/eth0haresources ファイルを bravo にコピーします:
scp /etc/ha.d/haresources bravo:/etc/ha.d/両方のサーバーで Heartbeat サービスを起動して、仮想 IP を立ち上げます:
alpha:/# /etc/init.d/heartbeat startbravo:/# /etc/init.d/heartbeat startHeartbeat は新しいインターフェース (eth0:0) を立ち上げます。
注: Heartbeat がインターフェースを立ち上げるのに最大 1 分かかる場合があります。
alpha:/# ifconfig eth0:0
eth0:0 Link encap:Ethernet HWaddr 00:08:C7:DB:01:CC
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
セクション 3: DRBD の設定
DRBD の設定は drbd.conf ファイルを介して行います。これはすべてのノード (alpha, bravo, foxtrot) で同じである必要があります。使用カウントが yes に設定されていることに注意してください。これは、DRBD をインストールしたことを Linbit に通知します。個人情報は収集されません。詳細については、こちらのページをご覧ください:
global { usage-count yes; }
resource data-lower {
protocol C;
net {
shared-secret "LINBIT";
}
syncer {
rate 12M;
}
on alpha {
device /dev/drbd1;
disk /dev/hdb1;
address 172.16.6.10:7788;
meta-disk internal;
}
on bravo {
device /dev/drbd1;
disk /dev/hdd1;
address 172.16.6.20:7788;
meta-disk internal;
}
}
resource data-upper {
protocol A;
syncer {
after data-lower;
rate 12M;
al-extents 513;
}
net {
shared-secret "LINBIT";
}
stacked-on-top-of data-lower {
device /dev/drbd3;
address 192.168.5.2:7788; # Heartbeat によって提供された IP
}
on foxtrot {
device /dev/drbd3;
disk /dev/sdb1;
address 192.168.5.3:7788; # バックアップノードのパブリック IP
meta-disk internal;
}
}セクション 4: DRBD デバイスの準備
設定が整ったので、alpha と bravo でメタデータを作成します。
alpha:/usr/src/drbd-8.3.0# drbdadm create-md data-lower
メタデータを書き込み中…
アクティビティログを初期化中
ビットマップは初期化されていません
新しい drbd メタデータブロックが正常に作成されました。
bravo:/usr/src/drbd-8.3.0# drbdadm create-md data-lower
メタデータを書き込み中…
アクティビティログを初期化中
ビットマップは初期化されていません
新しい drbd メタデータブロックが正常に作成されました。
次に、alpha と bravo で DRBD を起動します:
alpha:/usr/src/drbd-8.3.0# /etc/init.d/drbd startbravo:/usr/src/drbd-8.3.0# /etc/init.d/drbd start下位レベルの DRBD デバイスが接続されていることを確認します:
cat /proc/drbd
version: 8.3.0 (api:88/proto:86-89)
GIT-hash: 9ba8b93e24d842f0dd3fb1f9b90e8348ddb95829 build by root@alpha, 2009-02-05 10:36:11
0: cs:Connected ro:Secondary/Secondary ds:Inconsistent/Inconsistent C r—
ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:19530844
alpha にプライマリノードになるように指示します:
注: コマンドが示すように、これは bravo のデータを上書きします。今はお気に入りの飲み物を取りに行く良い時期です。
alpha:/# drbdadm – –overwrite-data-of-peer primary data-lower
alpha:/# cat /proc/drbd
version: 8.3.0 (api:88/proto:86-89)
GIT-hash: 9ba8b93e24d842f0dd3fb1f9b90e8348ddb95829 build by root@alpha, 2009-02-05 10:36:11
0: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent C r—
ns:3088464 nr:0 dw:0 dr:3089408 al:0 bm:188 lo:23 pe:6 ua:53 ap:0 ep:1 wo:b oos:16442556
[==>……………..] sync’ed: 15.9% (16057/19073)M
finish: 0:16:30 speed: 16,512 (8,276) K/sec
データの同期が完了したら、alpha で data-upper のメタデータを作成し、次に foxtrot で作成します。
リソースは data-upper であり、–stacked オプションは alpha のみで有効です。
alpha:~# drbdadm –stacked create-md data-upper
メタデータを書き込み中…
アクティビティログを初期化中
ビットマップは初期化されていません
新しい drbd メタデータブロックが正常に作成されました。
成功
foxtrot:/usr/src/drbd-8.3.0# drbdadm create-md data-upper
メタデータを書き込み中…
アクティビティログを初期化中
ビットマップは初期化されていません
新しい drbd メタデータブロックが正常に作成されました。
スタックされたリソースを立ち上げ、次に alpha を data-upper のプライマリにします:
alpha:/# drbdadm --stacked adjust data-upperfoxtrot:~# drbdadm adjust data-upper
foxtrot:~# cat /proc/drbd
version: 8.3.0 (api:88/proto:86-89)
GIT-hash: 9ba8b93e24d842f0dd3fb1f9b90e8348ddb95829 build by root@foxtrot, 2009-02-02 10:28:37
1: cs:Connected ro:Secondary/Secondary ds:Inconsistent/Inconsistent A r—
ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:19530208
alpha:~# drbdadm –stacked – –overwrite-data-of-peer primary data-upper
alpha:~# cat /proc/drbd
version: 8.3.0 (api:88/proto:86-89)
GIT-hash: 9ba8b93e24d842f0dd3fb1f9b90e8348ddb95829 build by root@alpha, 2009-02-05 10:36:11
0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r—
ns:19532532 nr:0 dw:1688 dr:34046020 al:1 bm:1196 lo:156 pe:0 ua:0 ap:156 ep:1 wo:b oos:0
1: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent A r—
ns:14512132 nr:0 dw:0 dr:14512676 al:0 bm:885 lo:156 pe:32 ua:292 ap:0 ep:1 wo:b oos:5018200
[=============>……] sync’ed: 74.4% (4900/19072)M
finish: 0:07:06 speed: 11,776 (10,992) K/sec
再び飲み物の時間です!
同期が完了したら、/dev/drbd3 を介して DRBD ブロックデバイスにアクセスします。これにより、両方のローカルノードとリモートの第三ノードに書き込まれます。Heartbeat の設定では、/dev/drbd3 デバイスを立ち上げるために “drbdupper” スクリプトを使用します。楽しんでください!
DRBD® と LINBIT® は、LINBIT, オーストリアの登録商標です。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。