GSM access LXI controller



Podobné dokumenty
INTEGRACE IS DO STÁVAJÍCÍ HW A SW ARCHITEKTURY

3. Linková vrstva. Linková (spojová) vrstva. Počítačové sítě I. 1 (5) KST/IPS1. Studijní cíl

Počítačové sítě. Miloš Hrdý. 21. října 2007

Zajištění kvality služby (QoS) v operačním systému Windows

ACASYS-KS Komunikace v systému ACASYS

Základní normalizované datové přenosy

Technologie počítačových sítí 5. cvičení

SÁM O SOBĚ DOKÁŽE POČÍTAČ DĚLAT JEN O MÁLO VÍC NEŽ TO, ŽE PO ZAPNUTÍ, PODOBNĚ JAKO KOJENEC PO PROBUZENÍ, CHCE JÍST.

DLNA- Průvodce instalací

1.1. Správa a provozní podpora APV ROS, HW ROS a základního SW

Komunikační jednotka MEg202.2

Projekt 7006/2014 SDAT - Sběr dat pro potřeby ČNB. Návrh realizace řešení

Topologie počítačových sítí Topologie = popisuje způsob zapojení sítí, jejich architekturu adt 1) Sběrnicová topologie (BUS)

PDV /2018 Detekce selhání

Komunikace v sítích TCP/IP (1)

IDENTITY MANAGEMENT Bc. Tomáš PRŮCHA

ŘPS Průmyslový Ethernet

Příloha č.2 - Technická specifikace předmětu veřejné zakázky

Obsah. 1. Upozornění. 2. Všeobecný popis

BankKlient. FAQs. verze 9.50

Workmonitor. Servisní návod. 24. června 2014 w w w. p a p o u c h. c o m

Telekomunikační sítě Protokolové modely

PB169 Operační systémy a sítě

Veřejné zakázky s.r.o., Praha 6, Bubeneč, Na Hutích 661/9, PSČ Tel./fax: ,

Č á s t 1 Příprava instalace

SMART GATE webové a aplikační ovládací rozhraní zařízení ESIM120

ZPRACOVÁNÍ NEURČITÝCH ÚDAJŮ V DATABÁZÍCH

TCP2RTU. Transparentní převodník protokolu MODBUS TCP na MODBUS RTU/ASCII. Tři varianty: pro RS422, RS485 a RS232

Dodatečné informace k veřejné zakázce SDAT Sběr dat pro potřeby ČNB 3. série

Skupina oborů: Elektrotechnika, telekomunikační a výpočetní technika (kód: 26)

Zřízení technologického centra ORP Dobruška

TDL500. Systém elektronické evidence návštěvnosti TDL500

Acronis Backup Advanced Version 11.7

Příloha č. 1 Servisní smlouvy. Katalog služeb. S2_P1_Katalog služeb

Maturitní témata. Informační a komunikační technologie. Gymnázium, Střední odborná škola a Vyšší odborná škola Ledeč nad Sázavou.

Měřicí systémy. Obsah. Systémy složené z autonomních měřicích přístrojů a modulů Sériová rozhraní. Sériová rozhraní - pokračování 1

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Přednáška 1. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Distribuované průmyslové měřicí systémy

PROGRAMOVÁNÍ ŘÍDÍCÍCH SYSTÉMŮ

IMPLEMENTACE SYSTÉMU GROUPWISE NA PEF ČZU V PRAZE IMPLEMENTATION OF THE SYSTEM GROUPWISE ON THE PEF ČZU PRAGUE. Jiří Vaněk, Jan Jarolímek

Servis Fujitsu Technology Solutions

Dodatečné informace k veřejné zakázce SDAT Sběr dat pro potřeby ČNB 4. série

Uživatelský manuál Mini přepínač počítačů (Klávesnice, VGA, Myš, Audio) 4:1 USB, integrované kabely Katalogové číslo:

Počítačové sítě internet

INSTALACE DATABÁZE ORACLE A SYSTÉMU ABRA NA OS WINDOWS

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

Vysoká škola ekonomická v Praze. Fakulta managementu v Jindřichově Hradci. Diplomová práce. Bc. Natalija Lichnovská

12. Virtuální sítě (VLAN) VLAN. Počítačové sítě I. 1 (7) KST/IPS1. Studijní cíl. Základní seznámení se sítěmi VLAN. Doba nutná k nastudování

Fakulta informačních technologií VUT v Brně Ústav počítačových systémů Periferní zařízení, cvičení IPZ Analýza komunikace na sběrnici USB

PŘÍRUČKA UŽIVATELE KOMUNIKAČNÍHO ROZHRANÍ

VYBRANÉ NÁSTROJE ZAJIŠTĚNOSTI ÚDRŽBY

TouchPad a klávesnice

Závěrečná zpráva o výsledcích řešení projektu v rámci rozvojových program MŠMT na rok 2006

Stručný manuál k ovládání programu STATISTICA. Mgr. Petra Beranová Ing. Miloš Uldrich

E.C.S. řada nová generace obrat o 360 ( Systém vyvinut ve Florencii v r.2009 )

Směrovací protokoly, propojování sítí

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ TECHNOLOGIE VYSOKÉ DOSTUPNOSTI MS SQL SERVERU

Windows a real-time. Windows Embedded

Software pro personalizaci karet

STŘEDOŠKOLSKÁ TECHNIKA 2013

Databázový systém Matylda

