User Tools

Site Tools


dwsc:arch

DoclerWeb Streaming Cluster architektúra

Összefoglaló

A streaming szolgáltatás a Wowza stream szerverre épül.
A Wowza konfigurációs fájlok és a rögzített médiaanyagok HDFS fájlrendszerre kerülnek.
A HDFS rendelkezésre-állásának maximalizálása érdekében HA namenode-okkal vannak konfigurálva, a namenode-ok az edit loghoz Quorum Journal Managert használnak. A rendszerben 3 journalnode-ot használhatnak a namenode-ok.
A namenode-ok státuszát a Zookeeper állítja be a namenode-ok elérhetősége és a hálózat állapota alapján.

A streameket kiszolgáló szerverek (edge) terheléseloszátást LVS végzi.
A streameket fogadó szerverek (origin) terheléselosztását egy LVS mögötti load-balancer szolgáltatás végzi, ami a szerverek terheltségét a CPU használat, hálózati kihasználtság, memóriahasználat és a rendszer loadja alapján állapítja meg és a legkisebb terheltségű szerverre továbbítja a streamet publikálni kívánó klienst.
Az edge szervereket szintén a load-balancer továbbítja a streamet fogadó origin szerverre.

A Wowza szerverek vezérlése és a statisztikai adatok lekérése 2 control szerveren keresztül történik. A control szerverek a ZeroMQ PUB és PULL socket típusait használják a kommunikációhoz. A Wowza szerverekhez készített control modul a konfigurációs fájlban megadott szerverekhez csatlakozik és mindegyik szervertől fogad parancsokat. A webes admin felület a control szervereken keresztül kommunikál a Wowza szerverekkel.

Az origin és egde szerverek netbootosak. A DHCP adatok és a PXE konfiguráció is LDAP-ban van tárolva. A Belső DNS, a *.dwsc zóna dinamikusan módosul a DHCP alapján.

Időkorlátos URL

Az Nginx SecureLink moduljához hasonló megoldás. (http://wiki.nginx.org/HttpSecureLinkModule)

Az md5 helyett sha256-ot használunk és a trid is hozzá lenne fűzve a stringhez, amiből a hash készül.
A minta PHP kóbban használt secretet másként használnánk fel. Minimum 128 bájt lenne és a stream létrehozásakor (adminban) generálódik, az első 32 bájt a konkatenáció elejére, a maradék a trid elé, a trid pedig a végére kerül.
A hash generáláshoz használt szöveghez hozzáfűzünk egy változó adatot is, amit a token lejárati idejének és a stream létrehozásának (adminban) különbségéből kapott szám szövegre konvertálásából kapunk. Így az elérhető adatok bármilyen kombinációjú egyszerű összefűzése esetén az idők végeztéig lehet brute force-olni, továbbá az összefüzés brute force-olása is jelentősen nehezebbé válik.

Ábra

Szerverek/szolgáltatások

  • 2 db mgmt szerver - a szolgáltatások HA kialakításúak
    • LDAP
    • BIND
    • DHCP
    • PXE
    • DWSC control szerver (mindkét szerveren használható egy időben)
    • LVS szerver
    • RSyslog szerver
    • webadmin (nginx, php-fpm)
  • 2 db storage
    • Glusterfs
  • 2 db Wowza origin
    • Wowza
    • DWSC control module
  • 2 db Wowza edge
    • Wowza
    • DWSC control module
dwsc/arch.txt · Last modified: 2013/05/03 14:19 by ivan