summaryrefslogtreecommitdiffstats
path: root/scripts/clvm
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--scripts/clvm-vg/main.yml74
-rw-r--r--scripts/clvm/main.yml39
2 files changed, 113 insertions, 0 deletions
diff --git a/scripts/clvm-vg/main.yml b/scripts/clvm-vg/main.yml
new file mode 100644
index 0000000..846c70b
--- /dev/null
+++ b/scripts/clvm-vg/main.yml
@@ -0,0 +1,74 @@
+# Copyright (C) 2015 Kristoffer Gronlund
+#
+# License: GNU General Public License (GPL)
+version: 2.2
+category: File System
+shortdesc: Cluster-aware LVM (auto activation)
+longdesc: |
+ Configures a resource to manage the activation of a volume
+ group. Before adding this resource, you need to proceed as below
+ to create new VG and LVs. Refer to manpage lvmlockd(8) for more
+ detailed steps.
+
+ - create VG on shared devices:
+ vgcreate --shared <vgname> <devices>
+
+ - create an LV:
+ lvcreate -an -L <size> -n <lvname> <vgname>
+
+ For LVs in shared VG, there are two activation modes: "exclusive"
+ and "shared". With the "exclusive" mode, a LV activated on one
+ host cannot be activated on another, which is the default option.
+ With the "shared" mode, a LV can be activated concurrently on
+ multiple hosts, and cluster filesystem like OCFS2 can use it.
+
+ If the resource is created with activation_mode="shared", it will
+ be added to the cLVM group resource. The cLVM group resource is
+ assumed to be named g-clvm. This is the name of the resource created
+ by the clvm wizard.
+
+parameters:
+ - name: id
+ shortdesc: Volume group instance ID
+ longdesc: Unique ID for the volume group instance in the cluster.
+ required: true
+ unique: true
+ type: resource
+ value: vg1
+
+ - name: vgname
+ shortdesc: Volume Group Name
+ longdesc: LVM volume group name.
+ required: true
+ type: string
+ value: vg1
+
+ - name: activation_mode
+ shortdesc: LVM activation mode
+ longdesc: |
+ How a VG/LV is activated in cluster, either "exclusive" (default) or "shared".
+ It depends on the filesystem you need to create on the LV to choose the
+ activation mode. For local filesystem like ext4, you need "exclusive" activation.
+ For cluster filesystem like OCFS2, you need "shared" activation.
+ required: false
+ type: string
+ value: exclusive
+
+ - name: clvm-group
+ shortdesc: cLVM Resource Group ID
+ longdesc: ID of the cLVM resource group.
+ type: resource
+ required: false
+ value: g-clvm
+
+actions:
+ - cib: |
+ primitive {{id}} ocf:heartbeat:LVM-activate
+ params vgname="{{vgname}}" vg_access_mode="lvmlockd" activation_mode="{{activation_mode}}"
+ op start timeout=60s
+ op stop timeout=60s
+ op monitor interval=30s timeout=90s
+
+ - crm: configure modgroup {{clvm-group}} add {{id}}
+ shortdesc: Add volume group to the cLVM group resource
+ when: activation_mode == "shared"
diff --git a/scripts/clvm/main.yml b/scripts/clvm/main.yml
new file mode 100644
index 0000000..8ecae60
--- /dev/null
+++ b/scripts/clvm/main.yml
@@ -0,0 +1,39 @@
+# Copyright (C) 2015 Kristoffer Gronlund
+#
+# License: GNU General Public License (GPL)
+version: 2.2
+category: File System
+shortdesc: Cluster-aware LVM (lvmlockd)
+longdesc: |
+ Configure a cloned lvmlockd resource.
+
+ NB: Only one lvmlockd resource is necessary, regardless
+ of how many volume groups are managed as resources. To
+ monitor volume groups after configuring lvmlockd, the wizard
+ for activating volume groups can be used. Refer to manpage
+ of lvmlockd for more information.
+
+parameters:
+ - name: install
+ type: boolean
+ shortdesc: Install packages for lvmlockd
+ value: false
+
+actions:
+ - install:
+ - lvm2-lockd
+ shortdesc: Install the lvm2-lockd package
+ when: install
+ - cib: |
+ primitive dlm ocf:pacemaker:controld
+ op start timeout=90s
+ op stop timeout=100s
+
+ primitive lvmlockd ocf:heartbeat:lvmlockd
+ op start timeout=90s
+ op stop timeout=100s
+
+ group g-clvm dlm lvmlockd
+
+ clone c-clvm g-clvm
+ meta interleave=true ordered=true