Serverlast verteilen?

Status
Für weitere Antworten geschlossen.
AW: Serverlast verteilen?

Hallo Pegasus, zunächst einmal, habe den Rat befolgt und auch den relay hingekriegt. Jedoch habe ich folgendes Problem: (Ich denke an einer Steinigung komme ich wohl nicht vorbei...)Nehmen wir an, Server 1 hat 50 Slots und ist voll. So wie ich das verstanden habe müsste doch dann der Hörer der jetz noch kommt umgeleitet werden??Bei mir erscheint nur die Meldung:Stream full...und keine Umleitung...Eigentlich sollte doch der neue Hörer im Falle das der 1. Server voll ist automatisch umgeleitet werden...Na ja..wahrscheinlich drehe ich mich irgendwo im Kreis...Habe das Forum kreuz und quer durchforstet...Das Relaying an sich funktioniert , d.h. der zweite Stream überträgt ohne probleme...

Für jeglichen Tip wäre ich sehr dankbar, und grosses Kompliment an das Forum...Hab mir viele gute Tips hier geholt, obwohl ich mich heute erst angemeldet habe...
 
AW: Serverlast verteilen?

Trag den zweiten Server in eine .pls-Datei ein. Dann wird die nächste URL genutzt wenn die erste voll ist.
Du legst also eine .pls-Datei an in dem alle Server drinstehen.

Inwieweit das automatisch passieren muss, weiss ich nicht. Ich glaube es sollte so sein, kanns aber nicht sicher sagen.
 
AW: Serverlast verteilen?

Hört sich logisch an...werde es mal probieren. Vielen Dank für die schnelle Antwort.


Trag den zweiten Server in eine .pls-Datei ein. Dann wird die nächste URL genutzt wenn die erste voll ist.
Du legst also eine .pls-Datei an in dem alle Server drinstehen.

Inwieweit das automatisch passieren muss, weiss ich nicht. Ich glaube es sollte so sein, kanns aber nicht sicher sagen.

Super hat auf anhieb funktioniert...nochmals vielen Dank...
 
AW: Serverlast verteilen?

Leider funktioniert das bei z.B. nur Winamp nicht, wenn Playlist/Song-Repeating auf OFF steht.
 
AW: Serverlast verteilen?

Das wuerde aber bedeuten, dass beide Streamserver belegt sind, denn sonst wuerde der potentielle Hoerer entweder auf dem ersten oder dem zweiten Streamserver einen Connectplatz bekommen.

Die Repeat-Funktion bewirkt ausschliesslich, dass die Playliste wiederholt wird in der Reihenfolge, in der die Server eingetragen wurden.
Sonst nichts!
 
AW: Serverlast verteilen?

Also ich kann nur nochmals sagen, bei mir hats tadellos funktioniert. Vielleicht Acht auf das PLS File geben...
 
AW: Serverlast verteilen?

@Pegasus
Ein Loadbalancer muss keine Cisco-Hardware fuer viele tausend Euro sein. Hast du dir schon IPVS angeschaut. Rennt auf einem normalen Rechner und ist leistungsfaehig genug, um mehrere 100.000 Klicks/Stunde zu handeln, verteilt auf 5 Maschinen. Da die Loesung auf IP layer basiert, kann man damit auch Datenbankanfragen oder Streams balancieren. Vllt reicht dir das ja.
 
AW: Serverlast verteilen?

Ich hab jetzt keine Ahnung, worauf du dich beziehst. Loadbalancing ist aktuell kein Thema hier, bitte um Zitat des Posts, auf den du antwortest :confused:

Grundsätzlich hast du Recht und für Soho-Anwendung ist das tatsächlich völlig ausreichend.
Allerdings um ca. 20% langsamer als eine pure Hardwarelösung und macht nur Sinn, wenn die Hardware nur für diesen einen Zweck eingesetzt wird, um zu verhindern, dass irgendein anderer Dienst den Rechner evtl. zum Absturz bringt.
 
AW: Serverlast verteilen?