SB8485. Převodník USB na 8x RS485/RS září 2010 w w w. p a p o u c h. c o m

Popis licencování, nastavení a ovládání replikací - přenosů dat

HP Backup and Recovery Manager

USNESENÍ VLÁDY ČESKÉ REPUBLIKY č. 624/2001

Zrakové postižení a mobilní telefony (smartphony)

Displej DT20-6. Update firmware řadiče. Simulační systémy Řídicí systémy Zpracování a přenos dat TM 2012_10_

3.17 Využívané síťové protokoly

Katalog služeb a podmínky poskytování provozu

Aktivní prvky: brány a směrovače. směrovače

Tabulka splnění technických požadavků

Polohovací zařízení a klávesnice Uživatelská příručka

IT 3. Projekt centrálního zálohovacího systému v ČSOB Pojišťovně. Michal Mikulík. špička v každém směru

Principy operačních systémů. Lekce 7: Souborový systém

Pravidla. poskytování služby standardní technické podpory

Souborový systém (File System FS) Souborové systémy. Souborová fragmentace. Disková fragmentace. Organizace dat na pevném disku

Hot Standby Router Protocol (zajištění vysoké spolehlivosti výchozí brány)

Počítačové sítě II. 12. IP: pomocné protokoly (ICMP, ARP, DHCP) Miroslav Spousta,

Vysoká škola ekonomická v Praze

DATA ARTICLE. AiP Beroun s.r.o.

Využití ICT pro rozvoj klíčových kompetencí CZ.1.07/1.5.00/

ÚDRŽBA HNACÍCH VOZIDEL ZAMĚŘENÉ NA BEZPORUCHOVOST

Inovace výuky prostřednictvím šablon pro SŠ

Infrastruktura UML. Modelování struktury v UML. Superstruktura UML. Notace objektů. Diagramy objektů

Vestavné technologie. Stále častěji pouţívaná technologie. Příčiny rozmachu

Systémová volání Mgr. Josef Horálek

Řídicí systémy řady 400 str.2 z 16 MICROPEL

Konfigurátor idům. Manuál pro konfiguraci systémů Melody, Duo+ Rychlý obsah: - 1 -

RE5USB programovatelné USB relé s integrovaným watchdogem ( RE5 ) Základní vlastnosti

Migrace virtuálního prostředí VI3 na vsphere. Lukáš Radil, konzultant

enos dat rnici inicializaci adresování adresu enosu zprávy start bit átek zprávy paritními bity Ukon ení zprávy stop bitu ijíma potvrzuje p

Průvodce Bosch IP síťovými video produkty. Představení IP technologie a budoucnosti průmyslové televize.

Operační systémy Linux, Mac OS X a jejich srovnání

The Locator/ID Separation Protocol (LISP)

Studentská tvůrčí a odborná činnost STOČ 2015

Zakázka Vnitřní integrace úřadu v rámci PROJEKTU Rozvoj služeb egovernmentu ve správním obvodu ORP Rosice

JAK ČÍST TUTO PREZENTACI

AWGD 46 MWGD 46. Dveřní moduly APS mini / APS mini Plus s rozhraním WIEGAND s podporou zámků APERIO. Uživatelská příručka

Vše otestováno. Ústředna EZS - Easy Series Snadné zabezpečení s využitím wlsn* * bezdrátová lokální bezpečnostní síť

Transkript:

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ v PRAZE Fakulta elektrotechnická Katedra měření Kontrolér systému LXI s GSM přístupem GSM access LXI controller Bakalářská práce Studijní program: Studijní obor: Vedoucí práce: Elektrotechnika a informatika Kybernetika a měření doc. Ing. Jaroslav Roztočil, CSc. Karel Němec PRAHA 2010

Čestné prohlášení autora práce Prohlašuji, že jsem předloženou práci vypracoval samostatně a že jsem uvedl veškeré použité informační zdroje v souladu s Metodickým pokynem o dodržování etických principů při přípravě vysokoškolských závěrečných prací. V Praze dne...... Podpis autora práce - 2 -

Abstrakt Tato bakalářská práce se zabývá aplikací prvků vysoké dostupnosti na LXI měřící systém. Uvádí základní principy, na kterých je vysoká dostupnost postavena a řeší návrh vysoce dostupného LXI systému s důrazem na softwarové vybavení. - 3 -

Abstract The main objective of this bachelor thesis is to apply fundamental aspects of high availability to LXI measurement system. The thesis introduces basic principles of high availability and provides design of concrete high availability solution for LXI system. - 4 -

- 5 -

OBSAH 1 ÚVOD... - 7-1.1 VYMEZENÍ ZÁKLADNÍCH POJMŮ... - 7-1.2 CÍL A OBSAH PRÁCE... - 8-2 VYSOKÁ DOSTUPNOST...- 10-2.1 ÚVOD... - 10-2.2 ZÁKLADNÍ ASPEKTY NÁVRHU VYSOCE DOSTUPNÉHO SYSTÉMU... - 10-2.3 HIGH AVAILABILITY CLUSTERING... - 12-2.3.1 Failover clusters (Převzetí služby)...- 12-2.3.2 Server farms (load-balancing clusters, replikace služby)...- 12-3 NÁVRH VYSOCE DOSTUPNÉHO LXI SYSTÉMU...- 13-3.1 ANALÝZA CHYBOVÝCH SCÉNÁŘŮ... - 13-3.2 POUŽITÝ HA KONCEPT A HARDWEROVÉ PROSTŘEDKY... - 14-3.3 SOFTWAROVÉ VYBAVENÍ... - 15-3.3.1 Poznámky k portabilitě...- 15-3.3.2 Požadavky na Watchdog SW... - 17-3.3.3 Meziprocesní komunikace...- 18-3.3.4 Rozhraní LXI kontroléru...- 18-3.3.5 Komunikace mezi Watchdogem a LXI kontrolérem...- 19-3.3.6 Komunikace mezi hlavním a záložním počítačem...- 21-3.3.7 Detekce chybových stavů...- 23-3.3.8 Řešení chybových stavů...- 25-3.3.9 Zotavení systému po restartu jednoho z počítačů...- 29-3.3.10 Monitorování systému...- 30-4 ZÁVĚR... - 32-5 POUŽITÉ ZDROJE... - 33 - A OBSAH PŘILOŽENÉHO CD... - 34 - - 6 -

