On one of my xen hosts a virtual machine does not start at boot. I can
see that xendomains gives an error:
service xendomains start
Starting auto Xen domains: fszeleNo handlers could be found for logger
"xend"
Error: Disk isn't accessible
No handlers could be found for logger "xend"
Error: Disk isn't accessible
An error occured while creating domain fszele: Usage: xm create
<ConfigFile> [options] [vars]
Create a domain based on <ConfigFile>.
Options:
-h, --help Print this help.
--help_config Print the available configuration variables (vars)
for the configuration script.
-q, --quiet Quiet.
--path=PATH Search path for configuration scripts. The value of
PATH is a colon-separated directory list.
-f=FILE, --defconfig=FILE
Use the given Python configuration script.The
configuration script is loaded after arguments have
been processed. Each command-line option sets a
configuration variable named after its long option
name, and these variables are placed in the
environment of the script before it is loaded.
Variables for options that may be repeated have list
values. Other variables can be set using VAR=VAL on
the command line. After the script is loaded, option
values that were not set on the command line are
replaced by the values set in the script.
-F=FILE, --config=FILE
Domain configuration to use (SXP).
SXP is the underlying configuration format used by
Xen.
SXP configurations can be hand-written or generated
from Python configuration scripts, using the -n
(dryrun) option to print the configuration.
-n, --dryrun Dry run - prints the resulting configuration in SXP
but does not create the domain.
-p, --paused Leave the domain paused after it is created.
-c, --console_autoconnect
Connect to the console after the domain is created.
!
[failed] [FAILED]
The actual command executed turns out to be:
XMC=`xm create --quiet --defconfig $dom`
where dom=/etc/xen/auto/fszele
If I issue the command from the command line, the dom starts as
expected. After some debugging on /etc/init.d/xendomains it turns out to
work if I change this line:
diff xendomains*
283c283
< XMC=$(xm create --quiet --defconfig $dom)
---> XMC=`xm create --quiet --defconfig $dom`
or
diff xendomains*
283c283
< XMC=`echo debug;xm create --quiet --defconfig $dom`
---> XMC=`xm create --quiet --defconfig $dom`
So I fixed the problem using $() instead of back-ticks, but I like to
understand what can be the root cause of this problem. It seems to
happen on only one of my hosts.
cat /etc/redhat-release
CentOS release 5.6 (Final)
rpm -qf xendomains
xen-3.0.3-120.el5_6.3
uname -a
Linux xenzele.greenpeak.com 2.6.18-238.19.1.el5xen #1 SMP Fri Jul 15
08:16:59 EDT 2011 x86_64 x86_64 x86_64 GNU/Linux
Theo