Databázový server na platformě Intel 32bit

22. 3. 2004
Doba čtení: 6 minut

Sdílet

Jaký hardware máme zvolit pro provozování databázového serveru? Tento článek není úzce spjat s databázi PostgreSQL a lze jej použít prakticky pro libovolný databázový software na platformě I32. Článek se snaží být co možná nejobecnější vzhledem k rychlosti změn v hardware.

Hlavním důvodem pro napsání toho článku byl fakt, ze většina databázových serverů je z neznalosti provozována na nepříliš optimální hardwarové konfiguraci. O hardwarové konfiguraci databázového serveru si většinou rozhodne sám zákazník, v lepším případě alespoň po konzultaci se svým hardwarovým dodavatelem, který obvykle nebývá v této oblasti expert.

Centrální databázový server je přitom nejdůležitější součástí informačního systému. Když zhavaruje file-server, mail-server, web-server, mohou uživatelé pokračovat, byť s jistými omezeními, v práci. Když zhavaruje databázový server, nelze přistupovat k životně důležitým datům a následné výrobní prostoje jsou drahé. Je tedy velice žádoucí zajistit co nejvyšší dostupnost databázového serveru. Havárii databázového serveru je nutno předvídat a mít vypracován plán pro co možná nejrychlejší obnovu databáze alespoň do stavu, kdy jsou nejpoužívanější části IS funkční.

Jak by měl vypadat databázový server

1. Vyhrazený server

Je zcela nezbytné mít server vyhrazený pouze pro poskytování databázových služeb. Na tomto serveru nebudeme zakládat žádné uživatelské účty – ponecháme zde pouze účty nezbytně nutné pro chod systému. Pokud databázový systém vyžaduje pro každého databázového uživatele i systémový účet, je nutné tomuto uživateli zakázat interaktivní login.

Provozování dalších služeb na stejném serveru zbytečně snižuje výkon, komplikuje správu a ohrožuje stabilitu a bezpečnost systému. V ideálním případě nám postačí syslog, ssh, ftp a případný klient pro vzdálené zálohování. Použití NFS se snažíme vyhnout, kromě obvyklých problémů totiž často znestabilňuje systém. Pokud potřebujeme odesílat maily, nakonfigurujeme si mailserver tak, aby nepřijímal žádnou příchozí poštu zvenčí. Zásadně neprovozujeme na stejném serveru file, mail či web-services.

2. Víceprocesorový SMP server

Další, často opomínanou, nutností je použití více procesorů. Databázový server je velmi náročná úloha vzhledem k využití CPU zdrojů. Větší počet CPU poskytuje lepší vyrovnanost výkonu v závislosti na počtu pracujících uživatelů a prodlužuje se tak morální životnost serveru na dobu 5 - 7 let. Pokud se rozhodnete pro čtyřprocesorový server, je to ideální řešení.

3. Použití značkového serverového hardware

Použití značkového serverového hardware lze jen doporučit. Tyto sestavy bývají pečlivě testovány jako celek. Ačkoliv se to nezdá, jsou mezi jednotlivými výrobci poměrně velké rozdíly, a to jak v ceně, tak především ve spolehlivosti. Je nutné ještě před koupí zjistit, jaké jsou s danou sestavou (nebo alespoň produktovou řadou) zkušenosti. Osobní zkušenosti jsou sice nejlepší, ale i prohledávání archivů mailing listů poskytne dostatek referencí. To platí nejen o sestavě jako takové, ale také o použitých harddiscích.

4. Kompatibilita s operačním systémem

Přestože větší databázové systémy provozované pod OS Windows jsou spíše výjimkou, dodavatelé hardwaru to zatím moc nezaregistovali a většinou zaručují kompatibilitu pouze s OS Windows. Slovník: kompatibilita = nabootuje to. Zaručení kompatibility s OS Linux není tak časté. Pokud zaručena je, dostanete spolu se serverem obvykle CD-ROM s RedHatem. Zaručení kompatibility výrobcem není nezbytné – server budeme před uvedením do provozu testovat (viz další díl).

3. Volba procesoru: Intel, nebo AMD?

Řešení s procesory Intel je populárnější. Ve značkových serverech se prakticky s jinými procesory nesetkáte. Je to poměrně škoda, protože procesory Athlon MP poskytují vynikající výkon při použití v SMP systémech, kde jsou až o 30 (obvykle okolo 10) procent lepší. Docela hezká porovnání AMD a Intelu najdete na webu AMD.

4. Rychlost CPU

Obvykle se říká, že rychlost CPU není pro unixové servery rozhodující. To však neplatí u databázových serverů. Při běžném víceuživatelském provozu je tu přibližně lineární závislost mezi rychlostí CPU a celkovou propustností serveru. V každém případě však věnujte zvýšenou pozornost rychosti FSB a velikosti L2 (případně L3) cache a kupte procesor s nejlepšími možnými parametry.

5. Operační paměť

