HA構成を構築する際、オープンソースだとpacemakerとDRBDによる構成が良く使われるが、DRBDを動作させるためにはサーバにDRBD専用のディスクを追加する必要がある。
IaaSなどの環境を利用しておりディスクを簡単に追加できないような場合は、ループバックデバイスを用いることでDRBDを動作させることが出来る。
注意:この方法はデッドロックの問題から公式には推奨されていません。ミッションクリティカルな用途には使わない方がいいかと思われます。
The DRBD User’s Guide : Chapter 5. Configuring DRBD
ループバックデバイスとは?
一般的なファイルを,あたかもハード・ディスクなどのブロック型デバイスであるかのように扱うための機能です。パソコン上でイメージ・ファイルを直接操作したい場合などに使います。「ループ・デバイス」とも呼ばれます。」
出典:Linuxキーワード - ループバック・デバイス:ITpro
今回はループバックデバイスをDRBD用のディスクとして利用する。
環境
今回はVagrant上の仮想マシン二台で構築した。以前の記事 Vagrantを使ってDRBD+pacemaker+corosyncによるHA構成を構築する (その1: DRBDのインストール~設定) ではディスクを追加したが、今回はディスクを追加せずに行う。
ホスト
- Vagrant 1.8.1
- VirtualBox 4.3.26
ゲスト1
- OS:CentOS7.1
- ホスト名:node01
- IPアドレス:192.168.33.101
ゲスト2
- OS: CentOS 7.1
- ホスト名: node02
- IPアドレス: 192.168.33.102
DRBDのインストール
以前の記事 Vagrantを使ってDRBD+pacemaker+corosyncによるHA構成を構築する (その1: DRBDのインストール~設定) と同様に実行する。前述の通りディスクは追加しないので、Vagrantfileへのディスク追加の記述は不要。
ループバックデバイスの作成
ループバックデバイスを作成する。以下ではディスクサイズを1000Mとしているが、必要に応じ設定する。
$ sudo dd if=/dev/zero of=/var/disk bs=1M count=1000
作成したループバックデバイスを接続する。
$ sudo losetup /dev/loop0 /var/disk
DRBDの設定ファイルを作成する。
接続したデバイスの情報を元に、設定ファイルを記述する。
$ sudo vi /etc/drbd.d/disk.res
resource r0 {
protocol C;
startup {
wfc-timeout 120;
}
disk {
on-io-error pass_on;
}
on node01 {
device /dev/drbd0;
disk /dev/loop0;
address 192.168.33.101:7788;
meta-disk internal;
}
on node02 {
device /dev/drbd0;
disk /dev/loop0;
address 192.168.33.102:7788;
meta-disk internal;
}
}
DRBDの起動と動作検証
これまでの操作を二台のホスト両方に対して行う。
これ以降は以前の記事 Vagrantを使ってDRBD+pacemaker+corosyncによるHA構成を構築する (その1: DRBDのインストール~設定) と全く同様に行う。
このように、サーバにディスクを追加しなくてもDRBDを構築することが出来る。