PDA

Bekijk Volledige Versie : Xen brengt vif0.0 en peth0 niet up



Wido
06/12/07, 15:11
Hallo,

Ik ben bezig met een setup waar mijn Xen dom0 boot vanaf NFS.

Zo zijn mijn dom0's diskless.

Vervolgens wil ik mijn domU's booten vanaf een iSCSI target.

Dit gaat allemaal prima, mijn Debian Etch systeem boot mooi met Xen 3.1 en Open-iSCSI 2.0

Het gaat allemaal prima, totdat ik mijn domU start.

Deze boot ook prima vanaf het iSCSI target, maar vervolgens doet het netwerk het niet.

Nu kijk ik in mijn dom0 en zie ik bij "ifconfig" dit:

eth0 Link encap:Ethernet HWaddr 00:0A:E4:E0:9A:A9
inet addr:192.168.5.251 Bcast:192.168.5.255 Mask:255.255.255.0
inet6 addr: fe80::20a:e4ff:fee0:9aa9/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:331281 errors:0 dropped:0 overruns:0 frame:0
TX packets:187861 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:461362222 (439.9 MiB) TX bytes:21947303 (20.9 MiB)
Interrupt:20 Base address:0xc400

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:560 (560.0 b) TX bytes:560 (560.0 b)

xenbr0 Link encap:Ethernet HWaddr 00:00:00:00:00:00
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:468 (468.0 b)

Hier mis ik duidelijk vif0.0 en peth0

Ook een "brctl show" geeft weinig weer:

dom0:~# brctl show
bridge name bridge id STP enabled interfaces
xenbr0 8000.000000000000 no
dom0:~#

Er zijn dus geen interfaces aan mijn bridge gekoppeld.

Xen zou vif0.0 en peth0 up moeten brengen, echter gebeurd dat dus niet.

In mijn xend-config.sxp staat:

(network-script network-bridge)
(vif-script vif-bridge)

Dit werkt op diverse machine's prima, alleen op deze machine die vanaf NFS boot niet.

Wat heb ik geprobeerd?
Ik heb al geprobeerd een oude Xen te installeren (3.0.4), dat werkte ook niet.

Ik heb Xen al vanaf source gecompiled, ook dat bood geen oplossing.


Heeft iemand dit ooit meegemaakt? Ik heb al mailinglists af gestruind de afgelopen 3 dagen, maar overal zie ik wel mensen met het zelfde probleem, maar de oplossingen die werden aangedragen werken niet. (Kernel modules laden die ik al geladen heb).

Iemand een idee?

gjtje
06/12/07, 15:18
Werkt het wel wanneer je ze met de hand op brengt?

Wido
06/12/07, 15:47
Werkt het wel wanneer je ze met de hand op brengt?Hoe zou jij deze met de hand up brengen?

Dit gebeurd door Xen in network-bridge en vif-bridge. Ik heb zo geen idee hoe dat met de hand te doen?

Wido
10/12/07, 12:38
Toch stiekem een kick, niemand een idee?

Een edit mag niet meer, dus even een extra post.

Ik heb nu een tweede NIC in mijn machine er bij en voor die NIC komt de bridge wel goed up:

ifconfig

eth0 Link encap:Ethernet HWaddr 00:30:48:90:BB:50
inet addr:192.168.5.251 Bcast:192.168.5.255 Mask:255.255.255.0
inet6 addr: fe80::230:48ff:fe90:bb50/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:122212 errors:0 dropped:0 overruns:0 frame:0
TX packets:93056 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:123060244 (117.3 MiB) TX bytes:27683861 (26.4 MiB)
Interrupt:16

eth1 Link encap:Ethernet HWaddr 00:30:48:90:BB:51
inet addr:192.168.8.251 Bcast:192.168.8.255 Mask:255.255.255.0
inet6 addr: fe80::230:48ff:fe90:bb51/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:23 errors:0 dropped:0 overruns:0 frame:0
TX packets:13 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2476 (2.4 KiB) TX bytes:930 (930.0 b)

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:9 errors:0 dropped:0 overruns:0 frame:0
TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:672 (672.0 b) TX bytes:672 (672.0 b)

