Verified and Tested 1/20/16

Introduction

This how-to will help walk you through adding LVM to DRBD. Distributed Replicated Block Device (DRBD) is a block level replication between two or more nodes and is used as a replacement for shared storage by created a networked mirror. DRBD is used in environments that require systems or data to be Highly Available.

Prerequisites

* Two servers running Debian GNU/Linux Distribution. Other versions of Linux will work as well, but the installation packages may be different.
* Both servers should be directly cross-connected together, or have a separate Network Interface for private communication.
* Both servers should have the same partitioning. This walkthrough assumes that both systems have a single /dev/sdb device that is going to be used as the
DRBD volume.

Configuring LVM on DRBD

Before we start adding LVM to DRBD you should disable the LVM cache by setting:

write_cache_state = 0

After you disable the LVM cache, make sure to remove any stale cache entries by deleting the following:

/etc/lvm/cache/.cache

You must repeat the above steps on all DRBD nodes.

Now that we have our DRBD volume in Primary/Primary mode we need to add LVM to this device.

 

LVM Filters

Update your lvm.conf:

You will need to update the filter section in the LVM configuration. This needs to be done on both nodes:

nano /etc/lvm/lvm.conf

# By default we accept every block device:

filter = [ "r|/dev/sdb|", "r|/dev/disk/|", "r|/dev/block/|", "a/.*/" ]

Note: if you device is not /dev/sdb update this according to your system

 

Physical Volume Creation

Create the physical volume for LVM:

On one node, create the physical volume:

proxmox-host01:~# pvcreate /dev/drbd0
Physical volume "/dev/drbd0" successfully created
proxmox-host01:~#

Check your physical volumes, they should look like similar to this:

proxmox-host01:~# pvscan
PV /dev/drbd0 lvm2 [100.00 GB]
Total: 1 [100.00 GB] / in use: 1 [100.00 GB] / in no VG: 1 [4.00 GB]
proxmox-host01:~#

 

Volume Group Creation

Create the volume group:

On one node, create the volume group:

proxmox-host01:~# vgcreate vg_vm100 /dev/drbd0
Volume group "drbdvg" successfully created
proxmox-host01:~#

Check your physical volumes again, they should look like similar to this:

proxmox-host01:~# pvscan
PV /dev/drbd0 VG vg_vm100 lvm2 [149.04 GB / 149.04 GB free]
Total: 1 [100.00 GB] / in use: 1 [100.00 GB] / in no VG: 1 [4.00 GB]
proxmox-host01:~#

Logical Volume Creation

Create a logical volume for your VM:

proxmox-host01:~# lvcreate --name vm100 --size 50G vg_vm100
proxmox-host01:~#

The above command will create a new 50GB Logical Volume named  vm100 and assign it to the vg_vm100 volume group. From here, you’re ready to add a new VM using your LVM as your storage partition (/dev/vg_vm100/vm100).

In order to check that things are fully working, create a new KVM VM and store the VM disk on the previously created DRBD storage.

Check out our Community article for DRBD Replication and Configuration, or try this article out using our cloud hosting solutions!