XEN: Installation von domU

Hi,

ich virtualisiere z.Z. ein bisschen mit XEN und hab erstmal ne Weile gebraucht mit der Art, wie domUs installiert werden, klar zu kommen.

Wenn ich das jetzt richtig verstanden habe bisher, dann gibt es pro domU keinen Boot Loader. Das wird quasi von XEN übernommen und man konfiguriert direkt ein Kernel Image und ein initrd / initramfs mit rein. Aber ist das nicht irgendwie unsexy den Kernel und das initrd von dom0 zu nehmen? Das wird zwar in jedem Tutorial gemacht aber sehr schön finde ichs derzeit irgendwie noch nicht. N bootloader für jedes domU würde den Speicherverbrauch jetzt auch nicht rausreissen.

Bisher habe ich per debootstrap installiert. Geht ja recht schnell, was mache ich jetzt bzgl des kernel images und des initrds wenn ich z.B. redhat installieren will?

Da ich auf Debian Lenny bin mit dom0 hab ich ja nur das Debian Kernel Image. In dom0 hab ich ein paar Module geladen und ein RAID aufgesetzt. Scheinbar versucht domU das auch zu tun wenn ich den dom0 Kernel nehme:

Output beim booten einer domU
Code:
jediwarrior:/etc/xen# xm create -c Webserver.cfg 
Using config file "./Webserver.cfg".
Started domain Webserver
[    0.820124] Mount-cache hash table entries: 256
[    0.820222] Initializing cgroup subsys ns
[    0.820232] Initializing cgroup subsys cpuacct
[    0.820236] Initializing cgroup subsys devices
[    0.820262] CPU: L1 I cache: 32K, L1 D cache: 32K
[    0.820271] CPU: L2 cache: 6144K
[    0.820277] CPU: Physical Processor ID: 0
[    0.820279] CPU: Processor Core ID: 2
[    0.820287] SMP alternatives: switching to UP code
[    0.825015] Freeing SMP alternatives: 21k freed
[    0.825101] Brought up 1 CPUs
[    0.826741] net_namespace: 1224 bytes
[    0.826859] NET: Registered protocol family 16
[    0.828186] Brought up 1 CPUs
[    0.828197] PCI: Fatal: No config space access function found
[    0.828202] PCI: setting up Xen PCI frontend stub
[    0.828666] ACPI: Interpreter disabled.
[    0.828676] Linux Plug and Play Support v0.97 (c) Adam Belay
[    0.828701] pnp: PnP ACPI: disabled
[    0.828873] suspend: event channel 7
[    0.829108] xen_mem: Initialising balloon driver.
[    0.829982] usbcore: registered new interface driver usbfs
[    0.830021] usbcore: registered new interface driver hub
[    0.830050] usbcore: registered new device driver usb
[    0.830157] PCI: System does not support PCI
[    0.830160] PCI: System does not support PCI
[    0.840348] NET: Registered protocol family 2
[    0.876062] IP route cache hash table entries: 32768 (order: 6, 262144 bytes)
[    0.876240] TCP established hash table entries: 131072 (order: 9, 2097152 bytes)
[    0.876934] TCP bind hash table entries: 65536 (order: 8, 1048576 bytes)
[    0.877253] TCP: Hash tables configured (established 131072 bind 65536)
[    0.877258] TCP reno registered
[    0.888069] NET: Registered protocol family 1
[    0.888143] checking if image is initramfs... it is
[    0.900597] Freeing initrd memory: 22036k freed
[    0.906114] platform rtc_cmos: registered platform RTC device (no PNP device found)
[    0.906332] audit: initializing netlink socket (disabled)
[    0.906345] type=2000 audit(1235682209.804:1): initialized
[    0.906467] VFS: Disk quotas dquot_6.5.1
[    0.906485] Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    0.906501] msgmni has been set to 1067
[    0.906559] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 253)
[    0.906564] io scheduler noop registered
[    0.906567] io scheduler anticipatory registered
[    0.906570] io scheduler deadline registered
[    0.906576] io scheduler cfq registered (default)
[    0.908002] Linux agpgart interface v0.103
[    0.908046] Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing enabled
[    0.908955] brd: module loaded
[    0.908995] input: Macintosh mouse button emulation as /class/input/input0
[    0.909037] Xen virtual console successfully installed as hvc0
[    0.909069] Event-channel device installed.
[    0.912585] netfront: Initialising virtual ethernet driver.
[    0.914087] PNP: No PS/2 controller found. Probing ports directly.
[    0.914908] i8042.c: No controller found.
[    0.917401] xen-vbd: registered block device major 202
[    0.917422] blkfront: xvda1: barriers enabled
[    0.924101] mice: PS/2 mouse device common for all mice
[    0.924200] rtc_cmos rtc_cmos: rtc core: registered rtc_cmos as rtc0
[    0.924288] No iBFT detected.
[    0.924529] TCP cubic registered
[    0.924533] NET: Registered protocol family 17
[    0.924597] registered taskstats version 1
[    0.924612] XENBUS: Device with no driver: device/console/0
[    0.924615] drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
[    0.924621] Freeing unused kernel memory: 216k freed
Loading, please wait...
Begin: Loading essential drivers ... done.
Begin: Running /scripts/init-premount ... FATAL: Error inserting fan (/lib/modules/2.6.26-1-xen-amd64/kernel/drivers/acpi/fan.ko): No such device
WARNING: Error inserting processor (/lib/modules/2.6.26-1-xen-amd64/kernel/drivers/acpi/processor.ko): No such device
[    1.012589] thermal: Unknown symbol acpi_processor_set_thermal_limit
FATAL: Error inserting thermal (/lib/modules/2.6.26-1-xen-amd64/kernel/drivers/acpi/thermal.ko): Unknown symbol in module, or unknown parameter (see dmesg)
done.
Begin: Mounting root file system ... Begin: Running /scripts/local-top ... Begin: Loading[    1.197719] md: raid0 personality registered for level 0
Success: loaded module raid0.
done.
Begin: Assembling all MD arrays ... [    1.205057] md: md0 stopped.
mdadm: no devices found for /dev/md0
Failure: failed to assemble all arrays.
done.
Begin: Waiting for udev to process events ... done.
[    1.216551] device-mapper: uevent: version 1.0.3
[    1.217162] device-mapper: ioctl: 4.13.0-ioctl (2007-10-18) initialised: dm-devel@redhat.com
done.
Begin: Running /scripts/local-premount ... done.
[    1.260044] kjournald starting.  Commit interval 5 seconds
[    1.260055] EXT3-fs: mounted filesystem with ordered data mode.
Begin: Running /scripts/local-bottom ... done.
done.
Begin: Running /scripts/init-bottom ... done.
INIT: version 2.86 booting
Starting the hotplug events dispatcher: udevd[    2.004864] udevd version 125 started
.
Synthesizing the initial hotplug events...done.
Waiting for /dev to be fully populated...done.
Setting the system clock.
Cannot access the Hardware Clock via any known method.
Use the --debug option to see the details of our search for an access method.
Unable to set System Clock to: Thu Feb 26 21:03:31 UTC 2009 (warning).
Activating swap...done.
Checking root file system...fsck 1.41.3 (12-Oct-2008)
/dev/xvda1: clean, 12217/327680 files, 129706/1310720 blocks
done.
[    2.701783] EXT3 FS on xvda1, internal journal
Setting the system clock.
Cannot access the Hardware Clock via any known method.
Use the --debug option to see the details of our search for an access method.
Unable to set System Clock to: Thu Feb 26 21:03:31 UTC 2009 (warning).
Cleaning up ifupdown....
Loading kernel modules...done.
Checking file systems...fsck 1.41.3 (12-Oct-2008)
done.
Setting kernel variables (/etc/sysctl.conf)...done.
Mounting local filesystems...done.
Activating swapfile swap...done.
Setting up networking....
Configuring network interfaces...done.
INIT: Entering runlevel: 2
Starting enhanced syslogd: rsyslogd.
Starting OpenBSD Secure Shell server: sshd[    3.744990] NET: Registered protocol family 10
[    3.745237] lo: Disabled Privacy Extensions
.
Starting periodic command scheduler: crond.

