diff --git a/ansible/roles/nova/defaults/main.yml b/ansible/roles/nova/defaults/main.yml
index 2d80abf33ecac0d25562edb4fba271af7e68e822..bf24c02f7800c3d78a2a9a081a339e6e53992fa5 100644
--- a/ansible/roles/nova/defaults/main.yml
+++ b/ansible/roles/nova/defaults/main.yml
@@ -13,6 +13,10 @@ nova_pool_name: "{{ ceph_nova_pool_name }}"
 nova_pool_type: "{{ ceph_nova_pool_type }}"
 nova_cache_mode: "{{ ceph_nova_cache_mode }}"
 
+# Discard option for nova managed disks. Requires libvirt (1, 0, 6) or later and
+# qemu (1, 6, 0) or later. Set to "" to disable.
+nova_hw_disk_discard: "unmap"
+
 
 ####################
 # Database
diff --git a/ansible/roles/nova/templates/nova.conf.j2 b/ansible/roles/nova/templates/nova.conf.j2
index 82c991e94f8213b1386396dda0b2d180419d9451..5a00bc6d9ed5abb834427416b628f14d49c96bc1 100644
--- a/ansible/roles/nova/templates/nova.conf.j2
+++ b/ansible/roles/nova/templates/nova.conf.j2
@@ -175,7 +175,9 @@ images_rbd_pool = {{ ceph_nova_pool_name }}
 images_rbd_ceph_conf = /etc/ceph/ceph.conf
 rbd_user = nova
 disk_cachemodes="network=writeback"
-hw_disk_discard = unmap
+{% if nova_hw_disk_discard != '' %}
+hw_disk_discard = {{ nova_hw_disk_discard }}
+{% endif %}
 {% endif %}
 {% if nova_backend == "rbd" %}
 rbd_secret_uuid = {{ rbd_secret_uuid }}