peth1 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF
inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link
UP BROADCAST RUNNING NOARP MTU:1500 Metric:1
RX packets:38 errors:0 dropped:0 overruns:0 frame:0
TX packets:20 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:5236 (5.1 KiB) TX bytes:1621 (1.5 KiB)
Interrupt:17

vif0.1 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF
inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link
UP BROADCAST RUNNING NOARP MTU:1500 Metric:1
RX packets:13 errors:0 dropped:0 overruns:0 frame:0
TX packets:24 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:930 (930.0 b) TX bytes:2546 (2.4 KiB)

xenbr0 Link encap:Ethernet HWaddr 00:00:00:00:00:00
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:468 (468.0 b)

xenbr1 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:27 errors:0 dropped:0 overruns:0 frame:0
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2240 (2.1 KiB) TX bytes:468 (468.0 b)


Mijn xend debug log zegt:

Xend started at Mon Dec 10 12:42:22 2007.
ifdown: interface eth0 not configured
SIOCSIFNAME: Device or resource busy
Nothing to flush.

Nu ben ik gaan zoeken en kwam ik op: https://bugs.launchpad.net/ubuntu/+source/xen-3.1/+bug/150805

De oplossing daar (eth0 in interfaces file) lost het voor mij niet op.

Daarnaast gebruik ik geen Ubuntu Gutsy, maar Debian Etch met Xen 3.1 vanaf XenSource.com

Mijn NFS mount loopt ook over eth0, het lijkt er dus op doordat er nog steeds een actieve connectie is voor eth0 dat Xen er niets mee kan.

Ook is mijn eth0 al up gebracht door het kernel tijdens het boot proces voor de NFS mount, dus ook daar kan het probleem eventueel zitten.

hostlogic.nl
10/12/07, 15:35
Volgens mij haalt Xen het MAC adres van de fysieke adapter (eth0) en zet deze op de peth0 device. Vervolgens bouwt Xen een bridge met daarin de peth0 en vif0.X devices.

Kun je de loglevel hoger zetten, om te zien of er dan wel zinnige meldingen in de logfile verschijnen?

Wido
10/12/07, 15:40
Volgens mij haalt Xen het MAC adres van de fysieke adapter (eth0) en zet deze op de peth0 device. Vervolgens bouwt Xen een bridge met daarin de peth0 en vif0.X devices.

Kun je de loglevel hoger zetten, om te zien of er dan wel zinnige meldingen in de logfile verschijnen?Klopt, die theorie had ik gelezen.

Het gaat bij mij hier fout (/etc/xen/scripts/network-bridge)

ip link set ${netdev} name ${pdev}

Dit is ook wel:

ip link set eth0 name peth0

eth0 is dus door het kernel up gebracht vanwege de NFS boot, daardoor hebben de tools zoals "ifup", "ifdown" en "ip" geen kennis van eth0 en geven er daardoor een foutmelding op.

Als ik dit doe, gaat het fout (logisch!)

ifconfig eth0 down
/etc/init.d/networking start

In theorie moet dat werken, maar doordat mijn systeem vanaf NFS boot kan na de "ifconfig" het init.d script nooit meer worden uitgevoerd, hij kan immers niet van de NFS lezen.

Hiervoor moet ik dus een creatieve oplossing verzinnen, iemand een idee?

En ik ben weer wat verder!

eth0 staat niet in /etc/network/run/ifstate, hierdoor kennen de "if*" tools de interface niet.

De interface manueel toevoegen werkt, echter kan de bridge nooit up komen omdat Xen heel kort de link moet verbreken.

Zodra dat gebeurd is de server de link met de NFS-server kwijt, waardoor het geheel onderuit gaat.

Ik ben nu bezig onder andere /etc, /lib, /usr/lib, /bin en /sbin in een ramdisk te laden (tijdelijk) zodat het toch werkt.

Dat voorloopt echter niet voorspoedig.... Ik kan de NIC er uit trekken en in bijv /etc een "ls" doen, maar als ik het netwerk wil herstarten dan krijg ik gelijk "nfs server is not responding"

Ik moet dus nog uitzoeken welke files hij nodig heeft en die ook tijdelijk in een ramdisk laden.

Dan moet het geheel gaan werken met een flink verbouwde Debian Etch...

Wido
12/12/07, 12:36
Ok, ik heb het voor elkaar, maar wel op een compleet andere manier dan geplanned!

Ik heb een eigen initrd gemaakt waarin ik mijn systeem voorbereid.

Ik download mijn gehele OS (Verbouwde Debian Etch) vanaf het web naar het ram waar ik deze vervolgens ook uit pak in het ram.

Hierna ga ik alle services starten die ik nodig heb en vervolgens draait mijn gehele OS in het geheugen.

Er zit dus ook geen NFS meer in de weg, wat ook voor een point of failure elimineert.

Het draait prima, ik draai echt alles wat ik nodig heb (Xen, SSH en Open-iSCSI), meer draait mijn server niet.

Ik ga dit ook nog documenteren en zal kijken of ik dit publiek zal maken.

hrodenburg
12/12/07, 12:48
Je hele dom0 draait dan altijd vanuit je ram dus? Dat is wel netjes, want dan blijft ie altijd draaien wanneer hij gestart is, ook als de nfs server weg mocht vallen. Hoe groot is je dom0 geworden dan trouwens? Ben wel geinteresseerd hoe je het gemaakt hebt.

Wido
12/12/07, 12:50
Je hele dom0 draait dan altijd vanuit je ram dus? Dat is wel netjes, want dan blijft ie altijd draaien wanneer hij gestart is, ook als de nfs server weg mocht vallen. Hoe groot is je dom0 geworden dan trouwens? Ben wel geinteresseerd hoe je het gemaakt hebt.Ja, de hele dom0 draait vanuit het ram. Ik doe niets meer met NFS, ik trek in mijn initrd omgeving via HTTP (wget) een tar binnen die ik uit pak in /

Daarna ga ik de benodigde services starten en nog dingen doen zoals mijn netwerk configureren.

Ik zit nu nog op 300MB geheugen gebruik, wel wat veel dus. Maar ik moet daarin nog een hele hoop kunnen snijden, alleen ga ik eerst even voor functionaliteit en stabiliteit alvorens ik het geheugen gebruik ga terug dringen.

hrodenburg
12/12/07, 13:44
Klinkt wel goed en veelbelovend inderdaad. Een nieuwe release van je dom0 uitrollen wordt dan ook wel een stuk eenvoudiger lijkt mij zo. Buiten drivers in initrd heb ik nog nooit iets anders met initrd gedaan, maar het kan blijkbaar wel dus :)

Wido
12/12/07, 13:57
Klinkt wel goed en veelbelovend inderdaad. Een nieuwe release van je dom0 uitrollen wordt dan ook wel een stuk eenvoudiger lijkt mij zo. Buiten drivers in initrd heb ik nog nooit iets anders met initrd gedaan, maar het kan blijkbaar wel dus :)Klopt.

Kwestie van een nieuwe initrd maken en al je servers rebooten.

Maar voordat je reboot heb je uiteraard via live migration je VM's over gezet naar een andere node.

davhog
12/12/07, 14:54
Klinkt erg goed.
Toch even een beginnersvraag....
Vanaf waar laad je de kernel en waar staat je wget binary?
Is dat een iscsi schijf ofzo?

Wido
12/12/07, 15:03
Klinkt erg goed.
Toch even een beginnersvraag....
Vanaf waar laad je de kernel en waar staat je wget binary?
Is dat een iscsi schijf ofzo?Nee, dat staat in de initrd image die ik tijdens het booten vanaf mijn tftp server laad.

Ik gebruik hiervoor PXE boot, Google daar maar eens op. Dan vind je een hoop informatie.

hrodenburg
12/12/07, 16:24
Zoals ik het nu begrijp:
1 boot je kernel (+initrd) over pxe
2 maak een ramdisk vanuit initrd
3 wget je tar over http en pak deze uit

<edit> ik zie nu een thread met docs</edit>