Wei - is this issue fixed on 4.5/master? On 11-May-2015, at 12:32 pm, Wei ZHOU <ustcweiz...@gmail.com<mailto:ustcweiz...@gmail.com>> wrote:
Hi Mike, Please apply the following patch to cloudstack, and copy the file agent/bindir/libvirtqemuhook.in to repace /etc/libvirt/hooks/qemu on your hosts --start------------ diff --git a/agent/bindir/libvirtqemuhook.in b/agent/bindir/ libvirtqemuhook.in index 7bf9634..a895280 100755 --- a/agent/bindir/libvirtqemuhook.in +++ b/agent/bindir/libvirtqemuhook.in @@ -16,6 +16,7 @@ # specific language governing permissions and limitations # under the License. import sys +import re from xml.dom.minidom import parse from cloudutils.configFileOps import configFileOps from cloudutils.networkConfig import networkConfig @@ -24,21 +25,29 @@ def isOldStyleBridge(brName): return True else: return False +def isNewStyleBridge(brName): + if re.match(r"br(\w+)-(\d+)", brName) == None: + return False + else: + return True def getGuestNetworkDevice(): netlib = networkConfig() cfo = configFileOps("/etc/cloudstack/agent/agent.properties") guestDev = cfo.getEntry("guest.network.device") enslavedDev = netlib.getEnslavedDev(guestDev, 1) - return enslavedDev + return enslavedDev.split(".")[0] def handleMigrateBegin(): try: domain = parse(sys.stdin) for interface in domain.getElementsByTagName("interface"): source = interface.getElementsByTagName("source")[0] bridge = source.getAttribute("bridge") - if not isOldStyleBridge(bridge): + if isOldStyleBridge(bridge): + vlanId = bridge.replace("cloudVirBr","") + elif isNewStyleBridge(bridge): + vlanId = re.sub(r"br(\w+)-","",bridge) + else: continue - vlanId = bridge.replace("cloudVirBr","") phyDev = getGuestNetworkDevice() newBrName="br" + phyDev + "-" + vlanId source.setAttribute("bridge", newBrName) -----end------------- Kind regards, Wei 2015-05-10 7:35 GMT+02:00 Mike C <mcrosson_cloudst...@nusku.net<mailto:mcrosson_cloudst...@nusku.net>>: On 2015-05-08 20:07, Marcus wrote: Can you confirm that those bridges and bond devices exist prior to attempting migration, and that the VMs are attached to them and work? Perhaps a 'brctl show' and 'virsh dumpxml'. Those look like they should be cloudstack-generated guest network bridges and libvirt is complaining they don't exist Everything as far as I can tell is working minus this migration. I have a few virtual routers running on this machine and VMs, each environment running on the box seems to be doing working just fine. The base mgmtbr0, cloudbr0, cloudbr1 all come up at boot prior to CloudStack and are working. Command output is below. Also: the router seems to have been restarted and was allocated on the machine I was trying to migrate it to. Trying to migrate it back resulted in the same error message. -- Mike # brctl show bridge name bridge id STP enabled interfaces breth0-1209 8000.6805ca095d7f no eth0.1209 breth0-1221 8000.6805ca095d7f no eth0.1221 vnet0 vnet3 cloud0 8000.fe00a9fe0380 no vnet1 cloudbr0 8000.6805ca095d7f no eth0.1100 vnet2 cloudbr1 8000.6805ca095d7f no eth0.1200 mgmtbr0 8000.002564b522ef no eth1 virbr0 8000.000000000000 yes # virsh dumpxml r-93-XML <domain type='kvm' id='18'> <name>r-93-VM</name> <uuid>5269e919-564a-4986-92c1-07464e99e3ce</uuid> <description>Debian GNU/Linux 7(64-bit)</description> <memory unit='KiB'>262144</memory> <currentMemory unit='KiB'>262144</currentMemory> <vcpu placement='static'>1</vcpu> <cputune> <shares>500</shares> </cputune> <resource> <partition>/machine</partition> </resource> <os> <type arch='x86_64' machine='pc-i440fx-trusty'>hvm</type> <boot dev='cdrom'/> <boot dev='hd'/> </os> <features> <acpi/> <apic/> <pae/> </features> <cpu> </cpu> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>destroy</on_crash> <devices> <emulator>/usr/bin/kvm-spice</emulator> <disk type='file' device='disk'> <driver name='qemu' type='qcow2' cache='none'/> <source file='/mnt/d5174632-721e-39ed-b93b-462539f63c77/c1b45654-5e74-420e-bf91-5beb745546f8'/> <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='/usr/share/cloudstack-common/vms/systemvm.iso'/> <target dev='hdc' bus='ide'/> <readonly/> <alias name='ide0-1-0'/> <address type='drive' controller='0' bus='1' target='0' unit='0'/> </disk> <controller type='usb' index='0'> <alias name='usb0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/> </controller> <controller type='pci' index='0' model='pci-root'> <alias name='pci.0'/> </controller> <controller type='ide' index='0'> <alias name='ide0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/> </controller> <controller type='virtio-serial' index='0'> <alias name='virtio-serial0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/> </controller> <interface type='bridge'> <mac address='02:00:6b:5b:00:03'/> <source bridge='breth0-1221'/> <bandwidth> <inbound average='25600' peak='25600'/> <outbound average='25600' peak='25600'/> </bandwidth> <target dev='vnet0'/> <model type='e1000'/> <alias name='net0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </interface> <interface type='bridge'> <mac address='0e:00:a9:fe:03:80'/> <source bridge='cloud0'/> <target dev='vnet1'/> <model type='e1000'/> <alias name='net1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> </interface> <interface type='bridge'> <mac address='06:13:ca:00:00:36'/> <source bridge='cloudbr0'/> <bandwidth> <inbound average='25600' peak='25600'/> <outbound average='25600' peak='25600'/> </bandwidth> <target dev='vnet2'/> <model type='e1000'/> <alias name='net2'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/> </interface> <serial type='pty'> <source path='/dev/pts/0'/> <target port='0'/> <alias name='serial0'/> </serial> <console type='pty' tty='/dev/pts/0'> <source path='/dev/pts/0'/> <target type='serial' port='0'/> <alias name='serial0'/> </console> <channel type='unix'> <source mode='bind' path='/var/lib/libvirt/qemu/r-93-VM.agent'/> <target type='virtio' name='r-93-VM.vport'/> <alias name='channel0'/> <address type='virtio-serial' controller='0' bus='0' port='1'/> </channel> <input type='tablet' bus='usb'> <alias name='input0'/> </input> <input type='mouse' bus='ps2'/> <input type='keyboard' bus='ps2'/> <graphics type='vnc' port='5900' autoport='yes' listen='172.16.16.31'> <listen type='address' address='172.16.16.31'/> </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='none'> <alias name='balloon0'/> </memballoon> </devices> <seclabel type='none'/> </domain> Regards, Rohit Yadav Software Architect, ShapeBlue [cid:9DD97B41-04C5-45F0-92A7-951F3E962F7A] M. +91 88 262 30892 | rohit.ya...@shapeblue.com<mailto:rohit.ya...@shapeblue.com> Blog: bhaisaab.org<http://bhaisaab.org> | Twitter: @_bhaisaab Find out more about ShapeBlue and our range of CloudStack related services IaaS Cloud Design & Build<http://shapeblue.com/iaas-cloud-design-and-build//> CSForge - rapid IaaS deployment framework<http://shapeblue.com/csforge/> CloudStack Consulting<http://shapeblue.com/cloudstack-consultancy/> CloudStack Software Engineering<http://shapeblue.com/cloudstack-software-engineering/> CloudStack Infrastructure Support<http://shapeblue.com/cloudstack-infrastructure-support/> CloudStack Bootcamp Training Courses<http://shapeblue.com/cloudstack-training/> This email and any attachments to it may be confidential and are intended solely for the use of the individual to whom it is addressed. Any views or opinions expressed are solely those of the author and do not necessarily represent those of Shape Blue Ltd or related companies. If you are not the intended recipient of this email, you must neither take any action based upon its contents, nor copy or show it to anyone. Please contact the sender if you believe you have received this email in error. Shape Blue Ltd is a company incorporated in England & Wales. ShapeBlue Services India LLP is a company incorporated in India and is operated under license from Shape Blue Ltd. Shape Blue Brasil Consultoria Ltda is a company incorporated in Brasil and is operated under license from Shape Blue Ltd. ShapeBlue SA Pty Ltd is a company registered by The Republic of South Africa and is traded under license from Shape Blue Ltd. ShapeBlue is a registered trademark.