diff --git a/src/tm_mad/vcenter/clone b/src/tm_mad/vcenter/clone
index 6ade2eef4d..e0e7eb74ba 100755
--- a/src/tm_mad/vcenter/clone
+++ b/src/tm_mad/vcenter/clone
@@ -73,7 +73,7 @@ one_vm = VCenterDriver::VIHelper.one_item(OpenNebula::VirtualMachine, vm_id)
 # calculate target path
 target_path = VCenterDriver::FileHelper.get_img_name_from_path(src_path,
                                                                vm_id,
-                                                               disk_id)
+                                                              disk_id)
 begin
     vi_client     = VCenterDriver::VIClient.new_from_host(host_id)
 
@@ -91,18 +91,26 @@ begin
         new_size = new_size > original_size ? new_size * 1024 : nil
     end
 
-    # Do not clone disks not managed by OPENNEBULA
-    if !disk['OPENNEBULA_MANAGED'] || disk['OPENNEBULA_MANAGED'].to_s != "NO"
+    # Unmanaged disks are those with OPENNEBULA_MANAGED=NO or volatile disks
+    # that are created in StorageDRS clusters
+    unmanaged_disk = (!!disk['OPENNEBULA_MANAGED'] && disk['OPENNEBULA_MANAGED'] == "NO") ||
+                     (target_ds_ref.start_with?('group-') && !!disk["TYPE"] && disk["TYPE"].downcase == "fs")
+
+    if !unmanaged_disk
         source_ds_vc = VCenterDriver::Datastore.new_from_ref(source_ds_ref, vi_client)
 
         if source_ds_ref == target_ds_ref
             target_ds_vc = source_ds_vc
         else
-            target_ds_vc = VCenterDriver::Datastore.new_from_ref(target_ds_ref, vi_client)
+            target_ds_vc = VCenterDriver::Storage.new_from_ref(target_ds_ref, vi_client)
         end
 
         target_ds_name_vc = target_ds_vc['name']
 
+        if target_ds_ref.start_with?('group-')
+            raise "Non persistent images management is not supported for StorageDRS datastores"
+        end
+
         source_ds_vc.copy_virtual_disk(src_path, target_ds_vc, target_path, new_size)
     end