Linuxový softwarový RAID

16. června 2022

Hardwarový 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
Díky linuxovému softwarovému RAIDu můžete takový RAID provozovat bez potřeby speciálního HW. Není tedy třeba ani udržovat náhradní kus RAID řadiče. Můžete RAID používat na jiné linuxové distribuci. Nebo je možnost obnovit data pokud vám zůstal v ruce pouze jeden disk ze dvou z RAIDu 1.

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.conf
Nebo 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/X
Tento ú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

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 Magei 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.


+