[rhelv6-list] qemu-img has no scsi support anymore?

Robin Price II rprice at redhat.com
Tue Oct 18 18:52:36 UTC 2011


On 10/18/2011 11:32 AM, Rainer Traut wrote:
> Hi,
>
> I'm trying to conevrt an old Vmware Server 2.0 vm with W2k Server to kvm.
> I converted from vmdk to raw, changed controller to scsi and hit this:
> https://bugzilla.redhat.com/show_bug.cgi?id=621933
>
> What are my options with this vm?
> Do I have to reinstall vmware server somewhere to change the disc
> controller in the vm?
> Is this even possible to change in w2k boot device driver?
>
> Thx
> Rainer
>
> _______________________________________________
> rhelv6-list mailing list
> rhelv6-list at redhat.com
> https://www.redhat.com/mailman/listinfo/rhelv6-list

Rainer,

Hope this helps.

http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Virtualization/chap-Virtualization-Virtualization_limitations.html#sect-Virtualization-Virtualization_limitations-KVM_limitations

Virtualized SCSI devices
     SCSI emulation is not supported with KVM in Red Hat Enterprise Linux.
Virtualized IDE devices
     KVM is limited to a maximum of four virtualized (emulated) IDE 
devices per guest.

Will this be supported in the future?  Not sure.  SCSI emulation, at the 
moment, is not looking to be supported and is very buggy upstream as well.

However, I don't think qemu-img can convert any vmdk image to a KVM 
image.  I ran into something very similar recently.  I had to use the 
'vmware-vdiskmanager' tool provided from VMware.

The <vm_name>-flat.vmdk files store the content of the virtual machines 
actual hard disk drives. Earlier versions of ESX used the extension .dsk 
for the virtual disk files. The <vm_name>.vmdk files are the disk 
descriptor files. This file contains all the information about the 
associated flat file. The files tell you the CID of the file, the parent 
CID of the file, and the type and size of the file amongst other things.

You can get this tool from:
http://communities.vmware.com/community/vmtn/developer/forums/vddk

Example:

[rprice at x200 rhel_vm]$ tar xvf rhel.ova
rhel.ovf
rhel-disk1.vmdk
rhel.mf
[rprice at x200 rhel_vm]$ file rhel.mf
rhel.mf: ASCII text, with CRLF line terminators
[rprice at x200 rhel_vm]$ vmware-vdiskmanager -r rhel-disk1.vmdk -t 2 raw.vmdk
Creating disk 'raw.vmdk'
   Convert: 100% done.
Virtual disk conversion successful.
[rprice at x200 rhel_vm]$ qemu-img info raw-flat.vmdk
image: raw-flat.vmdk
file format: raw
virtual size: 8.0G (8589934592 bytes)
disk size: 8.0G

As you can see, there is no way for qemu-img to convert a VMWare image 
that is the original .vmdk.  You have to convert that to a file that is 
compatible with qemu-img.

Flat files are used by VMware if you create a virtual disk (vmdk) with 
the “Allocate all disk space now” option (you have this option when 
creating disks for use with VMware).

 From there, I did do:

$ qemu-img convert -O qcow2 raw-flat.vmdk new.qemu

[rprice at x200 rhel_vm]$ sudo /usr/libexec/qemu-kvm new.qemu
Using CPU model "cpu64-rhel6"
VNC server running on `::1:5900'

I loaded tigervnc and connected to 'localhost:5900' and was able to boot 
the guest just fine.

I am not sure how to change the disc controller in the VM.  Maybe you 
can add the "new.qemu" to your 'virt-manager' and change the details 
from there.

In any case, I hope some of this information helps you reach your end 
goal.  If any one else has any experience with this, please let us know, 
I'd love to hear other solutions to this.

Also, if you have VMWare ESX guests that need to convert over to KVM, 
look into 'virt-v2v'

http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Virtualization_for_Desktops/2.2/html/Administration_Guide/virt-v2v-scripts.html

"On successful completion, virt-v2v will create a new libvirt domain for 
the converted guest with the same name as the original guest. It can be 
started as usual using libvirt tools, for example virt-manager or qemu-kvm.

Please note:
During post-conversion tasks, virt-v2v cannot currently reconfigure a 
guest’s network configuration. If the converted guest is not connected 
to the same subnet as the source, its network configuration may have to 
be updated.

As well as configuring libvirt appropriately, virt-v2v will make certain 
changes to a guest to enable it support running under a KVM host either 
with or without virtio driver. These changes are guest OS specific."

Example:

# virt-v2v -ic esx://esx.example.com/ -o libvirt -os <storage_pool_name> 
--network default new-vm-name

To know what your storage_pool_name is, use:

# virsh pool-list --all

Name                 State      Autostart
-----------------------------------------
default              active     yes


Good luck.

~rp


-- 
+-----------------------------[ robin at redhat.com ]----+
| Robin Price II - RHCE,RHCVA                         |
| Technical Account Manager                           |
| Red Hat, Inc.                                       |
| w: +1 (919) 754 4412                                |
| c: +1 (252) 474 3525                                |
|                                                     |
+---------[ Dissenters will inevitably abhor. ]-------+




More information about the rhelv6-list mailing list