[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH]restore name/uuid uniqueness check
hi all, currently, if I restore a vm when the vm is running, it will cause two running vms with the same name/uuid (the second vm is not functional due to disk image in use). # xm create OVM_EL5U1_X86_64_PVM_4GB # xm list Name ID Mem VCPUs State Time(s) Domain-0 0 543 2 r----- 400.1 OVM_EL5U1_X86_64_PVM_4GB 3 128 1 -b---- 14.2 # xm save 3 /tmp/s1 # xm create OVM_EL5U1_X86_64_PVM_4GB # xm restore /tmp/s1 # xm list Name ID Mem VCPUs State Time(s) Domain-0 0 543 2 r----- 411.6 OVM_EL5U1_X86_64_PVM_4GB 4 128 1 -b---- 15.3 OVM_EL5U1_X86_64_PVM_4GB 5 128 1 -b---- 0.7 # xm log --snip-- [2008-01-23 05:13:57 2502] DEBUG (DevController:603) hotplugStatusCallback 5. [2008-01-23 05:13:57 2502] ERROR (XendCheckpoint:286) Device 768 (vbd) could not be connected. File /share/vm/OVM_EL5U1_X86_64_PVM_4GB/system.img is loopback-mounted through /dev/loop0, which is mounted in a guest domain, and so cannot be mounted now. Traceback (most recent call last): File "/usr/lib/python2.4/site-packages/xen/xend/XendCheckpoint.py", line 284, in restore dominfo.waitForDevices() # Wait for backends to set up File "/usr/lib/python2.4/site-packages/xen/xend/XendDomainInfo.py", line 565, in waitForDevices self.getDeviceController(devclass).waitForDevices() File "/usr/lib/python2.4/site-packages/xen/xend/server/DevController.py", line 151, in waitForDevices return map(self.waitForDevice, self.deviceIDs()) File "/usr/lib/python2.4/site-packages/xen/xend/server/DevController.py", line 186, in waitForDevice raise VmError("Device %s (%s) could not be connected.\n%s" % VmError: Device 768 (vbd) could not be connected. File /share/vm/OVM_EL5U1_X86_64_PVM_4GB/system.img is loopback-mounted through /dev/loop0, which is mounted in a guest domain, and so cannot be mounted now. --snip-- if set the disk emulation mode to 'w!', both vms will be functional, but the filesystem will crash soon. local live migration has this issue two. this patch makes name/uuid uniqueness check when restore. but it will disable local migration. please give some advice on resolving this problem while don't break local migration. if cannot find one, I prefer disable local migration. thanks, zhigang --- xen-3.1.2.orig/tools/python/xen/xend/XendCheckpoint.py 2008-01-15 19:19:14.000000000 +0800 +++ xen-3.1.2/tools/python/xen/xend/XendCheckpoint.py 2008-01-22 13:27:21.000000000 +0800 @@ -170,6 +170,13 @@ def restore(xd, fd, dominfo = None, paus vmconfig = p.get_val() + domconfig = XendConfig(sxp_obj = vmconfig) + othervm = xd.domain_lookup_nr(domconfig["name_label"]) + if othervm is None or othervm.domid is None: + othervm = xd.domain_lookup_nr(domconfig["uuid"]) + if othervm is not None and othervm.domid is not None: + raise VmError("Domain '%s' already exists with ID '%d'" % (domconfig["name_label"], othervm.domid)) + if dominfo: dominfo.resume() else: _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |