PDA

Bekijk Volledige Versie : Vreemde issues met XENsource en disk images op Debian Lenny



jinxedworld
01/09/09, 14:51
Hi,

Wij maken op al onze XEN machines disk images aan met een partitistructuur, dit om de r1soft backup agent goed te laten functioneren. NU heb ik vandaag een Debian Lenny machine geinstalleerd, XEN uitgerold met "apt-get install xen-linux-system-2.6.26-2-xen-686 xen-tools" (zoals we altijd doen), de xend-config aangepast om het netwerk aan te schoppen en ik heb een standaard image ge-dd'd (200GB). Gemount op een loop-device en met fdisk 1 partitie aangemaakt. Daarna de loop-device weer vrij gemaakt en op nieuw geladen met offset=32256, hier mkfs.ext3 overheen gehaald voor een filesystem. Allemaal niet zo bijzonder eigenlijk.

Loop device weer vrij gemaakt, en de image gemount met "mount -text3 -oloop=/dev/loop0,offset=32256 disk.img /mnt"

Met rsync onze standaard server template erin gezet.

Nu is het zo dat XEN de machine helemaal niet wil booten, en een tijdje blijft hangen op "waiting for root file system" voordat hij busybox opengooit:


Begin: Mounting root file system ... Begin: Running /scripts/local-top ... done.
Begin: Waiting for root file system ... done.
Begin: Running /scripts/local-premount ... done.
mount: mounting /dev/sda2 on /root failed: No such device
Begin: Running /scripts/local-bottom ... done.
done.
Begin: Running /scripts/init-bottom ... mount: mounting /dev on /root/dev failed: No such file or directory
done.
mount: mounting /sys on /root/sys failed: No such file or directory
mount: mounting /proc on /root/proc failed: No such file or directory
Target filesystem doesn't have /sbin/init.
No init found. Try passing init= bootarg.
Nu heb ik uiteraard even verder gepuzzeld en een standaard disk image gebakken ZONDER partitiestructuur, exact dezelfde server template erin gekieperd, en deze draait als een tierelier! Onze andere XEN bakken (allemaal Debian, varieert tussen Etch en Lenny) hebben hier geen enkel probleem mee! Ik heb op deze machine geprobeerd met de 2.6.26-1-xen-686 en 2.6.26-2-xen-686 kernels, zo uit de Debian repository's getrokken, geen custom werk eraan gedaan.

DomU config:


#
# Configuration file for the Xen instance xxx, created
# by xen-tools 3.9 on Tue Sep 1 08:27:33 2009.
#

#
# Kernel + memory size
#
kernel = '/boot/vmlinuz-2.6.26-1-xen-686'
ramdisk = '/boot/initrd.img-2.6.26-1-xen-686'
memory = '2048'
extra = 'xencons=tty'

#
# Disk device(s).
#
root = '/dev/sda2 ro'
disk = [
'file:/storage/xxx/swap.img,sda1,w',
'file:/storage/xxx/disk.img,sda2,w',
]


#
# Hostname
#
name = 'xxx'

#
# Networking
#
vif = [ 'ip=xx.xx.xx.xx,mac=00:16:3E:7B:49:B2' ]

#
# Behaviour
#
on_poweroff = 'destroy'
on_reboot = 'restart'
on_crash = 'restart'
Hardware specs van de machine:


2x Intel(R) Xeon(R) CPU L5420 @ 2.50GHz quadcore
8 GB ram
4x 500 GB in RAID-10 (3ware controller)
Supermicro mobo en casing
Hier nog een stukje XEN debug logging voor de mensen die dit makkelijk vinden lezen :)


