How to Configure LVM (Logical Volume Management) on DRBD (Distributed Replicated Block Device)
January 26, 2016 by Paul Cortes (2posts) under HIPAA Compliant Database Hosting
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. If you need a server, you can spin up a fast and reliable cloud hosting server from Atlantic.net in under 30 seconds.
* 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:
vi /etc/lvm/lvm.conf
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:
vi /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 helpful article for DRBD Replication and Configuration!
Atlantic.Net
Since 1995, Atlantic.Net has been providing internet services to customers, including HIPAA compliant database hosting and managed server hosting. In 20+ years of service, our solutions have been focused on providing the very best in web solutions to our valued customers!
# mkfs.xfs /dev/vg_vm100/vm100
# mount /dev/vg_vm100/vm100 /mnt
# touch /mnt/file{1..5}
# ls -l /mnt/
# umount /mnt
关闭卷组:# vgchange –an vg_vm100
# drbdadm secondary drbd0
On other node:
# drbdadm primary drbd0
# pvscan
# vgimport vg_vm100 /dev/drbd0
激活卷组:# vgchange –ay vg_vm100
# mount /dev/vg_vm100/vm100 /mnt
# touch /mnt/file{11..15}
# ls -l /mnt/