Ich bezog mich auf post #4 in diesem Thread, ok, auch der ist schon etwas aelter, sehe ich grad. In #6 zeigtest du aber Interesse an einem Anbieter oder einer Loesung, daher wollte ich dich mal auf IPVS verweisen. Dass auf dieser maschine dann natuerlich nichts anderes zu rennen hat, versteht sich von selbst. Ueber Geschwindigkeitsvergleiche gegenueber "reinen Hardwareloesungen" kann ich nichts sagen, fuerchte aber, dass auf selbigen am Ende auch nur Linux rennt.
 
AW: Serverlast verteilen?

Ok, jetzt hab ich den Zusammenhang ;)
Und ja, auf diesen Hardwarelsöungen läuft Linux, ebenso wie auf 95% aller Router. Will sagen, Linux ist dafür die beste Wahl und kann ensprechend abgespeckt werden.

Linux ist ja nicht gleich Linux. Das Linux auf nem Cisco-Switch ist zu 99% anders als ein Linux auf nem Loadbalancer.

IPVS schau ich mir in jedem Fall mal an, ich bin mir sicher, sowas ist für den einen oder anderen Kunden interessant, falls noch alte Hardware rumsteht.
 
AW: Serverlast verteilen?

Für die Streamlastverteilung gibt es viele Lösungen.

Ich war an der Realisierung einer Lösung beteiligt die neben der reinen Lastverteilung vorallem auch eine Ausfallabsicherung zum Ziel hatte, also fällt ein Server aus kommen die Hörer auf die anderen Server und ist der Server wieder da, wird dieser bevorzugt mit Hörern bestückt.
Diese Lösung wurde für Icecast realisiert. Die Verteilung erfolgt dabei durch einen ASP-Script der in die Webseite integriert ist. Er sorgt dafür das alle Server entsprechend ihrer Kapazität exakt gleich ausgelastet sind. Verschiedene echte Internet-Störungen konnten damit bereits abgefangen werden. Der Hörer hat dabei meist nur einen Streamabbuch von unter 1-2 Sekunden. Mehr dazu gerne, falls interesse besteht.

Eine ganz einfache Lösung ist z.B. im DNS-Server für die Sub-Domain die zur Adressierung des Streamservers verwendet wird (z.B. live.xyz-radio.de) zwei oder mehr IP-Adressen einzutragen. Normalerweise erhält dann der Player/PC des Hörer eine dieser IPs. Ist primitiv, funktioniert aber evtl. nicht mit jedem DNS-Server. Muss man also testen.


das würde mich interessieren bobbe.
Dein Beitrag ist zwar schon etwas älter aber vielleicht bekommst du es ja noch zusammen, wie du das damals gemacht hast?

Gruss C
 
AW: Serverlast verteilen?

Ergänzend zu der obigen Beschreibung folgendes:

Der Webserver, der die pls/ram/asx/-Dateien für den Player des User ausgibt, schreibt in diese generell mehr als nur einen Streaming-Server in die Playlist. Fällt dann ein Server aus, wird der User in der Regel zum nächsten Server in der Playlist verbunden. Viele Player machen das automatisch, so WMP, Realplayer und zu 90% auch Winamp.

Der Webserver schreibt in die Playlist die Icecast-Server, deren Trafficlast in diesem Moment am niedrigsten ist. Doch woher weiß das der Webserver? Er fragt z.B. jede Minute die Hörerzahlen aller Server und aller Streams ab, kann so die genutzte Bandbreite und die Auslastung des Icecast-Servers berechnen. Diese so berechneten Werte werden in der Webserver-Anwendung gespeichert und beim Ausgeben der Playliste berücksichtigt.

Fällt ein Icecast aus, was zu 99% am Rechenzentrum oder an der Verbindung dorthin liegt, und alle Hörer "fallen raus", ist die Nutzlast des Icecast sobald er wieder "ON" ist logischerweise 0%. Der Webserver merkt, dass der Icecast wieder "ON" ist und er die niedrigste Auslastung hast und schickt alle neuen Hörer zuerst auf diesen Icecast-Server.