1 Úvod 1.1 Vymezení základních pojmů LXI (LAN extensions for Instrumentation) LXI je moderním nástupcem poměrně staré sběrnice GPIB (standard IEEE 488). Jedná se o standard, který definuje komunikační protokol mezi měřícími přístroji připojenými pomocí ethernetového rozhraní do lokální sítě LAN. Detailní popis LXI standardu lze nalézt na webových stránkách lxistandard.org. LXI systém LXI systém je měřící systém skládající se z určitého počtu LXI přístrojů a hostitelského počítače, na kterém je spuštěn SW (dále označovaný jako LXI kontrolér), který řídí proces měření a provádí sběr i zpracování naměřených dat (viz Obr. 1). Běžná dostupnost (normal availability) Jako běžně dostupné se označují systémy s omezenou možností detekce a řešení hardwarových i softwarových chyb, které mohou způsobit selhání systému. Vysoká dostupnost (high availability, HA) Vysoce dostupný systém implementuje různé mechanismy, kterými se snaží chybám předcházet, případně je detekovat a samostatně řešit. Snaží tak eliminovat výpadky systému, které jsou charakteristické právě pro běžně dostupné systémy. - 7 -

Obr 1: Blokové schéma LXI systému 1.2 Cíl a obsah práce Klasický LXI systém (schematicky znázorněn na Obr. 1) patří do kategorie běžně dostupných systémů a není tedy příliš robustní, protože má velmi omezenou možnost ochrany jak proti softwarovým, tak proti hardwarovým chybám. V případě, že nastane jakýkoli chybový stav na straně LXI kontroléru nebo jeho hostitelského počítače, systém pravděpodobně nebude schopen korektně pracovat a bude nutný zásah obsluhy. Oprava systému může být v závislosti na závažnosti chyby komplikovaná a časově náročná (výměna hardware). Pokud by byl LXI měřící systém součástí nějakého monitorovacího systému v průmyslovém procesu, znamená výpadek systému prakticky ztrátu dat, což může mít v některých případech závažné důsledky ať již ryze technické nebo ekonomické. - 8 -

Práce vznikla na základě požadavku aplikovat principy vysoké dostupnosti právě na LXI systém. Cílem práce je navrhnout SW vybavení pro LXI kontrolér, které implementuje aspekty vysoké dostupnosti a vyzkoušet ho na reálném LXI systému. Při vývoji softwarového vybavení bylo přihlédnuto k tomu, že bude systém případně prakticky využit v rámci monitorovacího systému centra alternativních zdrojů ČVUT v Herbertově, kde se využívají průmyslová PC s operačním systémem reálného času PharLap ETS. Práce je rozdělena na dvě časti. První část popisuje obecně pojem vysoké dostupnosti a vysvětluje základní principy, na kterých jsou vysoce dostupné systémy založeny. Druhá část práce je ryze praktická a prezentuji v ní své vlastní řešení, které aplikuje prvky vysoké dostupnosti na LXI systém. Pozornost je věnována zejména vývoji SW vybavení. - 9 -

2 Vysoká dostupnost 2.1 Úvod Vysoká dostupnost (high availability, HA) označuje schopnost systému omezit nebo dokonce eliminovat výpadky charakteristické pro běžné systémy. Pokud už k výpadku dojde, vysoce dostupný systém se musí automaticky zotavit a plně obnovit svou funkčnost a to v co nejkratším časovém intervalu. Podmnožinou vysoké dostupnosti je tzv. stálá dostupnost (continuous availability). Systémy implementující tuto vlastnost musí zprostředkovávat danou službu nepřetržitě. V podstatě každá komponenta takového systému musí být chráněna proti výpadku. Dostupnost je mírou toho, jak často nebo po jakou dobu systém zpřístupní uživateli danou službu a může se jednoduše vyjádřit jako poměr doby, kdy je služba, kterou systém poskytuje, dostupná a celkové doby, za kterou dostupnost měříme. Dostupnost je možné uvádět buď v procentech nebo absolutně. S pojmem dostupnost souvisí úzce pojem spolehlivost (reliability), který je definován jako pravděpodobnost, že systém bude pracovat v bezporuchovém stavu po daný časový interval. Spolehlivost systému znamená schopnost předejít chybám a eventuálně je správně detekovat. Často se uvádí v tzv. MTBF (Mean Time Between Failures) tato hodnota vyjadřuje střední dobu v hodinách, po kterou se očekává, že systém bude bezchybně pracovat. 2.2 Základní aspekty návrhu vysoce dostupného systému Při návrhu vysoce dostupného řešení je primárním cílem vytvořit systém takový, který je schopný ošetřit co největší množinu možných chybových stavů a zároveň kontinuálně zprostředkovávat danou klíčovou službu. - 10 -

