[one-users] Failure to launch Xen VM
Steven Timm
timm at fnal.gov
Tue Jan 18 14:08:14 PST 2011
It's obvious once you figure it out.
When you install a xen kernel on top of a running KVM VM, it
thinks you are on the xen dom0 and configures grub accordingly,
i.e. to boot a hypervisor xen.gz instead of just the paravirtualized
xen kernel.
Once grub is configured directly for a xen client and
an appropriate ramdisk is found that seeks sda via the xen_blk device
and not the real hardware sda, all is well.
Steve
On Tue, 18 Jan 2011, Steven Timm wrote:
> Now getting
>
> [root at fcl010 xen]# xm create -c test
> Using config file "./test".
> Error: (2, 'Invalid kernel', "elf_xen_note_check: ERROR: Not a Xen-ELF image:
> No ELF notes or '__xen_guest' section found.\n")
>
> Any idea what might be happening here?
>
> Steve
>
>
> On Tue, 18 Jan 2011, Steven Timm wrote:
>
>> The error of "ELF image has no shstrtab" happens
>> when you try to get paravirtualized xen to boot a non-Xen kernel
>> which was the default kernel in grub.conf.
>> Now trying to figure out what is wrong with the vmlinuz/initrd
>> combo of my actual Xen kernel.
>>
>> Steve
>>
>>
>> On Tue, 18 Jan 2011, Steven Timm wrote:
>>
>>> Now I get the following error:
>>>
>>> Tue Jan 18 15:08:35 2011 [VMM][I]: Command execution fail:
>>> /tmp/one/vmm/xen/deploy /var/lib/one/258/images/deployment.0
>>> Tue Jan 18 15:08:35 2011 [VMM][I]: STDERR follows.
>>> Tue Jan 18 15:08:35 2011 [VMM][I]: Warning: No xauth data; using fake
>>> authentication data for X11 forwarding.
>>> Tue Jan 18 15:08:35 2011 [VMM][I]: Error: (2, 'Invalid kernel',
>>> 'xc_dom_parse_elf_kernel: ELF image has no shstrtab\n')
>>> Tue Jan 18 15:08:35 2011 [VMM][I]: ExitCode: 1
>>> Tue Jan 18 15:08:35 2011 [VMM][E]: Error deploying virtual machine
>>> Tue Jan 18 15:08:35 2011 [DiM][I]: New VM state is FAILED
>>> Tue Jan 18 15:08:45 2011 [TM][W]: Ignored: LOG - 258 tm_delete.sh:
>>> Deleting /var/lib/one/258/images
>>>
>>> Tue Jan 18 15:08:45 2011 [TM][W]: Ignored: LOG - 258 tm_delete.sh:
>>> Executed "/usr/bin/ssh fcl010 rm -rf /var/lib/one/258/images".
>>>
>>> Tue Jan 18 15:08:45 2011 [TM][W]: Ignored: TRANSFER SUCCESS 258
>>>
>>> ----------------------
>>> My question is the following--it looks like from the dump below, the
>>> xen is trying to boot with a kernel and ramdisk in dom0
>>> even though I specified bootloader=/usr/bin/pygrub and wanted
>>> it to take the xen kernel from inside the image. Are there
>>> other things I need to do to make that happen? I am presuming
>>> that if I specify a KERNEL= and RAMDISK= in the template
>>> then it will try to find those kernel and ramdisk in dom0.
>>>
>>> These are the relevant entries from my template
>>>
>>> OS = [ bootloader = "/usr/bin/pygrub" ]
>>>
>>> DISK = [ image = "cloudmysql-hybrid" ]
>>>
>>>
>>> Steve Timm
>>>
>>>
>>>
>>> ----------------------------
>>> Here is the dump of the xend log from the VM host:
>>>
>>>
>>> [2011-01-18 15:08:35 xend.XendDomainInfo 5136] DEBUG (XendDomainInfo:207)
>>> XendDo
>>> mainInfo.create(['vm', ['name', 'one-258'], ['memory', '2048'], ['vcpus',
>>> '2'],
>>> ['bootloader', '/usr/bin/pygrub'], ['image', ['linux', ['ramdisk',
>>> '/var/lib/xen
>>> /boot_ramdisk.zm8X_R'], ['kernel', '/var/lib/xen/boot_kernel.A0CMTy'],
>>> ['args',
>>> 'ro root=LABEL=/ console=xvc0']]], ['device', ['tap', ['uname',
>>> 'tap:aio:/var/li
>>> b/one/258/images/disk.0'], ['dev', 'sda'], ['mode', 'w']]], ['device',
>>> ['tap', [
>>> 'uname', 'tap:aio:/var/lib/one/258/images/disk.1'], ['dev', 'sdb'],
>>> ['mode', 'w'
>>> ]]], ['device', ['tap', ['uname',
>>> 'tap:aio:/var/lib/one/258/images/disk.2'], ['d
>>> ev', 'sdc'], ['mode', 'w']]], ['device', ['tap', ['uname',
>>> 'tap:aio:/var/lib/one
>>> /258/images/disk.3'], ['dev', 'hdc'], ['mode', 'r']]], ['device', ['vif',
>>> ['brid
>>> ge', 'xenbr0'], ['mac', '00:16:3E:02:03:04']]], ['device', ['vkbd']],
>>> ['device',
>>> ['vfb', ['vnclisten', '127.0.0.1'], ['type', 'vnc'], ['vncdisplay', '14'],
>>> ['di
>>> splay', 'localhost:11.0'], ['xauthority', '/var/lib/one/.Xauthority']]]])
>>> [2011-01-18 15:08:35 xend.XendDomainInfo 5136] DEBUG (XendDomainInfo:329)
>>> parseC
>>> onfig: config is ['vm', ['name', 'one-258'], ['memory', '2048'], ['vcpus',
>>> '2'],
>>> ['bootloader', '/usr/bin/pygrub'], ['image', ['linux', ['ramdisk',
>>> '/var/lib/xe
>>> n/boot_ramdisk.zm8X_R'], ['kernel', '/var/lib/xen/boot_kernel.A0CMTy'],
>>> ['args',
>>> 'ro root=LABEL=/ console=xvc0']]], ['device', ['tap', ['uname',
>>> 'tap:aio:/var/l
>>> ib/one/258/images/disk.0'], ['dev', 'sda'], ['mode', 'w']]], ['device',
>>> ['tap',
>>> ['uname', 'tap:aio:/var/lib/one/258/images/disk.1'], ['dev', 'sdb'],
>>> ['mode', 'w
>>> ']]], ['device', ['tap', ['uname',
>>> 'tap:aio:/var/lib/one/258/images/disk.2'], ['
>>> dev', 'sdc'], ['mode', 'w']]], ['device', ['tap', ['uname',
>>> 'tap:aio:/var/lib/on
>>> e/258/images/disk.3'], ['dev', 'hdc'], ['mode', 'r']]], ['device', ['vif',
>>> ['bri
>>> dge', 'xenbr0'], ['mac', '00:16:3E:02:03:04']]], ['device', ['vkbd']],
>>> ['device'
>>> , ['vfb', ['vnclisten', '127.0.0.1'], ['type', 'vnc'], ['vncdisplay',
>>> '14'], ['d
>>> isplay', 'localhost:11.0'], ['xauthority', '/var/lib/one/.Xauthority']]]]
>>> [2011-01-18 15:08:35 xend.XendDomainInfo 5136] DEBUG (XendDomainInfo:446)
>>> parseC
>>> onfig: result is {'features': None, 'image': ['linux', ['ramdisk',
>>> '/var/lib/xen
>>> /boot_ramdisk.zm8X_R'], ['kernel', '/var/lib/xen/boot_kernel.A0CMTy'],
>>> ['args',
>>> 'ro root=LABEL=/ console=xvc0']], 'cpus': None, 'vcpu_avail': None,
>>> 'backend': [
>>> ], 'uuid': None, 'on_reboot': None, 'cpu_weight': None, 'memory': 2048,
>>> 'cpu_cap
>>> ': None, 'localtime': None, 'timer_mode': None, 'start_time': None,
>>> 'on_poweroff
>>> ': None, 'on_crash': None, 'device': [('tap', ['tap', ['uname',
>>> 'tap:aio:/var/li
>>> b/one/258/images/disk.0'], ['dev', 'sda'], ['mode', 'w']]), ('tap',
>>> ['tap', ['un
>>> ame', 'tap:aio:/var/lib/one/258/images/disk.1'], ['dev', 'sdb'], ['mode',
>>> 'w']])
>>> , ('tap', ['tap', ['uname', 'tap:aio:/var/lib/one/258/images/disk.2'],
>>> ['dev', '
>>> sdc'], ['mode', 'w']]), ('tap', ['tap', ['uname',
>>> 'tap:aio:/var/lib/one/258/imag
>>> es/disk.3'], ['dev', 'hdc'], ['mode', 'r']]), ('vif', ['vif', ['bridge',
>>> 'xenbr0
>>> '], ['mac', '00:16:3E:02:03:04']]), ('vkbd', ['vkbd']), ('vfb', ['vfb',
>>> ['vnclis
>>> ten', '127.0.0.1'], ['type', 'vnc'], ['vncdisplay', '14'], ['display',
>>> 'localhos
>>> t:11.0'], ['xauthority', '/var/lib/one/.Xauthority']])], 'bootloader':
>>> '/usr/bin
>>> /pygrub', 'maxmem': None, 'shadow_memory': None, 'name': 'one-258',
>>> 'bootloader_
>>> args': None, 'vcpus': 2, 'cpu': None}
>>> [2011-01-18 15:08:35 xend.XendDomainInfo 5136] DEBUG (XendDomainInfo:1784)
>>> XendD
>>> omainInfo.construct: None
>>> [2011-01-18 15:08:35 xend 5136] DEBUG (balloon:145) Balloon: 22650992 KiB
>>> free;
>>> need 4096; done.
>>> [2011-01-18 15:08:35 xend.XendDomainInfo 5136] DEBUG (XendDomainInfo:1953)
>>> XendD
>>> omainInfo.initDomain: 1 256
>>> [2011-01-18 15:08:35 xend.XendDomainInfo 5136] DEBUG (XendDomainInfo:1994)
>>> _init
>>> Domain:shadow_memory=0x0, maxmem=0x800, memory=0x800.
>>> [2011-01-18 15:08:35 xend 5136] DEBUG (balloon:145) Balloon: 22650984 KiB
>>> free;
>>> need 2097152; done.
>>> [2011-01-18 15:08:35 xend 5136] INFO (image:139) buildDomain os=linux
>>> dom=1 vcpu
>>> s=2
>>> [2011-01-18 15:08:35 xend 5136] DEBUG (image:208) domid = 1
>>> [2011-01-18 15:08:35 xend 5136] DEBUG (image:209) memsize = 2048
>>> [2011-01-18 15:08:35 xend 5136] DEBUG (image:210) image =
>>> /var/lib/xen/
>>> boot_kernel.A0CMTy
>>> [2011-01-18 15:08:35 xend 5136] DEBUG (image:211) store_evtchn = 1
>>> [2011-01-18 15:08:35 xend 5136] DEBUG (image:212) console_evtchn = 2
>>> [2011-01-18 15:08:35 xend 5136] DEBUG (image:213) cmdline = ro
>>> root=LABE
>>> L=/ console=xvc0
>>> [2011-01-18 15:08:35 xend 5136] DEBUG (image:214) ramdisk =
>>> /var/lib/xen/
>>> boot_ramdisk.zm8X_R
>>> [2011-01-18 15:08:35 xend 5136] DEBUG (image:215) vcpus = 2
>>> [2011-01-18 15:08:35 xend 5136] DEBUG (image:216) features =
>>> [2011-01-18 15:08:35 xend.XendDomainInfo 5136] ERROR (XendDomainInfo:219)
>>> Domain
>>> construction failed
>>> Traceback (most recent call last):
>>> File "/usr/lib64/python2.4/site-packages/xen/xend/XendDomainInfo.py",
>>> line 212
>>> , in create
>>> vm.initDomain()
>>> File "/usr/lib64/python2.4/site-packages/xen/xend/XendDomainInfo.py",
>>> line 203
>>> 9, in initDomain
>>> raise VmError(str(exn))
>>> VmError: (2, 'Invalid kernel', 'xc_dom_parse_elf_kernel: ELF image has no
>>> shstrt
>>> ab\n')
>>> ------------------
>>>
>>>
>>>
>>>
>>> On Tue, 18 Jan 2011, Steven Timm wrote:
>>>
>>>>
>>>> Docs show that I need the "bootloader" option in the OS section.
>>>> Adding that got me past the error mentioned below.
>>>>
>>>> Steve
>>>>
>>>> On Tue, 18 Jan 2011, Steven Timm wrote:
>>>>
>>>>>
>>>>> Is there a worked example somewhere of how to successfully launch
>>>>> a Xen VM in opennebula?
>>>>>
>>>>> Right now ONE copies the OS image and the other disks to
>>>>> my Xen host, tries to launch, but fails with the error
>>>>>
>>>>> Tue Jan 18 13:18:33 2011 [VMM][I]: Generating deployment file:
>>>>> /var/lib/one/249/deployment.0
>>>>> Tue Jan 18 13:18:33 2011 [VMM][E]: No kernel or bootloader defined and
>>>>> no default provided.
>>>>> Tue Jan 18 13:18:33 2011 [VMM][E]: deploy_action, error generating
>>>>> deployment file: /var/lib/one/249/deployment.0
>>>>> Tue Jan 18 13:18:33 2011 [DiM][I]: New VM state is FAILED
>>>>>
>>>>> ------------
>>>>>
>>>>> My OS image has a kernel-xen loaded in it but is otherwise
>>>>> the same format as the KVM images I have been using,
>>>>> i.e. it has a boot sector and one partition which is supposed to mount
>>>>> as /dev/sda1.
>>>>>
>>>>> As far as I can tell, I never got as far as trying to launch the
>>>>> Xen VM.
>>>>>
>>>>> Steve
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>
>
--
------------------------------------------------------------------
Steven C. Timm, Ph.D (630) 840-8525
timm at fnal.gov http://home.fnal.gov/~timm/
Fermilab Computing Division, Scientific Computing Facilities,
Grid Facilities Department, FermiGrid Services Group, Group Leader.
Lead of FermiCloud project.
More information about the Users
mailing list