Inzwischen gibt es eine neue Icecast-Version. Ob diese neue Möglichkeiten bietet die Last zu verteilen als die alte 2.3.1-Version weiß ich nicht.

Die von mir beschriebene Lösung arbeitet automatsch und hat schon mehrere Icecast-Server mit je 1.000 Live-Hörern pro Server gemanaged. Anhand der Log-Dateien konnte ich schon viele Ausfälle nachverfolgen und die Streamverteilung nach einer Störung beobachten. Nach 30-40 Minuten sind wieder alle Icecast-Server gleichmäßig ausgelastet. Anhand der fast ausbleibenden Reaktionen der Hörer merkt man, dass viele davon gar nichts bemerken.

Was bleibt, und ich hoffe das kann endlich die neue Icecast-Version, ist, dass wenn eine Stream-Quelle (z.B. ein andere Icecast-Server) ausfällt, der betroffene Icecast-Server automatisch einen anderen Icecast-Server als Quelle nimmt. Bei 2.3.1 war dies noch nicht möglich, es gab aber eine interne Spezialversion des Entwicklers der mehrere Quellen je Mountpoint unterstützte.
 
AW: Serverlast verteilen?

ich brauche eine Lösung, die eben genau wie ein Loadbalancer, Listener auf alle angehängten Relays verteilt. Definiert in einer Datei, welche server mit wievielen Listenern befüllt werden sollen.
Was ich aber vermeiden möchte ist, dass der Listener sämtliche verfügbare Streamadressen aus dem Cluster übermitteltbekommt.

quasi 1 adresse

z.B. listen.myradio.com:80
---------stream1
---------stream2
---------stream3
usw

in erster linie sollte der listener nur sehen, dass er zu listen.myradio.de verbunden ist. weiter nichts.

wenn das nur mit Proxy geht, dann muss das wohl so sein. allerdings suche ich aus zeitmangel ein ordentliches script, welches eben hinter dem vhost die connections auf die streams verteilt.

weiss da jemand einen guten Rat ?
 
AW: Serverlast verteilen?

bislang hat die Verteilung mehrerer Streams (Relays) die Shoutcast.com Seite ganz gut gemeistert... seit 2 Tagen sind dort bloß immer weniger Radios gelistet?!?
Zum Teil mit weniger Slots und zum Teil gar nicht mehr.
Bei mir im Log steht (nur bei einem von 3 Roots)
<12/12/08@11:20:58> [yp_add] yp.shoutcast.com gave extended error (This network has been permanently banned due to a previous violation of the SHOUTcast directory terms of service.)"
Hat wer eine Idee wie man die Shoutcast Seite umgehen kann und selbst eine Art Lastverteilung mehrerer Shoutcast Server auf die Beine stellen kann?
Ich mein das z.B so, der Hörer connectet auf Server1 Port 8000 dieser ist aber komplett belegt von den Slots her und leitet dann halt den Hörer automatisch auf Server2 Port 8000 um.
Da müsste es doch inzwischen sicherlich schon ein gutes PHP Script für geben ;)
 
AW: Serverlast verteilen?

[...]
seit 2 Tagen sind dort bloß immer weniger Radios gelistet?!?
Zum Teil mit weniger Slots und zum Teil gar nicht mehr.
Bei mir im Log steht (nur bei einem von 3 Roots)
<12/12/08@11:20:58> [yp_add] yp.shoutcast.com gave extended error (This network has been permanently banned due to a previous violation of the SHOUTcast directory terms of service.)"
[...]
Lies mal hier nach, wieso ihr ggf. nicht mehr gelistet werdet. ;)
Es liegt an Dir (sofern Du die Technik betreust) das wieder zu aendern.
 
AW: Serverlast verteilen?

hmm faken tun wir nicht und nutzen ausschließlich die originale Shoutcast Software.

Es ist ja auch nur einer unserer Server betroffen.

Technobase steht ja auch nicht mehr drin, und die faken sicherlich auch nicht.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben