Hi, every one:
I had problem creating domU on diskless device by
using xen-unstable. Following, please find out
details. BTW, the same configuration works fine on
device with hard disk
(1) Xen, dom0 kernel and dom0 root file system are
loaded/mounted over via eth0
(2) DomU root file system is created in a file-backed
virtual block device(VBD). The file-backed VBD locates
at some directory on NFS root of dom0.
(3) Since Xen network bridge script called when
starting xend corrupts eth0 connection, network bridge
is disabled by commenting it out from
/etc/xen/xend-config.sxp in order to maintain NFS
link. Uncomment network route.
(4) Error message 'Error creating domain: argument 1
must be string, not None' is observed when trying to
create domU.
(5) xend.log:
[2005-11-09 16:05:02 xend] INFO (SrvDaemon:268) Xend
Daemon started
[2005-11-09 16:05:02 xend] INFO (SrvDaemon:272) Xend
changeset: Mon Oct 31 16:14:59 2005 +0100
7583:6be0d21bb863.
[2005-11-09 16:05:02 xend] DEBUG (xswatch:27) Jean:
path = @releaseDomain
[2005-11-09 16:05:02 xend.XendDomainInfo] DEBUG
(XendDomainInfo:168)
XendDomainInfo.recreate({'paused': 0, 'cpu_time':
14565014309814L, 'ssidref': 0, 'handle': [0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
'shutdown_reason': 0, 'dying': 0, 'dom': 0, 'mem_kb':
1043456, 'maxmem_kb': 17179869180, 'max_vcpu_id': 3,
'crashed': 0, 'running': 1, 'shutdown': 0,
'online_vcpus': 4, 'blocked': 0})
[2005-11-09 16:05:02 xend.XendDomainInfo] INFO
(XendDomainInfo:180) Recreating domain 0, UUID
00000000-0000-0000-0000-000000000000.
[2005-11-09 16:05:05 xend] DEBUG (XendDomain:140)
number of vcpus to use is 0
[2005-11-09 16:05:05 xend] INFO (SrvServer:112) unix
path=/var/lib/xend/xend-socket
[2005-11-09 16:06:15 xend.XendDomainInfo] DEBUG
(XendDomainInfo:147) XendDomainInfo.create(['vm',
['name', 'goodluck'], ['memory', '512'], ['cpu',
'-1'], ['image', ['linux', ['kernel',
'/boot/vmlinuz-2.6.12-xenU'], ['ip',
'10.4.128.200:1.2.3.4::255.255.128.0:goodluck:eth0:off'],
['root', '/dev/sda1 ro'], ['args', '3'], ['vcpus',
'1'], ['vcpus', '1'], ['boot', 'c'], ['display',
'localhost:0']]], ['device', ['vbd', ['uname',
'file:/xen/goodluck/vm1disk'], ['dev', 'sda1'],
['mode', 'w']]], ['device', ['vif', ['mac',
'aa:bb:cc:dd:ee:12']]]])
[2005-11-09 16:06:15 xend.XendDomainInfo] DEBUG
(XendDomainInfo:250) parseConfig: config is ['vm',
['name', 'goodluck'], ['memory', '512'], ['cpu',
'-1'], ['image', ['linux', ['kernel',
'/boot/vmlinuz-2.6.12-xenU'], ['ip',
'10.4.128.200:1.2.3.4::255.255.128.0:goodluck:eth0:off'],
['root', '/dev/sda1 ro'], ['args', '3'], ['vcpus',
'1'], ['vcpus', '1'], ['boot', 'c'], ['display',
'localhost:0']]], ['device', ['vbd', ['uname',
'file:/xen/goodluck/vm1disk'], ['dev', 'sda1'],
['mode', 'w']]], ['device', ['vif', ['mac',
'aa:bb:cc:dd:ee:12']]]]
[2005-11-09 16:06:15 xend.XendDomainInfo] DEBUG
(XendDomainInfo:308) parseConfig: result is
{'ssidref': None, 'name': 'goodluck', 'on_reboot':
None, 'maxmem': None, 'on_poweroff': None, 'mem_kb':
None, 'maxmem_kb': None, 'on_crash': None, 'backend':
[], 'vcpus': 1, 'cpu_weight': None, 'vcpu_avail':
None, 'memory': 512, 'device': [('vbd', ['vbd',
['uname', 'file:/xen/goodluck/vm1disk'], ['dev',
'sda1'], ['mode', 'w']]), ('vif', ['vif', ['mac',
'aa:bb:cc:dd:ee:12']])], 'bootloader': None, 'image':
['linux', ['kernel', '/boot/vmlinuz-2.6.12-xenU'],
['ip',
'10.4.128.200:1.2.3.4::255.255.128.0:goodluck:eth0:off'],
['root', '/dev/sda1 ro'], ['args', '3'], ['vcpus',
'1'], ['vcpus', '1'], ['boot', 'c'], ['display',
'localhost:0']], 'cpu': -1, 'uuid': None}
[2005-11-09 16:06:15 xend.XendDomainInfo] DEBUG
(XendDomainInfo:1047) XendDomainInfo.construct: None 0
[2005-11-09 16:06:16 xend.XendDomainInfo] DEBUG
(XendDomainInfo:1077) XendDomainInfo.initDomain: 17
524288 1.0
[2005-11-09 16:06:16 xend] INFO (image:131)
buildDomain os=linux dom=17 vcpus=1
[2005-11-09 16:06:16 xend] DEBUG (image:169) dom
= 17
[2005-11-09 16:06:16 xend] DEBUG (image:170) image
= /boot/vmlinuz-2.6.12-xenU
[2005-11-09 16:06:16 xend] DEBUG (image:171)
store_evtchn = 1
[2005-11-09 16:06:16 xend] DEBUG (image:172)
console_evtchn = 2
[2005-11-09 16:06:16 xend] DEBUG (image:173) cmdline
=
ip=10.4.128.200:1.2.3.4::255.255.128.0:goodluck:eth0:off
root=/dev/sda1 ro 3
[2005-11-09 16:06:16 xend] DEBUG (image:174) ramdisk
=
[2005-11-09 16:06:16 xend] DEBUG (image:175) vcpus
= 1
[2005-11-09 16:06:16 xend] DEBUG (DevController:256)
DevController: writing {'virtual-device': '2049',
'backend-id': '0', 'backend':
'/local/domain/0/backend/vbd/17/2049'} to
/local/domain/17/device/vbd/2049.
[2005-11-09 16:06:16 xend] DEBUG (DevController:258)
DevController: writing {'domain': 'goodluck',
'params': '/xen/goodluck/vm1disk', 'frontend-id':
'17', 'type': 'file', 'dev': 'sda1', 'frontend':
'/local/domain/17/device/vbd/2049'} to
/local/domain/0/backend/vbd/17/2049.
[2005-11-09 16:06:17 xend] DEBUG (xswatch:27) Jean:
path = None
[2005-11-09 16:06:17 xend.XendDomainInfo] ERROR
(XendDomainInfo:158) Domain construction failed
Traceback (most recent call last):
File "/usr/lib/python/xen/xend/XendDomainInfo.py",
line 152, in create
vm.initDomain()
File "/usr/lib/python/xen/xend/XendDomainInfo.py",
line 1109, in initDomain
self.createDevices()
File "/usr/lib/python/xen/xend/XendDomainInfo.py",
line 1222, in createDevices
self.createDevice(n, c)
File "/usr/lib/python/xen/xend/XendDomainInfo.py",
line 893, in createDevice
return
self.getDeviceController(deviceClass).createDevice(devconfig)
File
"/usr/lib/python/xen/xend/server/DevController.py",
line 63, in createDevice
status, fn_ret = self.waitForBackend(devid)
File
"/usr/lib/python/xen/xend/server/DevController.py",
line 277, in waitForBackend
watch = xswatch(backpath, hotplugStatus)
File "/usr/lib/python/xen/xend/xenstore/xswatch.py",
line 28, in __init__
xswatch.xs.watch(path, self)
TypeError: argument 1 must be string, not None
[2005-11-09 16:06:17 xend.XendDomainInfo] DEBUG
(XendDomainInfo:1156) XendDomainInfo.destroy: domid=17
[2005-11-09 16:06:17 xend.XendDomainInfo] DEBUG
(XendDomainInfo:1164) XendDomainInfo.destroyDomain(17)
[2005-11-09 16:06:18 xend] ERROR (SrvBase:87) Request
create failed.
Traceback (most recent call last):
File "/usr/lib/python/xen/web/SrvBase.py", line 85,
in perform
return op_method(op, req)
File
"/usr/lib/python/xen/xend/server/SrvDomainDir.py",
line 82, in op_create
raise XendError("Error creating domain: " +
str(ex))
XendError: Error creating domain: argument 1 must be
string, not None
(6) xend-debug.log
Traceback (most recent call last):
File
"/usr/lib/python/xen/xend/server/SrvDomainDir.py",
line 77, in op_create
dominfo = self.xd.domain_create(config)
File "/usr/lib/python/xen/xend/XendDomain.py", line
215, in domain_create
dominfo = XendDomainInfo.create(config)
File "/usr/lib/python/xen/xend/XendDomainInfo.py",
line 152, in create
vm.initDomain()
File "/usr/lib/python/xen/xend/XendDomainInfo.py",
line 1109, in initDomain
self.createDevices()
File "/usr/lib/python/xen/xend/XendDomainInfo.py",
line 1222, in createDevices
self.createDevice(n, c)
File "/usr/lib/python/xen/xend/XendDomainInfo.py",
line 893, in createDevice
return
self.getDeviceController(deviceClass).createDevice(devconfig)
File
"/usr/lib/python/xen/xend/server/DevController.py",
line 63, in createDevice
status, fn_ret = self.waitForBackend(devid)
File
"/usr/lib/python/xen/xend/server/DevController.py",
line 277, in waitForBackend
watch = xswatch(backpath, hotplugStatus)
File "/usr/lib/python/xen/xend/xenstore/xswatch.py",
line 28, in __init__
xswatch.xs.watch(path, self)
TypeError: argument 1 must be string, not None
(7) domU configurations:
#----------------------------------------------------------------------------
# Kernel image file.
kernel = "/boot/vmlinuz-2.6.12-xenU"
# Optional ramdisk.
#ramdisk = "/boot/initrd.gz"
# The domain build function. Default is 'linux'.
#builder='linux'
# Initial memory allocation (in megabytes) for the new
domain.
memory = 512
# A name for your domain. All domains must have
different names.
name = "goodluck"
# Which CPU to start domain on?
cpu = -1 # leave to Xen to pick
#----------------------------------------------------------------------------
# Define network interfaces.
# Number of network interfaces. Default is 1.
nics=1
# Optionally define mac and/or bridge for the network
interfaces.
# Random MACs are assigned if not given.
vif = [ 'mac=aa:bb:cc:dd:ee:12' ]
#----------------------------------------------------------------------------
# Define the disk devices you want the domain to have
access to, and
# what you want them accessible as.
# Each disk entry is of the form phy:UNAME,DEV,MODE
# where UNAME is the device, DEV is the device name
the domain will see,
# and MODE is r for read-only, w for read-write.
disk = [ 'file:/xen/goodluck/vm1disk,sda1,w' ]
#----------------------------------------------------------------------------
# Set the kernel command line for the new domain.
# You only need to define the IP parameters and
hostname if the domain's
# IP config doesn't, e.g. in ifcfg-eth0 or via DHCP.
# You can use 'extra' to set the runlevel and custom
environment
# variables used by custom rc scripts (e.g. VMID=,
usr= ).
# Set if you want dhcp to allocate the IP address.
#dhcp="dhcp"
# Set netmask.
ip="10.4.128.200"
netmask="255.255.128.0"
# Set default gateway.
#gateway=
# Set the hostname.
hostname= "goodluck"
# Set root device.
root = "/dev/sda1 ro"
# Root device for nfs.
#root = "/dev/nfs"
# The nfs server.
#nfs_server = '10.4.128.1'
# Root directory on the nfs server.
#nfs_root = '/mnt/xengoodluck'
# Sets runlevel 4.
extra = "3"
#----------------------------------------------------------------------------
# Set according to whether you want the domain
restarted when it exits.
# The default is 'onreboot', which restarts the domain
when it shuts down
# with exit code reboot.
# Other values are 'always', and 'never'.
#restart = 'onreboot'
Many many thanks for any kind help.
Best Regards
Jean
__________________________________
Yahoo! Mail - PC Magazine Editors' Choice 2005
http://mail.yahoo.com
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|