論理ボリューム をDRBDの下位デバイスとして使用し、 同時に DRBDデバイス自体を物理ボリュームとして使用することもできます。例として、次のような構成を考えてみましょう。
/dev/sda1と /dev/sdb1という2つのパーティションがあり、これらを物理ボリュームとして使用します。
2つのPVが localというボリュームグループに含まれます。
このGVに10GiBの論理ボリュームを作成し、 r0という名前を付けます。
このLVがDRBDリソースのローカル下位デバイスになります。名前は同じr0で、デバイス/dev/drbd0に対応します。
このデバイスが replicatedというもう1つのボリュームグループの唯一のPVになります。
このVGには foo (4 GiB)とbar (6 GiB)というさらに2つの論理ボリュームが含まれます。
この構成を有効にするために、次の手順を行います。
/etc/lvm/lvm.confで適切なfilterオプションを設定します。
filter = ["a|sd.*|", "a|drbd.*|", "r|.*|"]
このフィルタ表現が、SCSIおよびDRBDデバイスで見つかったPVシグネチャを受け入れ、その他すべてを拒否(無視)します。
lvm.conf ファイルを変更して、 vgscan コマンドを実行すると、LVMは構成キャッシュを破棄し、デバイスを再スキャンしてPVシグネチャを見つけます。
LVMキャッシュ無効の設定
write_cache_state = 0
LVMのキャッシュを無効にした後、/etc/lvm/cache/.cacheを削除して、古いキャッシュを削除してください。
ここで、2つのSCSIパーティションをPVとして初期化します。
pvcreate /dev/sda1Physical volume "/dev/sda1" successfully createdpvcreate /dev/sdb1Physical volume "/dev/sdb1" successfully created
次に、初期化した2つのPVを含む localという名前の下位レベルVGを作成します。
vgcreate local /dev/sda1 /dev/sda2Volume group "local" successfully created
これで、DRBDの下位デバイスとして使用する論理ボリュームを作成できます。
lvcreate --name r0 --size 10G localLogical volume "r0" created
対向ノードに対して、ここまでのすべての手順を繰り返します。
/etc/drbd.conf を編集して、r0という名前の新しいリソースを作成します。
resource r0 {
device /dev/drbd0;
disk /dev/local/r0;
meta-disk internal;
on host {
address address:port;
}
on host {
address address:port;
}
}新しいリソース構成を作成したら、忘れずに drbd.conf の内容を対向ノードにコピーします。
「初めてリソースを有効にする」に従って、(両方のノードの)リソースを初期化します。
drbdadm primary r0
リソースを昇格したノードで、DRBDデバイスを新しい物理ボリュームとして初期化します。
pvcreate /dev/drbd0Physical volume "/dev/drbd0" successfully created
初期化したPVを使用して、同じノードにreplicatedというVGを作成します。
vgcreate replicated /dev/drbd0Volume group "replicated" successfully created
最後に、新しく作成したこのVG内に新しい論理ボリュームを作成します。
lvcreate --name foo --size 4G replicatedLogical volume "foo" createdlvcreate --name bar --size 6G replicatedLogical volume "bar" created
これで、論理ボリューム foo と bar をローカルノードで /dev/replicated/foo と /dev/replicated/bar として使用できます。
対向ノードでも使用できるように、ローカルノードで次のコマンドを実行します。
vgchange -a n replicated0 logical volume(s) in volume group "replicated" now activedrbdadm secondary r0
drbdadm primary r0vgchange -a y replicated2 logical volume(s) in volume group "replicated" now active
これで、ブロックデバイス/dev/replicated/fooと/dev/replicated/bar が対向ノードで使用可能になります。
ホスト間のボリュームグループの転送と、
対応する論理ボリュームを使用可能にする処理は自動的に実行されます。 Heartbeat LVM リソースエージェントはこの処理を自動的に実行します。