Jak správně vytvořit SW RAID 1 na dvou discích pomocí mdadm?

Dobrý den,

na stolním počítači s Linux Mint 17.3 se pokouším zprovoznit softwarový RAID 1 pro ukládání dat. Jsem ve fázi testování a zkoumání, s RAIDem nemám žádné zkušenosti. Prošel jsem několik návodů a podle nich zvolil tento postup:

1. pomocí GParted vytvořit na obou discích stejné oddíly s nastaveným příznakem raid
2. vytvoření pole: mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sd[bc]1
3. uložení parametrů nově vzniklého pole: mdadm --detail --scan >> /etc/mdadm/mdadm.conf
4. kontrola funkčnosti: cat /proc/mdstat, mdadm --detail /dev/md0
5. případné formátování celého pole, mount

Podle výše uvedeného postupu vše funguje. Pokud ale odpojím jakýkoli jeden disk, po startu PC pole nefunguje, data nejsou k dispozici. Samotný disk lze zprovoznit pouze pomocí dalších příkazů. Pokud připojím druhý disk, vše opět normálně funguje.

Očekával bych takovou funkci celého pole, že pokud jeden z disků přestane fungovat (nebo ho odpojím), data budou stále běžně dostupná s tím, že dostanu nějaké upozornění o vzniklém problému.

Předpokládám, že je špatný postup při vytváření pole, chybu ale nevidím. Neumíte prosím poradit? Výpisy můžu přiložit, co jsem je zatím procházel, nevšiml jsem si žádného problému.


Fantomas


e3k

Re:Jak správně vytvořit SW RAID 1 na dvou discích pomocí mdadm?
« Odpověď #2 kdy: 26. 03. 2016, 23:17:59 »
Dobrý den,

na stolním počítači s Linux Mint 17.3 se pokouším zprovoznit softwarový RAID 1 pro ukládání dat. Jsem ve fázi testování a zkoumání, s RAIDem nemám žádné zkušenosti. Prošel jsem několik návodů a podle nich zvolil tento postup:

1. pomocí GParted vytvořit na obou discích stejné oddíly s nastaveným příznakem raid
2. vytvoření pole: mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sd[bc]1
3. uložení parametrů nově vzniklého pole: mdadm --detail --scan >> /etc/mdadm/mdadm.conf
4. kontrola funkčnosti: cat /proc/mdstat, mdadm --detail /dev/md0
5. případné formátování celého pole, mount

Podle výše uvedeného postupu vše funguje. Pokud ale odpojím jakýkoli jeden disk, po startu PC pole nefunguje, data nejsou k dispozici. Samotný disk lze zprovoznit pouze pomocí dalších příkazů. Pokud připojím druhý disk, vše opět normálně funguje.

Očekával bych takovou funkci celého pole, že pokud jeden z disků přestane fungovat (nebo ho odpojím), data budou stále běžně dostupná s tím, že dostanu nějaké upozornění o vzniklém problému.

Předpokládám, že je špatný postup při vytváření pole, chybu ale nevidím. Neumíte prosím poradit? Výpisy můžu přiložit, co jsem je zatím procházel, nevšiml jsem si žádného problému.

prave som to riesil a tento navod mi pomohol https://wiki.archlinux.org/index.php/Convert_a_single_drive_system_to_RAID

Re:Jak správně vytvořit SW RAID 1 na dvou discích pomocí mdadm?
« Odpověď #3 kdy: 29. 03. 2016, 22:07:09 »
Děkuji za odpovědi a uvedené odkazy. První zmíněný je docela častý, podobných jsem objevil více. Druhý je patřičně rozsáhlejší a jsou tam i zajímavé tipy pro vytvoření RAIDu. Ať jsem zkoušel, jak jsem zkoušel, k funkčnímu výsledku jsem se bohužel nedopracoval :( A že se jen tak nevzdávám :) Pokud vytvořím degradované pole s jedním diskem, pole funguje samo o sobě. Jakmile ale do pole přidám druhý disk, je konec. Při odpojení jednoho disku to potom dopadne takto:
Kód: [Vybrat]
cat /proc/mdstat

Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md127 : inactive sdb1[2](S)
      20464 blocks super 1.2
       
unused devices: <none>

Degradované pole lze ručně zprovoznit tímto postupem:
Kód: [Vybrat]
mdadm --stop /dev/md127
mdadm --assemble /dev/md0

cat /proc/mdstat

Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sdb1[2]
      20416 blocks super 1.2 [2/1] [_U]
     
unused devices: <none>

Nenapadá mě, co zkusit dalšího. Snad jen distribuci s jiným jádrem. Jestli jsem se dočetl správně, parametry RAIDového pole jsou uvedeny v superbloku každého disku pole. Žádné další konfigurační soubory v systému ohledně pole nejsou (mimo jedné zmínky o novém poli přidávané do /etc/mdadm/mdadm.conf). Je na jádru, aby z vyčtených superbloků poskládalo RAIDové pole, což se v mém případě při neúplném poli nedaří.

