diff --git a/roles/float-base-volumemgr/tasks/main.yml b/roles/float-base-volumemgr/tasks/main.yml
index 116be88471d9bc8cbb3dd2056601aa86086db0f7..2ccf061a8d7d8b9aa25b2b18dc80ea34d1b2fa4d 100644
--- a/roles/float-base-volumemgr/tasks/main.yml
+++ b/roles/float-base-volumemgr/tasks/main.yml
@@ -4,3 +4,9 @@
   with_items: "{{ float_enabled_services }}"
   loop_control:
     loop_var: service_name_iter
+
+- name: Configure kernel modules
+  template:
+    src: "modules.conf.j2"
+    dest: "/etc/modules-load.d/float-volumemgr.conf"
+  when: enable_lvm
diff --git a/roles/float-base-volumemgr/templates/modules.conf.j2 b/roles/float-base-volumemgr/templates/modules.conf.j2
new file mode 100644
index 0000000000000000000000000000000000000000..1fe7b190f6c4a48583e5552ac76f4333f190f2d7
--- /dev/null
+++ b/roles/float-base-volumemgr/templates/modules.conf.j2
@@ -0,0 +1,4 @@
+# Force-load dm-snapshot to enable LVM snapshots
+# Normally this module is loaded on demand by LVM, however module loading is
+# disabled after boot is completed.
+dm-snapshot