OTT/DVR-Reserve

Wichtig

Betaversion 2.1. Das hier Beschriebene gibt es nur in der Betaversion 2.1: Sie wird aus dem Beta-Repository und nur mit einer Lizenz installiert; die stabile Version 2.0.2 und die Demoversion enthalten es nicht. Die Betaversion wird ohne Gewähr ausgeliefert, Support gibt es nach Möglichkeit (Betatestprogramm).

Die OTT/DVR-Reserve schützt die Zuschauer der OTT-Auslieferung vor dem Ausfall eines Knotens oder eines Streams auf ihm. Knoten, die denselben Kanal ausliefern, werden zu einer OTT-Gruppe zusammengefasst — über denselben Gruppennamen. Der Schutz wirkt auf zwei Arten:

  • Wechsel während der Wiedergabe — die Master-Playlist von HLS nennt dem Player die Reserveknoten, und fällt sein Knoten aus, setzt der Player die Wiedergabe von einem anderen fort;

  • Umleitung beim Öffnen — ein Knoten, der einen neuen Zuschauer oder eine Archivanfrage nicht bedienen kann, leitet sie auf einen Knoten um, der es kann.

Felder, Bildschirm und Einzelheiten — OTT-Gruppen; hier steht, was zu planen ist.

Zwei Knoten einer OTT-Gruppe empfangen eine Quelle; die Master-Playlist von Knoten A nennt Knoten B als Reserve; fällt der Stream oder Knoten A aus, wechselt ein Player mit Reserveunterstützung über dessen öffentliche HTTPS-Adresse auf Knoten B; ein neuer Zuschauer oder eine Archivanfrage an Knoten A erhält eine Umleitung 302 auf Knoten B.

Ausfall von Knoten A: Der Player wechselt auf Knoten B, und neue Zuschauer und Archivanfragen werden auf ihn umgeleitet.

Wann sie nötig ist

  • Der Kanal wird per HLS, LL-HLS oder DASH an Zuschauer im Internet oder in einem großen Netz ausgeliefert, und der Ausfall eines Servers darf die Wiedergabe nicht anhalten.

  • Ein Archiv (Catch-up) wird auch dann benötigt, wenn die Aufzeichnung auf einem der Knoten unterbrochen war.

Multicast-Empfänger schützt ein anderer Mechanismus — Hot-Standby-Reserve der Multicast-Ausgänge. Vor dem Ausfall der Quelle schützen Reserveeingänge (1. Quelle: Reserveeingänge), und es lohnt sich, sie auf jedem Knoten der Gruppe vorzuhalten.

Was in dieser Betaversion geschützt ist

Fall

Was passiert

Einschränkungen

Der Zuschauer schaut, der Knoten oder Stream fällt aus

Der Player wechselt auf einen Reserveknoten aus der Master-Playlist

Einzelne HLS-Streams mit einer Quelle auf den Knoten; Player mit Unterstützung von Reservevarianten (Player und OTT/DVR-Reserve)

Ein neuer Zuschauer öffnet einen Stream, der auf dem Knoten nicht läuft

Umleitung 302 auf einen Knoten, auf dem der Stream live ist

Jeder Player; HLS, LL-HLS und DASH

Archivanfrage für einen Zeitraum, den der Knoten nicht hat

Umleitung 302 auf einen Knoten, auf dem der Zeitraum aufgezeichnet ist; 404, wenn es ihn nirgends gibt

Der Knoten wird nach dem Archivbereich gewählt; Lücken innerhalb des Bereichs bedient der Knoten selbst

Adaptive Bundles, LL-HLS und DASH sind nur durch die Umleitung beim Öffnen geschützt: Ein Zuschauer, der bereits schaut, öffnet den Stream beim Ausfall des Knotens neu. Untertitel bleiben nach dem Wechsel auf dem ursprünglichen Knoten.