Nejprve je třeba analyzovat daný existující běžně dostupný systém a zjistit, které chybové stavy nejvíce ohrožují činnost systému. V dalším kroku je třeba navrhnout řešení těchto chybových stavů tak, aby je byl systém schopen samostatně překonat a korektně pracovat i potom, co nastanou. Abychom splnili základní požadavky na vysoce dostupný systém, musí systém implementovat tři klíčové vlastnosti: Robustnost Jednoduchost Redundance Robustnost a jednoduchost systému spolu úzce souvisí. Musíme systém navrhnout tak, abychom minimalizovali pravděpodobnost výskytu chyb. Aby systém byl robustní, musí být tak jednoduchý, jak jen to je možné a zároveň jenom tak složitý, jak to požadavky na řešení problému vyžadují. V každém systému existuje nějaká komponenta, jejíž výpadek znamená automaticky výpadek celého systému (tyto komponenty se označují termínem SPOF Single Point Of Failure). Takovou komponentu je třeba nějakým způsobem chránit a jednou z možností, jak to zajistit, je právě redundance (do systému přidáme nadbytečnou komponentu, která v případě výpadku původní komponenty přebere její funkčnost). Na druhou stranu se systém při zvyšování úrovně redundance stává složitějším a méně robustím. Redundantní komponenty vytvářejí v systému nové závislosti a to vede vzniku nových potenciálních chybových stavů. Je tedy třeba využívat redundanci jenom u těch částí systému, kde je to bezpodmínečně nutné. - 11 -

2.3 High availability clustering V souvislosti s organizací činnosti počítačů se slovo cluster používá pro skupinu počítačů, které zajišťují jednu činnost, resp. službu. Cluster lze velmi efektivně použít v rámci vysoce dostupného systému jako prostředek redundance na úrovni hostitelského počítače, který poskytuje klíčovou službu systému. Základní myšlenkou vysoce dostupných clusterů je umožnit pohyb klíčové služby z jednoho hostitelského počítače v clusteru na jiný nebo poskytovat službu na všech počítačích clusteru. Ojedinělé selhání počítače by tak poskytovanou službu nemělo ohrozit. Existují dva základní koncepty vysoce dostupných clusterů tzv. failover clusters a server farms (load-balancing clusters). 2.3.1 Failover clusters (Převzetí služby) Koncept failover clusters je založen na principu migrace klíčové služby systému z jednoho počítače clusteru na druhý. Implicitně službu poskytuje počítač označovaný jako tzv. primární uzel, ostatní počítače clusteru (sekundární uzly) pouze monitorují stav primárního uzlu. v případě, že dojde k výpadku primárního uzlu, jeden ze sekundárních uzlů převezme jeho identitu a začne službu poskytovat. 2.3.2 Server farms (load-balancing clusters, replikace služby) U tohoto konceptu všechny počítače clusteru poskytují danou službu. Pokud nějaký z počítačů selže, služba bude pořád dostupná na ostatních uzlech clusteru. - 12 -

3 Návrh vysoce dostupného LXI systému Jak už bylo zmíněno v úvodní kapitole, cílem návrhu je upravit běžně dostupný LXI systém tak, aby byl schopen eliminovat různé hardwarové i softwarové chybové stavy a udržet tak proces měření v chodu. 3.1 Analýza chybových scénářů Klíčovým bodem systému, který je potřeba chránit, je jistě LXI kontrolér. Výpadek kontroléru nebo nějaký jeho vnitřní chybový stav (segmentation fault, memory leak apod.) způsobí pravděpodobně výpadek celého systému. Samotný kontrolér je pak závislý na stavu operačního systému a svého hostitelského počítače. Pád operačního systému nebo chyba hardware, která v něj nakonec vyústí, znamená také výpadek celého systému. Tyto dva chybové stavy jsem pokládal za nejpravděpodobnější a systém je navržen tak, aby je dokázal efektivně vyřešit. Dalším chybovým stavem, který může systém ochromit, je selhání routeru nebo ethernetového switche, který je využit pro připojení LXI přístrojů do systému. Chyby na straně těchto zařízení jsou ale považovány za výjimečné a proto je při návrhu neuvažuji. - 13 -

3.2 Použitý HA koncept a hardwarové prostředky Základní myšlenkou bylo přidat do klasického LXI systému redundantní (záložní) počítač, který by v případě poruchy na hlavním počítači okamžitě převzal jeho identitu a udržel tak proces měření v chodu. To odpovídá HA konceptu failover clusters, který je založen na principu migrace klíčové služby (u navrhovaného systému se jedná o LXI kontrolér) v případě poruchy z původního hostitele (hlavní počítač) na jiného, u kterého se předpokládá, že se nachází v bezporuchovém stavu. Jádrem navrhovaného systému jsou tedy dvě standardní či průmyslová PC, která společně s připojenými LXI přístroji tvoří ethernetovou síť. Zároveň je nutné zajistit, aby stav systému mohl být vzdáleně monitorován. V návrhu jsem uvažoval dvě možnosti GSM síť a internet. Oba počítače tedy sdílejí přístup k internetu a jsou propojeny s GSM modemem sběrnicí standardu RS-485. Výsledný hardwarový model navrhovaného systému je schématicky znázorněn na Obr. 2. - 14 -