[2009-09-01 14:35:11 4213] DEBUG (XendDomainInfo:84) XendDomainInfo.create(['vm', ['name', 'xxx'], ['memory', '2048'], ['on_poweroff', 'destroy'], ['on_reboot', 'restart'], ['on_crash', 'restart'], ['vcpus', 1], ['on_xend_start', 'ignore'], ['on_xend_stop', 'ignore'], ['image', ['linux', ['kernel', '/boot/vmlinuz-2.6.26-1-xen-686'], ['ramdisk', '/boot/initrd.img-2.6.26-1-xen-686'], ['root', '/dev/sda2 ro'], ['args', 'xencons=tty']]], ['device', ['vbd', ['uname', 'file:/storage/virt02xen22.drecomm.nl/swap.img'], ['dev', 'sda1'], ['mode', 'w']]], ['device', ['vbd', ['uname', 'file:/storage/virt02xen22.drecomm.nl/disk.img'], ['dev', 'sda2'], ['mode', 'w']]], ['device', ['vif', ['ip', 'xx.xx.xx.xx'], ['mac', '00:16:3E:7B:49:B2']]]])
[2009-09-01 14:35:11 4213] DEBUG (XendDomainInfo:1618) XendDomainInfo.constructDomain
[2009-09-01 14:35:11 4213] DEBUG (balloon:132) Balloon: 2102080 KiB free; need 2048; done.
[2009-09-01 14:35:11 4213] DEBUG (XendDomain:443) Adding Domain: 6
[2009-09-01 14:35:11 4213] DEBUG (XendDomainInfo:1703) XendDomainInfo.initDomain: 6 256
[2009-09-01 14:35:11 4213] DEBUG (XendDomainInfo:1738) _initDomain:shadow_memory=0x0, memory_static_max=0x80000000, memory_static_min=0x0.
[2009-09-01 14:35:11 4213] DEBUG (balloon:132) Balloon: 2102080 KiB free; need 2097152; done.
[2009-09-01 14:35:11 4213] INFO (image:139) buildDomain os=linux dom=6 vcpus=1
[2009-09-01 14:35:11 4213] DEBUG (image:363) domid = 6
[2009-09-01 14:35:11 4213] DEBUG (image:364) memsize = 2048
[2009-09-01 14:35:11 4213] DEBUG (image:365) image = /boot/vmlinuz-2.6.26-1-xen-686
[2009-09-01 14:35:11 4213] DEBUG (image:366) store_evtchn = 1
[2009-09-01 14:35:11 4213] DEBUG (image:367) console_evtchn = 2
[2009-09-01 14:35:11 4213] DEBUG (image:368) cmdline = root=/dev/sda2 ro xencons=tty
[2009-09-01 14:35:11 4213] DEBUG (image:369) ramdisk = /boot/initrd.img-2.6.26-1-xen-686
[2009-09-01 14:35:11 4213] DEBUG (image:370) vcpus = 1
[2009-09-01 14:35:11 4213] DEBUG (image:371) features =
[2009-09-01 14:35:12 4213] INFO (XendDomainInfo:1514) createDevice: vbd : {'uuid': '8635cd1c-a913-18a9-2247-e42ca400bad6', 'bootable': 1, 'driver': 'paravirtualised', 'dev': 'sda1', 'uname': 'file:/storage/virt02xen22.drecomm.nl/swap.img', 'mode': 'w'}
[2009-09-01 14:35:12 4213] DEBUG (DevController:118) DevController: writing {'virtual-device': '2049', 'device-type': 'disk', 'protocol': 'x86_32-abi', 'backend-id': '0', 'state': '1', 'backend': '/local/domain/0/backend/vbd/6/2049'} to /local/domain/6/device/vbd/2049.
[2009-09-01 14:35:12 4213] DEBUG (DevController:120) DevController: writing {'domain': 'xxx', 'frontend': '/local/domain/6/device/vbd/2049', 'uuid': '8635cd1c-a913-18a9-2247-e42ca400bad6', 'dev': 'sda1', 'state': '1', 'params': '/storage/virt02xen22.drecomm.nl/swap.img', 'mode': 'w', 'online': '1', 'frontend-id': '6', 'type': 'file'} to /local/domain/0/backend/vbd/6/2049.
[2009-09-01 14:35:12 4213] INFO (XendDomainInfo:1514) createDevice: vbd : {'uuid': '407b3d47-58a2-d1d9-dd35-74689a54125b', 'bootable': 0, 'driver': 'paravirtualised', 'dev': 'sda2', 'uname': 'file:/storage/virt02xen22.drecomm.nl/disk.img', 'mode': 'w'}
[2009-09-01 14:35:12 4213] DEBUG (DevController:118) DevController: writing {'virtual-device': '2050', 'device-type': 'disk', 'protocol': 'x86_32-abi', 'backend-id': '0', 'state': '1', 'backend': '/local/domain/0/backend/vbd/6/2050'} to /local/domain/6/device/vbd/2050.
[2009-09-01 14:35:12 4213] DEBUG (DevController:120) DevController: writing {'domain': 'xxx', 'frontend': '/local/domain/6/device/vbd/2050', 'uuid': '407b3d47-58a2-d1d9-dd35-74689a54125b', 'dev': 'sda2', 'state': '1', 'params': '/storage/virt02xen22.drecomm.nl/disk.img', 'mode': 'w', 'online': '1', 'frontend-id': '6', 'type': 'file'} to /local/domain/0/backend/vbd/6/2050.
[2009-09-01 14:35:12 4213] INFO (XendDomainInfo:1514) createDevice: vif : {'ip': 'xx.xx.xx.xx', 'mac': '00:16:3E:7B:49:B2', 'uuid': '87d46276-1aa8-13e0-d2bc-1d377cacbb35'}
[2009-09-01 14:35:12 4213] DEBUG (DevController:118) DevController: writing {'mac': '00:16:3E:7B:49:B2', 'handle': '0', 'protocol': 'x86_32-abi', 'backend-id': '0', 'state': '1', 'backend': '/local/domain/0/backend/vif/6/0'} to /local/domain/6/device/vif/0.
[2009-09-01 14:35:12 4213] DEBUG (DevController:120) DevController: writing {'domain': 'xxx', 'handle': '0', 'uuid': '87d46276-1aa8-13e0-d2bc-1d377cacbb35', 'script': '/etc/xen/scripts/vif-bridge', 'ip': 'xx.xx.xx.xx', 'mac': '00:16:3E:7B:49:B2', 'frontend-id': '6', 'state': '1', 'online': '1', 'frontend': '/local/domain/6/device/vif/0'} to /local/domain/0/backend/vif/6/0.
[2009-09-01 14:35:12 4213] DEBUG (XendDomainInfo:2195) Storing VM details: {'on_xend_stop': 'ignore', 'shadow_memory': '0', 'uuid': '1bfe7082-f98e-f427-3d46-4f922287ca8b', 'on_reboot': 'restart', 'start_time': '1251808512.38', 'on_poweroff': 'destroy', 'on_xend_start': 'ignore', 'on_crash': 'restart', 'xend/restart_count': '0', 'vcpus': '1', 'vcpu_avail': '1', 'image': "(linux (kernel /boot/vmlinuz-2.6.26-1-xen-686) (ramdisk /boot/initrd.img-2.6.26-1-xen-686) (args 'root=/dev/sda2 ro xencons=tty') (notes (HV_START_LOW 4118806528) (FEATURES 'writable_page_tables|writable_descriptor_tables|a uto_translated_physmap|pae_pgdir_above_4gb|supervi sor_mode_kernel') (VIRT_BASE 3221225472) (GUEST_VERSION 2.6) (PADDR_OFFSET 0) (GUEST_OS linux) (HYPERCALL_PAGE 3222278144) (LOADER generic) (SUSPEND_CANCEL 1) (PAE_MODE yes) (ENTRY 3222274048) (XEN_VERSION xen-3.0)))", 'name': 'xxx'}
[2009-09-01 14:35:12 4213] DEBUG (XendDomainInfo:1008) Storing domain details: {'console/ring-ref': '2256121', 'image/entry': '3222274048', 'console/port': '2', 'store/ring-ref': '2256122', 'image/loader': 'generic', 'vm': '/vm/1bfe7082-f98e-f427-3d46-4f922287ca8b', 'control/platform-feature-multiprocessor-suspend': '1', 'image/hv-start-low': '4118806528', 'image/guest-os': 'linux', 'image/features/writable-descriptor-tables': '1', 'image/virt-base': '3221225472', 'memory/target': '2097152', 'image/guest-version': '2.6', 'image/features/supervisor-mode-kernel': '1', 'image/pae-mode': 'yes', 'console/limit': '1048576', 'image/paddr-offset': '0', 'image/hypercall-page': '3222278144', 'image/suspend-cancel': '1', 'cpu/0/availability': 'online', 'image/features/pae-pgdir-above-4gb': '1', 'image/features/writable-page-tables': '1', 'console/type': 'xenconsoled', 'image/features/auto-translated-physmap': '1', 'name': 'xxx', 'domid': '6', 'image/xen-version': 'xen-3.0', 'store/port': '1'}
[2009-09-01 14:35:12 4213] DEBUG (DevController:118) DevController: writing {'protocol': 'x86_32-abi', 'state': '1', 'backend-id': '0', 'backend': '/local/domain/0/backend/console/6/0'} to /local/domain/6/device/console/0.
[2009-09-01 14:35:12 4213] DEBUG (DevController:120) DevController: writing {'domain': 'xxx', 'frontend': '/local/domain/6/device/console/0', 'uuid': '487d756a-7ae9-331c-20ac-9738ce6a52a4', 'frontend-id': '6', 'state': '1', 'location': '2', 'online': '1', 'protocol': 'vt100'} to /local/domain/0/backend/console/6/0.
[2009-09-01 14:35:12 4213] DEBUG (XendDomainInfo:1092) XendDomainInfo.handleShutdownWatch
[2009-09-01 14:35:12 4213] DEBUG (DevController:151) Waiting for devices vif.
[2009-09-01 14:35:12 4213] DEBUG (DevController:156) Waiting for 0.
[2009-09-01 14:35:12 4213] DEBUG (DevController:595) hotplugStatusCallback /local/domain/0/backend/vif/6/0/hotplug-status.
[2009-09-01 14:35:12 4213] DEBUG (DevController:595) hotplugStatusCallback /local/domain/0/backend/vif/6/0/hotplug-status.
[2009-09-01 14:35:12 4213] DEBUG (DevController:609) hotplugStatusCallback 1.
[2009-09-01 14:35:12 4213] DEBUG (DevController:151) Waiting for devices vbd.
[2009-09-01 14:35:12 4213] DEBUG (DevController:156) Waiting for 2049.
[2009-09-01 14:35:12 4213] DEBUG (DevController:595) hotplugStatusCallback /local/domain/0/backend/vbd/6/2049/hotplug-status.
[2009-09-01 14:35:12 4213] DEBUG (DevController:595) hotplugStatusCallback /local/domain/0/backend/vbd/6/2049/hotplug-status.
[2009-09-01 14:35:12 4213] DEBUG (DevController:609) hotplugStatusCallback 1.
[2009-09-01 14:35:12 4213] DEBUG (DevController:156) Waiting for 2050.
[2009-09-01 14:35:12 4213] DEBUG (DevController:595) hotplugStatusCallback /local/domain/0/backend/vbd/6/2050/hotplug-status.
[2009-09-01 14:35:12 4213] DEBUG (DevController:609) hotplugStatusCallback 1.
[2009-09-01 14:35:12 4213] DEBUG (DevController:151) Waiting for devices irq.
[2009-09-01 14:35:12 4213] DEBUG (DevController:151) Waiting for devices vkbd.
[2009-09-01 14:35:12 4213] DEBUG (DevController:151) Waiting for devices vfb.
[2009-09-01 14:35:12 4213] DEBUG (DevController:151) Waiting for devices console.
[2009-09-01 14:35:12 4213] DEBUG (DevController:156) Waiting for 0.
[2009-09-01 14:35:12 4213] DEBUG (DevController:151) Waiting for devices pci.
[2009-09-01 14:35:12 4213] DEBUG (DevController:151) Waiting for devices ioports.
[2009-09-01 14:35:12 4213] DEBUG (DevController:151) Waiting for devices tap.
[2009-09-01 14:35:12 4213] DEBUG (DevController:151) Waiting for devices vtpm.
[2009-09-01 14:35:12 4213] INFO (XendDomain:1165) Domain xxx (6) unpaused.
Heeft iemand een idee wat dit in hemelsnaam kan zijn? Ik google me al een slag in de rondte vanaf vanochtend vroeg, maar ik kom geen steek verder...

