[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Linux, network root filesystems
[Thread Prev] | [Thread Next]
- Subject: Linux, network root filesystems
- From: Markus Hochholdinger <Markus@xxxxxxxxxxxxxxxxx>
- Date: Fri, 23 Dec 2005 17:50:02 +0100
- To: uugrn@xxxxxxxxxxxxxxx
Hallo, ich bin gerade dabei zu evaluieren was die "beste" Methode ist bei einem Linux-System das root Dateisystem im Netzwerk zu lagern. Und am besten noch redundant. Hintergrund ist auch die Verwendung in Verbindung mit Virtualisierung. Dabei spielt auch der Punkt Live-Migration (siehe Xen) eine Rolle. Prinzipiell verfolge ich den Ansatz Festplatten von der CPU zu trennen. Dabei habe ich mindestens zwei Festplatten-Server (Redundanz). Und ein oder mehrere Hardware, wo virtuelle Maschinen darauf laufen. Als Skizze: ----------------- ----------------- |Server1 | <-sync-> | Server2 | | Festplatte(n) | | Festplatte(n) | ----------------- ----------------- | | ----------------------------------------- Netzwerk ¹ | | ----------------------- ----------------------- |Hardware1 | |Hardware1 | | Virtueller Server1 | | Virtueller Server4 | | Virtueller Server2 | | Virtueller Server5 | | Virtueller Server3 | | Virtueller Server6 | ----------------------- ----------------------- Optimal waere: Die virtuellen Server haben ihr root-Dateisystem uebers Netzwerk auf Server1 und Server2 (redundant). Das root-Dateisystem ist unabhaengig von Hardware1 oder Hardware2. Dadurch haette man bei einem Ausfall von Server1 oder Server2 kein Problem und koennte gleichzeitig eine Live-Migration von Hardware1 auf Hardware2 machen. Wenn eine Hardware "abstuerzt" sind natuerlich auch alle virtuellen Server darauf beendet, koennten aber sehr einfach und "schnell" (automatisch) auf Hardware2 gestartet werden. Ansaetze: 1. nfs Als erstes trifft man natuerlich auf nfs wenn man ein root-Dateisystem uebers Netzwerk haben will. * Nachteil(e) - Keine echte Redundanz. Wenn Server1 ausfaellt bleibt der virtuelle Server stehen bis Server1 wieder per nfs erreichbar ist. - nfs hat (anscheinend) Probleme bei einer hohen Last. - Performance ist ueber nfs nicht so gut. - Nicht jedes Dateisystem Feature wird von nfs unterstuetzt. * Vorteil(e) - Live-Migration moeglich. - Ein virtueller Server kann mit root-Dateisystem auf Server2 schnell gestartet werden, wenn Server1 ausfaellt. - nfs kann so ziemlich jeder Linux-Lernel von Haus aus. - Keine Festlegung des verfuegbaren Platzes notwendig (Partitionierung). 2. nbd bzw. gnbd Als naechstes trifft man haeufig auf die network block devices oder global network block devices. Dabei habe ich keine Moeglichkeit gefunden ein nbd schon beim Booten einzubinden (vielleicht kann mich hier jemand eines besseren belehren?). Deswegen: * Nachteil(e) - Ein block device aus nbd(s) muss auf Hardware1 oder Hardware2 erst konfiguriert werden und ist damit an die Hardware gebunden. - Deswegen keine Live-Migration moeglich. - Die Groesse eines nbd muss entweder ueber Partitonieren festgelegt werden oder als Datei (langsamer) freigegeben werden. Ja, man kann dies auch mit dem LVM abdecken. Hat dann aber immer ein gefummele wenn man Festplattenplatz neu zuordnen will. * Vorteil(e) - Jeweils ein nbd von Server1 und Server2 kann zu einem RAID1 zusammengebaut werden. Ausfallsicherheit wenn Server1 oder Server2 abraucht. - Performance ist gut. - nbd wird von so gut wie jedem Linux-Kernel unterstuetzt. - Das Dateisystem kann vom virtuellen Server selbst verwaltet (erstellt) werden und damit sind alle Dateisystem Features moeglich die man benoetigt. 3. iSCSI Habe ich noch nicht genauer angeschaut. Sieht aber vielversprechend aus. Hat hier jemand Erfahrung damit? * Nachteil(e) - iSCSI-Server mit Linux moeglich!? Hab dazu nichts gefunden! Sprich man wuerde eine (teure) Storage-Loesung benoetigen!? - Benoetigt evtl. Kernal-Anpassungen und vor allem eine initrd die man entsprechend anpassen muss. Aeltere Linux-Systeme laufen evtl. damit nicht. * Vorteil(e) - Server1 und Server2 koennen parallel jeweils ein iSCSI device bereit stellen welche dann als RAID1 genutzt werden. - Live-Migration moeglich. - Das Dateisystem kann vom virtuellen Server selbst verwaltet (erstellt) werden und damit sind alle Dateisystem Features moeglich die man benoetigt. 4. gfs (global filesystem), impliziert eine Form der Nutzung von gnbd Das hier habe ich noch nicht ganz verstanden. Evtl. kann mir auch hier jemand weiter helfen? * Nachteil(e) - Benoetigt Kernel-Modifikationen. Aeltere Linux-Systeme laufen evtl. damit nicht. - Alle Systeme nutzen "dasselbe" gfs. Schweinereien mit symbolischen Links fuer die einzelnen Server sind moeglich. - Kompliziert (!?) aufzusetzen. * Vorteil(e) - root Dateisystem auf gfs moeglich. - Live-Migration moeglich!? - Ausfallsicherheit mit Multipath zu Server1 und Server2!? Mehr wirklich nutzbare Moeglichkeiten habe ich nicht gefunden. Kennt ihr noch welche? Persoenlich finde ich den nfs-Ansatz am einfachsten umzusetzen. Gibt es Moeglichkeiten nfs auf Ausfallsicherheit zu clustern, sprich dass auch offene nfs-Dateien vom Fallback-Server uebernommen werden koennen? Bei nfs ist es auch sehr unproblematisch aeltere Linux-Installationen zu uebernehmen. Allerdings hat nfs doch hier und da Probleme. Anscheinend Probleme bei hoher Last (konnte ich selbst aber noch nicht nachvollziehen) und Probleme mit dem file locking (das habe ich jetzt schoen oefters gesehen). Ausserdem hat man mit nfs nicht alle "Dateisystem-Features" wie EA und ACL. Auch sehr gut finde ich den nbd bzw. gnbd Ansatz. Den wuerde ich sehr gerne umsetzen wenn ich ein Moeglichkeit finde das nbd innerhalb der virtuellen Server aufzusetzen und nicht schon auf dem Host-system (Hardware). Hm, evtl. kommt man hier mit einer angepassten initrd weiter? Aber dann wird es wieder schwierig aeltere Linux-Installationen zu uebernehmen. Ich glaube das ganze wird ein Abwaegen was man wirklich braucht und was nur "nice to have" waere. Informationen oder Erfahrungen von euch wuerden mich brennend interessieren. PS: Ich habe nun als Virtualisierung UML (user mode linux) schon ca. ein halbes Jahr erfolgreich im Einsatz (allerdings schlechte I/O Performance) und beginne nun mit Xen 3.0 zu experimentieren. Ausserdem steht evtl. ein groe�eres Projekt mit VMWare GSX Server an. Damit werde ich hoffentlich ein paar gute Erfahrungen (und Vergleiche) mit all diesen Virtualisierungs-Loesungen bekommen. ¹ Das Netzwerk sollte natuerlich physikalisch getrennt sein, zur einfacheren Darstellung hier aber global als "Netzwerk" definiert. Protokoll sollte IP sein. -- Gruss \|/ eMHa (o o) ------------------------------------------------------oOO--U--OOo-- Markus Hochholdinger e-mail mailto:Markus@xxxxxxxxxxxxxxxxx .oooO www http://www.hochholdinger.net ( ) Oooo. ------------------------------------------------------\ (----( )- \_) ) / (_/