Obr 2: HW model systému 3.3 Softwarové vybavení Esenciální součástí je HA systému je software (dále označovaný jako Watchdog SW), který ovládá LXI kontrolér, umožňuje detekci a řešení chyb a podává hlášení o stavu systému. Tomu je věnována následující podkapitola. 3.3.1 Poznámky k portabilitě SW implementující prvky vysoké dostupnosti byl napsán v jazyce C a pro přístup k prostředkům operačního systému využívá rozhraní Win32 API. To umožňuje poměrně snadnou migraci programu na operační systém reálného času PharLap ETS, který podporuje rozsáhlou podmnožinu funkcí Win32 API. - 15 -

Komunikaci mezi procesy řeší SW pomocí knihovny WinSock (součást Win32 API). Použití nadstavbových knihoven jiných stran 1 mírně zjednodušuje implementaci, 4 zároveň ale často přináší významné problémy s portabilitou. SW lze modifikovat i tak, aby byl spustitelný na unixových distrubucích. Klíčová je náhrada funkcí Win32 API (např. jejich ekvivalenty v rozhraní POSIX). Použití socketových funkcí je prakticky stejné (rozhraní knihovny WinSock je založené na 5 původní unixové implementaci firmy BSD kalifornské univerzity v Berkeley). Obr 3: SW model systému 1 Např. TCP Support Library v NI LabWindows/CVI - 16 -

3.3.2 Požadavky na Watchdog SW Klíčovou službou, kterou chceme chránit, je LXI kontrolér. Abychom mohli detekovat různé chybové stavy, musíme vytvořit SW vrstvu, která bude LXI kontroléru nadřazená (viz. Obr.3), bude ho ovládát a zprostředkovávat komunikaci mezi hlavním a záložním počítačem - takovou vrstvu tvoří právě instance navrhovaného Watchdogu. Watchdog se dále musí starat o to, aby byl LXI kontrolér v chodu právě na jednom z počítačů. Pokud kontorolér nepracuje ani na jednom z počítačů nebo se nějakým nedopatřením stane, že pracují oba (nastává tzv. brainsplit), musí Watchdog situaci řešit. Watchdog implementuje následující body: Komunikace s LXI kontrolérem a s tím spojená schopnost dektekce chybových stavů kontroléru Ovládání vnitřních stavů LXI kontroléru, ukončení kontroléru (bezpečně zasláním signálu i zabitím procesu), restart kontroléru Komunikace mezi hlavním a záložním počítačem a s tím spojená schopnost detekce výpadku počítače; předávání informace o stavu podřízeného LXI kontroléru Řešení chybových stavů restartem kontroléru nebo převzetím služby Podávání hlášení o celkovém stavu systému (Syslog server, GSM) Schopnost rozlišit výpadek jednoho z počítačů od výpadku instance Watchdogu Těmto vlastnostem se budu podrobně věnovat v následujících podkapitolách. - 17 -

3.3.3 Meziprocesní komunikace Pro zasílání zpráv mezi procesy (ať už se jedná o komunikaci mezi Watchdogem a LXI kontrolérem nebo mezi instancemi Watchdogu spuštěnými na hlavním a záložním počítači) využívá Watchdog sokety. Otázkou je, zda použít protokol TCP nebo UDP. Protokol TCP garantuje bezpečnost a kvalitu spojení a také to, že data budou obdržena v tom pořadí, ve kterém byla odeslána. UDP tento komfort nezajišťuje, na druhou stranu je ale rychlejší a nepoměrně méně náročný na výkon sítě. Zvolil jsem protokol TCP, protože Watchdog pomocí soketových zpráv ovládá LXI kontrolér a je zásadní, aby kontrolér tyto zprávy v pořádku přijal a zpracoval. 3.3.4 Rozhraní LXI kontroléru Aby mohl Watchdog LXI kontrolér ovládat, musí kontrolér implementovat dva vnitřní stavy (je buďto pasivní nebo aktivní) a také musí být schopen zpracovat množinu nadefinovaných zpráv, které umožňují přechod z jednoho stavu do druhého (viz Obr. 4). Watchdog musí mít možnost ukončit proces LXI kontroléru vynuceně, což lze provést voláním Win32 API funkce TerminateProcess(). To se týká chybových stavů, kdy nelze kontrolér ukončit jiným způsobem. Při použití TerminateProcess() nelze hovořit o korektním ukončení procesu, protože tato funkce mimo jiné negarantuje uvolnění synchronizačních prostředků Win32 API jako jsou mutexy nebo kritické sekce. Tento problém je podrobně popsán v dokumentaci API a je zmíněn i v [6]. - 18 -

Pokud je kontrolér aktivní, pracuje s LXI systémem (provádí odběr a zpracování naměřených dat, ukládání na pevný disk apod.). Pokud je kontrolér pasivní, s měřícím systémem nepracuje a pouze čeká na další instrukce. Obr 4: Diagram stavových přechodů LXI kontroléru 3.3.5 Komunikace mezi Watchdogem a LXI kontrolérem Proces LXI kontroléru spouští jemu nadřazená instance Watchdogu a jako parametr příkazové řádky mu předává číslo portu, na kterém spolu budou komunikovat. Watchdog se v rámci TCP komunikace chová jako server a naslouchá na daném portu, LXI kontrolér je klientem a k Watchdogu se připojuje (viz Obr. 5). 7 Watchdog kontroléru v daných časových intervalech zasílá požadavek, aby mu kontrolér odpověděl a dal mu tím najevo, že je v pořádku. Kontrolér ihned po zpracování zprávy odpovídá. - 19 -

