Solartec - síť postavená na Linuxu

Úvod

Když jsem napsal první verzi tohoto textu, byl jsme zděšen jeho suchopárností a sebechválou. Poprosil jsem tedy některé kolegy, aby si tento text přečetli a doplnili jej o některé jedovatosti, kterými obvykle moji práci komentují. Nepodařilo se. Abych vám čtení textu aspoň trochu ulehčil, sebral jsem zrcadlo, papír a tužku a nyní máte (asi) první příležitost číst na abclinuxu článek s ilustracemi.

Firma Solartec je jediný výrobce solárních článků v České republice. Velká část aktivit firmy je však orientovaná na problematiku související s fotovoltaikou a s obnovitelnými zdroji energie vůbec. V posledních letech se celý obor dynamicky rozvíjí a spolu s tím narůstají jak nároky na síťové služby, tak možnosti přístupu k různé technice.

Když jsem před čtyřmi lety do firmy nastoupil, byl nejsložitějším výpočetním systémem MS Excel s databází naměřených solárních článků - týdenní statistické přehledy dělal kolega ručně a to, co by se v databázi řešilo několika SQL dotazy, trvalo pár hodin.

Svou kariéru jsem začínal na počítačích EC1033 (nebyl na tom unix), potom SMEP s krátkým obdobím na PC a FoxPro (ve srovnání se SMEPem bylo AT jen hračka) a od roku 1993 jsem pracoval především na operačních systémech unixového typu. Windows jsem na svém desktopu smazal v roce 1994 a o rok později jsem nasazoval Linux poprvé v podnikovém prostředí jako souborový server pro přibližně stovku uživatelů. Zkušeností a kuráže pro vystavění podnikové sítě na Linuxu jsem měl tedy dost a o tom správném operačním systému na servery jsem neměl nejmenší pochyby.

Administrátor je bůh a síť je jeho prorok Jediný počítač s Linuxem byl ze začátku firewall, který byl součástí dodávky internetového připojení. I když je to dnes beznadějně zastaralé PC (Pentium 75 MHz, 32 MB RAM a 800 MB disk), slouží po doplnění dalšími síťovými kartami, VPN a velkým množstvím pravidel do iptables dodnes. Postupně přibývaly servery s databází, web serverem pro intranet, poštou a s dalšími službami a dnes je jenom v serverovně sedm počítačů s Linuxem.

Na uživatelských počítačích MS Excel s odpovídajícím okýnkovým podkladem pochopitelně zůstal. Uživatelé si na svá Windows nenechají sáhnout a vyhrožují, že když jim na to sáhnu, sáhnou oni na mě. Spokojený je Microsoft, spokojení jsou uživatelé, nespokojený je jen můj plastický chirurg, který mi s optimistickým výrazem našeptává: "...ale klidně jim na to sáhněte, nějak to spíchnem..."

Databáze

Myslím, že zítra se do ničeho náročnějšího raději poštět nebudu Z mého pohledu je pro chod každé firmy jedním z nejdůležitějších systémů databáze. Z dřívějška jsem měl zkušenosti s databázovými stroji CA Ingres a Oracle. Z open source databází jsem měl nejvíce zkušeností s databází PostgreSQL, i když jsem nikdy neměl možnost nasadit tuto databázi v podnikovém prostředí. Během uplynulých čtyř let se databáze ukázala jako velmi výkonná a mimořádně spolehlivá zvláště ve srovnání s Ingresem, i když toto srovnání není zcela fér (s Ingresem jsem pracoval zhruba před deseti lety a během té doby se vývoj určitě nezastavil). Pro naše využití by (nejspíš) naprosto nepřipadala v úvahu databáze MySQL, především kvůli nemožnosti řádně definovat vztahy mezi tabulkami a z toho vyplývající nespolehlivosti a výrazně nižšímu výkonu. V databázi je dnes přes dvě stě tabulek (jistě ne všechny se používají). Největší tabulka má téměř devět miliónů záznamů, další největší v pořadí dva a půl miliónu. Další tabulky jsou postatně menší, řádově desítky až stovky tisíc vět, většinou však jen pár stovek. Databázový stroj je relativně hodně zaměstnaný - běžící výrobní linka dovede krmit databázi několika stovkami záznamů za minutu.

V databázi jsou uložená data o výrobě, docházkový systém, internetové stránky, ceníky, internetový obchod a data různých projektů z oblasti fotovoltaiky (Sledování vlivu znečištění na fotovoltaické panely, Fotovoltaická fasáda Corinthia Panorama hotel).

Až na vyjímky jsou databázové aplikace vytvořené v php a tvoří součást intranetu. Skripty pro pořizování dat jsou z velké většiny relativně jednoduché a velká část aplikační logiky je přenesena na databázi. Část nejpoužívanějších skriptů je kvůli pohodlí při zadávání dat optimalizovaná pro textový prohlížeč Lynx. Nenáročnost textového prohlížeče umožňuje využít na výrobní lince i jinde pro zadávání dat stroje, které mají pomalu víc ventilátorů, než bogomipsů - počítače 386 s připojenými sériovými terminály (samozřejmě s Linuxem).

