Is shrinking an RBD datadisk volume supported in ACS 4.15.0.0? When I try to 
shrink the volume (volume has no data on it and is unattached) I get an error:

2021-08-10 04:05:03,150 DEBUG [c.c.a.t.Request] 
(API-Job-Executor-19:ctx-24b7cda8 job-771 ctx-c40ce838) (logid:ef1cc616) Seq 
17-2639953806569271643: Sending  { Cmd , MgmtId: 90520733511963, via: 
17(bllcloudcmp01), Ver: v1, Flags: 100011, 
[{"com.cloud.agent.api.storage.ResizeVolumeCommand":{"path":"649f1b12-fd51-4171-bf70-b22a3cb74c57","pool":{"id":"10","uuid":"35850adc-d711-306f-b111-9c90205274b1","host":"bllcloudceph01-storage.harmonywave.cloud","path":"cloudstack","userInfo":"cloudstack:AQDURgdhqpXiOBAAuDq6_LET116OIBZU11pg0Q==","port":"0","type":"RBD"},"currentSize":"107374182400","newSize":"(20.00
 GB) 
21474836480","shrinkOk":"true","vmInstance":"none","managed":"false","wait":"0"}}]
 }
2021-08-10 04:05:03,443 DEBUG [c.c.a.t.Request] (AgentManager-Handler-12:null) 
(logid:) Seq 17-2639953806569271643: Processing:  { Ans: , MgmtId: 
90520733511963, via: 17, Ver: v1, Flags: 10, 
[{"com.cloud.agent.api.storage.ResizeVolumeAnswer":{"newSize":"(0 bytes) 
0","result":"false","details":"org.libvirt.LibvirtException: invalid argument: 
can't shrink capacity below existing allocation","wait":"0"}}] }
2021-08-10 04:05:03,443 DEBUG [c.c.a.t.Request] 
(API-Job-Executor-19:ctx-24b7cda8 job-771 ctx-c40ce838) (logid:ef1cc616) Seq 
17-2639953806569271643: Received:  { Ans: , MgmtId: 90520733511963, via: 
17(bllcloudcmp01), Ver: v1, Flags: 10, { ResizeVolumeAnswer } }
2021-08-10 04:05:03,507 WARN  [o.a.c.s.d.ObjectInDataStoreManagerImpl] 
(API-Job-Executor-19:ctx-24b7cda8 job-771 ctx-c40ce838) (logid:ef1cc616) 
Unsupported data object (VOLUME, 
org.apache.cloudstack.storage.datastore.PrimaryDataStoreImpl@577a814a), no need 
to delete from object in store ref table
2021-08-10 04:05:03,510 WARN  [c.c.s.VolumeApiServiceImpl] 
(API-Job-Executor-19:ctx-24b7cda8 job-771 ctx-c40ce838) (logid:ef1cc616) Failed 
to resize the volume Vol[75|vm=null|DATADISK]
2021-08-10 04:05:03,581 ERROR [c.c.a.ApiAsyncJobDispatcher] 
(API-Job-Executor-19:ctx-24b7cda8 job-771) (logid:ef1cc616) Unexpected 
exception while executing 
org.apache.cloudstack.api.command.admin.volume.ResizeVolumeCmdByAdmin
com.cloud.utils.exception.CloudRuntimeException: Exception caught during resize 
volume operation of volume UUID: 649f1b12-fd51-4171-bf70-b22a3cb74c57
    at 
com.cloud.storage.VolumeApiServiceImpl.orchestrateResizeVolume(VolumeApiServiceImpl.java:1288)
    at 
com.cloud.storage.VolumeApiServiceImpl.resizeVolume(VolumeApiServiceImpl.java:1147)
    at 
com.cloud.storage.VolumeApiServiceImpl.resizeVolume(VolumeApiServiceImpl.java:191)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native 
Method)
    at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at 
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    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.apache.cloudstack.network.contrail.management.EventUtils$EventInterceptor.invoke(EventUtils.java:107)
    at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)
    at 
com.cloud.event.ActionEventInterceptor.invoke(ActionEventInterceptor.java:51)
    at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)
    at 
org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:95)
    at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
    at 
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212)
    at com.sun.proxy.$Proxy215.resizeVolume(Unknown Source)
    at 
org.apache.cloudstack.api.command.user.volume.ResizeVolumeCmd.execute(ResizeVolumeCmd.java:191)
    at com.cloud.api.ApiDispatcher.dispatch(ApiDispatcher.java:156)
    at 
com.cloud.api.ApiAsyncJobDispatcher.runJob(ApiAsyncJobDispatcher.java:108)
    at 
org.apache.cloudstack.framework.jobs.impl.AsyncJobManagerImpl$5.runInContext(AsyncJobManagerImpl.java:620)
    at 
org.apache.cloudstack.managed.context.ManagedContextRunnable$1.run(ManagedContextRunnable.java:48)
    at 
org.apache.cloudstack.managed.context.impl.DefaultManagedContext$1.call(DefaultManagedContext.java:55)
    at 
org.apache.cloudstack.managed.context.impl.DefaultManagedContext.callWithContext(DefaultManagedContext.java:102)
    at 
org.apache.cloudstack.managed.context.impl.DefaultManagedContext.runWithContext(DefaultManagedContext.java:52)
    at 
org.apache.cloudstack.managed.context.ManagedContextRunnable.run(ManagedContextRunnable.java:45)
    at 
org.apache.cloudstack.framework.jobs.impl.AsyncJobManagerImpl$5.run(AsyncJobManagerImpl.java:568)
    at 
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: com.cloud.utils.exception.CloudRuntimeException: 
org.libvirt.LibvirtException: invalid argument: can't shrink capacity below 
existing allocation
    at 
com.cloud.storage.VolumeApiServiceImpl.orchestrateResizeVolume(VolumeApiServiceImpl.java:1248)
    at 
com.cloud.storage.VolumeApiServiceImpl.resizeVolume(VolumeApiServiceImpl.java:1147)
    at 
com.cloud.storage.VolumeApiServiceImpl.resizeVolume(VolumeApiServiceImpl.java:191)
    ... 30 more

I'm assuming this operation just isn't supported by libvirt or Ceph, but would 
like to know for sure.

-- 
Thanks,
Joshua Schaeffer

Reply via email to