gjtje
02/09/09, 09:13
Als je disk een partitie structuur heeft moet je hem dan niet als sd* in de config stoppen, dus zonder nummertje? sda2 geeft aan dat die disk de tweede partie is op disk sda maar die sda2 bevat dan zelf ook weer een partitie structuur.
Dat het prima werkt met de disk zonder structuur lijkt mij logisch in deze setup.

Wat je met die offset doet weet ik niet maar dat zal vast logisch zijn.

jinxedworld
02/09/09, 11:05
Als je disk een partitie structuur heeft moet je hem dan niet als sd* in de config stoppen, dus zonder nummertje? sda2 geeft aan dat die disk de tweede partie is op disk sda maar die sda2 bevat dan zelf ook weer een partitie structuur.
Dat het prima werkt met de disk zonder structuur lijkt mij logisch in deze setup.

Wat je met die offset doet weet ik niet maar dat zal vast logisch zijn.

Dat zijn XEN internals die dat afhandelen en aangeven welke image onder de DomU als device worden weergegeven. Ook als ik de config als sda of sdb aangeef maakt dit geen verschil (helaas).

Die offset is nodig om, als je een partitie hebt aangemaakt, de bootsector over te slaan zodat je daar je spul niet in wegschrijft. (bootsector is handig om, mocht het nodig zijn, een VPS direct over te mikken naar een fysieke machine).

