PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Serverloses Netz - Diskussion



dragonheart7395
15.02.04, 13:30
Hallo!
Ich hatte kürzlich eine Idee als ich mir Gedanken gemacht hab, wie denn ein Netzwerk ohne Server aussehen könnte. Ich bin kein Informatiker und vielleicht sind meine Vorstellungen ja auch naiv - ich würde einfach gerne Eure Meinung dazu hören, und vieleicht sind ja sogar ein oder zwei Punkte dabei, über die es sich zu diskutieren lohnt...

Also, wie gesagt, es geht um ein Netz ohne Server und ohne eine zentrale Instanz. Alle Netzknoten sollen gleichberechtigt sein, alles ist dezentral organisiert - das Netz selbst ist quasi der Server. Das Netz muß sich daher selbst organisieren können.
Ich stell mir das so vor, dass auf jedem Netzknoten (je nach freier Rechenkapazität) ein anderer Serverdienst läuft (auf einem läuft DHCP, ein anderer bietet LDAP an, einer managt die Datenzugriffe auf Netzlaufwerke und ein Dämon muß für die gleichmäßige Verteilung der Last im Netz verantwortlich sein, etc...). Die Adressen der Rechner auf denen die einzelnen Dienste laufen sind netzweit bekannt.
Natürlich kann es jederzeit passieren, dass ein einzelner Knoten ausfällt - Absturz einer Anwendung, die das System mitreißt oder einfach vom Benutzer abgeschaltet (schließlich sind es ja alles Arbeitsplatz-PCs). Deshalb muß jeder Dämon auf mindestenz zwei verschiedenen Rechnern laufen. Die Dämonen eines bestimmten Typs überwachen sich gegenseitig und sobald einer ausfällt starten sie auf einem anderen Rechner eine neue Instanz von sich. Natürlich können bei Bedarf beliebig viele weitere dazukommen um keine Engpässe zu haben und die Auslastung besser zu verteilen.
Jeder Rechner kennt alle Adressen, auf denen momentan ein bestimmter Dienst zu erreichen ist und er sucht sich dann entweder zufällig eine aus, oder die räumlich nächste oder nach einem andern System.
Alle Dämonen eines Typs die gleichzeitig laufen sind durchnummeriert - der mit der kleinsten Nummer ist immer der Master. Er startet einen neue Instanz von sich, sobald irgendwoanders eine ausfällt. Fällt er selber aus, dann übernimmt die Instanz mit der nächsthöheren Nummer seinen Platz (wird quasi zum Nachfolger) und so weiter. So ist sichergestellt, dass bei Ausfall einzelner Knoten schon nach kurzer Zeit die gesamte Netzfunktionalität wieder hergestellt ist. (selbstverständelich dürfen niemals alle Dienste eines bestimmten Typs gleichzeitig ausfallen - es müssen eben so viele gleichzeitig laufen, dass das sehr unwahrscheinlich ist)
Es muß auch einen Dämon geben, der die Netzlastverteilung im Auge hat und welcher Dämon wo gerade läuft. An Ihn können alle Rechner Anfragen stellen, wo bestimmte Dienste derzeit erreichbar sind (für neu hinzugekommene Rechner) oder ihre Daten abgleichen falls sich Adressen geändert haben. Außerdem weiß dieser Dämon genau, welcher Netzknoten gerade wie stark ausgelastet ist (egal ob durch Netzdienste oder durch Arbeitsplatztätigkeit) und ein Dämon, der gerade eine neue Instanz von sich irgendwo anders starten will fragt hier nach, welcher Knoten der geeignete wäre. Dieser Dämon sollte auch für eine gleichmäßige Auslastung der einzelnen Knoten sorgen, sprich: einen überproportional belasteten Knoten entlasten durch beenden von Prozessen (die werden dann ja über den angesprochenen Mechanismus auf einem weniger ausgelasteten Rechner neugestartet) Wenn der Anwender auf seinem Rechner ein sehr CPU-und Speicheraufwendiges Programm startet, wird dieser automatisch von Serverdiensten entlastet. Selbstvertändlich ist dieser Dämon - wie alle anderen auch - redundant und läuft in mehreren Instanzen auf mehreren Rechnern parallel irgendwo im Netz; der 'Selbstheilungsmechanismus' bei Ausfall einer Instanz ist dann der selbe. Wenn ein neuer Rechner zum Netz dazukommt muß er einfach einen beliebigen Knoten fragen, wo gerade ein solcher Dienst läuft, dann kann er sich von dort die Information holen, wo er momentan welchen Netzdienst erreichen kann.
Was dann noch fehlt ist einegeeignete Festplattenverwaltung - man will ja im allgemeinen mit Netzwerkweiten Verzeichnissen Arbeiten (gemeinsamer Zugriff, Datenaustausch,...). Dazu braucht man auch wieder einen Dämon, der die Zugriffe Kanalisiert. Die Daten selbst sind auf den Festplatten der einzelnen Rechner verteilt - natürlich redundant. Ich stelle mir so eine art Raid-Array vor, das über das ganze Netz verteilt ist. (Ich glaube das Gnutelle-Projekt hatte schonmal sowas ähnliches für Peer-to-Peer angedacht) Man hätte also nur eine kleine Partition mit lokalem Zugriff für das Betriebssystem, der Rest der Platte würde dem Netz zur verfügung stehen. Ntürlich muß sich ein Dämon ständig darum kümmern, dass die Daten Netzwerkweit konsistent bleiben (das gilt vor allem, wenn ein Knoten abgekoppelt war) Jeder Netzteilnehmer richtet bei einem Datei-Zugriff seine Anfrage an eine Instanz dieses Dämons - der rückt dann die IP-Adressen der Rechner heraus, auf denen die angeforderte Datei verstreut liegt und stellt eine Peer-to-Peer-Verbindung zwischen dem anfragenden Knoten und den angefragten Knoten her. Da es hier keine lokalen Dokumente gibt, müssen natürlich die Zugriffsmechanismen und Rechtevergabe entsprechend funktionieren. Man kann ohne weiteres Dateien (bzw Teile davon) auf der eigenen Festplatte haben, auf die man gar nicht zugreifen darf. (das ist aber kein Sicherheitsproblem, weil die Dateien nie vollständig auf einer einzelnen Platte liegen)


