DRBDを使用する入れ子のLVM構成

論理ボリューム をDRBDの下位デバイスとして使用し、 同時に DRBDデバイス自体を物理ボリュームとして使用することもできます。例として、次のような構成を考えてみましょう。

この構成を有効にするために、次の手順を行います。

  1. /etc/lvm/lvm.confで適切なfilterオプションを設定します。

    filter = ["a|sd.*|", "a|drbd.*|", "r|.*|"]

    このフィルタ表現が、SCSIおよびDRBDデバイスで見つかったPVシグネチャを受け入れ、その他すべてを拒否(無視)します。

    lvm.conf ファイルを変更して、 vgscan コマンドを実行すると、LVMは構成キャッシュを破棄し、デバイスを再スキャンしてPVシグネチャを見つけます。

  2. LVMキャッシュ無効の設定

    write_cache_state = 0

    LVMのキャッシュを無効にした後、/etc/lvm/cache/.cacheを削除して、古いキャッシュを削除してください。

  3. ここで、2つのSCSIパーティションをPVとして初期化します。

    pvcreate /dev/sda1
      Physical volume "/dev/sda1" successfully created
    pvcreate /dev/sdb1
      Physical volume "/dev/sdb1" successfully created

  4. 次に、初期化した2つのPVを含む localという名前の下位レベルVGを作成します。

    vgcreate local /dev/sda1 /dev/sda2
      Volume group "local" successfully created

  5. これで、DRBDの下位デバイスとして使用する論理ボリュームを作成できます。

    lvcreate --name r0 --size 10G local
      Logical volume "r0" created

  6. 対向ノードに対して、ここまでのすべての手順を繰り返します。

  7. /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 の内容を対向ノードにコピーします。

  8. 「初めてリソースを有効にする」に従って、(両方のノードの)リソースを初期化します。

  9. 一方のノードリソースを昇格します。

    drbdadm primary r0

  10. リソースを昇格したノードで、DRBDデバイスを新しい物理ボリュームとして初期化します。

    pvcreate /dev/drbd0
      Physical volume "/dev/drbd0" successfully created

  11. 初期化したPVを使用して、同じノードにreplicatedというVGを作成します。

    vgcreate replicated /dev/drbd0
      Volume group "replicated" successfully created

  12. 最後に、新しく作成したこのVG内に新しい論理ボリュームを作成します。

    lvcreate --name foo --size 4G replicated
      Logical volume "foo" created
    lvcreate --name bar --size 6G replicated
      Logical volume "bar" created

これで、論理ボリューム foobar をローカルノードで /dev/replicated/foo/dev/replicated/bar として使用できます。

対向ノードでも使用できるように、ローカルノードで次のコマンドを実行します。

vgchange -a n replicated
  0 logical volume(s) in volume group "replicated" now active
drbdadm secondary r0

次に、対向ノードでコマンドを実行します。

drbdadm primary r0
vgchange -a y replicated
  2 logical volume(s) in volume group "replicated" now active

これで、ブロックデバイス/dev/replicated/foo/dev/replicated/bar が対向ノードで使用可能になります。

ホスト間のボリュームグループの転送と、 対応する論理ボリュームを使用可能にする処理は自動的に実行されます。 Heartbeat LVM リソースエージェントはこの処理を自動的に実行します。