-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Description
problem
The volume snapshot fails with error "Unable to find a snapshot strategy to create snapshot..." when the associated instance has file-based storage VM snapshots. It is better to report with proper message to the user. There is a warn message in the log:
2025-10-29 06:58:39,043 WARN [o.a.c.s.s.DefaultSnapshotStrategy] (Work-Job-Executor-9:[ctx-5f3017c7, job-51/job-52, ctx-51a88f7c]) (logid:3258313d) VM [25f7de00-8218-462f-9e9e-8345e0d17246] already has KVM File-Based storage VM snapshots. These VM snapshots and volume snapshots are not supported together for KVM. As restoring volume snapshots will erase the VM snapshots and cause data loss.
2025-10-29 06:58:39,005 DEBUG [c.c.v.VmWorkJobDispatcher] (Work-Job-Executor-9:[ctx-5f3017c7, job-51/job-52]) (logid:3258313d) Run VM work job: com.cloud.vm.VmWorkTakeVolumeSnapshot for VM 3, job origin: 51
2025-10-29 06:58:39,009 DEBUG [c.c.v.VmWorkJobHandlerProxy] (Work-Job-Executor-9:[ctx-5f3017c7, job-51/job-52, ctx-51a88f7c]) (logid:3258313d) Execute VM work job: com.cloud.vm.VmWorkTakeVolumeSnapshot{"volumeId":3,"policyId":0,"snapshotId":6,"quiesceVm":false,"asyncBackup":false,"poolIds":[],"userId":2,"accountId":2,"vmId":3,"handlerName":"VolumeApiServiceImpl"}
2025-10-29 06:58:39,022 DEBUG [o.a.c.e.o.VolumeOrchestrator] (Work-Job-Executor-9:[ctx-5f3017c7, job-51/job-52, ctx-51a88f7c]) (logid:3258313d) Found [0] snapshots [[]] that have checkpoints for volume with id [3].
2025-10-29 06:58:39,032 DEBUG [o.a.c.s.h.HeuristicRuleHelper] (Work-Job-Executor-9:[ctx-5f3017c7, job-51/job-52, ctx-51a88f7c]) (logid:3258313d) No heuristic rules found for zone [Zone {"id": "1", "name": "ref-trl-9825-k-Mol8-suresh-anaparti", "uuid": "55b9a950-738c-4075-9111-05c106cac653"}] and heuristic type [SNAPSHOT]. Returning null.
2025-10-29 06:58:39,036 DEBUG [c.c.s.StatsCollector] (Work-Job-Executor-9:[ctx-5f3017c7, job-51/job-52, ctx-51a88f7c]) (logid:3258313d) Verifying image storage [ImageStore {"id":1,"name":"NFS:\/\/10.0.32.4\/acs\/secondary\/ref-trl-9825-k-Mol8-suresh-anaparti\/ref-trl-9825-k-Mol8-suresh-anaparti-sec1","uuid":"059074e7-8356-4daa-ac34-7d1730a1d38c"}]. Capacity: total=[2.6357 TB], used=[2.0269 TB], threshold=[95.00%].
2025-10-29 06:58:39,036 DEBUG [c.c.s.StatsCollector] (Work-Job-Executor-9:[ctx-5f3017c7, job-51/job-52, ctx-51a88f7c]) (logid:3258313d) Verifying image storage [ImageStore {"id":1,"name":"NFS:\/\/10.0.32.4\/acs\/secondary\/ref-trl-9825-k-Mol8-suresh-anaparti\/ref-trl-9825-k-Mol8-suresh-anaparti-sec1","uuid":"059074e7-8356-4daa-ac34-7d1730a1d38c"}]. Capacity: total=[2.6357 TB], used=[2.0269 TB], threshold=[95.00%].
2025-10-29 06:58:39,043 WARN [o.a.c.s.s.DefaultSnapshotStrategy] (Work-Job-Executor-9:[ctx-5f3017c7, job-51/job-52, ctx-51a88f7c]) (logid:3258313d) VM [25f7de00-8218-462f-9e9e-8345e0d17246] already has KVM File-Based storage VM snapshots. These VM snapshots and volume snapshots are not supported together for KVM. As restoring volume snapshots will erase the VM snapshots and cause data loss.
2025-10-29 06:58:39,049 DEBUG [o.a.c.s.s.StorPoolSnapshotStrategy] (Work-Job-Executor-9:[ctx-5f3017c7, job-51/job-52, ctx-51a88f7c]) (logid:3258313d) StorpoolSnapshotStrategy.canHandle: snapshot Snapshot {"id":6,"name":"ROOT-3-Snap01-1","state":"Allocated","uuid":"281e14b7-22d3-4411-9b6e-714935830c23","version":"2.2","volumeId":3}, dataStoreId 2, imageStore id 1, checkpointPath null., op=TAKE
2025-10-29 06:58:39,052 DEBUG [c.c.a.ApiServlet] (qtp253011924-19:[ctx-8cfd09f6]) (logid:9025cd05) ===START=== 10.0.3.251 -- GET jobId=3258313d-5113-437c-9ea8-a0bdd884f67d&command=queryAsyncJobResult&response=json&
2025-10-29 06:58:39,053 DEBUG [c.c.a.ApiServlet] (qtp253011924-19:[ctx-8cfd09f6]) (logid:9025cd05) Two factor authentication is already verified for the user 2, so skipping
2025-10-29 06:58:39,065 DEBUG [c.c.a.ApiServer] (qtp253011924-19:[ctx-8cfd09f6, ctx-5dcc2afb]) (logid:9025cd05) CIDRs from which account 'Account [{"accountName":"admin","id":2,"uuid":"cf044d59-af15-11f0-bf49-1e007e00038d"}]' is allowed to perform API calls: 0.0.0.0/0,::/0
2025-10-29 06:58:39,067 INFO [o.a.c.a.DynamicRoleBasedAPIAccessChecker] (qtp253011924-19:[ctx-8cfd09f6, ctx-5dcc2afb]) (logid:9025cd05) Account for user id cf04f8b3-af15-11f0-bf49-1e007e00038d is Root Admin or Domain Admin, all APIs are allowed.
2025-10-29 06:58:39,067 DEBUG [o.a.c.a.StaticRoleBasedAPIAccessChecker] (qtp253011924-19:[ctx-8cfd09f6, ctx-5dcc2afb]) (logid:9025cd05) RoleService is enabled. We will use it instead of StaticRoleBasedAPIAccessChecker.
2025-10-29 06:58:39,067 DEBUG [o.a.c.r.ApiRateLimitServiceImpl] (qtp253011924-19:[ctx-8cfd09f6, ctx-5dcc2afb]) (logid:9025cd05) API rate limiting is disabled. We will not use ApiRateLimitService.
2025-10-29 06:58:39,075 DEBUG [c.c.s.s.SnapshotManagerImpl] (Work-Job-Executor-9:[ctx-5f3017c7, job-51/job-52, ctx-51a88f7c]) (logid:3258313d) No strategy found for creation of snapshot [Snapshot {"id":6,"name":"ROOT-3-Snap01-1","state":"Allocated","uuid":"281e14b7-22d3-4411-9b6e-714935830c23","version":"2.2","volumeId":3}, dataStoreId 2, imageStore id 1, checkpointPath null.], removing its record from the database.
2025-10-29 06:58:39,075 DEBUG [c.c.s.s.SnapshotManagerImpl] (Work-Job-Executor-9:[ctx-5f3017c7, job-51/job-52, ctx-51a88f7c]) (logid:3258313d) Failed to create snapshotUnable to find a snapshot strategy to create snapshot [Snapshot {"id":6,"name":"ROOT-3-Snap01-1","state":"Allocated","uuid":"281e14b7-22d3-4411-9b6e-714935830c23","version":"2.2","volumeId":3}] of volume [65780f6c-c2d4-4ee7-a174-db123c28ce67]. Please check the logs.
2025-10-29 06:58:39,075 DEBUG [c.c.r.ResourceLimitManagerImpl] (Work-Job-Executor-9:[ctx-5f3017c7, job-51/job-52, ctx-51a88f7c]) (logid:3258313d) Updating resource Type = snapshot count for Account with id = 2 Operation = decreasing Amount = 1
2025-10-29 06:58:39,085 DEBUG [c.c.r.ResourceLimitManagerImpl] (Work-Job-Executor-9:[ctx-5f3017c7, job-51/job-52, ctx-51a88f7c]) (logid:3258313d) Updating resource Type = secondary_storage count for Account with id = 2 Operation = decreasing Amount = (8.00 GB) 8589934592
2025-10-29 06:58:39,092 ERROR [c.c.v.VmWorkJobHandlerProxy] (Work-Job-Executor-9:[ctx-5f3017c7, job-51/job-52, ctx-51a88f7c]) (logid:3258313d) Invocation exception, caused by: java.lang.UnsupportedOperationException: Unable to find a snapshot strategy to create snapshot [Snapshot {"id":6,"name":"ROOT-3-Snap01-1","state":"Allocated","uuid":"281e14b7-22d3-4411-9b6e-714935830c23","version":"2.2","volumeId":3}] of volume [65780f6c-c2d4-4ee7-a174-db123c28ce67]. Please check the logs.
2025-10-29 06:58:39,092 INFO [c.c.v.VmWorkJobHandlerProxy] (Work-Job-Executor-9:[ctx-5f3017c7, job-51/job-52, ctx-51a88f7c]) (logid:3258313d) Rethrow exception java.lang.UnsupportedOperationException: Unable to find a snapshot strategy to create snapshot [Snapshot {"id":6,"name":"ROOT-3-Snap01-1","state":"Allocated","uuid":"281e14b7-22d3-4411-9b6e-714935830c23","version":"2.2","volumeId":3}] of volume [65780f6c-c2d4-4ee7-a174-db123c28ce67]. Please check the logs.
2025-10-29 06:58:39,092 DEBUG [c.c.v.VmWorkJobDispatcher] (Work-Job-Executor-9:[ctx-5f3017c7, job-51/job-52]) (logid:3258313d) Done with run of VM work job: com.cloud.vm.VmWorkTakeVolumeSnapshot for VM 3, job origin: 51
2025-10-29 06:58:39,092 ERROR [c.c.v.VmWorkJobDispatcher] (Work-Job-Executor-9:[ctx-5f3017c7, job-51/job-52]) (logid:3258313d) Unable to complete AsyncJob {"accountId":2,"cmd":"com.cloud.vm.VmWorkTakeVolumeSnapshot","cmdInfo":"rO0ABXNyACVjb20uY2xvdWQudm0uVm1Xb3JrVGFrZVZvbHVtZVNuYXBzaG90BL5gG4Li1c8CAAhaAAthc3luY0JhY2t1cFoACXF1aWVzY2VWbUwADGxvY2F0aW9uVHlwZXQAKUxjb20vY2xvdWQvc3RvcmFnZS9TbmFwc2hvdCRMb2NhdGlvblR5cGU7TAAIcG9saWN5SWR0ABBMamF2YS9sYW5nL0xvbmc7TAAHcG9vbElkc3QAEExqYXZhL3V0aWwvTGlzdDtMAApzbmFwc2hvdElkcQB-AAJMAAh2b2x1bWVJZHEAfgACTAAHem9uZUlkc3EAfgADeHIAE2NvbS5jbG91ZC52bS5WbVdvcmufmbZW8CVnawIABEoACWFjY291bnRJZEoABnVzZXJJZEoABHZtSWRMAAtoYW5kbGVyTmFtZXQAEkxqYXZhL2xhbmcvU3RyaW5nO3hwAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAADdAAUVm9sdW1lQXBpU2VydmljZUltcGwAAHBzcgAOamF2YS5sYW5nLkxvbmc7i-SQzI8j3wIAAUoABXZhbHVleHIAEGphdmEubGFuZy5OdW1iZXKGrJUdC5TgiwIAAHhwAAAAAAAAAABzcgATamF2YS51dGlsLkFycmF5TGlzdHiB0h2Zx2GdAwABSQAEc2l6ZXhwAAAAAHcEAAAAAHhzcQB-AAgAAAAAAAAABnNxAH4ACAAAAAAAAAADcA","cmdVersion":0,"completeMsid":null,"created":"Wed Oct 29 06:58:38 UTC 2025","id":52,"initMsid":32987462763405,"instanceId":null,"instanceType":null,"lastPolled":null,"lastUpdated":null,"processStatus":0,"removed":null,"result":null,"resultCode":0,"status":"IN_PROGRESS","userId":2,"uuid":"8e9b551e-ffef-4455-9b35-dd1381f49432"}, job origin: 51 java.lang.UnsupportedOperationException: Unable to find a snapshot strategy to create snapshot [Snapshot {"id":6,"name":"ROOT-3-Snap01-1","state":"Allocated","uuid":"281e14b7-22d3-4411-9b6e-714935830c23","version":"2.2","volumeId":3}] of volume [65780f6c-c2d4-4ee7-a174-db123c28ce67]. Please check the logs.
at com.cloud.storage.snapshot.SnapshotManagerImpl.takeSnapshot(SnapshotManagerImpl.java:1653)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:569)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215)
at jdk.proxy3/jdk.proxy3.$Proxy262.takeSnapshot(Unknown Source)
at org.apache.cloudstack.storage.volume.VolumeServiceImpl.takeSnapshot(VolumeServiceImpl.java:2794)
at com.cloud.storage.VolumeApiServiceImpl.orchestrateTakeVolumeSnapshot(VolumeApiServiceImpl.java:3987)
at com.cloud.storage.VolumeApiServiceImpl.orchestrateTakeVolumeSnapshot(VolumeApiServiceImpl.java:5309)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:569)
at com.cloud.vm.VmWorkJobHandlerProxy.handleVmWorkJob(VmWorkJobHandlerProxy.java:102)
at com.cloud.storage.VolumeApiServiceImpl.handleVmWorkJob(VolumeApiServiceImpl.java:5323)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:569)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215)
at jdk.proxy3/jdk.proxy3.$Proxy273.handleVmWorkJob(Unknown Source)
at com.cloud.vm.VmWorkJobDispatcher.runJob(VmWorkJobDispatcher.java:99)
at org.apache.cloudstack.framework.jobs.impl.AsyncJobManagerImpl$5.runInContext(AsyncJobManagerImpl.java:698)
at org.apache.cloudstack.managed.context.ManagedContextRunnable$1.run(ManagedContextRunnable.java:49)
at org.apache.cloudstack.managed.context.impl.DefaultManagedContext$1.call(DefaultManagedContext.java:56)
at org.apache.cloudstack.managed.context.impl.DefaultManagedContext.callWithContext(DefaultManagedContext.java:103)
at org.apache.cloudstack.managed.context.impl.DefaultManagedContext.runWithContext(DefaultManagedContext.java:53)
at org.apache.cloudstack.managed.context.ManagedContextRunnable.run(ManagedContextRunnable.java:46)
at org.apache.cloudstack.framework.jobs.impl.AsyncJobManagerImpl$5.run(AsyncJobManagerImpl.java:646)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:840)
versions
ACS 4.22 RC2
The steps to reproduce the bug
- Deploy an instance
- Take instance snapshot with memory
- Take volume snapshot of ROOT volume of the instance
What to do about it?
Report with proper message (for example - "Volume snapshots are not supported when the associated instance has file-based storage VM snapshots") to the user (or this needs to be documented).
Metadata
Metadata
Assignees
Labels
Type
Projects
Status