The-BosS
02/09/09, 18:35
Zou het niet handiger zijn om gebruik te maken van LVM ipv IMG's, en in je config de PHY: te gebruiken ipv FILE. Met LVM kun je tevens ook je HD grote aanpassen zonder dat je eerst alles moet copieren.

jinxedworld
02/09/09, 21:49
Zou het niet handiger zijn om gebruik te maken van LVM ipv IMG's, en in je config de PHY: te gebruiken ipv FILE. Met LVM kun je tevens ook je HD grote aanpassen zonder dat je eerst alles moet copieren.

Alleen werkt dat niet goed met de R1soft agent. Vroeger zijn we begonnen met LVM en snapshotting, maar met de komst van R1soft hebben we dit om moeten gooien. Neemt verder niet weg dat dit wel een goede methodiek is natuurlijk. Echter is het voor ons geen optie.

Maar, we dwalen een beetje af denk ik :clown:

The-BosS
02/09/09, 23:13
Begin: Running /scripts/local-premount ... done.
mount: mounting /dev/sda2 on /root failed: No such device
Begin: Running /scripts/local-bottom ... done.

Maar, we dwalen een beetje af denk ik :clown:

Om het dan even over je probleem te hebben, ben je er zeker van dat je fstab juist staat. Tevens gebruikt mijn xen xvda1 xvda2 ipv sda1 sda2, misschien dat hier de oplossing voor je probleem zit.