Soweit meine -zugegebenermaßen bisher wage- Vorstellung. So eine Stuktur ist natürlich nur in einem abgeschlossenen Umfeld möglich - zB in einem Firmennetz.
Die Vorteile wären natürlich zunächnächt einmal die, dass die teure Serverhardware entfallen würde und dafür Hardware genutzt würde, die sowieso schon da ist und deren Potential sonst größtenteils brach liegt. Immerhin hat in größeren Firmen jeder seinen Ghz-PC auf dem Schreibtisch mit 50GB-Festplatte. Die Festplatte wird dabei eigentlich nur genutzt um Software zu installieren, und die CPU langweilt sich die meiste Zeit wärend der Anwender Emails liest oder Texte schreibt.
Ein weiterer Vorteil wäre natürlich auch die gute Skalierbarkeit, die sich quasi automatisch ergibt: mit jedem zusätzlichen Arbeitsplatz-PC wächst auch die Kapazität/Leistung des Netzes - im konventionellen System muß man bei zusätzlichen Clients immer auch die Server ausbauen...
Der Hauptvorteil ist in meinen Augen aber die Robustheit, die dieses System mit sich bringen würde - es kann ein beachtlicher Teil des Netztes auf einen Schlag ausfallen, ohne dass die Funktionalität gefährdet ist! Das gilt im herkömmlichen Server-Client-System zwar auch, aber nur für die Clients! Sobald der Server von einem Ausfall betroffen ist ist alles tot. (deshalb steckt man ja auch so viel Aufwand in Redundanzen im Server etc, um das Risiko zu minimieren..)

Vielleicht gibt es das ja schon alles - ich könnte mir vorstellen, dass ein Grid ganz ähnlich funktioniert, allerdings hab ich noch nie davon gehört, dass es in dieser Form eingesetzt wird...
Was meint Ihr denn dazu?

bla!zilla
15.02.04, 20:14
Klar, wir lassen SAP nicht im Rechenzentrum laufen, sondern auf den 300 Arbeitsplatz PCs. Super! Die teurer Server-Hardware ist auch nicht teuer, wenn ich den Administrationsaufwand deines Netzes sehe. Zudem gibt es deine Vorstellung heute schon: Nennt sich Peer-to-Peer Netzwerk und ist bei bis zu 5 Rechnern sinnvoll. Bei mehr Clients ist Client/Server angesagt.

cya
bla!zilla

sirmoloch
15.02.04, 20:32
Die Idee mag ja ganz nett sein, ist aber utopisch. Wie blazilla schon gesagt hat, der Administrationsaufwand wäre schon mehr als :ugly: ...

drunkenPenguin
15.02.04, 23:18
@dragonheart7395:
Was Du da alles beschrieben hast, ist nichts neues. Parallele Server, die sich gegenseitig überwachen sind (denke ich) so etwas wie ein Standard bzw. sollten es sein.
Was die anderen beiden bereits angesprochen haben, ist der administrative Aufwand. Was allerdings nicht angesprochen wurde, ist der sicherheitstechnische Aspekt. So ein Netz abzusichern grenzt mit Sicherheit an Schwerstarbeit. Man sollte immer bedenken, dass so ein Netz auch hardwareseitig gegen unbefugten Zugriff geschützt werden muss.
Daher sind zentrale Server(räume) eher angebracht, da leichter zu überwachen.
Desktop-PCs kann man durch Terminals/Thinclients ersetzen. IMHO kostengünstiger und definitiv leichter auszutauschen.
Die Idee ist IMHO in einem Heimnetzwerk sinnvoll, aber in einem Firmennetzwerk (leider) nicht zu gebrauchen. Du musst immer bedenken, dass es Benutzer gibt, die sich nicht unbedingt so verhalten, wie es der Hardware zuträglich ist.

Gruß,
Daniel

Doh!
15.02.04, 23:42
Hab' ich mir doch gleich gedacht, als ich die Idee las, dass die Antworten hier lauten: "Utopisch! Quatsch! Geht net! ..."

Ich finde die Idee ist bemerkenswert! Die Grundidee ist klar. Man will brachliegende Resourcen nutzen, anstatt die Leistung der vorhandenen Rechner verkommen zu lassen.

Ein Gegenansatz zu Deiner Idee existiert ja schon als Terminalserver, da hat man nur wenige bis einen Rechner, an denen im Prinzip nur Tastaturen und Bildschirme angeschlossen werden.

Deine Idee wäre natürlich mit den derzeitigen mitteln nur sehr schwer durchführbar. Aber mir schwebt da schon was vor. Wer von Euch schon mal was mit Routing (und ich meine nicht das Routing zu Hause oder im LAN der Firma, sondern richtiges Männerrouting) zu tun hatte, weiß, dass verschiedene Protokolle die Router mehr oder weniger selbst konfigurieren - ohne zutun der Admins.

Man könnte auf jedem Rechner einen Client installieren, der von einem bestimmten Rechner aus den ausführbaren code via Netzwerk direkt in den Speicher der Clients pusht. Von dort aus kann er aktiviert werden. Wird eine Kiste ausgeschaltet, sendet die ein "Todes"-Signal an einen anderen aktiven Client, der dann einspringen könnte. Ganz ohne Server wird wohl auch das nicht laufen, allerdings könnte man die Kosten drastisch reduzieren, und hätte dennoch hohe Redundanzen. Am schönsten wäre es dann, wenn man am Ende ein Peer-to-Peer-Server-Daemon-Netz hat, ganz ohne Server, zumindest bei Teilanwendungen (mir fällt da gleich mal DHCP und DNS ein).

Die Kunst dabei ist es, den Netzwerktraffic, der für die Steuerung des ganzen notwendig ist, einerseits nicht zu groß, andererseits nicht unsicher werden zu lassen.

Mir gefällt die Idee. Bin schon immer Anhänger der Partisanen-Taktik gewesen, halte große Zentralen schon immer für sehr Anfällig.