Použijeme co nejrychlejší paměť, kterou námi zvolený procesor a deska podporují. Pokud je možné používat paměť s ECC korekcí chyb, použijeme ji. Některé desky přistupují k paměti rychleji, pokud jsou instalovány dva shodné čipy. Rozhodnete-li se pro procesory Intel, počítejte s tím, že příliš mnoho (8GB/2CPU) paměti systém zpomalí. U procesorů AMD není zpomalení při větším množství RAM tak výrazné. Obvykle se u procesorů používá jako základní kombinace 1 GB RAM na procesor, přičemž za minimum se považuje 5 MB na jednoho databázového uživatele. Pokud budeme potřebovat více paměti než 4 GB, poohlédneme se v dnešní době raději po některém z dostupných 64bitových systémů. Optimalizace správné velikosti RAM závisí na předpokládané velikosti nejčastěji zpracovávaných dat (více v sekci optimalizace).

6. Disky: Systém

Jako systémový disk je nejlepší použít klasický IDE disk. K jeho největším pozitivům patří dostupnost i při problémech se SCSI řadičem. Kapacita a rychlost v tomto případě nehrají žádnou roli. Celý OS Linux se pohodlně vejde do dvou GB a systémové soubory se budou načítat z disku jen při startování systému. V serverech se obvykle používá kapacita okolo 30 GB.

7. Disky: Databáze

Pro provozování víceuživatelské databáze je zcela nezbytný SCSI-3 disk. V současné době jsou dostupné ve verzích s přenosovou rychlostí 180 nebo 360 MB. Testy neprokázaly žádné zlepšení výkonu při použití rychlejší verze rozhraní. Výkon naopak značně ovlivňuje rychlost disku (RPM), koupíme tedy co nejrychlejší. Naopak není nutné kupovat do rezervy větší kapacitu než potřebujeme: objem zpracovávaných dat se v čase moc nemění (stará data archivujeme), ceny disků rychle klesají a !disky každé dva roky vyměňujeme!

8. Disky: Databáze : RAID

Obvykle však používáme více než jeden databázový disk. S více disky se nám nabízí možnost vytvoření RAID pole. RAID disk pole je možné nakonfigurovat do verzí 0, 1 a 5. Zásadně upřednostňujeme HW raid před softwarovým.

RAID 1 (mirror): Obvykle se moc nepoužívá: čtení je sice 2× rychlejší, ale zápis je dvojnásobně pomalejší. Některé inteligentnější HW RAID řadiče jsou dvoukanálové, a tak umí zapisovat paralelně, čímž eliminují tento problém a nedochází u nich k výraznému snížení rychlosti zápisu.

RAID 5: Na RAID-5 jsou potřeba minimálně tři disky, získáme tím vyšší výkon při čtení, ale ztrácíme zde při zápisu. Není sice nutné zapisovat dvojnásobek dat jako u RAID 1, ale řadiče neumí v tomto režimu paralelní vícekanálový zápis. Pro použití na fileserveru je RAID5 nejoblíbenější volba, ne však pro databázový server, protože fileserver narozdíl od databázového serveru většinou provádí sekvenční zápis.

Vsuvka: jednou z operací, které databázový server nejvíce zdržují, je update indexů nad velkými tabulkami. Pokud updatujeme záznam ve velké tabulce, tak ke každému záznamu je nutno aktualizovat několik stránek v indexu, které navíc neleží na disku vedle sebe. Jedna databázová stránka má řádově 8 – 32kB (nejčastěji však 8).

Pokud na RAID5 zapisujeme menší blok, než je strip-size (obvykle 128K, pro provoz databáze je lepší 64K), je nutné načíst z disku celý strip-size blok, abychom mohli přepočítat jeho paritu, a následně blok + paritu zapsat. Tato operace značně zdržuje při náhodném zápisu. Databáze provádějí naprostou většinu zápisových operací náhodně. Sekvenční zápis je prováděn jen při vytváření redo logu, při práci s dočasnými soubory, a pokud nemáme moc fragmentovanou databázi, tak i u většiny datových bloků.

RAID-0 (striping): Velmi vhodný pro provoz databází, optimální je použití tří disků. Zrychluje čtení i zápis. Technicky vzato, není to RAID, protože nás nechrání před havárií disku. Pokud zhavaruje jakýkoliv disk ze série, jsou data zničena. Proto se nedoporučuje dělat RAID-0 přes více než tři disky, což poskytuje vhodný poměr výkonu ku bezpečnosti.

RAID-0+1: Novější RAID řadiče umožnují ještě režim 0+1. Jedná se o se zdvojené RAID-0 pole. Nejčastěji se používá, pokud potřebujeme RAID-0 pole o velikosti větší, než je velikost jednoho disku.

ict ve školství 24

9. Zálohování: DAT

Pokud nepoužíváme některý ze síťových zálohovacích systémů, je nutné vybavit server páskovou mechanikou pro zálohování. Nejpoužívanější jsou tzv. DAT mechaniky označované DDS-číslo verze. Čím novější verze, tím jsou mechaniky rychlejší, umí zazálohovat více dat a kupodivu jsou i spolehlivější. Tyto mechaniky umí hardwarovou kompresi dat. Ůčinnost této komprese pro běžné soubory mírně překračuje výrobcem inzerovaný poměr 2:1. Pásky je nutné zhruba po roce obměňovat a mechaniku pravidelně čistit.

10. Zálohování: DVD

Jako zálohovací médium lze využít, v poslední době oblíbený, DVD-R* disk. Jeho největší nevýhodou je však nízká kapacita, a proto se pro servery nedoporučuje. Výhodou je cena.

Autor článku