Platon Technologies
neprihlásený Prihlásiť Registrácia
SlovakEnglish
open source software development oslavujeme 10 rokov vývoja otvoreného softvéru! Nedeľa, 24. jún 2018
O nás
Magazín
Otvorený softvér
CVS
Služby
Index  »  Programovanie  »  Špecifikácia utility ha-rum

Špecifikácia utility ha-rum

Autor: Ondrej Jombík | Sekcia: Programovanie | Dátum: 2011-01-23

Program rum je veľmi šikovná utilita z dielne spoločnosti WebSupport. Je to jednoduchý TCP redirector, ktorý sa vie bindnúť na lokálny port a socket zároveň a presmerováva dátový prenos na cieľový server. Používa sa to najmä v súvislosti s MySQL, ale využitie je samozrejme ľubovoľné podľa potreby.

Najnovšie uvoľnili aj verziu rum2, ktorá dokáže na základe MySQL používateľského mena smerovať dátový prenos na konkrétny cieľový server, podľa záznamov jednoduchej CDB databáze. To je tiež veľmi šikovné, ale v našich prostrediach len málo využiteľné. Preto sa zameriame na vymoženosti (features) z oblasti H/A (High Availability) a pokúsime sa vytvoriť ha-rum s nasledujúcou špecifikáciou:

  • bind na ľubovoľný počet lokálnych portov a socketov
  • špecifikácia viacerých cieľových serverov rôznych typov, s definovaním defaultného cieľového servera (prípadne implementácia priorít)
  • typy cieľových serverov: active a standby (standby servery sa použijú len vtedy, ak je počet active serverov klesne na definovanú hodnotu; default=0, čiže standby servery sa začnú používať, ak sú všetky active servery nedostupné)
  • failover alebo loadbalacing mód: failover mód je pripojený len na jeden cieľový server a v prípade jeho nedostupnosti zmení za iný; loadbalancing mód rozhadzuje spojenia metódou R-R alebo podľa priorít medzi všetky active servery
  • kompletný parsing príkazového riadku (command line) a konfiguračného suboru /etc/mysql/ha-rum.conf pomocou libcfg+
  • nastavenie RLIMIT_NOFILE cez setrlimit() na počet otvorených filedescriptorov
  • dynamické zvyšovanie RLIMIT_NOFILE až po konfigurovateľné maximum
  • logovanie do konfigurovateľného súboru alebo cez syslog (ehm, potrebujeme logovať cez syslog?)
  • každá zmena stavu resp. toku smerovania dát sa zapíše do štruktúry eventov s definovanou veľkosťou (static memory buffer)
  • aktívne reakcie na signály:
    • SIGTERM - korektne ukončí aplikáciu (+ zápis do log súboru)
    • SIGUSR1 - posunie aktuálne používaný cieľový server o jeden vopred
    • SIGUSR2 - posunie aktuálne používaný cieľový server o jeden vzad
  • štatistické rozhranie s ľahko parsovateľným výstupom a s grupovaním dát per lokálny port/socket a per vzdialený server
  • vypisované údaje:
    • aktuálny stav
    • posledná zmena stavu (active-since)
    • aktuálny počet konekcií
    • celkový počet konekcií
    • prenesené bajty
    • história posledných 10 eventov
  • dohľadovač štatistického rozhrania pre Zabbix: externá utilita typu mdadm --monitor, ktorá pravidelným kontrolovaním štatistického rozhrania bude reportovať prípadné potiaže
  • rozdelenie zdrojových kódov do viacerých súborov, správa v CVS

Čo je Platón?
Platón bol veľmi doležitý filozof starovekého Grécka, študent Sokratesa a učiteľ Aristotela. viac info...

Platon Group zastrešuje slovenskú skupinu vývojárov otvoreného softvéru. Vyvíja, spravuje, dokumentuje niekoľko úspešných open-source projektov.

Platon Technologies, s.r.o. je mladá a dynamicky rozvíjajúca sa spoločnosť, ktorá má za cieľ prinášať otvorené technológie do komerčnej a verejnej sféry.

Podporte nás

Výkonný webhosting
a multihosting

Platon Webhosting

Super rýchle servery
a profesionálna administrácia

Virtuálne, dedikované a manažované servery

Vývoj
Diskusia k článku

   

 
Copyright © 2002-2006 Platon Group
Stránka používa redakčný systém Metafox
Na začiatok · Odkazový formulár · Prihláška
Upozorniť na chybu na PLATON.SK webstránke · Podmienky použitia · Ochrana osobných údajov