Storage plugins are per node settings that are set with the help of the modify-config sub command.
Lets assume you want to use the ThinLV plugin for node bravo, where you want to set the pool-name option to mythinpool:
# drbdmanage modify-config --node bravo [GLOBAL] loglevel = INFO [Node:bravo] storage-plugin = drbdmanage.storage.lvm_thinlv.LvmThinLv [Plugin:ThinLV] pool-name = mythinpool
For ZFS the same configuration steps apply, like setting the storage-plugin for the node that should make use of ZFS volumes. Please note that we don’t make use of ZFS as a file system, but of ZFS as a logical volume manager. The admin is then free to create any file system she/he desires on top of the DRBD device backed by a ZFS volume. It is also important to note that if you make use of the ZFS plugin, all DRBD resources are created on ZFS, but in case this node is a control node, it still needs LVM for it’s control volume.
In the most common case only the following steps are necessary.
# zpool create drbdpool /dev/sdX /dev/sdY # drbdmanage modify-config --node bravo [Node:bravo] storage-plugin = drbdmanage.storage.zvol.Zvol
Currently it is not supported to switch storage plugins on the fly. The workflow is: Add a new node, modify the configuration for that node, make use of the node. Changing other settings (like the log-level) on the fly is perfectly fine.
DRBD Manage has four supported storage plugins as of this writing:
Thick LVM (
Thin LVM with a single thin pool (
Thin LVM with thin pools for each volume (
Thick ZFS (
Here’s a short discussion of the relative advantages and disadvantages of these plugins.
Table 4.1. DRBD Manage storage plugins, comparison
|Topic|| || || |
the VG is the pool
a single Thin pool
one Thin pool for each volume
Free Space reporting
Free space goes down as per written data and snapshots, needs monitoring
Each pool carves some space out of the VG, but still needs to be monitored if snapshots are used
thinly allocated, needs nearly zero space initially
— not supported —
Fast, efficient (copy-on-write)
Well established, known code, very stable
Some kernel versions have bugs re Thin LVs, destroying data
Easiest - text editor, and/or lvm configuration archives in
All data in one pool, might incur running
Independent Pools, so not all volumes damaged at the same time, faster