Knoten und Gruppe

  • Wie viele. Zwei Knoten oder mehr. Die Master-Playlist nennt jedem Zuschauer bis zu zwei gleichmäßig gewählte Reserveknoten, deshalb verteilen sich die Zuschauer eines ausgefallenen Knotens auf alle geeigneten Knoten der Gruppe (Leistung).

  • Domäne und Reserve. Alle Knoten befinden sich in derselben Meshwork-Domäne mit eingeschalteter Meshwork-Reserve. Der Zuschauer kommt mit einem Ticket auf den Reserveknoten — einer signierten Erlaubnis, von einem anderen Knoten aus zu schauen. Signiert wird es mit dem Ansichtsschlüssel, den die Knoten selbst abstimmen. Die Uhren der Knoten dürfen höchstens 240 Sekunden voneinander abweichen.

  • Gruppe. Beim Stream oder adaptiven Bundle ist „OTT-Reserve“ eingeschaltet, und der „Name der Reservegruppe“ ist auf allen Knoten, auf denen der Kanal läuft, gleich.

  • Eine Quelle. Der Wechsel während der Wiedergabe funktioniert zwischen Mitgliedern, bei denen eine gemeinsame Quelle nachgewiesen ist: Die Knoten beziehen denselben Stream, nicht jeder seinen eigenen.

  • Version. Ein Mitglied ist ein Stream oder Bundle eines Knotens in einer OTT-Gruppe. Ein Mitglied auf einem Knoten mit einer Version vor 2.1.0.456 nimmt keine Zuschauer an: Aktualisieren Sie alle Knoten der Gruppe.

  • Verbindungslimit. „Max. Verbindungen, HTTP/HLS“ des Logins gilt auf jedem Knoten getrennt: Ein umgeleiteter Abonnent kann auf dem anderen Knoten ebenso viele Sitzungen öffnen.

Adressen der Knoten

Den Reserveknoten öffnet der Player direkt, über die Adresse, die dieser Knoten ankündigt — am Knoten vorbei, von dem der Zuschauer gekommen ist, und am gemeinsamen Load Balancer vorbei.

  • Öffentliche Adresse für jeden Knoten. Legen Sie den „Hostname“ des HTTP-Servers jedes Knotens fest (Streaming-HTTP-Server) — einen für die Zuschauer erreichbaren DNS-Namen, zum Beispiel node-b.example.net. Ohne ihn kündigt der Knoten seine Adresse an, und zwar nur über HTTP.

  • Öffentliche Zuschauer — öffentliche Adressen. Einem Zuschauer mit öffentlicher Adresse bietet der Knoten keine Reserve mit privater Adresse an (Problem „Ein Knoten hat nur private Adressen für die Absicherung“).

  • HTTPS. Einem Zuschauer über HTTPS — auch hinter einem Proxy, der X-Forwarded-Proto: https übermittelt — werden nur Reserven mit HTTPS-Adresse angeboten. Das Zertifikat jedes Knotens muss auf seinen „Hostname“ ausgestellt sein (Problem „Ein Knoten hat keine https-Adresse für die Absicherung“).

  • Proxy. Der Knoten beurteilt die Adresse des Zuschauers anhand der Verbindung und liest X-Forwarded-For nicht. Hinter einem Proxy mit privater Adresse wirken alle Zuschauer privat, und die Regel über öffentliche Adressen greift nicht: Geben Sie den Knoten öffentliche Adressen.

  • Cache und CDN. Ein CDN eignet sich vor den Hauptadressen jedes Knotens; ein gemeinsamer CDN-Name für mehrere Knoten eignet sich nicht für Reserveadressen (8.1. OTT/DVR-Reserve und CDN).

Leistung

Fällt ein Knoten aus, verteilen sich seine Zuschauer auf die übrigen geeigneten Knoten der Gruppe: Jeder Zuschauer wechselt zu einer seiner beiden Reserven, und die Reserven werden für die Zuschauer gleichmäßig gewählt. Von N geeigneten Knoten erhält jeder verbleibende etwa 1/(N−1) der Zuschauer des ausgefallenen. Planen Sie auf jedem Knoten Reserven bei CPU und Netzwerkschnittstelle für das 1 + 1/(N−1)-Fache der normalen Last ein: das Doppelte bei zwei Knoten, das Anderthalbfache bei drei.

