[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: nfs mount beim booten über fstab [debian,lenny,xen]



GAAAAAAAHHHHNNNNZZZZZZ großes Tennis !!!!!

Funktioniert super !

Tausend Dank !

Na hoffentlich finden andere diesen Thread in Zukunft, ich hab mich wirklich bald tot gegoogled und yahoohed.

Gruß, Robert Bude

Harald Weidner schrieb:
Hallo,

Robert Bude <rupat@rupat.de>:

  
Ich kämpfe seit mehreren Tagen daran in einer Xen DomU ein NFS Mount auf 
ein Verzeichnis in der Dom0 hinzubekommen. Gleich vorweg: NFS technisch 
ist alles im Lot. Manueller mount sowie ein "mount -a" nach booten der 
DomU funktionieren ! Doch trotz des korrekten Eintrags in der /etc/fstab 
der DomU will nach booten selbiger meine NFS Verbindung einfach nicht 
"hochkommen".
    
Wenn Bridging, Bonding, STP oder ähnliches involviert ist, dann kann es nach
dem Aktivieren eines Netzwerkinterfaces einige Zeit dauern, bis tatsächlich
Kommunikation möglich ist. Das Problem lässt sich durch Bridge-Parameter
mildern, aber nicht völlig abstellen. Debians ifupdown Mechanismus fängt das
von alleine nicht ab, so dass während des weiteren Bootvorgangs
Netzwerkkommunikation nicht deterministisch funktioniert.

Daher verwende ich auf meinen mit Bonding angeschlossenen Servern folgenden
Workaround:

In der /etc/network/interfaces wird am Ende des Startvorgangs ein
Skript aufgerufen, das erst terminiert, wenn das Interface funktioniert.
Beispiel:

auto eth0
iface eth0 inet static
        address 10.1.1.15
        network 10.1.1.0
        netmask 255.255.255.0
        broadcast 10.1.1.255
        gateway 10.1.1.1
        up /etc/network/scripts/alive.sh 10.1.1.1

Als Parameter des Skripts wird ein Host angegeben, der im Netz immer
erreichbar sein muss, etwa der Xen-Host, ein Router oder eine Firewall.
Das Skript kennt noch zwei weitere Parameter <count> und <probes>, und
schickt danach im Zweisekundenabstand bis zu <probes> Pings ab. Die
Verbindung wird als erfolgreich angesehen, wenn <count> Pakete beantwortet
wurden.

Das Skript selbst sieht so aus:

----- schnipp -----
#!/bin/bash

if test "$#" -lt 1; then
  echo "Usage: alive.sh <target> [ <count> [ <probes> ]]"
  echo "(defaults: count=2 probes=20)"
  exit 1
fi

target=$1
count=${2:-2}
probes=${3:-20}

while sleep 1; do
  probes=$((probes - 1))
  ping -q -c 1 -W 1 $target >/dev/null && count=$((count - 1))
  if test $count -le 0 -o $probes -le 0; then break; fi
done

test $count -gt 0 && exit 1
exit 0;
----- schnapp -----

Wichtig ist hierbei, dass das Paket iutils-ping installiert ist, da
das ping Kommando aus inetutils-ping die verwendeten Optionen nicht
versteht.

  
Ich habe mich auch schon über die ersten 6 Seiten von 
http://www.google.de/search?q=nfs+mount+boot+-diskless&hl=de&start=10&sa=N 
gequält. Dort beschreiben viele genau dieses Problem. Anständige 
Lösungen tauchen jedoch nicht auf. (ausser die rc.local geschichte)
    
Vielleicht verhält sich ja diese Lösung hier anständig. ;-)

Gruß, Harald


  


Reply to: