-
Ist das ein Exokernel?
Autor: SchreibenderLeser 17.03.16 - 23:17
Ich verstehe das Verfahren anhand der Beschreibung irgendwie nicht.
Sehe ich das richtig, dass die Hardware sozusagen direkt arbeitet und das OS nur noch die Lasten verteilt? -
Re: Ist das ein Exokernel?
Autor: StopTrolling 17.03.16 - 23:31
Maglev allokiert einen Packet Pool und dieser wird mit den NIC geteilt. Der NIC schreibt direkt in den Packet Pool von Maglev ohne, dass der Kernel in irgendeiner Form tätig wird. Der NIC muss das natürlich unterstützen. Es werden keine Packete im Memory hin und her kopiert und es gibt keinen Kontext Switch. Alles findet im Usermode statt.
-
Re: Ist das ein Exokernel?
Autor: Nogger 18.03.16 - 09:02
Danke für die Erklärung. Wäre das auch nicht für andere Anwendungen sinnvoll z.B. Datenbanken Webserver. Gibt es eine freie Bibliothek die so was erlaubt?
-
Re: Ist das ein Exokernel?
Autor: Baron Münchhausen. 18.03.16 - 10:51
Ja so etwas gibt es schon. Maglev. Als freies system nicht.
-
Re: Ist das ein Exokernel?
Autor: StopTrolling 18.03.16 - 12:14
Nogger schrieb:
--------------------------------------------------------------------------------
> Danke für die Erklärung. Wäre das auch nicht für andere Anwendungen
> sinnvoll z.B. Datenbanken Webserver. Gibt es eine freie Bibliothek die so
> was erlaubt?
Freie Bibliothek wüsste ich jetzt nicht. Cloudflare hat mal in einem Blog verschiedene Techniken für einen Kernel Bypass erläutert:
https://blog.cloudflare.com/kernel-bypass/
Problem ist, dass fast alle Techniken einen dedizierten NIC brauchen. Cloudflare hat eine eigene Lösung dafür implementiert, da ein dedizierter NIC für eine Anwendung keine Lösung für sie war. Noch am einfachsten umzusetzen ist wohl die Variante mit virtuellem NIC. Bringt zwar nicht so hohe Leistung wie die anderen Methoden, sollte aber immer noch deutlich schneller sein als der Linux Network-Stack.
Das das bei Webservern und DBs so eine gute Idee ist, glaube ich nicht, da die auf wesentlich höheren Layern arbeiten. Ein Webserver braucht einen TCP/IP Stack. Du brauchst den Application Layer HTTP usw. Am Ende implementierst du selbst einen kompletten Netzwerk-Stack selbst. Ob das dann am Ende immernoch schneller ist und ob es den Aufwand wert ist, würde ich jetzt erstmal bezweifeln. -
Re: Ist das ein Exokernel?
Autor: Baron Münchhausen. 18.03.16 - 19:17
Versteht hier eigentlich einer was er schreibt? Warum sollte der anwendungs layer für load balancing zuständig sein? Schalte den load balancer vor was auch immer du willst (was sinn ergibt, also keine kekse) und fertig.das ist der verdamte sinn und zweck der layer? Was interessiert es ihn wie die pakete verwendet werden? Und umgekehrt, was interessiert die anwendung wie die pakete zugestellt wurden?
-
Re: Ist das ein Exokernel?
Autor: TheSUNSTAR 20.03.16 - 13:50
Vielleicht ist die Welt auch einfach nicht so schwarz/weiß wie du sie dir vorstellst. Also auf irgendeinem Layer muss der Load-Balancer ja arbeiten was ihn automatisch Anwendungsspezifisch bzw. abhängig macht. Desto tiefer der Balancer arbeitet desto beschränkter ist er bei der Verteilung der eingehenden Last, für höhere Layer steigt hingegen die HW-Anforderung.
Schaut er nur Ethernet-Frames an dann ist er im Worstcase auf ein eindeutige Abbildung der zufällig vergebenen MAC-Adresse auf den zu nutzenden Anwendungsserver angewiesen. Dies ist vielleicht zu rudimentär, nicht gut steuerbar und erzielt keine sehr gleichmäßige Verteilung. Entweder dies oder man muss sicherstellen dass das höhere Anwendungsprotokol wild zerstückelt werden kann, also z.B. ein zustandsloses UDP Protokol verwendet wird. IP-Balancer kommen da schon besser weg, hier spielt noch recht viel Hardware mit. Auch hier gilt aber das dann letztlich alle Anfragen von einem Quellrechner von einem einzigen Zielrechner bearbeitet werden müssen, die Last dieses einen Clients lässt sich ggf. nicht auf mehrere Anwendungsserver verteilen weil ansonsten mangels Wissen beim Balancer TCP-Datenströme zerrissen werden. Bei einfachem HTTP als Anwendung muss man also bereits entweder ein schlechtes Balancing in kauf nehmen oder man braucht schon einen der Layer-4 versteht.



