This is why I disabled it via the code pointed out. It was unreliable. When I originally developed it, it seemed to work. And then a few weeks later during testing we got "qemu-img: This image format does not support resize". Growing works fine, shrinking doesn't seem to be reliable, or depends on a particular version of qemu-img or something... I'll need to investigate if I can find the condition in which it worked. But anyway, that's why shrinking is in resizevolume.sh, but disallowed in the code.
On Thu, Feb 28, 2013 at 3:54 AM, Rajesh Battala <rajesh.batt...@citrix.com> wrote: > I had tried on rhel 6.3, > Increase the volume size is happening without error. But while decreasing the > size its showing the error format not supported. > > qemu-img resize myvol.qcow2 +50G > Image resized. > > [root@kvm57 ~]# qemu-img resize myvol.qcow2 40G > qemu-img: This image format does not support resize > > > Thanks > Rajesh Battala > >> -----Original Message----- >> From: Wido den Hollander [mailto:w...@widodh.nl] >> Sent: Thursday, February 28, 2013 3:34 PM >> To: cloudstack-dev@incubator.apache.org >> Subject: Re: [ACS41]Unable to shrink volumes of type QCOW2 >> >> >> >> On 02/28/2013 10:53 AM, Rajesh Battala wrote: >> > When I was going through the source and resizevolume.sh, In the >> > libvirtcomputing resources, we are restricting to resize only for "raw" >> > disks. >> > But in the resizevolume.sh which will actually do the resizing of the >> > disks, this >> file has the function resizeqcow2() which is actually has the capability >> to resize >> qcow2 image. >> > >> > From this source http://linux.die.net/man/1/qemu-img >> > qemu-img resize supports qcow2 image format also. Am not sure why we are >> restricting not to convert qcow2 images. >> >> Indeed, resizevolume.sh allows QCOW2 files to be shrunk. >> >> BUT, I just tried it on my desktop and that fails: >> >> wido@wido-desktop:~$ qemu-img create -f qcow2 volume.qcow2 50G >> Formatting 'volume.qcow2', fmt=qcow2 size=53687091200 encryption=off >> cluster_size=65536 >> wido@wido-desktop:~$ qemu-img resize volume.qcow2 -20G >> qemu-img: This image format does not support resize wido@wido-desktop:~$ >> >> On my desktop at the office it works, but that is running a manually compiled >> Qemu version. >> >> So the stock Ubuntu 12.04 Qemu version does not support shrinking QCOW2 >> files. Not sure about CentOS/RHEL 6.3. >> >> Wido >> >> > >> > >> > Thanks >> > Rajesh Battala >> > >> > >> >> -----Original Message----- >> >> From: Wido den Hollander [mailto:w...@widodh.nl] >> >> Sent: Thursday, February 28, 2013 3:05 PM >> >> To: cloudstack-dev@incubator.apache.org >> >> Subject: Re: [ACS41]Unable to shrink volumes of type QCOW2 >> >> >> >> >> >> >> >> On 02/28/2013 07:39 AM, Marcus Sorensen wrote: >> >>> On Wed, Feb 27, 2013 at 6:58 AM, Wido den Hollander <w...@widodh.nl> >> >> wrote: >> >>>> On 02/27/2013 12:45 PM, Sailaja Mada wrote: >> >>>>> >> >>>>> Hi, >> >>>>> >> >>>>> Out of my curiosity , I tried to resize the volume with shrink >> >>>>> option set to true . It failed to resize volume from 20 GB to 10 >> >>>>> GB . This is with KVM >> >>>>> 6.3 hypervisor. Do we have support this feature with KVM ? >> >>>>> >> >>>>> 2013-02-27 17:01:55,052 DEBUG [cloud.api.ApiServlet] >> >>>>> (catalina-exec-1:null) ===END=== 10.144.7.13 -- GET >> >>>>> command=resizeVolume&id=ff94b87c-973c-4698-9fd2- >> >> 4a1375f5a7c0&shrinko >> >>>>> k=true&diskofferingid=8c61068f-f997-48f5-a8ee-dfe8fd3571f2&size=10 >> >>>>> &r >> >>>>> >> >> >> esponse=json&sessionkey=Ijl3uimE7kcZYn0P%2FK4AEvh%2B3fw%3D&_=136196 >> >> 4 >> >>>>> 737075 >> >>>>> 2013-02-27 17:01:55,054 DEBUG [cloud.async.AsyncJobManagerImpl] >> >>>>> (Job-Executor-66:job-128) Executing >> >>>>> org.apache.cloudstack.api.command.user.volume.ResizeVolumeCmd for >> >>>>> job-128 >> >>>>> 2013-02-27 17:01:55,078 DEBUG [agent.transport.Request] >> >>>>> (Job-Executor-66:job-128) Seq 1-648544436: Sending { Cmd , MgmtId: >> >>>>> 55487956346259, via: 1, Ver: v1, Flags: 100011, >> >>>>> [{"storage.ResizeVolumeCommand":{"path":"d6a5ce3c-ca40-426d-b0bd- >> >> 703 >> >>>>> 567eda58f","pool":{"id":200,"uuid":"17700ab0-df5a-3047-a631-588d93 >> >>>>> dd >> >>>>> 749a","host":"10.102.192.100","path":"/cpg_vol/sailaja/asf41kvmps"," >> >>>>> port":2049,"type":"NetworkFilesystem"},"vmInstance":"none","newSize" >> >>>>> :10737418240,"currentSize":21474836480,"shrinkOk":true,"wait":0}}] >> >>>>> } >> >>>>> 2013-02-27 17:01:55,192 DEBUG [agent.transport.Request] >> >>>>> (AgentManager-Handler-10:null) Seq 1-648544436: Processing: { Ans: >> >>>>> , >> >>>>> MgmtId: 55487956346259, via: 1, Ver: v1, Flags: 10, >> >>>>> [{"storage.ResizeVolumeAnswer":{"newSize":0,"result":false,"details" >> >>>>> :"Unable to shrink volumes of type QCOW2","wait":0}}] } >> >>>>> 2013-02-27 17:01:55,192 DEBUG [agent.transport.Request] >> >>>>> (Job-Executor-66:job-128) Seq 1-648544436: Received: { Ans: , MgmtId: >> >>>>> 55487956346259, via: 1, Ver: v1, Flags: 10, { ResizeVolumeAnswer } >> >>>>> } >> >>>>> 2013-02-27 17:01:55,192 DEBUG [cloud.storage.StorageManagerImpl] >> >>>>> (Job-Executor-66:job-128) Resize: returned 'Unable to shrink >> >>>>> volumes of type QCOW2' >> >>>>> 2013-02-27 17:01:55,201 DEBUG [cloud.async.AsyncJobManagerImpl] >> >>>>> (Job-Executor-66:job-128) Complete async job-128, jobStatus: 2, >> >> resultCode: >> >>>>> 530, result: Error Code: 530 Error text: Failed to resize volume >> >>>>> 2013-02-27 17:01:58,073 DEBUG [cloud.api.ApiServlet] >> >>>>> (catalina-exec-17:null) ===START=== 10.144.7.13 -- GET >> >>>>> command=queryAsyncJobResult&jobId=68fdb060-343c-4a64-8ccd- >> >> ce738da07a >> >>>>> >> >> >> 9b&response=json&sessionkey=Ijl3uimE7kcZYn0P%2FK4AEvh%2B3fw%3D&_=13 >> >> 6 >> >>>>> 1964740184 >> >>>>> 2013-02-27 17:01:58,081 DEBUG [cloud.async.AsyncJobManagerImpl] >> >>>>> (catalina-exec-17:null) Async job-128 completed >> >>>>> 2013-02-27 17:01:58,085 DEBUG [cloud.api.ApiServlet] >> >>>>> (catalina-exec-17:null) ===END=== 10.144.7.13 -- GET >> >>>>> command=queryAsyncJobResult&jobId=68fdb060-343c-4a64-8ccd- >> >> ce738da07a >> >>>>> >> >> >> 9b&response=json&sessionkey=Ijl3uimE7kcZYn0P%2FK4AEvh%2B3fw%3D&_=13 >> >> 6 >> >>>>> 1964740184 >> >>>>> >> >>>>> >> >>>> >> >>>> Checking the code I found this in LibvirtComputingResource: >> >>>> >> >>>> boolean shrinkOk = cmd.getShrinkOk(); >> >>>> >> >>>> } else if (type.equals("QCOW2") && shrinkOk) { >> >>>> return new ResizeVolumeAnswer(cmd, false, "Unable to shrink >> >>>> volumes of type " + type); } >> >>>> >> >>>> Seems like a logical mistake? Shouldn't that be !shrinkOk? >> >>>> >> >>> >> >>> Not a logical mistake. It's saying if you are trying to shrink a >> >>> qcow2 image, it's not supported. >> >>> >> >> >> >> Heh? QCOW2 does support shrinking? So why isn't it allowed then? >> >> >> >> Wido >> >> >> >>>> Wido >> >>>> >> >>>>> Thanks, >> >>>>> Sailaja.M >> >>>>> >> >>>> >> > [] >> >