概要
- DRBD8.4の設定、切り替え手順(Primary/Secondaryバージョン)になります
- Master-Slave構成になります。
設定内容
- 両方のホストで作業してください
①DRBDで使うディスクとパーティションの追加
$ sudo fdisk -cu /dev/vda
とかでパーティション作る
### 今回はvda4ができました。使えるようにします。
$ sudo pvcreate /dev/vda4
$ sudo dd if=/dev/zero of=/dev/vda4 bs=1M count=1
②DRBDのインストール、設定、ファイルシステム作成、マウント用ディレクトリ作成(新しいノードの追加)
### 8.4.4をwgetで落としてインストールします。最新バージョンだと色々とbug fixされてるので、そちらを使用。 http://git.drbd.org/?p=drbd-8.4.git;a=blob;f=ChangeLog;hb=HEAD
$ cd /tmp
$ sudo wget http://ftp.kddilabs.jp/Linux/RPMS/elrepo/elrepo/el6/x86_64/RPMS/drbd84-utils-8.4.4-2.el6.elrepo.x86_64.rpm
$ sudo wget http://ftp.kddilabs.jp/Linux/RPMS/elrepo/elrepo/el6/x86_64/RPMS/kmod-drbd84-8.4.4-1.el6.elrepo.x86_64.rpm
$ sudo rpm -Uvh *drbd*
### DRBDの設定
$ sudo vim /etc/drbd.d/global_common.conf
global {
usage-count no;
}
common {
net {
protocol C;
}
syncer {
rate 100M;
}
}
### データを同期する設定。今回はdataという名前で設定します
$ sudo vim /etc/drbd.d/sync.res
resource data {
volume 0 {
device /dev/drbd_data minor 0;
disk /dev/vda4;
meta-disk internal;
}
on host-192-168-1-1 {
address 192.168.1.1:7789;
}
on host-192-168-1-2 {
address 192.168.1.2:7789;
}
}
# デバイスにマイナー番号が使用されていない場合は、minor0をつける。名前/dev/drbd_で始まらないとだめ。
# diskは論理ボリュームだとだめ。
#
# /etc/drbd.conf:7: Parse error: 'dialog-refresh | minor-count | disable ip-verification' expected, but got '・
# ってのは文法エラーだと出たりします。全角スペースがあっても怒られるよ!
# onの部分は$ uname -nの名前に設定します
### drbdのデバイスを作成
$ sudo drbdadm create-md data
### drbd起動。新しく追加する場合は、追加するサーバだけ実行すればOKです。
$ sudo service drbd start
### 状態確認。 新しく追加された際は、syncが走ってるのを確認出来ます
$ drbd-overview
### ファイルシステムの作成
$ sudo mkfs.ext4 /dev/drbd_data
### マウント用ディレクトリ作成
$ sudo mkdir /data
$ chmod 777 /data
③Masterの新規構築の場合は、初回フル同期が必要(Slaveだけ作るときはいりません)
[Primary]
### Primary側から初回フル同期
$ drbdadm -- --overwrite-data-of-peer primary data
### UpToDateに変わってるか確認
$ drbd-overview
④Primary指定、マウント(Primaryサーバのみ)
[primaryサーバのみ]
### Primary指定する。
$ sudo drbdadm primary data
### Primary/Secondaryになってるか確認
$ drbd-overview
[primaryのみ]
### /dev/drbd_dataを/dataにマウントする。fstabに書くと、マウント出来ないでOS起動しないパターンも出てくるので行わない
$ mount -t ext4 /dev/drbd_data /data
### lost+foundとかいうディレクトリが出来てる可能性があるので、消しましょう
$ sudo rm -rf /data/lost+found
切り替え手順
①Masterがrebootした場合
- 再起動後、マウントするだけで正常な状態に戻ります
[Master]
$ drbd-overview
$ sudo drbdadm primary data
$ drbd-overview
$ mount -t ext4 /dev/drbd_data /data
$ ll/data
②Masterが起動しなくなった場合
- SlaveをMasterに切り替えるため、サービス断発生します。
[Slave]
### マウントするだけで同期が走り、Masterにすることが可能。
$ drbd-overview
$ sudo drbdadm primary data
$ drbd-overview
$ mount -t ext4 /dev/drbd_data /data
$ ll /data
③Slaveがrebootした場合
- 再起動し、drbdサービスが上がってくるだけで機能します。
④新しくSlaveを構築したい場合
- この手順に沿って構築してあげてください