You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cloudstack.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2016/01/18 18:19:39 UTC

[jira] [Commented] (CLOUDSTACK-9142) Migrate VM changes xmlDesc in an unsafe way

    [ https://issues.apache.org/jira/browse/CLOUDSTACK-9142?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15105543#comment-15105543 ] 

ASF GitHub Bot commented on CLOUDSTACK-9142:
--------------------------------------------

GitHub user DaanHoogland opened a pull request:

    https://github.com/apache/cloudstack/pull/1348

    CLOUDSTACK-9142 Migrate VM changes xmlDesc in a safe way

    The problem arises when the origin hypervisor has an ip addres that ends with 1, like '10.10.10.1' and the VM is having a disk on an NFS share that has that as part of its address, '10.10.10.100' for instance.
    now migrating to '10.10.10.10' will change both addresses in the xml description file for qemu. It is fixed and unit tests are added. I am not sure yet how to integration test this. Regression will probably work so creating a PR now.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/DaanHoogland/cloudstack CLOUDSTACK-9142

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/cloudstack/pull/1348.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #1348
    
----
commit 2df0379d8ca3754fe926c168e304e2ff70f5e204
Author: Daan Hoogland <da...@onecht.net>
Date:   2016-01-18T16:43:43Z

    CLOUDSTACK-9142 Migrate VM changes xmlDesc in a safe way

----


> Migrate VM changes xmlDesc in an unsafe way
> -------------------------------------------
>
>                 Key: CLOUDSTACK-9142
>                 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-9142
>             Project: CloudStack
>          Issue Type: Bug
>      Security Level: Public(Anyone can view this level - this is the default.) 
>          Components: KVM, Management Server
>    Affects Versions: 4.6.0, 4.7.0
>            Reporter: David Amorim Faria
>            Priority: Critical
>
> This issue appears with commit https://github.com/apache/cloudstack/commit/a709f34ff93579981afbd4df0f4334b61ada29a8
> where xmlDesc has some content replaced: {code}
> xmlDesc = dm.getXMLDesc(xmlFlag).replace(libvirtComputingResource.getPrivateIp(), command.getDestinationIp());
> {code}
> This line from LibvirtComputingResource.java was refactored into LibvirtMigrateCommandWrapper.java in commit https://github.com/apache/cloudstack/commit/28e55462f15bdd8699e97b668c4ffc01735a533d
> Example, node1 is 10.0.0.1, node2 is 10.0.0.2, rbd mon_host is 10.0.0.13.
> VM is running on kvm node1 and this happened when migrating a VM from node1 to node2, where the kvm nodes and the RBD mon nodes (mon_host) use IP addresses in the same range, and the mon_host has an ip address that partially matches the ip address (string) of the first kvm node.
> In the process list one can see that the mon_host changes from 10.0.0.13 to 10.0.0.23 in the destination host, blocking the migration after a timeout due to primary storage not being available.
> {code}
> root     25206  1.8  0.0 440184 17188 ?        Sl   13:33   0:00 /usr/libexec/qemu-kvm -name r-74-VM -S -machine pc-i440fx-rhel7.0.0,accel=kvm,usb=off -cpu host,+rdtscp,+pdpe1gb,+dca,+pcid,+pdcm,+xtpr,+tm2,+est,+smx,+vmx,+ds_cpl,+monitor,+dtes64,+pclmuldq,+pbe,+tm,+ht,+ss,+acpi,+ds,+vme -m 256 -realtime mlock=off -smp 1,sockets=1,cores=1,threads=1 -uuid 1a32b655-0acf-424b-8722-9e7f507a3070 -smbios type=1,manufacturer=Apache Software Foundation,product=CloudStack KVM Hypervisor,uuid=1a32b655-0acf-424b-8722-9e7f507a3070 -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/domain-r-74-VM/monitor.sock,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown -boot strict=on -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x6 -drive file=rbd:rbd/15ea00f9-e52e-43cf-9e5e-62188e9da5d2:id=cloudstack:key=XXXXXXXX==:auth_supported=cephx\;none:mon_host=10.0.0.23\:6789,if=none,id=drive-virtio-disk0,format=raw,serial=15ea00f9e52e43cf9e5e,cache=none -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x7,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=2 -drive file=/usr/share/cloudstack-common/vms/systemvm.iso,if=none,id=drive-ide0-1-0,readonly=on,format=raw,cache=none -device ide-cd,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0,bootindex=1 -netdev tap,fd=32,id=hostnet0,vhost=on,vhostfd=33 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=11:11:11:11:11:11,bus=pci.0,addr=0x3,rombar=0,romfile= -netdev tap,fd=34,id=hostnet1,vhost=on,vhostfd=35 -device virtio-net-pci,netdev=hostnet1,id=net1,mac=22:22:22:22:22:22,bus=pci.0,addr=0x4,rombar=0,romfile= -netdev tap,fd=36,id=hostnet2,vhost=on,vhostfd=37 -device virtio-net-pci,netdev=hostnet2,id=net2,mac=33:33:33:33:33:33,bus=pci.0,addr=0x5,rombar=0,romfile= -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -chardev socket,id=charchannel0,path=/var/lib/libvirt/qemu/r-74-VM.agent,server,nowait -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=r-74-VM.vport -device usb-tablet,id=input0 -vnc 10.0.0.2:4,password -vga cirrus -incoming tcp:[::]:49152 -msg timestamp=on
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)