Nebudu zastírat hlavní účel tohoto „seriálu“, což je ve skutečnosti někam si uložit zkušenosti z prvních instalací Gentoo Linuxu jako serveru. Přestože oficiální stránky Genta stejně jako výborná gentoo-wiki obsahuje obrovské množství návodů, někdy jsou uvedené informace buď neaktuální nebo se dá najít (podle mne) lepší řešení. Hledat je znovu nebo vzpomenout si ale na ně po více než týdnu bývá utrpení a připomíná to spíše opětovné vynalézání kola.

Poznámka: Následující text jsou tipy ke Gentoo Handbooku, který je k dispozici i v češtině na stránkách Gentoo. Určitě budete potřebovat i Handbook – zde jsou popsány pouze odchylky/doporučení/přidané funkčnosti.

Gentoo Handbook, přestože je skvěle napsaný, je v některých místech zbytečně upovídaný, takže po druhé instalaci serveru už budete některé pasáže cíleně přeskakovat. Některé věci tam ale vcelku logicky chybí a musíte je dávat dohromady z různých HOWTOs (jako například SW RAID). Původně jsem chtěl popsat instalaci opravdu Step by Step, ale jelikož většina kroků by byla pouze „Postupujte podle Handbooku“, tak jsem si to rychle rozmyslel a napsal to pouze jako sérii tipů a doporučení.

Poznámka: Rozhodl jsem se nepsat bludy a pro jistotu si celou instalaci projít ve VMware playeru. Pokud si zatím chcete s Gentoo jenom vyzkoušet ve svých Windows, můžete se podívat na Instalace Gentoo Linux ve Windows. Dílů bude více, protože nálada psát mě zhruba po hodině rychle přejde.

Začátek instalace

Předpokládám, že LiveCD běží a síť funguje. V tom případě doporučuji začít změnou root hesla a nastartováním SSH serveru, protože z už funkčního systému je instalace mnohem pohodlnější, můžete mít otevřenou dokumentaci, tento návod, Google pro řešení problémů a třeba i dělat něco užitečného:

livecd root# passwd
livecd root# /etc/init.d/sshd start

Potom se už jenom připojte jako root přes svého oblíbeného SSH klienta. Jako první vždy začínám spuštěním screenu a další instalaci provádím pouze v něm.

Příprava disků

Pro server je myslím rozhodně rozumné si pohrát s rozdělením disků trochu více než jenom swap = 2 x RAM a / = zbytek. Důvodů je více:

  • Pro každý oddíl můžete vybrat vhodný filesystém
  • Každý můžete mountovat s vhodnými parametry (pro /home se například nosuid a noexec)
  • Do určité míry představuje ochranu před zaplněním kritických oddílů špatně napsanými programy nebo útoky na systémové prostředky (to ale není možné brát jako 100% řešení)

Osobně se mi na 80GB discích osvěčilo pro webový server rozdělení:

/dev/hda1   *           1          62    32MB  /boot/dev/hda2              63        3937     2GB  swap/dev/hda3            3938        4929   512MB  //dev/hda5            4930        8804     2GB  /tmp/dev/hda6            8805       16554     4GB  /usr/dev/hda7           16555       55306    20GB  /var/dev/hda8           55307      155061    50GB  /home

Hvězdička samozřejmě označuje bootable partition. S velikostí /boot, swap, /, /tmp a /usr nemusíte příliš hýbat ani pokud máte 250GB disk, větší prostor nevyužijete. Obvzláště bych chtěl varovat před magalomanstvím u /usr, na serveru opravdu nebudete potřebovat příliš místa pro programy a 4GB bohatě stačí i pokud budete mít rozbaleno více verzí jádra. Zbylý prostor rozdělte podle předpokládaného použití – databáze většinou končí v /var, logy a maily tamtéž, adresáře s obsahy webů můžou být vcelku kdekoliv (v tomto případě v /home).
Pro vytváření partition rozhodně používejte místo fdisku program cfdisk. Samozřejmě to nemám ze své hlavy, doporučuji přímo sekci BUGS v závěru manuálové stránku fdisku (ze své hlavy mám pouze ošklivou zkušenost, když se /usr partition vytvořená fdiskem náhodně remountovala jako read-only). Jenom pozor, že pro více než 4 partition musí být 4. a další logická – v fdisku pro ně musíte extended partition vytvořit, cfdisk na to myslí za vás, stačí pro 4. vybrat [ Logical ], na další se vás už ani neptá.

