cloudstack-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Wido den Hollander <w...@widodh.nl>
Subject Re: [ACS41]Unable to shrink volumes of type QCOW2
Date Thu, 28 Feb 2013 10:03:30 GMT


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:wido@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 <wido@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-588d93dd
>>>>> 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
>>>>>
>>>>
> []
>

Mime
View raw message