Obr 5: Vytvoření TCP spojení Watchdog-LXI kontrolér Jako rámec zprávy jsem zvolil jeden bajt. V případě řídících signálů a dotazu na stav, které zasílá Watchdog LXI kontroléru, zabírá celý bajt identifikační číslo zprávy. Tyto zprávy jsou tedy odlišeny hodnotou v rozsahu 0-255. ID zprávy Popis 0x00 0x80 0x81 0x82 Dotaz na stav LXI kontroléru Přechod kontroléru do aktivního stavu (run) Přechod kontroléru do pasivního stavu (stop) Ukončení kontroléru (terminate) Tab 1: Řídící zprávy pro LXI kontrolér - 20 -

Odpověď LXI kontroléru na dotaz na stav je strukturována jinak. Nejvýznamnější bit zprávy (msb) podává informaci o tom, v jakém stavu se kontrolér nachází (aktivní/pasivní), ostatních sedm bitů tvoří tzv. deskriptor. Interpretace deskriptoru závisí na samotném LXI kontroléru může se jednat o hodnotu, která určuje, jakou význačnou operaci kontrolér v okamžiku odeslání zprávy vykonává nebo může jít o identifikátor vnitřních chybových stavů kontroléru apod. Každopádně může deskriptor výrazně pomoci při analýze chyb a havarijních situací. Obr 6: Struktura odpovědi LXI kontroléru na dotaz na stav 3.3.6 Komunikace mezi hlavním a záložním počítačem Komunikaci mezi hlavním a záložním počítačem zprostředkovávají instance Watchdogu, které jsou na nich spuštěné. Instance Watchdogu, jejíž podřízený LXI kontrolér je aktivní, má výsadní postavení a je označena jako Watchdog master, druhá instance je označena jako Watchdog slave. V rámci TCP komunikace se Watchdog master chová jako server, slave jako klient. Při uvádění systému do chodu se master spouští jako první a čeká, až se k němu slave připojí. Do té doby je master schopen fungovat autonomně. Slave se po spuštění pokouší k masterovi připojit pokud se mu to nepodaří, podá hlášení a ukončí se. - 21 -

Jakmile se spojení podaří navázat, začnou spolu instance Watchdogu komunikovat. V daných časových intervalech si předávají zprávy (dále označované jako heartbeat zprávy), kterými podávají informaci o svém stavu (už přijetí zprávy představuje pro adresáta informaci o tom, že je odesilatel v pořádku) a stavu podřízeného LXI kontroléru. Výměnu heartbeat zpráv schematicky popisuje Obr. 7. Obr 7: Schématické znázornění heartbeatu Kromě heartbeat zpráv využívá Watchdog ještě jeden typ zprávy pro přechod podřízeného kontroléru do aktivního stavu (zpráva pro převzetí kontroly). Rámcem watchdogových zpráv jsou dva bajty. První bajt představuje hlavičku zprávy, která určuje, o jakou zprávu se jedná, druhý podává informaci o stavu podřízeného LXI kontroléru a má stejnou stejnou strukturu jako odpověď kontroléru na dotaz na stav (MSB stav kontroléru, ostatní bity deskriptor). - 22 -

Obr 8: Struktura watchdogové zprávy 3.3.7 Detekce chybových stavů Uvažoval jsem následující chybové stavy: Chyba na straně LXI kontroléru cokoliv, co způsobí, že kontrolér nebude schopen korektně pracovat a odpovídat na požadavek na stav Pád operačního systému Výpadek počítače (hardwarová chyba) Výpadek instance Watchdogu Základní myšlenkou pro detekci těchto chyb je fakt, že jsou všechny spojené s přerušením komunikace mezi jednotlivými uzly v systému. Za běhu systému neustále probíhá komunikace mezi Watchdogem a jemu podřízeným LXI kontrolérem a zároveň mezi sebou komunikují i obě instance Watchdogu. Jakmile instance Watchdogu přestane přijímat zprávy ať už od LXI kontroléru nebo od svého protějšku na vzdáleném počítači je evidentní, že nastala nějaká chyba. Mechanismus detekce je tedy v principu stejný pro všechny uvedené chyby. Pro hlídání komunikace používá Watchdog časovač, který po překročení časového limitu určeného pro odpověď vyvolá chybovou událost. Při prvním odeslání zprávy je časovač spuštěn, při přijetí zprávy je resetován. Jakmile kontrolér (resp. Watchdog) přestane komunikovat, příslušný časovač nebude resetován a po uplynutí daného časového limitu zavolá funkci, která chybový stav obslouží. - 23 -

Při prvním výskytu chyby Watchdog pouze podá varovné hlášení a znovu zašle dotaz na stav (resp. heartbeat zprávu). Pokud ani potom neobdrží odpověď, začne chybový stav řešit. Obr 9: K principu hlídání komunikace Přerušení komunikace sice umožňuje sice chyby odhalit, ale některé z nich nedokáže rozlišit. v případě, že dojde k výpadku instance Watchdogu, která dohlíží na aktivní kontrolér, druhá instance bude situaci interpretovat tak, že došlo k výpadku protějšího počítače a začne chybový stav řešit, což může mít ve výsledku fatální následky. Tyto chybové stavy lze rozlišit na základě toho, že při výpadku počítače dochází k přerušení síťového připojení. Stav síťového připojení lze monitorovat pomocí protokolu ARP stačí vyslat ARP dotaz na IP adresu protějšího počítače a pokud není vrácena příslušná MAC adresa, spojení je přerušeno. - 24 -