dustin

Re:Jak správně vytvořit SW RAID 1 na dvou discích pomocí mdadm?
« Odpověď #4 kdy: 29. 03. 2016, 22:39:49 »
To uložení detailů pole do /etc/mdadm/mdadm.conf - neměl jsi tam již detaily polí jiných? Návod neříká nic o tom, že je nejdříve potřeba smazat již existující řádky ARRAY, než se tam uloží nové přesměrováním (nebo naopak, ale nesmí tam samozřejmě zůstat obojí).

Degradovaný raid1 používám spoustu let (mimojiné pro zálohování) a funguje OK, včetně bootu. Samozřejmě je potřeba aktuální mdadm.conf dostat před rebootem do initramfs (v debianu pomocí update-initramfs).


j

Re:Jak správně vytvořit SW RAID 1 na dvou discích pomocí mdadm?
« Odpověď #5 kdy: 29. 03. 2016, 22:55:22 »
Aneb asi tak 1687676897 diskuse na tema, jak provozovat neco, co vecne nefunguje. Jooo, taky byly casy, kdy sem premejslel o SW raidu. Ale kdyz sem videl co vsechno nefunguje nebo funguje blbe ... (a to sem teda pri pokusech nikdy neresil, ze by se nepovedlo vyrobit pole, ale zcela pravidelne se to dostavalo do vsemoznych undef stavu, kdyz treba jeden z disku proste trochu zaspal - to bohate stacilo)

Apropos, hint ... mas 4k disky? Nebo jeste klasiku 512?

Re:Jak správně vytvořit SW RAID 1 na dvou discích pomocí mdadm?
« Odpověď #6 kdy: 29. 03. 2016, 23:43:30 »
To uložení detailů pole do /etc/mdadm/mdadm.conf - neměl jsi tam již detaily polí jiných? Návod neříká nic o tom, že je nejdříve potřeba smazat již existující řádky ARRAY, než se tam uloží nové přesměrováním (nebo naopak, ale nesmí tam samozřejmě zůstat obojí).

Degradovaný raid1 používám spoustu let (mimojiné pro zálohování) a funguje OK, včetně bootu. Samozřejmě je potřeba aktuální mdadm.conf dostat před rebootem do initramfs (v debianu pomocí update-initramfs).

V mdadm.conf mám opravdu jenom jeden záznam o poli. Tam už by jich bylo, kdybych je nemazal :-)

Nepochybuji o tom, že to leckde funguje. Samozřejmě můžu dělat úplně zásadní chybu, žádný zkušený Linuxář nejsem a o jistě leckterých základních věcech nemám ani páru. Hledat různé postupy jsem se snažil, ale nedopadlo to, proto se ptám tady u odborníků ;-) Ono to zprovoznit jde, jak píšu od začátku, ale když zkouším možné varianty selhání disků, očekával bych jiné chování celého systému. Snad všude se popisuje vytváření RAIDu na běžícím systému, kdy se na druhý, nový, disk zálohuje celý systém. Já to tak nechci a nepotřebuji, systémový disk mám jiný, jde mi jen o uživatelská data. Je tak možný, že nedělám něco důležitýho, aniž bych o tom věděl. Update initramfs jsem zrovna nedělal. Jestli se to musí udělat hned po vytvoření pole, možná to bude důvod nezdaru. Zkoušel jsem to ale teď na hotovém poli a nepomohlo to, chová se to pořád stejně.

Re:Jak správně vytvořit SW RAID 1 na dvou discích pomocí mdadm?
« Odpověď #7 kdy: 29. 03. 2016, 23:51:09 »
Aneb asi tak 1687676897 diskuse na tema, jak provozovat neco, co vecne nefunguje. Jooo, taky byly casy, kdy sem premejslel o SW raidu. Ale kdyz sem videl co vsechno nefunguje nebo funguje blbe ... (a to sem teda pri pokusech nikdy neresil, ze by se nepovedlo vyrobit pole, ale zcela pravidelne se to dostavalo do vsemoznych undef stavu, kdyz treba jeden z disku proste trochu zaspal - to bohate stacilo)

Apropos, hint ... mas 4k disky? Nebo jeste klasiku 512?

Do RAIDu jsem chtěl použít dva stejný WD30EFRX, takže se 4 kB na sektor. Když se nedařilo, zkoušel jsem jiné stařičké. Výsledek je ale stejný.

j

Re:Jak správně vytvořit SW RAID 1 na dvou discích pomocí mdadm?
« Odpověď #8 kdy: 29. 03. 2016, 23:58:04 »
Pokud bootujes z dalsiho disku, tak init resit nepotrebujes vubec.

