Linuxový softwarový RAID
16. června 2022Hardwarový RAID má mnoho výhod. Pokud však člověk neprovozujete velkou infrastrukturu a vyloženě nepotřebujě výhody HW RAIDu pro enterprise řešení, preferuji softwarový linuxový RAID zvaný mdadm, protože skýtá mnoho praktických výhod. Jaké výhody a jak mdadm používat popíši v tomto návodu.
Co je to RAID najdete na wikipedii. Já jen upozorním, že často si lidi pletou různé pojmy a dojmy, takže je dobré si přesné termíny nastudovat. RAID není zálohování. RAID se používá buď k spojení diskového prostoru nebo k zajištění větší dostupnosti služeb, případně k lepší mu výkonu. Některé základní desky se prodávání s RAIDem, ale reálně je to softwarový RAID + ovladač do Windows. Takový RAID se označuje jako fake RAID.
Který RAID použít? Obecně se používají tyto RAIDy: RAID 0, RAID 1, RAID 5, RAID 6, RAID 10. RAID 1 je nejtypičtější volbou díky redundanci dat, jednoduchosti použití a potřebě pouze jednoho disku navíc. Naopak RAID 0 je samostatně úplně nevhodnou volbou pro nasazení na serveru, protože se tím snižuje bezpečnost uchování dat. Jeho použití je vhodné pouze tam, kde jsme ochotni dopustit výpadek nebo přijít o data - tedy zálohujete data.
Video RAID
Slovní popis o tom co je a není RAID najdete v tomto videu:
Linuxový softwarový RAID
Linuxový softwarový RAID zvaný mdadm je řešení, které je na úrovni linuxového kernelu.
-
Jeho hlavní výhody:
- stabilita
- nezávislost na HW
- přehlednost
- možnost migrace mezi různými HW a linuxovými distribucemi
Mimochodem, pokud potřebujete RAID, můžete použít nejen mdadm ale i filesystém BTRFS nebo technologii LVM.
Rozdělení disku
Velikost oddílu je individuální dle potřeb. K rozdělení můžete použít nástroje: fdisk, cfdisk, parted nebo grafický gparted.
Jak rozdělit disky? Rozdělení disků klidně můžeme odvodit ze stávajícího systému, ale s ohledem na RAID, je možná vhodnější zvolit jen jeden velký oddíl přes celý disk. Důvod pro jedinou partition s RAIDem na každém disku je ve výkonu. Ovladač RAIDu se totiž snaží optimalizovat čtení z pole a čte buď z prvního disku který nic neprovádí nebo z disku od kterého naposledy požadoval přístup do nejbližší oblasti. (Situace je popisována pro RAID1) Protože poslední oblast přístupu je uložena v informacích o každém RAID poli, nebude se tento algoritmus při více polích na jednom disku chovat moc efektivně.
Vytvoření totožného rozložení na druhém disku můžete provést jednoduše tímto příkazem:
sfdisk -d /dev/sda | sfdisk /dev/sdb
Vytvoření RAIDu
Vytvoření RAIDu 1 ze dvou disků
mdadm --create /dev/md1 l 1 -n 2 /dev/sda1 /dev/sdb2
Na tomto nově vytvořeném blokovém zařízení pak můžete vytvořil například filesystém JFS, zařízení připojit do adresářové struktury a začít ukládat data.
Vytvoření RAIDu 5, který má mít tři disky, ale zatím máme k dispozici jen dva:
mdadm --create /dev/md/data -l5 -n3 /dev/sdb3 /dev/sdd3 missing
Přidání disku
Přidání nepoužitého nového disku do RAIDu:
mdadm /dev/md0 --add /dev/sdc1
Odebrání disku
Disk může být označen jako vadný systémem nebo ho můžeme označit ručně:
mdadm /dev/md0 --fail /dev/sdc1
Odebrání vadného disku z RAIDu:
mdadm /dev/md0 --remove /dev/sdb1 /dev/sdc1
Pokud se disk odebere fyzicky ze serveru je potřeba ho stále z RAIDu odebrat i v systému. Protože jinak se po připojení k PC bude považovat stále za používaný.
Uložení konfigurace
Je dobré uložit konfiguraci všech RAIDů do konfiguračního souboru.
Můžeme pro-skenovat systém a výstup rovnou nechat dopsat na konec konfiguračního souboru:
mdadm --detail --scan >> /etc/mdadm/mdadm.confNebo stejný úkon udělat pro jedno konkretní diskové pole:
mdadm --detail /dev/md1 --brief >>/etc/mdadm.conf
Také je dobré mít zapnutou službu mdadm:
systemctl enable mdadm.service
Swap a RAID
Jak na swap a RAID?
-
Jsou dva přístupy:
- Nedávat swap na RAID
- Dát swap na RAID1
Umisťovat swap na softwarový RAID není vhodné kvůli možnosti deadlocku, který může nastat v případě, kdy bude systému docházet volná paměť. Mě osobně se to nikdy nestalo.
Pokud provozujete softwarový RAID 1 pro zajištění větší dostupnosti a swap na RAID1 nedáte, tak umření jednoho disku bude znamenat výpadek. Pokud bude swap na RAIDu 1 tak je to v pohodě.
Já provozuji swap na RAIDu1.
Kontrola stavu RAIDu
Seznam a podrobnosti o všech RAIDech můžete získat následujícím příkazem:
cat /proc/mdstat
Spuštění kontroly dat na RAIDu:
echo "check" > /sys/block/md1/md/sync_action
Příkaz pro spuštěni synchronizace RAIDu:
echo repair >/sys/block/md<#>/md/sync_action
Počet chyb je možno dohledat v tomto souboru příslušného RAIDu:
cat /sys/block/md*/md/mismatch_cnt
Pokud vám systém automaticky při startu nesloží diskové pole, například bootujete z nějakého záchranného CD, můžete ho ručně složit tímto příkazem:
mdadm --assemble --verbose /dev/md1 /dev/sdb1
Zastavení RAID pole:
mdadm --stop /dev/mdXi
Vymazaní informací o RAIDu z disku:
mdadm --zero-superblock /dev/XTento úkon udělejte pokud jste zrušily RAID na daném disku. Smaže to všechna metadata o RAIDu a systém už disk nebude považovat, že patří do nějakého RAIDu.
Pokud server migrujete na RAID je potřeba dát pozor, že máte aktualizovánu konfiguraci v zavaděči, souboru fstab a vygenerován nový initramfs, jinak se vám nepodaří úspěšně nabootovat.
Zavaděč
Nezapomeňte nastavit zavaděč (typicky GRUB) a zapsat ho na všechny disky. Jinak můžete mít problém s bootovaním serveru, pokud nikde nebude zavaděč.
Návod mdadm
Video návod jak vytvořil linuxový softwarový RAID1:
Další zdroje a témata
Další návody ohledně linuxových serverů najdete v ebooku.
Příště zpracuji informace ohledně Logical Volume Management.
Články na podobné téma
VMware vs Proxmox: porovnání výkonu
GitLab CI/CD: automatizace testů a nasazení aplikace
Migrace VPS z VMware na Proxmox
Změna licencování VMware
Provoz Microsoft SQL serveru na Linuxu
Zálohování: Proxmox backup server
Linux jako router a firewall
Jak náhrát docker image do Docker Registry
Linux: Logical Volume Management
Provoz webové aplikace za proxy
Migrace mail schránek
Docker multistage build
Zálohování dat zapnutím počítače
Podman
Import Windows do virtualizace Proxmox
Docker a PHP mail
Virtualizace Proxmox
Docker a Cron
Lenovo ThinkPad X1 Carbon: zprovoznění LTE modemu EM7544
Yocto Project: Build vlastního operačního sytému pro embedded zařízení
Příprava linuxového serveru pro běh webové aplikace v jazyce Python
Jak řešit špatný výkon sdílených souborů u Dockeru
Jak začít správně používat Docker
Instalace Linuxu na dedikovaný server HPE ProLiant DL320e
Jak provést zátěžový test webové aplikace
Proč používat filesystém JFS
Jak bootovat z 4TB disku s GTP pomocí UEFI
Jak nainstalovat operační systém Mageia Linux bez DVD mechaniky
Souborový systém Btrfs
Raspberry PI
Jak zprovoznit vzdálené přehrávání přes síť na televizi s DLNA
Upgrade Mandriva Linuxu za běhu
Poznámky ke GNU/Linux
WINE - spouštíme programy pro Windous pod Linuxem
Operační systém GNU/Linux
Odběr novinek
Pokud máte zájem dostávat příležitostně na email novinky.
Můžete se vyplněním emailu registrovat k
odběru novinek.
+