Als geeignet gilt ein Knoten nur, solange er gleichzeitig:

  • als Reserve angeboten wird (Spalte „Absicherung“ – „Kann absichern“) und in den letzten 10 Minuten das Live-Fenster — die letzten Segmente der Sendung in der Playlist — ausgeliefert hat;

  • dieselbe Quelle nimmt (Übergang „Gleiche Zeitachse“);

  • HLS über MPEG-TS mit Stufen desselben Codecs ausliefert (bei einem adaptiven Bündel mit einer höchstens 1,25-mal höheren Bitrate);

  • mit seiner Uhr höchstens 240 Sekunden von diesem Knoten abweicht und den Ansichtsschlüssel hat;

  • nicht überlastet ist.

Der Überlastschutz schont einen Reserveknoten, fügt aber keine Kapazität hinzu. Einen neuen Zuschauer eines anderen Knotens nimmt ein Knoten nicht an, wenn:

  • die Last von CPU oder Netzwerk über den Fehlerschwellen in den Alarmeinstellungen liegt (Alarmierung);

  • die „Obergrenze Failover-Sitzungen“ erreicht ist.

Seinen eigenen Zuschauern verweigert ein Knoten nie den Zugang (Überlastschutz). Nach einer Ablehnung geht der Player zu seiner zweiten Reserve.

Lehnen beide Reserven ab, verliert der Zuschauer den Stream. Ablehnungen über mehr als 30 Sekunden — Alarm mit Code 79 (reserve-ott-overload): Die Reserve reicht nicht.

Archiv

Für die Umleitung zum Archiv wird das Archiv des Protokolls der Anfrage berücksichtigt: MPEG-TS für HLS, fMP4 für LL-HLS und DASH. Die Archivtiefe kann auf den Knoten unterschiedlich sein: Die Anfrage geht an den Knoten, der den größten Teil des Zeitraums speichert. Der Knoten wird nach dem Archivbereich gewählt — von der ältesten bis zur neuesten Aufzeichnung; Lücken innerhalb seines Bereichs bedient der Knoten selbst. Speicherung des Archivs — DVR: Archiv des Streams.

Player

Der Wechsel während der Wiedergabe steht Playern zur Verfügung, die auf Reservevarianten umschalten können: AVPlayer (Safari, iOS, tvOS), hls.js und ähnliche Player im Browser, ExoPlayer und Media3. VLC, Player auf Basis von ffmpeg, mpv, Kodi und Set-Top-Boxen ohne User-Agent erhalten keine Reservevarianten und öffnen den Stream beim Ausfall des Knotens neu — dann greift die Umleitung. Was für jeden Player geprüft ist, sowie Ton und Video in Browsern — Player und OTT/DVR-Reserve.

Für einen eigenen Player auf Basis von hls.js: Legen Sie kurze Timeouts für das Laden von Playlist und Segment fest, etwa eine Zielsegmentdauer — dann dauert der Wechsel Sekunden.

Vor dem Start

  • Auf dem Bildschirm „Reserven“ hat die OTT-Gruppe den Zustand „Abgesichert“, ohne Probleme; der Block „OTT-Ansichtsschlüssel“ zeigt „In Gebrauch“.

  • Für jeden Knoten ist ein öffentlicher „Hostname“ festgelegt, und das HTTPS-Zertifikat ist auf ihn ausgestellt.

  • Ein Probeausfall — eine Pause des Stream-Eingangs auf einem Knoten — bringt den Player auf einen anderen Knoten; ein neuer Zuschauer dieses Streams erhält eine Umleitung.

  • Alarme mit den Codes 70, 78 und 79 werden an den Bereitschaftsdienst zugestellt (Stream-Redundanz).