Pro zaslání ARP dotazu má Win32 API funkci SendARP(): DWORD SendARP( in IPAddr DestIP, in IPAddr SrcIP, out PULONG pmacaddr, inout PULONG PhyAddrLen ); Prvním argumentem je dotazovaná IP adresa, druhým IP adresa odesilatele dotazu. Třetí argument je výstupní, jedná se o pole typu ULONG reprezentující získanou fyzickou adresu. Poslední argument specifikuje počet bajtů načtené adresy. 3.3.8 Řešení chybových stavů Tato kapitola je věnována tomu, jak Watchdog řeší konkrétní chybové stavy. Výpadek LXI kontroléru V podstatě nejméně závažnou chybou vůbec je chyba na straně pasivního LXI kontroléru - při této chybě je systém fakticky v pořádku (měření řídí aktivní kontrolér). Instance Watchdogu detekuje, že jí podřízený kontrolér neodpovídá a pokusí se ho restartovat. Pokud proces LXI kontroléru stále běží, ukončí ho vynuceně voláním TerminateProcess() a znovu spustí. Závažnějším problémem je chyba aktivního kontroléru. Stejně jako u výpadku pasivního kontroléru se Watchdog kontrolér pokusí restartovat, současně ale přejde do pasivního stavu a zašle protějšímu Watchdogu zprávu pro převzetí kontroly. Ten zprávu zpracuje a zaktivuje svůj podřízený kontrolér tím dochází k převzetí služby. Při přebírání služby se mění postavení Watchdogu slave se stává masterem a naopak. - 25 -

Obr 10: Převzetí služby po výpadku aktivního LXI kontroléru V tom případě, že z nějakého důvodu nebude k Watchdog masterovi připojen slave, funguje master autonomně a výpadek kontroléru řeší jeho restartem. Funguje tedy jako klasický softwarový watchdog. Pád operačního systému (výpadek počítače) Pád operačního systému znamená současný výpadek kontroléru i instance Watchdogu. Tuto chybu Watchdog řeší analogicky jako u výpadku kontroléru převzetím služby, pokud se chyba týká počítače s aktivním kontrolérem (viz Obr.11). Při pádu OS na počítači s pasivním kontrolérem Watchdog pouze podá hlášení. - 26 -

Obr 11: Převzetí služby při výpadku hostitelského počítače aktivního LXI kontroléru Výpadek Watchdogu Výpadek Watchdogu je jedním z nejzávažnějších chybových stavů, které v systému mohou nastat. Fakticky tato chyba neznamená výpadek klíčové služby (oba počítače jsou v pořádku, jeden z kontrolérů je aktivní), ale způsobí ztrátu spojení mezi hlavním a záložním počítačem (přestože síťové spojení je v pořádku) a tím systém ztrácí veškeré prvky vysoké dostupnosti. Watchdog SW musí být co nejrobustnější a nejjednodušší, aby se minimalizovala pravděpodobnost, že tato situace nastane. - 27 -

Obr 12: Vznik brainsplitu při nesprávném ošetření výpadku instance Watchdogu Výpadek instance Watchdogu, jejíž podřízený kontrolér je aktivní, druhá instance nesmí interpretovat jako výpadek počítače. Pokud by se tak stalo, došlo by k převzetí služby a pasivní kontrolér by byl aktivován oba kontroléry by tedy byly v chodu (brainsplit) a pracovaly by s měřícím systémem. Tato situace je schématicky znázorněna na Obr. 12. Problém je možné řešit tak, že systém odliší výpadek instance Watchdogu od výpadku celého počítače (viz. Detekce chybových stavů) a nebude na něj reagovat jinak než pouhým hlášením. Navrhovaný systém implementuje jiné řešení. Jakmile dojde k výpadku instance Watchdogu, jí podřízený kontrolér detekuje přerušení TCP spojení a okamžitě se ukončí. Potom může dojít k bezproblémovému převzetí služby. v takové situaci si systém uchová alespoň některé HA prvky, protože Watchdog master potom funguje jako klasický softwarový watchdog. - 28 -

Brainsplit v bezporuchovém stavu Watchdog musí umět řešit situace, kdy jsou z nějakého důvodu aktivní obě instance kontroléru, i když je jinak systém v pořádku. v takovém případě Watchdog slave přepne podřízený kontrolér do pasivního stavu. Pokud se mu to nepodaří, kontrolér restartuje. 3.3.9 Zotavení systému po restartu jednoho z počítačů Po restartu jednoho z počítačů musí být systém schopen obnovit komunikaci mezi počítači (resp. instancemi Watchdogu). Watchdog si v systémovém registru uchovává informaci o tom, jestli má po spuštění operačního systému nabíhat jako master nebo jako slave. Implicitně se instance Watchdogu po restartu spouští vždy jako slave, protože předpokládá, že došlo k úspěšnému převzetí služby a druhá instance Watchdogu je masterem. v takovém případě se slave po spuštění pokusí k masterovi připojit pokud se mu to podaří, je komunikace obnovena a systém je znovu plně funkční, pokud ne, ukončí se a podá hlášení. V případě, že master funguje autonomně (slave není připojen), nabíhá po restartu opět jako master, nikoli jako slave, který autonomně pracovat nemůže (vyžaduje připojení k masterovi). - 29 -