Poštovní systém

V1@GRA... Spam? Virus? Dlouhá léta jsem používal na poštovních serverech sendmail. Kdo někdy zkusil dělat nějaké změny do konfiguračního souboru sendmailu, jistě mi dá za pravdu, že konfigurovat sendmail se podobá spíše práci kryptoanalytika a v některých vyhraněných případech se pro sendmail charakteristická změť interpunkčních znamének musí napsat i do konfiguračního předpisu pro preprocesor m4. Takže i když jsem investoval do sendmailu veliké množství času a energie a dokonce jsem držitelem certifikovaného glejtu o úspěšném absolvování týdenního kursu s hodnocením "prospěl na výbornou" (kurs nebyl dostatečně náročný), rozhodl jsem se, že na novém působišti se naučím pracovat raději s novým poštovním serverem.

V roli MTA tedy vystupuje Postfix. Ve srovnání se sendmailem se konfiguruje velmi snadno, jeho modulární koncepce dává naději na vyšší bezpečnost a v neposlední řadě se Postfix relativně snadno doplňuje o různé další moduly (deliver agenty, antiviry a podobně).

Uživatelé samotní mají poštu uloženou na serveru v imap složkách (cyrus imap server). Celé to mírně komplikuje pouze MS Outlook, který ani v poslední verzi nedovede pracovat s imap složkami na uspokojivé úrovni - tvrdošíjně skladuje odesílanou poštu do lokálních složek a jeho způsob ukládání off-line obsahu zcela znemožňuje používání cestovních profilů. Uživatelé jsou nuceni buď čekat dlouhé minuty při každém odhlášení/přihlášení, nebo musejí mít MS Outlook nastavený ručně na každém počítači, ke kterému se přihlašují. Na MS Outlooku je znát, že je to svět sám pro sebe, a že by mu opravdu svědčilo spíše prostředí s MS Exchange serverem, normální poštovní protokoly tak docela nezvládá.

Součástí pošty je i ochrana proti nežádoucímu obsahu. Na serveru neběží žádný antivirový program - takřka všechny nebezpečné přílohy dovede odfiltrovat procmail sanitizer. O redukci nevyžádané pošty se přímo na serveru stará Spamassassin - žádná pošta typu "Four inches in two weeks!!! Impress your girl!!!" už nemusí snižovat sebevědomí pánů v naší síti.

Samba

Protože většina uživatelských PC běží v prostředí Windows, je pro uložení uživatelských dat nejvhodnějším řešením Samba. Ta slouží jako primární řadič domény - na serveru jsou uložené všechny uživatelské údaje. Samba slouží i jako společný tiskový server pro všechny tiskárny ve firmě. I když tiskárny jsou rozházené různě po republice, uživatelé je mohou najít vždy na jednom společném místě.

Uložení uživatelských dat a účtů na jednom místě usnadňuje zálohovaní a jemnější rozdělení přístupových práv mi pomohlo eliminovat různá sdílení, která jinak měli uživatelé ve zvyku vytvářet na svých discích.

Zálohování

Při mé nedávné návštěvě v bývalém působišti mi ukazoval kolega zařízení se spoustou pásek - elektronický trpajzlík na povel systému sebral potřebnou pásku a po krátké poradě s ostatními pidizaměstnaci zalohovacího zařízení běžel vrazit pásku do nejbližší volné mechaniky. Bylo by krásné mít do sítě připojené podobné zařízení, ale celá legrace by stála více, než všechny servery dohromady. Takže je zálohování o cosi levnější - nejjednodušším řešením bylo vyčlenit pro zálohy jeden počítač s dostatečnou diskovou kapacitou. Zálohy probíhají bezobslužně každou noc protokolem rsync. Počítač je umístěný odděleně od ostatních, aby při případné návštěvě zlodějů, vody, ohně či jiné nepříjemnosti nepřišla firma o veškerá data.

Hardware

Všechny počítače jsou odlovené v hlubokých valašských hvozdech. Veškerý hardware je vybíraný z toho, co se dá celkem běžně koupit v obchodech s počítači - v případě problémů je tak možné sehnat potřebné náhradní díly velmi rychle. Dobrá polovina serverů je tvořena počítači, které už se díky svému výkonu nehodily k nikomu na stůl, ale ještě mohou posloužit třeba jako dns nebo ftp server. U těchto služeb není výkon rozhodující, ale z bezpečnostních důvodů je vhodné oddělit tyto procesy od vnitřní sítě a od firewallu.

Nejčerstvější přírustek do rodiny serverů je PC s dvoukernelovým AMD Athlon64 X2.

Distribuce

Z dřívějška jsem byl zvyklý na SVR4 a v době, kdy jsem s Linuxem začínal, měl k SVR nejblíže RedHat. Bohužel podpora volně dostupných distribucí pomalu končí a vývoj nastupující Fedory mi připadá poněkud překotný a nekontinuální.