Debian GNU/Linux 5.0 Webserver hvc0

Webserver login:

cu
serow



EDIT:


Ich wurde von den Mods hier gebeten, Fragen zum gleichen Projekt in diesem Thread hier zu stellen. Deswegen wurde ein Thread in "Doppelte Beiträge" verschoben.

In dem Thread ging es draum, dass kein VNC Port auf dom0 geöffnet wurde wenn ich ein Windows gestartet habe.

Das lag zum einen daran, dass ich nen falschen Pfad zu qemu-dm angegeben hatte. In /var/log/xen gibt es qemu-dm.X.log files. Dort stand das etwas obfuscated drin.

Zweites war in meiner domU Konfiguration folgendes angegeben:

Code:
vif = [ 'type=ioemu, bridge=xenbr0' ]

Da hab ich mir erstmal nichts dabei gedacht, weil ich einfach dachte, dass die Bridge schon existiert und es einfach ne Standardeinstellung ist. Falsch gedacht. Die Bridge die existierte war "eth0". Also angepasst:

Code:
vif = [ 'type=ioemu, bridge=eth0' ]

Auf den Fehler hat mich ein Eintrag in /var/log/xen/qemu-dm.X.log gebracht:
Watching /local/domain/0/device-model/9/logdirty/next-active
Watching /local/domain/0/device-model/9/command
-c config qemu network with xen bridge for
tap0 xenbr0
bridge xenbr0 does not exist!
/etc/xen/scripts/qemu-ifup: could not launch network script
Could not initialize device 'tap'

Hier ist die domU Konfiguration:
Code:
import os, re
arch = os.uname()[4]
if re.search('64', arch):
    arch_libdir = 'lib64'
else:
    arch_libdir = 'lib'


kernel = "/usr/lib64/xen-3.2-1/boot/hvmloader"
builder="hvm"
memory = "1024"
name = "XenWin2003"
vcpus = 1
vif = [ 'type=ioemu, bridge=eth0' ]
disk = [ 'file:/srv/xenwin2003.img,hda,w', 'file:/srv/iso/en_win_srv_2003_r2_enterprise_vl_cd1.iso,hdc:cdrom,r' ]

device_model = '/usr/lib64/xen-3.2-1/bin/qemu-dm'   # HIER LAG DER FEHLER!!!

boot="dc"

sdl=0
vnc=1
vnclisten="10.0.0.2"              # dom0 address
vncdisplay=1                         # VNC port will be 5901
vncunused=1                        # take next available port of 5901 is in use
vncconsole=1                       # spawn vncviewer as domU starts
vncpasswd='test'                  # the vnc password

Hier müsst ihr aufpassen, dass ihr die Werte aus /etc/xen/xend-config.sxp überschreibt wenn nötig. Wenn ihr, wie ich, als dom0 ein reines Konsolensystem habt bringt es wenig vnc auf 127.0.0.1 lauschen zu lassen. Also entweder xend-config.sxp oder die domU config anpassen.

So - hoffe das hilft der Nachwelt ein wenig ;)

cu
serow
 
Zurück
Oben