From 1acd38a24d60e637791ce6b2500b32cf29a1a285 Mon Sep 17 00:00:00 2001 From: Daan Hoogland Date: Fri, 21 Aug 2026 08:37:30 +0200 Subject: [PATCH] no quiescense when doing vm snapshot on individual disks --- .../vmsnapshot/StorageVMSnapshotStrategy.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/engine/storage/snapshot/src/main/java/org/apache/cloudstack/storage/vmsnapshot/StorageVMSnapshotStrategy.java b/engine/storage/snapshot/src/main/java/org/apache/cloudstack/storage/vmsnapshot/StorageVMSnapshotStrategy.java index be45755c0421..c11d857bc9ed 100644 --- a/engine/storage/snapshot/src/main/java/org/apache/cloudstack/storage/vmsnapshot/StorageVMSnapshotStrategy.java +++ b/engine/storage/snapshot/src/main/java/org/apache/cloudstack/storage/vmsnapshot/StorageVMSnapshotStrategy.java @@ -423,18 +423,19 @@ protected void revertDiskSnapshot(VMSnapshot vmSnapshot) { } } + /** + * Creates a disk (volume) snapshot for one volume of a VM snapshot in progress. + * The payload is always given {@code quiescevm=false}: by this point the whole VM is + * already frozen via {@link FreezeThawVMCommand}, and {@code DefaultSnapshotStrategy} + * rejects {@code quiescevm=true} for volume snapshots. + */ protected SnapshotInfo createDiskSnapshot(VMSnapshot vmSnapshot, List forRollback, VolumeInfo vol) { String snapshotName = vmSnapshot.getId() + "_" + vol.getUuid(); SnapshotVO snapshot = new SnapshotVO(vol.getDataCenterId(), vol.getAccountId(), vol.getDomainId(), vol.getId(), vol.getDiskOfferingId(), snapshotName, (short) Snapshot.Type.GROUP.ordinal(), Snapshot.Type.GROUP.name(), vol.getSize(), vol.getMinIops(), vol.getMaxIops(), Hypervisor.HypervisorType.KVM, null); - VMSnapshotOptions options = ((VMSnapshotVO) vmSnapshot).getOptions(); - boolean quiescevm = false; - if (options != null) { - quiescevm = options.needQuiesceVM(); - } snapshot = snapshotDao.persist(snapshot); - vol.addPayload(setPayload(vol, snapshot, quiescevm)); + vol.addPayload(setPayload(vol, snapshot, false)); SnapshotInfo snapshotInfo = snapshotDataFactory.getSnapshot(snapshot.getId(), vol.getDataStore()); snapshotInfo.addPayload(vol.getpayload()); SnapshotStrategy snapshotStrategy = storageStrategyFactory.getSnapshotStrategy(snapshotInfo, SnapshotOperation.TAKE);