Úvod
Už dva dny je k dispozici nová verze operačního systému CentOS, konkrétně CentOS 8. A zatím na internetu není příliš mnoho článků na téma, jak na něm něco udělat, proto jsem se rozhodl tento nedostatek odstranit. Představím jak instalaci této dvojice aplikací, tak i to, jak obecně vidím instalaci Linuxu do virtuálního prostředí v moderním světě pro běžné úkoly, včetně dělení disků a dalšího.
Ale na začátku bych chtěl stručně vysvětlit, proč stojí za to přejít na tuto verzi ze všech předchozích a důvodů je hned několik.
- php7! V předchozí verzi CentOS se instaloval 'ortodoxní' php5.4…
Dobře, pokud to vezmeme vážněji, mnoho balíčků přeskočilo několik verzí najednou. My (příznivci redhatovských OS) jsme konečně vstoupili, pokud ne do budoucnosti, tak alespoň do přítomnosti. A příznivci Ubuntu se už nebudou smát a ukazovat na nás prstem, no… alespoň na nějakou dobu ;).
- Přechod z yum na dnf. Hlavní rozdíl spočívá v tom, že nyní je oficiálně podporována práce se současnými verzemi balíčků. Přesně v osmičce jsem to zatím nepotřeboval, ale zní to slibně.
Vytvoření virtuálního stroje
Hypervizory jsou různé a nemám za cíl čtenáře zaměřit na konkrétní, povím o obecných principech.
Paměť
První… Pro instalaci systému CentOS od verze 7 rozhodně, a myslím, že to bylo i v 6, je třeba minimum 2 GB RAM. Proto doporučuji na začátek tolik přidělit.
Ale pokud jde o to, po instalaci lze objem paměti snížit. Na 1 GB běží holý systém docela normálně, ověřil jsem si to.
Disk
Pro normální instalaci by měl být vytvořen virtuální disk o velikosti 20-30 GB. Na systém to stačí. A druhý disk pro data. Ten lze přidat buď při vytváření virtuálního stroje, nebo později. Obvykle přidávám později.
Procesor
Na jednom jádru holý systém nezpomaluje. A protože zdroje se volně škálují, nemá smysl dávat víc při instalaci (pokud přesně neznáte požadavky a nezlenivíte se jít znovu do konfigurátoru).
Ostatní obvykle lze ponechat ve výchozím nastavení.
Vlastně instalace
Takže… Spouštíme instalační program… Osobně už dlouho instalují podobné služby pouze jako virtuální stroje, takže nebudu popisovat vytváření záznamu distribuce na flash disk — jednoduše montuji ISO jako CD v oblíbeném hypervizoru, spuštění a jdeme na to.
Základní instalace probíhá poměrně typicky, zastavím se pouze u několika bodů.
Výběr zdroje
Od vydání osmé verze zrcadlo od Yandexu nefunguje už několik dní. No, to znamená, že se občas obnovení, a pak zase začne ukazovat chybu. Jsem si jistý, že je to kvůli nadměrnému zatížení služby. Proto abych určil zdroj, musel jsem místo obvyklé adresy jít , vybrat tam zrcadlo, které se mi líbí a manuálně zadat adresu v okně instalátoru. Zde je důležité si pamatovat, že je třeba uvést cestu k té složce, kde leží katalog repodata. Například, .
Rozdělení disku
Tato otázka je spíše náboženská z mého pohledu. Každý administrátor má na to svůj postoj. Ale přesto se podělím o svůj názor.
Ano, v podstatě, můžete celé místo vyhradit pro kořen a většinou to bude fungovat docela dobře. Proč tedy vysazovat zahradu s různými oddíly? — Hlavní důvody pro to jsou podle mého názoru dva: kvóty a přenositelnost.
Například, pokud se něco pokazí a na hlavním oddíle s daty vzniknou chyby, chtěl bych mít možnost i tak načíst systém a provést záchranné akce. Proto osobně vyčleňuji samostatný oddíl pro /boot. Tam leží jádro a zaváděč. Obvykle stačí 500 MB, ale ve vzácných případech může být potřeba více, a vzhledem k tomu, že už jsme si zvykli měřit místo terabajty, vyčleňuji pro tento oddíl 2 GB. A důležité je, že ho nelze dělat jako lvm.
Dále následuje kořen systému. Pro normální instalaci jsem nikdy nepotřeboval více než 4 GB právě pro systém, ale během plánovaných akcí často používám katalog /tmp pro rozbalování distribucí, a vyčleňovat ho pod samostatný oddíl nedává smysl — v moderních systémech se automaticky čistí, takže se neplní. Takže pro kořen vyčleňuji 8 GB.
Swap… V podstatě má z něho málo praktického užitku. Pokud váš server začal používat swap, v reálném světě to dnes znamená, že je třeba přidat více operační paměti. Jinak budou problémy s rychlostí zaručeny (buď nějaký program má "únik" paměti). Proto je tato část potřebná pouze pro diagnostiku. Takže 2 GB je skvělá čísla. Ano, bez ohledu na to, kolik paměti máte na serveru. Ano, četl jsem všechny ty články, které pojednávají o poměru objemu paměti k objemu swapu… IMHO, jsou zastaralé. Za 10 let praxe mi to nikdy nepřišlo vhod. Před 15 lety jsem je používal, ano.
Zda vyčlenit /home do samostatného oddílu, IMHO, si každý může rozhodnout sám. Pokud někdo tento katalog na serveru bude aktivně používat, je lepší ho vyčlenit. Pokud nikdo — není třeba.
Dále, /var. Podle mě je nutné ho vyčlenit. Zpočátku můžete omezit číslo na 4 GB, a dál se uvidí. A ano, pod "jak se to vyvine" myslím to, že
- Za prvé, vždy je možné přimontovat jiný disk do podadresáře /var (což ukážu dále na příkladu)
- Za druhé, máme přeci lvm — vždy je možné přidat. A obvykle je třeba přidávat tehdy, když se začnou hromadit příliš mnoho logů. Ale předem tuto hodnotu nikdy nepředpokládám, proto začínám s 2 GB a pak se dívám.
Nerozdělené místo zůstane volné ve skupině svazků, to se dá potom vždy využít.
LVM
Vše oddíly kromě /boot má smysl udělat v LVM. Ano, včetně swapu. Ano, swap podle všech rad by měl být na začátku disku, a v případě LVM jeho umístění není možné v zásadě určit. Ale jak jsem již napsal výše, váš systém by neměla nepoužívá swap vůbec. A proto nezáleží na tom, kde se nachází. Nežijeme přece v roce 95, opravdu!
Dále, v LVM existuje několik základních entit, se kterými je třeba umět žít:
- fyzičtěm svazek
- skupina svazků
- logický svazek
Fyzické svazky se spojují do skupin, přičemž každý fyzický svazek může být pouze v jedné skupině, a skupina může být umístěna na několika fyzických svazcích současně.
A logické svazky se nacházejí každá v jedné skupině.
Ale… máme, sakra, 21. století. A virtuální servery. Nemá smysl používat na ně stejné mechanismy, které byly použity na fyzických. Pro virtuální servery je důležité mít data odděleně od systému! To je velmi důležité zejména pro rychlé přepnutí dat na jinou virtuálku (například při přechodu na nový operační systém) a vůbec různé užitečné funkce (oddělené zálohy oddíly pomocí hypervisoru například). Proto jedna skupina svazků se používá pro systém a druhá se musí používat pro data! Toto logické rozdělení velmi pomáhá v praktickém životě!
Pokud jste při vytváření virtuálního stroje vytvořili pouze jeden virtuální disk, tímto konfigurace končí. Pokud máte dva, jednoduše zatím neanalyzujte druhý.
Spouštíme instalaci.
Po instalaci
Tak, konečně se načetl nově nainstalovaný systém. První věc, kterou je třeba zkontrolovat — internet.
ping ya.ru Je odpověď? — Skvěle, stiskněte Ctrl-C.
Pokud ne — nastavte síť, bez toho se nedá žít, ale článek není o tom.
Nyní, pokud nejsme jako root, přihlaste se jako root, protože zadávat takové množství příkazů s sudo se mi osobně nechce (a ať mi prominou paranoidní administrátoři):
sudo -iNyní nejprve zadáme
dnf -y updateA pokud čtete tento článek v roce 2019, pravděpodobně se nic nestane, ale stálo to za pokus.
Nyní nakonfigurujeme zbývající disk
Předpokládejme, že oddíl se systémem byl xvda, pak disk s daty bude xvdb. OK.
Většina rad bude začínat slovy „Spusťte fdisk a vytvořte oddíl…“
Takže tohle není správně!
Ještě jednou to říkám, protože je to důležité! V tomto případě pro práci s LVM, které zabírá jeden celý, byť virtuální disk, je vytváření oddílů na něm škodlivé! V této větě je důležité každé slovo. Pokud pracujeme bez LVM — je to nutné. Pokud máme na disku například systém a data — je to nutné. Pokud z nějakého důvodu chceme polovinu disku nechat prázdnou — také je to nutné. Ale obvykle jsou všechna tato předpoklady ryze teoretická. Protože pokud se rozhodneme přidat místo k existujícímu oddílu, je nejsnazší to provádět právě při takové konfiguraci. A pohodlí v administraci tak převažuje nad mnoha dalšími, že se cíleně propracováváme k této konfiguraci.
Výhodou je, že pokud chcete rozšířit datovou část, jednoduše přidáte místo do virtuálního oddílu, poté skupinu rozšíříte pomocí vgextend a hotovo! Vzácně může být třeba něco jiného, ale minimálně nemusíte rozšiřovat na začátku logický svazek, což je příjemné. Doporučuje se totiž při rozšiřování tohoto svazku nejprve odstranit existující a poté vytvořit nový... Což nevypadá příliš hezky a nelze to provést za chodu, zatímco rozšíření podle scénáře, který uvádím, lze provádět „za běhu“ bez nutnosti odpojit oddíl.
Takže vytváříme fyzický svazek, poté skupinu svazků, do které je zahrnut a nakonec oddíl pro náš server:
pvcreate /dev/xvdb
vgcreate data /dev/xvdb
lvcreate -n www -L40G data
mke2fs -t ext4 /dev/mapper/data-www
Tady místo velkého písmene „L“ (a velikosti v GB) můžete uvést malé a místo absolutní velikosti uvést relativní, například pokud chcete využít polovinu volného místa ve skupině svazků, musíte uvést „-l +50%FREE“
A poslední příkaz formátuje oddíl do souborového systému ext4 (který podle mé praxe dosud vykazuje největší stabilitu v případech, kdy se něco pokazilo, proto ho preferuji).
Nyní připojujeme oddíl na správné místo. K tomu přidáme správný řádek do /etc/fstab:
/dev/mapper/data-www /var/www ext4 defaults 1 2A zadáváme
mount /var/wwwPokud se objeví chyba — změníme to! Protože to znamená, že máme chybu v /etc/fstab. A při další restartu budeme mít velké problémy. Systém se může dokonce nespustit, což je pro cloudové služby často velmi nepříjemné. Proto je třeba buď rychle opravit poslední přidaný řádek, nebo ho úplně odstranit! Právě proto jsme nezapsali příkaz pro připojení ručně — v tom případě bychom neměli tak skvělou možnost provést kontrolu konfiguračních souborů právě teď.
Nyní vlastně instalujeme všechno, co jsme chtěli, a otevíráme porty pro web:
dnf groupinstall "Development Tools"
dnf -y install httpd @nodejs @redis php
firewall-cmd --add-service http --permanent
firewall-cmd --add-service https --permanent
Pokud si přejete, můžete sem také umístit databázi, ale osobně se snažím ji držet odděleně od webového serveru. I když ji mít blízko je rychlejší, ano. Rychlost virtuálních síťových adaptérů bývá obvykle kolem gigabitu a když pracujete na stejném stroji, požadavky probíhají téměř okamžitě. Ale na druhou stranu je to méně bezpečné. Tady záleží na tom, co je pro koho důležitější.
Nyní přidáváme parametr do konfiguračního souboru (vytváříme nový, moderní ideologie CentOSu je taková)
echo "vm.overcommit_memory = 1" > /etc/sysctl.d/98-sysctl.conf Restartujeme server.
V komentářích mě kritizovali za radu vypnout SeLinux, takže se napravím a napíšu, že po tomto nezapomeňte nastavit SeLinux.
Vlastně, profit! 🙂
Zdroj: habr.com
