[
https://issues.apache.org/jira/browse/CLOUDSTACK-4571?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13754564#comment-13754564
]
Wei Zhou commented on CLOUDSTACK-4571:
--------------------------------------
In CloudStack, all the attachdisk are added as VIRTIO disk, no matter the
guestOS supports PV or not.
It is fixed in
com.cloud.hypervisor.kvm.resource.LibvirtComputingResource.attachOrDetachDisk(Connect,
boolean, String, KVMPhysicalDisk, int)
diskdef = new DiskDef();
if (attachingPool.getType() == StoragePoolType.RBD) {
diskdef.defNetworkBasedDisk(attachingDisk.getPath(),
attachingPool.getSourceHost(),
attachingPool.getSourcePort(),
attachingPool.getAuthUserName(),
attachingPool.getUuid(), devId,
DiskDef.diskBus.VIRTIO, diskProtocol.RBD);
} else if (attachingDisk.getFormat() ==
PhysicalDiskFormat.QCOW2) {
diskdef.defFileBasedDisk(attachingDisk.getPath(), devId,
DiskDef.diskBus.VIRTIO, DiskDef.diskFmtType.QCOW2);
} else if (attachingDisk.getFormat() == PhysicalDiskFormat.RAW)
{
diskdef.defBlockBasedDisk(attachingDisk.getPath(), devId,
DiskDef.diskBus.VIRTIO);
}
> Data disks attached to Windows 2008 R2 VMs are being attached as virtIO disks
> -----------------------------------------------------------------------------
>
> Key: CLOUDSTACK-4571
> URL: https://issues.apache.org/jira/browse/CLOUDSTACK-4571
> Project: CloudStack
> Issue Type: Bug
> Security Level: Public(Anyone can view this level - this is the
> default.)
> Components: Storage Controller
> Affects Versions: 4.1.0
> Environment: [root@slodev-cnkvm001 ~]# uname -a
> Linux slodev-cnkvm001 2.6.32-358.el6.x86_64 #1 SMP Fri Feb 22 00:31:26 UTC
> 2013 x86_64 x86_64 x86_64 GNU/Linux
> [root@slodev-cnkvm001 ~]# cat /etc/redhat-release
> CentOS release 6.4 (Final)
> Reporter: danny webb
>
> When attaching a data disk on KVM to a Windows 2008 R2 64 bit quest it is
> being attached as a VirtIO disk.
> 6 0 54727 1 20 0 6819540 6202704 poll_s Sl ? 326:22
> /usr/libexec/qemu-kvm -name i-5-465-VM -S -M rhel6.4.0 -enable-kvm -m 6144
> -smp 2,sockets=2,cores=1,threads=1 -uuid 135f41ee-ff3e-39ae-a578-e6961f830b39
> -nodefconfig -nodefaults -chardev
> socket,id=charmonitor,path=/var/lib/libvirt/qemu/i-5-465-VM.monitor,server,nowait
> -mon chardev=charmonitor,id=monitor,mode=control -rtc
> base=localtime,driftfix=slew -no-shutdown -device
> piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -drive
> file=/var/lib/libvirt/images/f06dcafe-18ee-4793-808f-9ff70cf9ccd3,if=none,id=drive-ide0-0-0,format=qcow2,cache=none
> -device
> ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=2
> -drive
> if=none,media=cdrom,id=drive-ide0-1-0,readonly=on,format=raw,cache=none
> -device
> ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0,bootindex=1
> -drive
> file=/var/lib/libvirt/images/528c7665-c93e-4f9b-b7f5-729f350b51a4,if=none,id=drive-virtio-disk1,format=qcow2,cache=none
> -device
> virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=drive-virtio-disk1,id=virtio-disk1
> -netdev tap,fd=24,id=hostnet0 -device
> e1000,netdev=hostnet0,id=net0,mac=06:7a:92:00:05:aa,bus=pci.0,addr=0x3
> -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0
> -device usb-tablet,id=input0 -vnc 0.0.0.0:3 -vga cirrus -device
> virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5
> [root@slodev-cnkvm001 ~]# virsh dumpxml i-5-465-VM
> <domain type='kvm' id='28'>
> <name>i-5-465-VM</name>
> <uuid>135f41ee-ff3e-39ae-a578-e6961f830b39</uuid>
> <description>Windows Server 2008 R2 (64-bit)</description>
> <memory unit='KiB'>6291456</memory>
> <currentMemory unit='KiB'>6291456</currentMemory>
> <vcpu placement='static'>2</vcpu>
> <cputune>
> <shares>4000</shares>
> </cputune>
> <os>
> <type arch='x86_64' machine='rhel6.4.0'>hvm</type>
> <boot dev='cdrom'/>
> <boot dev='hd'/>
> </os>
> <features>
> <acpi/>
> <apic/>
> <pae/>
> </features>
> <clock offset='localtime'>
> <timer name='rtc' tickpolicy='catchup'/>
> </clock>
> <on_poweroff>destroy</on_poweroff>
> <on_reboot>restart</on_reboot>
> <on_crash>destroy</on_crash>
> <devices>
> <emulator>/usr/libexec/qemu-kvm</emulator>
> <disk type='file' device='disk'>
> <driver name='qemu' type='qcow2' cache='none'/>
> <source
> file='/var/lib/libvirt/images/f06dcafe-18ee-4793-808f-9ff70cf9ccd3'/>
> <target dev='hda' bus='ide'/>
> <alias name='ide0-0-0'/>
> <address type='drive' controller='0' bus='0' target='0' unit='0'/>
> </disk>
> <disk type='file' device='cdrom'>
> <driver name='qemu' type='raw' cache='none'/>
> <source
> file='/mnt/dbcfc1ef-40c3-3cd9-9913-08bb0a5b1d7c/211-3-b77d3436-ac76-39e7-8623-2245059d8609.iso'/>
> <target dev='hdc' bus='ide'/>
> <readonly/>
> <alias name='ide0-1-0'/>
> <address type='drive' controller='0' bus='1' target='0' unit='0'/>
> </disk>
> <disk type='file' device='disk'>
> <driver name='qemu' type='qcow2' cache='none'/>
> <source
> file='/var/lib/libvirt/images/528c7665-c93e-4f9b-b7f5-729f350b51a4'/>
> <target dev='vdb' bus='virtio'/>
> <alias name='virtio-disk1'/>
> <address type='pci' domain='0x0000' bus='0x00' slot='0x04'
> function='0x0'/>
> </disk>
> <controller type='usb' index='0'>
> <alias name='usb0'/>
> <address type='pci' domain='0x0000' bus='0x00' slot='0x01'
> function='0x2'/>
> </controller>
> <controller type='ide' index='0'>
> <alias name='ide0'/>
> <address type='pci' domain='0x0000' bus='0x00' slot='0x01'
> function='0x1'/>
> </controller>
> <interface type='bridge'>
> <mac address='06:7a:92:00:05:aa'/>
> <source bridge='brbond0-80'/>
> <target dev='vnet9'/>
> <model type='e1000'/>
> <alias name='net0'/>
> <address type='pci' domain='0x0000' bus='0x00' slot='0x03'
> function='0x0'/>
> </interface>
> <serial type='pty'>
> <source path='/dev/pts/4'/>
> <target port='0'/>
> <alias name='serial0'/>
> </serial>
> <console type='pty' tty='/dev/pts/4'>
> <source path='/dev/pts/4'/>
> <target type='serial' port='0'/>
> <alias name='serial0'/>
> </console>
> <input type='tablet' bus='usb'>
> <alias name='input0'/>
> </input>
> <input type='mouse' bus='ps2'/>
> <graphics type='vnc' port='5903' autoport='yes' listen='0.0.0.0'>
> <listen type='address' address='0.0.0.0'/>
> </graphics>
> <video>
> <model type='cirrus' vram='9216' heads='1'/>
> <alias name='video0'/>
> <address type='pci' domain='0x0000' bus='0x00' slot='0x02'
> function='0x0'/>
> </video>
> <memballoon model='virtio'>
> <alias name='balloon0'/>
> <address type='pci' domain='0x0000' bus='0x00' slot='0x05'
> function='0x0'/>
> </memballoon>
> </devices>
> <seclabel type='none'/>
> </domain>
> This causes the VM to not see the second data disk unless you install the
> virtio drivers for windows.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira