All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH]restore name/uuid uniqueness check
@ 2008-01-23  6:59 Zhigang Wang
  2008-01-23  8:07 ` Keir Fraser
  2008-01-23 13:50 ` what work does analysis_phase( ) do? tgh
  0 siblings, 2 replies; 5+ messages in thread
From: Zhigang Wang @ 2008-01-23  6:59 UTC (permalink / raw)
  To: xen-devel

[-- Attachment #1: Type: text/plain, Size: 2498 bytes --]

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


[-- Attachment #2: restore-name-uuid-uniqueness-check.patch --]
[-- Type: text/x-patch, Size: 720 bytes --]

--- 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:

[-- Attachment #3: Type: text/plain, Size: 138 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2008-01-30  6:34 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-01-23  6:59 [PATCH]restore name/uuid uniqueness check Zhigang Wang
2008-01-23  8:07 ` Keir Fraser
2008-01-23  8:14   ` Keir Fraser
2008-01-30  6:34     ` Zhigang Wang
2008-01-23 13:50 ` what work does analysis_phase( ) do? tgh

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.