On 03/29/2012 09:44 PM, Cole Robinson wrote:
> On 03/27/2012 08:10 PM, Wanlong Gao wrote:
>> On 03/28/2012 06:53 AM, Cole Robinson wrote:
>>
>>> On 03/24/2012 01:13 PM, Wanlong Gao wrote:
>>>> commit f0195e95d5 didn't fix the problem completely,
>>>> we should get the orig_disk's driver_type when setup
>>>> cloning.
>>>>
>>>> Signed-off-by: Wanlong Gao <[email protected]>
>>>> ---
>>>> virtinst/CloneManager.py | 5 +++--
>>>> 1 file changed, 3 insertions(+), 2 deletions(-)
>>>>
>>>> diff --git a/virtinst/CloneManager.py b/virtinst/CloneManager.py
>>>> index ff3c074..dee3c59 100644
>>>> --- a/virtinst/CloneManager.py
>>>> +++ b/virtinst/CloneManager.py
>>>> @@ -499,7 +499,7 @@ class CloneDesign(object):
>>>> xmldisk.path = None
>>>> xmldisk.type = clone_disk.type
>>>> xmldisk.path = clone_disk.path
>>>> - xmldisk.driver_type = clone_disk.driver_type
>>>> + xmldisk.driver_type = orig_disk.driver_type
>>>>
>>>> # Save altered clone xml
>>>> self._clone_xml = self._guest.get_xml_config()
>>>> @@ -553,7 +553,8 @@ class CloneDesign(object):
>>>> device = VirtualDisk.DEVICE_CDROM
>>>>
>>>> d = VirtualDisk(disk.path, conn=self._hyper_conn,
>>>> - device=device, validate=validate)
>>>> + device=device,
>>>> driverType=disk.driver_type,
>>>> + validate=validate)
>>>> d.target = disk.target
>>>> except Exception, e:
>>>> logging.debug("", exc_info=True)
>>>
>>> Hmm, can you give an example invocation where the current code fails? I'm
>>> having trouble understanding the problem.
>>>
>>> Then hopefully we can turn that into a unit test that demonstrates the fix.
>>
>>
>> Sure,
>>
>> After cloning a guest with "qcow2" image, the cloned guest
>> can't boot with the no boot able image error, the issue is
>> that "virt-clone" didn't sync the disk's driver type, below
>> is the description of this issue,
>>
>> [root@gaowanlong ~]# virsh dumpxml 6u1-clone
>> ...
>> <disk type='file' device='disk'>
>> <driver name='qemu' type='qcow2'/>
>> ...
>>
>> [root@gaowanlong ~]# virt-clone -o 6u1-clone -n 6u1-clone-clone -f
>> /work/image/6u1-clone-clone.img --print-xml
>> ...
>> <disk type="file" device="disk">
>> <driver name="qemu" type="raw"/> <-------------not sync the
>> driver type
>> ...
>>
>> Then I sent a patch to sync the "disk driver type", after patch applied,
>> [root@gaowanlong ~]# virt-clone -o 6u1-clone -n 6u1-clone-clone -f
>> /work/image/6u1-clone-clone.img --print-xml
>> ...
>> <disk type="file" device="disk">
>> <driver name="qemu" type="qcow2"/> <-----------here sync the qcow2
>> ...
>>
>
> Hmm, I still can't quite see what the problem is. We already have a unit test
> that is doing close to the same thing AFAICT, and it works correctly.
>
> Can you provide the full virt-clone command to reproduce with --debug output
> attached?
Cole,
I just do like below,
[root@gaowanlong ~]# virt-clone -o 6u1-clone -n 6u1-clone-clone -f
/work/image/6u1-clone-clone.img --debug
[Thu, 29 Mar 2012 21:52:00 virt-clone 26464] DEBUG (cli:220) Launched with
command line:
/usr/bin/virt-clone -o 6u1-clone -n 6u1-clone-clone -f
/work/image/6u1-clone-clone.img --debug
[Thu, 29 Mar 2012 21:52:00 virt-clone 26464] DEBUG (cli:325) Requesting libvirt
URI default
[Thu, 29 Mar 2012 21:52:00 virt-clone 26464] DEBUG (cli:327) Received libvirt
URI qemu:///system
[Thu, 29 Mar 2012 21:52:01 virt-clone 26464] DEBUG (CloneManager:394)
Validating original guest parameters
[Thu, 29 Mar 2012 21:52:01 virt-clone 26464] DEBUG (CloneManager:403) Original
XML:
<domain type='kvm'>
<name>6u1-clone</name>
<uuid>eced4058-57b2-1a50-7e18-b5d6255553a7</uuid>
<memory>3670016</memory>
<currentMemory>3670016</currentMemory>
<vcpu>4</vcpu>
<os>
<type arch='x86_64' machine='pc-0.14'>hvm</type>
<boot dev='hd'/>
</os>
<features>
<acpi/>
<apic/>
<pae/>
</features>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<devices>
<emulator>/usr/bin/qemu-kvm</emulator>
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/work/image/6u1-clone.img'/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x05'
function='0x0'/>
</disk>
<disk type='file' device='cdrom'>
<driver name='qemu' type='raw'/>
<target dev='hdc' bus='ide'/>
<readonly/>
<address type='drive' controller='0' bus='1' unit='0'/>
</disk>
<controller type='ide' index='0'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01'
function='0x1'/>
</controller>
<interface type='network'>
<mac address='52:54:00:10:06:a5'/>
<source network='default'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03'
function='0x0'/>
</interface>
<serial type='pty'>
<target port='0'/>
</serial>
<console type='pty'>
<target type='serial' port='0'/>
</console>
<input type='tablet' bus='usb'/>
<input type='mouse' bus='ps2'/>
<graphics type='vnc' port='5900' autoport='no' listen='192.168.122.1'>
<listen type='address' address='192.168.122.1'/>
</graphics>
<sound model='ich6'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04'
function='0x0'/>
</sound>
<video>
<model type='cirrus' vram='9216' heads='1'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02'
function='0x0'/>
</video>
<memballoon model='virtio'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x06'
function='0x0'/>
</memballoon>
</devices>
</domain>
[Thu, 29 Mar 2012 21:52:01 virt-clone 26464] DEBUG (CloneManager:411) Original
paths: ['/work/image/6u1-clone.img']
[Thu, 29 Mar 2012 21:52:01 virt-clone 26464] DEBUG (CloneManager:412) Original
sizes: [28.03973388671875]
[Thu, 29 Mar 2012 21:52:01 virt-clone 26464] DEBUG (CloneManager:394)
Validating original guest parameters
[Thu, 29 Mar 2012 21:52:01 virt-clone 26464] DEBUG (CloneManager:403) Original
XML:
<domain type='kvm'>
<name>6u1-clone</name>
<uuid>eced4058-57b2-1a50-7e18-b5d6255553a7</uuid>
<memory>3670016</memory>
<currentMemory>3670016</currentMemory>
<vcpu>4</vcpu>
<os>
<type arch='x86_64' machine='pc-0.14'>hvm</type>
<boot dev='hd'/>
</os>
<features>
<acpi/>
<apic/>
<pae/>
</features>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<devices>
<emulator>/usr/bin/qemu-kvm</emulator>
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/work/image/6u1-clone.img'/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x05'
function='0x0'/>
</disk>
<disk type='file' device='cdrom'>
<driver name='qemu' type='raw'/>
<target dev='hdc' bus='ide'/>
<readonly/>
<address type='drive' controller='0' bus='1' unit='0'/>
</disk>
<controller type='ide' index='0'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01'
function='0x1'/>
</controller>
<interface type='network'>
<mac address='52:54:00:10:06:a5'/>
<source network='default'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03'
function='0x0'/>
</interface>
<serial type='pty'>
<target port='0'/>
</serial>
<console type='pty'>
<target type='serial' port='0'/>
</console>
<input type='tablet' bus='usb'/>
<input type='mouse' bus='ps2'/>
<graphics type='vnc' port='5900' autoport='no' listen='192.168.122.1'>
<listen type='address' address='192.168.122.1'/>
</graphics>
<sound model='ich6'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04'
function='0x0'/>
</sound>
<video>
<model type='cirrus' vram='9216' heads='1'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02'
function='0x0'/>
</video>
<memballoon model='virtio'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x06'
function='0x0'/>
</memballoon>
</devices>
</domain>
[Thu, 29 Mar 2012 21:52:01 virt-clone 26464] DEBUG (CloneManager:411) Original
paths: ['/work/image/6u1-clone.img']
[Thu, 29 Mar 2012 21:52:01 virt-clone 26464] DEBUG (CloneManager:412) Original
sizes: [28.03973388671875]
[Thu, 29 Mar 2012 21:52:01 virt-clone 26464] DEBUG (CloneManager:513) Original
guest xml is
<domain type='kvm'>
<name>6u1-clone</name>
<uuid>eced4058-57b2-1a50-7e18-b5d6255553a7</uuid>
<memory>3670016</memory>
<currentMemory>3670016</currentMemory>
<vcpu>4</vcpu>
<os>
<type arch='x86_64' machine='pc-0.14'>hvm</type>
<boot dev='hd'/>
</os>
<features>
<acpi/>
<apic/>
<pae/>
</features>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<devices>
<emulator>/usr/bin/qemu-kvm</emulator>
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/work/image/6u1-clone.img'/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x05'
function='0x0'/>
</disk>
<disk type='file' device='cdrom'>
<driver name='qemu' type='raw'/>
<target dev='hdc' bus='ide'/>
<readonly/>
<address type='drive' controller='0' bus='1' unit='0'/>
</disk>
<controller type='ide' index='0'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01'
function='0x1'/>
</controller>
<interface type='network'>
<mac address='52:54:00:10:06:a5'/>
<source network='default'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03'
function='0x0'/>
</interface>
<serial type='pty'>
<target port='0'/>
</serial>
<console type='pty'>
<target type='serial' port='0'/>
</console>
<input type='tablet' bus='usb'/>
<input type='mouse' bus='ps2'/>
<graphics type='vnc' port='5900' autoport='no' listen='192.168.122.1'>
<listen type='address' address='192.168.122.1'/>
</graphics>
<sound model='ich6'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04'
function='0x0'/>
</sound>
<video>
<model type='cirrus' vram='9216' heads='1'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02'
function='0x0'/>
</video>
<memballoon model='virtio'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x06'
function='0x0'/>
</memballoon>
</devices>
</domain>
[Thu, 29 Mar 2012 21:52:01 virt-clone 26464] DEBUG (CloneManager:429)
Validating clone parameters.
[Thu, 29 Mar 2012 21:52:01 virt-clone 26464] DEBUG (CloneManager:439) Clone
paths: ['/work/image/6u1-clone-clone.img']
[Thu, 29 Mar 2012 21:52:01 virt-clone 26464] DEBUG (CloneManager:516) Clone
guest xml is
<domain type="kvm">
<name>6u1-clone-clone</name>
<uuid>1cbfeeac-06da-0ee7-723e-20af10d48fca</uuid>
<memory>3670016</memory>
<currentMemory>3670016</currentMemory>
<vcpu>4</vcpu>
<os>
<type arch="x86_64" machine="pc-0.14">hvm</type>
<boot dev="hd"/>
</os>
<features>
<acpi/>
<apic/>
<pae/>
</features>
<clock offset="utc"/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<devices>
<emulator>/usr/bin/qemu-kvm</emulator>
<disk type="file" device="disk">
<driver name="qemu" type="raw"/>
<target dev="vda" bus="virtio"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x05"
function="0x0"/>
<source file="/work/image/6u1-clone-clone.img"/>
</disk>
<disk type="file" device="cdrom">
<driver name="qemu" type="raw"/>
<target dev="hdc" bus="ide"/>
<readonly/>
<address type="drive" controller="0" bus="1" unit="0"/>
</disk>
<controller type="ide" index="0">
<address type="pci" domain="0x0000" bus="0x00" slot="0x01"
function="0x1"/>
</controller>
<interface type="network">
<mac address="52:54:00:9f:60:94"/>
<source network="default"/>
<model type="virtio"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x03"
function="0x0"/>
</interface>
<serial type="pty">
<target port="0"/>
</serial>
<console type="pty">
<target type="serial" port="0"/>
</console>
<input type="tablet" bus="usb"/>
<input type="mouse" bus="ps2"/>
<graphics type="vnc" port="5900" autoport="no" listen="192.168.122.1">
<listen type="address" address="192.168.122.1"/>
</graphics>
<sound model="ich6">
<address type="pci" domain="0x0000" bus="0x00" slot="0x04"
function="0x0"/>
</sound>
<video>
<model type="cirrus" vram="9216" heads="1"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x02"
function="0x0"/>
</video>
<memballoon model="virtio">
<address type="pci" domain="0x0000" bus="0x00" slot="0x06"
function="0x0"/>
</memballoon>
</devices>
</domain>
[Thu, 29 Mar 2012 21:52:01 virt-clone 26464] DEBUG (CloneManager:610) Starting
duplicate.
[Thu, 29 Mar 2012 21:52:02 virt-clone 26464] DEBUG (VirtualDisk:1381) Local
Cloning /work/image/6u1-clone.img to /work/image/6u1-clone-clone.img,
sparse=True, block_size=4096
Cloning 6u1-clone.img
| 28 GB 11:53
[Thu, 29 Mar 2012 22:03:55 virt-clone 26464] DEBUG (CloneManager:632)
Duplicating finished.
Clone '6u1-clone-clone' created successfully.
[Thu, 29 Mar 2012 22:03:55 virt-clone 26464] DEBUG (virt-clone:250) end clone
Can you see the issue? The original driver type is "qcow2" but the cloned is
"raw", so
then the cloned guest can't be boot now, clear for you ?
Thanks,
Wanlong Gao
>
> Thanks,
> Cole
>
_______________________________________________
virt-tools-list mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/virt-tools-list