Jinak pomerne zasadni rada - pokud chces do pole vracet stejny disk, ktery si z nej predtim vyhodil, tak ho nejdriv (idealne na jinym stroji) smaz (nebo na nem aspon znic vsechny znamky po raidu). On totiz SWraid neumi (aspon vetsinou) poznat, na kterym disku ze jsou data aktualni ... v lepsim pripade pak pole skonci odpojeny, v horsim ... se ti klidne i ruzne prolnou data z obou.

Kosac

Re:Jak správně vytvořit SW RAID 1 na dvou discích pomocí mdadm?
« Odpověď #9 kdy: 30. 03. 2016, 07:55:44 »
mdadm --detail --scan >> /etc/mdadm/mdadm.conf

Nema to byt:
mdadm --examine --scan >> /etc/mdadm/mdadm.conf

?

samalama

Re:Jak správně vytvořit SW RAID 1 na dvou discích pomocí mdadm?
« Odpověď #10 kdy: 30. 03. 2016, 10:28:24 »
mdadm --detail --scan >> /etc/mdadm/mdadm.conf

Nema to byt:
mdadm --examine --scan >> /etc/mdadm/mdadm.conf

?

ma

Fantomas

Re:Jak správně vytvořit SW RAID 1 na dvou discích pomocí mdadm?
« Odpověď #11 kdy: 30. 03. 2016, 11:31:17 »
Navazuji na puvodni dotaz, pokud mas degradovane pole, data musi byt dostupne, byt z jednoho disku. Pripojeni druheho disku je potreba udelat rucne (ja bych to automaticky radeji nedelal), zadas prikaz mdadm -a a druhy disk se pripoji a sesynchronizuji se ti data. Mdadm.conf v podstate  nepotrebujes, ale mozna lze jim neco ulehcit.
Pokud vznikne problem, nic se nedovis, pokud jej sam nebudes hledat. Staci mrknout do /proc/mdstat, na to staci maly kontrolni script.
Jakakoliv partition jde predelat na soft raid (pokud se jedna o ciste data, tak je to jednodussi), zmenis typ na raid autodetect a data zustanou na miste. Superblock raidu je na konci, takze raid se ti sestavi treba i pri pouziti livka.

Pavouk106

  • *****
  • 2 400
    • Zobrazit profil
    • Můj blog
    • E-mail
Re:Jak správně vytvořit SW RAID 1 na dvou discích pomocí mdadm?
« Odpověď #12 kdy: 30. 03. 2016, 11:43:54 »
Aneb asi tak 1687676897 diskuse na tema, jak provozovat neco, co vecne nefunguje.
Jede mi doma RAID1 už několik let, dokonce včetně bezproblémový (ale celkem pracný, hlavně v teoretický přípravě) migrace na větší disky. Taky jsem udělal chybu 4K/512B, stálo mě to taky nějaký studování před předěláním, ale i zde to bylo bez problémů. Když nad tím přemýšlím, asi to bylo tak v pohodě díky tomu, že jedu na Gentoo a odmítám initramfs (kterej může přinést další problémy, který je třeba řešit).

Při sestavování pole (cca rok 2011) jsem jel podle staršího návodu pro Gentoo. Samozřejmě je třeba to celý číst a přemejšlet nad tim, nekopírovat pouze příkazy. Neměl jsem s tím žádnej problém, pole jede dodnes. Asi měsíc jelo z jednoho disku, během svýho života prošlo několika automatickýma rebuildama (ať z důvodu experimentů s RAID nebo přidání/výměny disku).

trubicoid2

Re:Jak správně vytvořit SW RAID 1 na dvou discích pomocí mdadm?
« Odpověď #13 kdy: 30. 03. 2016, 14:01:13 »
Jakakoliv partition jde predelat na soft raid (pokud se jedna o ciste data, tak je to jednodussi), zmenis typ na raid autodetect a data zustanou na miste. Superblock raidu je na konci, takze raid se ti sestavi treba i pri pouziti livka.

Pozor, pozor, superblock je na konci pouze pro metadata 0.9 a 1.0. Pro metadata 1.1 a 1.2 (v současné době defaultní) jsou na začátku. https://raid.wiki.kernel.org/index.php/RAID_superblock_formats#Sub-versions_of_the_version-1_superblock

Z toho nepříjemné plynou oprusky s 4k disky, někdy je potřeba dodat --data-offset=2048 nebo tak

dustin

Re:Jak správně vytvořit SW RAID 1 na dvou discích pomocí mdadm?
« Odpověď #14 kdy: 30. 03. 2016, 17:43:18 »
Hm, co když má filesystém data až do konce oddílu? Obávám se, že pouhým převedením na raid má nové blokové zařízení velikost menší o ten superblok a může dojít k poškození filesystému / ztrátě dat. Určitě bych to raději překlápěl překopírováním na úrovni filesystému (cp) na degradovaný raid.