jinxedworld
03/09/09, 08:26
Begin: Running /scripts/local-premount ... done.
mount: mounting /dev/sda2 on /root failed: No such device
Begin: Running /scripts/local-bottom ... done.
Om het dan even over je probleem te hebben, ben je er zeker van dat je fstab juist staat. Tevens gebruikt mijn xen xvda1 xvda2 ipv sda1 sda2, misschien dat hier de oplossing voor je probleem zit.


Yes, fstab is gecontroleerd, en staat goed. En dat moet ook wel, aan gezien dezelfde serverimage in niet gepartitioneerde disk images wel goed draait, met dezelfde XEN config. :S . Switch naar xvd* heeft ook geen effect helaas...

The-BosS
03/09/09, 22:25
Je zou ook eens kunnen proberen om een img file aan te maken die enkel voor boot gebruikt wordt, en eens je vps hiervan gestart is je de img (die partities bevat) te laten aanspreken. Iets in deze aard dus:


root = '/dev/sda1 ro'
disk = [
'file:/storage/xxx/boot.img,sda1,w',
'file:/storage/xxx/swap.img,sda2,w',
'file:/storage/xxx/storage.img,sdb,w',
]

Waar je enkel sdb meegeeft in xen, en dan vanuit je guest de sdb via fstab verder mount

gjtje
04/09/09, 11:53
Wat vindt ie aan disks bij het booten? Dat wordt opgesomd bij het starten.