RAID (vytvoření nového pole)
Pro vytvoření nového RAID pole se používá režim --create
(lze použít i zkrácenou verzi parametru -C
). Tento režim se nikdy nesmí použít, pokud pracujeme s disky již existujícího pole! Tj. pokud chceme do nového pole přidat blokové zařízení, které již bylo součástí nějakého RAID pole, je nezbytné provést nejprve u tohoto zařízení vynulování superbloku ( viz část Vyhození disku z pole )
Bloková zařízení a RAID
RAID pole lze sestavit rovnou z celých disků, většinou je však lepší RAID pole sestavit z logických oddílů. A to z následujících důvodů:
- v případě že má být nad RAID polem umístěn i systémový disk, umožní tabulka rozdělení disku (ve které jsou adresovány logické oddíly) umístit zavaděč. Viz tabulka
- když je RAID pole sestaveno z logických disků, lze použít disky rozdílné velikosti
S - spare disk
Disk, který je součástí RAID zařízení, ale není používaný dokud z něj některý disk nevypadne. Pak přestane být označen [S] a začnou se na něj replikovat data.
V případě že zhavaruje disk na kterém byly uloženy informace potřebné pro replikaci, dojde ke ztrátě dat. To je důvod proč upřednostnit RAID-6 před RAID-5. |
F - faulty disk
Když nějaké blokové zařízení, které je součástí RAID pole zkolabuje, zůstane dále jeho součástí, ale je označeno jako faulty [F]. V poli je takový disk nahrazen prvním dostupným spare diskem, na který se automaticky začne pole rekonstruovat. Pokud není spare disk k dispozici, může pole fungovat dál, pokud mu to dovolí jeho typ, ovšem v degradovaném režimu.
Pokud chceme nějaké diskové zařízení z RAID pole vyjmout, musíme ho nejprve označit jako faulty (přestože je v pořádku), jinak nám ho nedovolí mdadm odstranit, protože s ním bude stále pracovat. |
Pojmenování RAID pole
RAID pole lze vytvořit a provozovat i bez toho, že by se při jeho vytvoření specifikovalo jméno. V takovém případě se však můžete dočkat nemilých překvapení. Obzvlášť tehdy, když nad tímto polem je vytvořená ještě LVM skupina.
Nástroj mdadm totiž při vytvoření pole použije pro jeho pojmenování hostname a aktuálně přiřazené číslo md
zařízení. Tyto hodnoty však mohou být za určitých okolností jiné. Např. tehdy, když přehodíme disky pole do jiného stroje, nebo když na stroji spustíme nějaké Live CD, které si detekuje a sestavuje RAID zařízení nějakým skriptem.
typu 0 z blokových zařízení/dev/hda3
a/dev/sda3
Linuxový RAID vytváří zařízení v rámci MD subsystému, proto systém tato zařízení vidí pod jejich pořadovými čísly v rámcio adresáře /dev/md
. Informace o aktuálním stavu MD subsystému udržuje jádro v souboru /proc/mdstat
, ze kterého lze získat podrobnosti o aktuálně spuštěných RAID polích pouhým výpisem:
user@stroj:~$ cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sda1[0] hda1[1]
19542976 blocks [2/2] [UU]
unused devices: <none>
|
Výše uvedený příklad poskytuje informaci o tom že v systému běží jedno spuštěné RAID pole typu 1 (mirror), které je dostupné jako blokové zařízení /dev/raid1
. Je složené ze dvou diskových oddílů - /dev/sda1
, který je na SATA disku a /dev/hda1
, který je na IDE disku. Pole je plně funkční - má příznak [UU], který signalizuje že oba z disků jsou ve stavu U (z angl. up - nahozené).
Neúplné ( degradované) RAID pole
V případě že by některý z disků vypadnul, běželo by RAID pole dál, ovšem v degradovaném stavu. Data by nadále zůstala dostupná, ovšem pouze z jednoho disku. Ovšem v případě selhání i tohoto druhého disku by mohla být ztracena, proto by bylo zapotřebí do RAID pole urychleně přidat náhradní disk.
U běžícího pole, kterému vypadlo či selhalo některé z blokových zařízení by příznak vypadal buď [U_] nebo [_U], v závislosti na tom, který z disků nelze použít.}}
S výjimkou RAID 0 se nové pole vždy vytvoří v degradovaném stavu, s tím, že pokud je přítomen plný počet blokových zařízení, začne automaticky proces synchronizace. Znamená to, že se ukládaná data primárně ukládají na jeden z disků a teprve z něj se postupně rozhazují na další disky v RAID poli. Tento proces synchronizace - nazývaný také "rekonstrukce" - raidového pole je poměrně zdlouhavý. Pokud na nově vytvořený RAID, který se teprve synchronizuje, začnete ihned sypat data, může trvat ještě déle. Proto máte několik možností
- Nechat dojet synchronizaci a teprve pak začít RAID používat
- Manuálně zastavit synchronizaci, dokud neskončí všechny ostatní operace s polem (ovšem pak ji nesmíte zapomenout spustit)
- Nové pole vytvářet rovnou s parametrem
--assume-clean
, a synchronizaci spustit manuálně až po nakopírování dat. - Nové pole vytvořit jako degradované, nasypat do něj data a teprve poté do něj přidat další disky, které se začnou automaticky synchronizovat.Tato možnost se hodí obzvlášť tehdy, když nemůžeme nebo nechceme použít rovnou všechny diskové oddíly.