Nechal jsem se přesvědčit, že na čtyřiašedesátibitový počítač je nejlepší distribucí Gentoo. Tento systém mě při instalaci značně potrápil, ale po zprovoznění se mi zdá Gentoo přímočařejší a trochu jednodušší na údržbu. Dovedl jsem se v systému zorientovat mnohem rychleji - do administrace mi nezasahují žádné klikací konfigurátory, protože jsem si žádné nenainstaloval, a konfigurační soubory jsou přesně tam, kde bych je hledal. Celé nastavení je optimalizované pro můj nejoblíbenější konfigurační nástroj - editor vim.

(Přečetl jsem si, jak tady chválím Gentoo - přitom Gentoo na mě zanechalo ve skutečnosti spíše dojem nenainstalovatelného systému se špatnou dokumentací, s velkým množstvím chyb a se svérázným systémem na jejich odhalování a odstraňování - problémy, se kterými se potýkám, jsou dávno zařazeny v kategorii "vyřešeno". Systém se většinu času pohybuje mezi dvěma stavy - nefunguje nebo se překládá, případně ještě přesněji nefunguje a zároveň se překládá. No co už, nainstaloval jsem to, tak bojuju.)

Linux na desktopu

Na některých počítačích moderní desktop prostě nerozjedete Na několika místech se používá Linux i na desktopu. Běžní kancelářníci, jak už jsem uvedl, Linux nechtějí, ale na výrobní lince, kde nejnáročnější činnost sestává z vyplňování intranetových formulářů, prostě dostali na stůl předpotopní 386 s prohlížečem Lynx. Nejpokročilejší kancelářskou technikou na lince je staré Pentium s 32 MB RAM - Linux dovoluje, aby aplikace běžely na serveru. Uživatelé tak mohou i na takovém stroji používat internet, poštu a OpenOffice.

Náplň do procesoru AVR se mixuje v Linuxu Veškerou produkci výrobní linky je třeba překontrolovat a změřit. V tomto případě slouží opět Linux. K počítači s Linuxem je připojený jednoúčelový přístroj s jednočipem AVR, samotná aplikace běží v prostředí X11. Procesor AVR samozřejmě není natolik výkonný, aby mohl utáhnout celý linuxový cirkus - Linux byl ale využitý při vývoji aplikace pro jednočip (překladač gcc).

Pražská pobočka

Údržba disků je špinavá práce I když má Solartec sídlo ve valašském křemíkovém údolí - v Rožnově pod Radhoštěm - má svou pobočku i v Praze. Pobočka je připojena k mateřské firmě přes VPN, všechno obstarává samozřejmě Linux. Práce na serverech v pražské pobočce se liší od práce na rožnovských serverech pouze v jednom bodě - při případném restartu některého serveru trnu, jestli nebude třeba server chtít překontrolovat disky ručně. Naštěstí i na dálku lze odmontovat většinu disků a v readonly režimu překontrolovat čas od času i disk s běžícím systémem.

Správa Linuxu na dálku je natolik jednoduchá a spolehlivá, že jsem se dokázal vyhýbat návštěvě pražské pobočky téměř rok. Kancelář jsem poprvé navštívil, až když bylo třeba posílit pražské pracoviště o další kus hardware.

Linux netradičně

Různé projekty v oblasti obnovitelných zdrojů energie předpokládají, že zařízení budou monitorovaná přes internet. Připojovat k maličké fotovoltaické elektrárně PC není příliš produktivní, monitorovací zařízení (PC) by spotřebovalo veškerou vyprodukovanou energii. V současné době experimentujeme s jednodeskovými počítači s procesory PXA250 - operační systém těchto zařízení je samozřejmě opět Linux.

Monitorování

Proboba, co ten server zase chce?! Činnost většiny serverů je sledovaná periodicky spouštěnými jednoduchými skripty, které hlídají například zaplnění disků, zatížení procesorů či funkčnost některých subsystémů. Případné problémy se okamžitě hlásí zasláním SMS na mobilní telefon.

Monitorováním jsem byl nadšen až do čtrnáctidenní dovolené, na jejímž začátku se na serveru zacyklil šílený bludný proces a server každou hodinu poslal zprávu o tom, že procesor je v plamenech. Což o to - mobil se dá vypnout. Ale když jsem telefon po pár dnech zapnul, musel jsem na tu záplavu plamenných SMS zavolat chorvatské hasiče.

Závěr

Po náročném dni si může administrátor odpočinout... Linux v Solartecu na desktopech běžně nenajdete. Zkušenosti ale ukazují, že tam kde se uživatelé nedovedou bránit a nemají příliš specifické nároky, je Linux provozovatelný bez problémů i na desktopu. Nasazení na serverech je samozřejmě vyzkoušené i v mnoha jiných firmách a u nás ani nic jiného neběží. Linux je spolehlivý, výkonný a nenáročný na údržbu - velkou část údržby (updaty, restarty procesů a podobně) provádím v noci nebo o víkendech, připojený k síti obvykle jen přes GPRS kartu.