drbdのインストール

on centos5.3

DRBD用のパーティションの作成

# fdisk /dev/sda

このディスクのシリンダ数は 32635 に設定されています。
間違いではないのですが、1024 を超えているため、以下の場合
に問題を生じうる事を確認しましょう:
1) ブート時に実行するソフトウェア (例. バージョンが古い LILO)
2) 別の OS のブートやパーティション作成ソフト
   (例. DOS FDISK, OS/2 FDISK)

コマンド (m でヘルプ): m
コマンドの動作
   a   ブート可能フラグをつける
   b   bsd ディスクラベルを編集する
   c   dos 互換フラグをつける
   d   領域を削除する
   l   既知の領域タイプをリスト表示する
   m   このメニューを表示する
   n   新たに領域を作成する
   o   新たに空の DOS 領域テーブルを作成する
   p   領域テーブルを表示する
   q   変更を保存せずに終了する
   s   空の Sun ディスクラベルを作成する
   t   領域のシステム ID を変更する
   u   表示/項目ユニットを変更する
   v   領域テーブルを照合する
   w   テーブルをディスクに書き込み、終了する
   x   特別な機能 (エキスパート専用)

コマンド (m でヘルプ): n
コマンドアクション
   e   拡張
   p   基本領域 (1-4)
p
Selected partition 4
最初 シリンダ (912-32635, default 912): 
Using default value 912
終点 シリンダ または +サイズ または +サイズM または +サイズK (912-32635, default 32635): 
Using default value 32635

コマンド (m でヘルプ): p

Disk /dev/sda: 268.4 GB, 268435456000 bytes
255 heads, 63 sectors/track, 32635 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

デバイス Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14         650     5116702+  83  Linux
/dev/sda3             651         911     2096482+  82  Linux swap / Solaris
/dev/sda4             912       32635   254823030   83  Linux

コマンド (m でヘルプ): w
領域テーブルは交換されました!

ioctl() を呼び出して領域テーブルを再読込みします。

警告: 領域テーブルの再読込みがエラー 16 で失敗しました: デバイスもしくはリソースがビジー状態です。
カーネルはまだ古いテーブルを使っています。
新しいテーブルは次回リブート時に使えるようになるでしょう。
ディスクを同期させます。

再起動する

DRBDのインストール

# yum -y install drbd82 kmod-drbd82

DRBDの設定

# vim /etc/drbd.conf
global {
    dialog-refresh 0;
}

common {
  syncer {
    rate 10M;
  }
}

resource r0 {
  protocol C;

  net {
    cram-hmac-alg sha1;
    shared-secret "FooFunFactory";
  }

  on centos01.yamkazu.org {
    device     /dev/drbd0;
    disk       /dev/sda4;
    address    192.168.75.101:7788;
    meta-disk  internal;
  }
  on centos02.yamkazu.org {
    device    /dev/drbd0;
    disk      /dev/sda4;
    address   192.168.75.102:7788;
    meta-disk internal;
  }
}

詳細は

# man drbd.conf

ファイアーフォールの設定

事前に使用するポートで通信できるように設定しておく。

メタデータ領域の初期化

# drbdadm create-md r0
失敗する場合は作り直す

ディスクを初期化するので注意して実行

# dd if=/dev/zero of=/dev/sda4 bs=1M count=1000
# drbdadm create-md r0

DRBDの起動

# /etc/init.d/drbd start
初回実行時にはsyncが走る
# /etc/init.d/drbd status
drbd driver loaded OK; device status:
version: 8.2.6 (api:88/proto:86-88)
GIT-hash: 3e69822d3bb4920a8c1bfdf7d647169eba7d2eb4 build by buildsvn@c5-x8664-build, 2008-10-03 11:30:17
m:res  cs          st                 ds                     p  mounted  fstype
0:r0   SyncSource  Primary/Secondary  UpToDate/Inconsistent  C
...    sync'ed:    4.0%               (195703/203841)M