--- LVM 2011-04-19 15:43:17.000000000 +0200
+++ LVM.new 2011-04-19 15:44:26.000000000 +0200
@@ -89,6 +89,23 @@
+
+
+This enables a more secure LVM failover (HA LVM).
+The volume group will be tagged with the hostname reported by "uname -n".
+A volume group is only activated if it matches an item in the list.
+But all active volume groups will stay active until they are deactivated once,
+so make sure to deactivate any active volume group.
+To use this feature some manual changes need to be done.
+It is necessary to enable the hosttags first /etc/lvm/lvm.conf:
+tags { hosttags = 1 }
+Create a file lvm_"hostname".conf on each node
+"activation { volume_list = [ "rootvg", "@nodeA" ] }".
+
+Set a hosttag on the volume group
+
+
+
@@ -214,6 +231,29 @@
partial_active="--partial"
fi
+ if ocf_is_true "$OCF_RESKEY_set_hosttag" ; then
+ if [ $(vgs --noheadings -o vg_tags $1 | wc -w) -ge 1 ]; then
+ IFS=','
+ ocf_log info "Removing tags from volume group $1"
+ # Remove all tags
+ for vgtag in $(vgs --noheadings -o vg_tags $1 | tr -d ' '); do
+ ocf_run vgchange --deltag ${vgtag} $1
+ done
+ unset IFS
+ fi
+ # Check if all tags are removed
+ if [ $(vgs --noheadings -o vg_tags $1 | wc -w) -ge 1 ]; then
+ ocf_log err "LVM: $1 has still active tags"
+ return $OCF_ERR_GENERIC
+ fi
+ ocf_log info "Set tag $(uname -n) on volume group $1"
+ ocf_run vgchange --addtag $(uname -n) $1
+ if [ $(vgs --noheadings -o vg_tags newvg | tr -d ' ') != $(uname -n) ]; then
+ ocf_log err "LVM: $1 tag does not match to $(uname -n)"
+ return $OCF_ERR_GENERIC
+ fi
+ fi
+
ocf_run vgchange -a $active_mode $partial_active $1 || return $OCF_ERR_GENERIC
if LVM_status $1; then