RAID 1

Pokud chcete používat SW RAID, tak partition by partition měly být vytvořené stejně a všem partition nastavte typ fd neboli Linux raid autodetect. Semtam se můžete setkat s řešením, že swap zůstává jako Linux swap a nezrcadlí se. Podle mě to ale rozhodně není dobré řešení, protože při selhání jednoho disku můžou být naswapované části paměti přímo na něm a následuje segfault.

Začátek

V jádru LiveCD není modul pro RAID (neboli úplně přesně pro multinode devices) standardně nahrán, takže je potřeba to udělat ručně:

livecd ~# modprobe md

A vytvořit správná zařízení v /dev:

livecd ~# cd /dev
livecd ~# MAKEDEV md

Vytvoření RAID polí

Pro správu RAID polí existují v Linuxu dva různé nástroje – raidtools a mdadm. Fungují samozřejmě oba, ale raději používám novější mdadm. Pro vytvoření polí podle předchozího rozvržení použijte:

mdadm –create /dev/md0 –level=1 –raid-devices=2 /dev/hda1 /dev/hdb1
mdadm –create /dev/md1 –level=1 –raid-devices=2 /dev/hda2 /dev/hdb2
mdadm –create /dev/md2 –level=1 –raid-devices=2 /dev/hda3 /dev/hdb3
mdadm –create /dev/md3 –level=1 –raid-devices=2 /dev/hda5 /dev/hdb5
mdadm –create /dev/md4 –level=1 –raid-devices=2 /dev/hda6 /dev/hdb6
mdadm –create /dev/md5 –level=1 –raid-devices=2 /dev/hda7 /dev/hdb7
mdadm –create /dev/md6 –level=1 –raid-devices=2 /dev/hda8 /dev/hdb8

Proces vytváření polí můžete číst z /proc/mdstat, pokud přidáte watch, tak se bude stav číst periodicky:

livecd dev # watch cat /proc/mdstat

Výstup by měl vypadat zhruba takto:

Personalities : [raid1]md6 : active raid1 hdb8[1] hda8[0]      8721280 blocks [2/2] [UU]        resync=DELAYEDmd5 : active raid1 hdb7[1] hda7[0]      3906048 blocks [2/2] [UU]      [==>..................]  resync = 10.1% (396544/3906049) finish=0.2min speed=198272K/secmd4 : active raid1 hdb6[1] hda6[0]      3906048 blocks [2/2] [UU]md3 : active raid1 hdb5[1] hda5[0]      1953216 blocks [2/2] [UU]md2 : active raid1 hdb3[1] hda3[0]      499840 blocks [2/2] [UU]md1 : active raid1 hdb2[1] hda2[0]      1953216 blocks [2/2] [UU]md0 : active raid1 hdb1[1] hda1[0]      31040 blocks [2/2] [UU]unused devices: <none>

Samozřejmě musíte počkat dokud nebudou všechna pole synchronizována. V budoucnu můžete z /proc/mdstat číst informace o stavu polí – [UU] znamená, že jsou oba disky připojené, pokud nějaký havaruje uvidíte místo něj podtržítko: [U_]. Mdadm ale dokáže stav polí periodicky monitorovat, k čemuž se snad také dostanu.

Příprava filesystémů

Zde se nebudu pouštět na horkou půdu, protože někteří lidé berou výběr vhodného filesystému velice vážně a jsou schopní se o něj do krve hádat. Budete-li chtít použít můj oblíbený XFS, tak se určitě podívejte na XFS performance tweaking on Linux. Pokud jste instalovali RAID, tak musíte pracovat s /dev/mdX oddíly místo /dev/hdaX, takže například:

livecd ~ # mkswap /dev/md1

Závěr

Diskové oddíly byste nyní měli mít vytvořené i s vaším oblíbeným filesystémem (nebo oblíbeným filesystémem nějakého kamaráda, který na něj nedá dopustit a už by s vámi do konce života nepromluvil). Příště se ponoříme do úžasného souboru /etc/make.conf.

Zanechej komentář

K zanechání komentáře ke článku musíte být přihlášen. Přihlásit »