3.3.10 Monitorování systému Navrhovaný systém je vzdáleně monitorován pomocí Syslog serveru. Syslog Syslog je standardem (RFC 3164 The BSD syslog protocol) pro příjem a ukládání programových zpráv, který v současnosti spravuje skupina IETF. Umožňuje separovat software, který zprávy generuje od toho, který je ukládá, zpracovává a analyzuje (Syslog server). Aplikace v případě potřeby zašle Syslog serveru textovou zprávu s informací o tom, jaká na její straně nastala událost. Syslog server k ní připojí čas, kdy byla zpráva přijata a celý záznam uloží do log souboru a případně zobrazí. Zprávy jsou ryze textové a jejich struktura vypadá takto: <PRIORITY> HEADER MESSAGE, kde PRIORITY je celočíselná hodnota od 0 do 191 určující závažnost zaznamenané události (jednotlivé úrovňě definovány standardem), HEADER obsahuje časový údaj a IP adresu odesilatele a MESSAGE představuje popis události. Konkrétní zpráva může tedy vypadat například takto: <12>Jul 10 12:00:00 192.168.1.1 Backup computer down Výhodou Syslog serveru je, že jeden stroj může monitorovat události aplikací na neomezeném počtu strojů v celé síti. Pokud dojde k nějaké závadě, lze okmažitě zjistit, kde nastala a o jaký konkrétní chybový stav se jedná. - 30 -

KIWI Syslog server Existuje celá řada SW nástrojů, které implementují funkčnost Syslog serveru. Pro testování navrhovaného systému jsem využil volně dostupnou verzi programu KIWI Syslog server pro platformu Windows (http://www.kiwisyslog.com), která umožňuje přijem a odesílání zpráv pomocí protokolu TCP i UDP. Příchozí zprávy program ukládá na disk a zobrazuje v GUI v přehledné tabulce. Obr 13: Ukázka GUI aplikace Kiwi Syslog server - 31 -

4 Závěr Watchdog SW, který vnáší do LXI systému prvky vysoké dostupnosti, byl úspěšně realizován. Software je napsán v jazyce C a pro přístup k systémovým prostředkům využívá rozhraní Win32 API. Rozsah projektu je přibližně 2500 řádek (42kB). Projekt byl kompilován ve vývojovém prostředí Microsoft Visual Studio 6.0. Watchdog SW implementuje všechny vlastnosti, které byly v návrhu podrobně rozebrány. Umožňuje komunikaci mezi hlavním a záložním počítačem, je schopen detekovat a řešit uvedené chybové stavy převzetím služby a může být použit i na samostatném počítači jako klasický softwarový watchdog. Informace o význačných událostech v systému posílá na Syslog server. Možnost podávání hlášení pomocí GSM byla zpracována pouze teoreticky. Při testování na reálném LXI systému byl využit modelový LXI kontrolér vytvořený v prostředí NI LabWindows/CVI 2009. Zdrojové soubory a popis funkčnosti použitého kontroléru lze najít na přiloženém CD. - 32 -

5 Použité zdroje [1] SCHMIDT, Klaus. High Availability and Disaster Recovery: Concepts, Design, Implementation. 1 st ed. Springer, 2006. 410 s. ISBN: 35-4024-460-3. [2] VARGAS, Enrique. High availability fundamentals. Sun BluePrints OnLine. November 2000. Dostupné na WWW: <http://www.sun.com/blueprints/1100/hafund.pdf> [3] PIRKL, Josef. Síťové programování pod Windows a programování Internetu. 2.vyd. České Budějovice : KOPP, 2001. 357 s. ISBN 80-7232-145-5. [4] OSTERLOH, Heather. TCP/ IP - Kompletní průvodce. 1. vyd. Praha : SoftPress, 2003. 512 s. ISBN 80-86497-34-8. [5] RICHTER, Jeffrey. Windows pro pokročilé a experty. 1. vyd. Praha : ComputerPress, 1997. 987 s. ISBN: 80-85896-89-3. [6] KOCOUREK, Petr; kolektiv autorů. Číslicové měřící systémy. Praha : Vydavatelství ČVUT, 1994. 336 s. ISBN: 80-01-01109-7. [7] HEROUT, Pavel. Učebnice jazyka C. 4. vyd. České Budějovice : KOPP, 2004. 271 s. ISBN: 80-7232-220-6 [8] MSDN Library. Dostupné na WWW: <http://www.msdn.microsoft.com/library> - 33 -

A Obsah přiloženého CD Přiložené CD je rozděleno do několika adresářů: bp Tato bakalářská práce ve formátu PDF. Watchdog_SW/source Zdrojové soubory Watchdog SW ve formě projektu vývojového prostředí MS Visual Studio 6.0. Watchdog_SW/manual Manuál k programu ve formátu PDF. Watchdog_SW/bin Watchdog SW s přiloženým konfiguračním nastavením. LXIController/descr Popis použitého modelového LXI kontroléru ve formátu PDF. LXIController/source Zdrojové soubory kontroléru ve formě projektu NI LabWindows/CVI. LXIController/bin Modelový LXI kontrolér. KIWI_syslog Instalační soubor pro aplikaci KIWI Syslog server a manuál v PDF. - 34 -