Fórum Root.cz

Hlavní témata => Software => Téma založeno: jirka456 26. 03. 2016, 16:48:37

Název: Jak správně vytvořit SW RAID 1 na dvou discích pomocí mdadm?
Přispěvatel: jirka456 26. 03. 2016, 16:48:37
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.
Název: Re:Jak správně vytvořit SW RAID 1 na dvou discích pomocí mdadm?
Přispěvatel: Fantomas 26. 03. 2016, 17:11:05
Je to starsiho data, ale funguje to porad stejne: http://net.mendlak.cz/-rady-tipy-triky-mainmenu-40/26-vychytavky-v-linuxu/62-softwarovy-raid-1
Název: Re:Jak správně vytvořit SW RAID 1 na dvou discích pomocí mdadm?
Přispěvatel: e3k 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
Název: Re:Jak správně vytvořit SW RAID 1 na dvou discích pomocí mdadm?
Přispěvatel: jirka456 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ří.
Název: Re:Jak správně vytvořit SW RAID 1 na dvou discích pomocí mdadm?
Přispěvatel: dustin 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).
Název: Re:Jak správně vytvořit SW RAID 1 na dvou discích pomocí mdadm?
Přispěvatel: j 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?
Název: Re:Jak správně vytvořit SW RAID 1 na dvou discích pomocí mdadm?
Přispěvatel: jirka456 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ě.
Název: Re:Jak správně vytvořit SW RAID 1 na dvou discích pomocí mdadm?
Přispěvatel: jirka456 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ý.
Název: Re:Jak správně vytvořit SW RAID 1 na dvou discích pomocí mdadm?
Přispěvatel: j 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.
Název: Re:Jak správně vytvořit SW RAID 1 na dvou discích pomocí mdadm?
Přispěvatel: Kosac 30. 03. 2016, 07:55:44
mdadm --detail --scan >> /etc/mdadm/mdadm.conf

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

?
Název: Re:Jak správně vytvořit SW RAID 1 na dvou discích pomocí mdadm?
Přispěvatel: samalama 30. 03. 2016, 10:28:24
mdadm --detail --scan >> /etc/mdadm/mdadm.conf

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

?

ma
Název: Re:Jak správně vytvořit SW RAID 1 na dvou discích pomocí mdadm?
Přispěvatel: Fantomas 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.
Název: Re:Jak správně vytvořit SW RAID 1 na dvou discích pomocí mdadm?
Přispěvatel: Pavouk106 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 (https://forums.gentoo.org/viewtopic-t-71860-start-0.html). 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).
Název: Re:Jak správně vytvořit SW RAID 1 na dvou discích pomocí mdadm?
Přispěvatel: trubicoid2 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 (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
Název: Re:Jak správně vytvořit SW RAID 1 na dvou discích pomocí mdadm?
Přispěvatel: dustin 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.
Název: Re:Jak správně vytvořit SW RAID 1 na dvou discích pomocí mdadm?
Přispěvatel: Trubicoid2 30. 03. 2016, 18:32:23
Ano, šachování s daty se nevyplácí. Proto taky jsou teď ty superblocky na začátku, aby borci nepřišli s livecd, namountovali fs na raid partici bez sestavení raid a protože to nic nehlásilo, tak si mysleli, že se to tak má dělat.
Název: Re:Jak správně vytvořit SW RAID 1 na dvou discích pomocí mdadm?
Přispěvatel: jirka456 30. 03. 2016, 20:18:23
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.

Děkuji za radu, budu na to myslet. Teď při každým pokusu o nové pole u disků mažu superbloky

mdadm --zero-superblock /dev/sdxx

a pak ještě kontroluji, jestli tam opravdu nic není

mdadm --examine /dev/sdxx

Pravda, do jiného PC je nedávám. Ale snad je to i takto dostačující.
Název: Re:Jak správně vytvořit SW RAID 1 na dvou discích pomocí mdadm?
Přispěvatel: jirka456 30. 03. 2016, 20:37:47
mdadm --detail --scan >> /etc/mdadm/mdadm.conf

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

?

V nějakém návodu je první varianta, jinde druhá. Výsledek je ale pokaždé stejný. Jak píše Fantomas, mdadm.conf asi potřeba není. I když tam žádný záznam o poli neuvedu, při startu systému se to chová pořád stejně - pokud je pole kompletní, je funkční, pokud jeden disk chybí, po startu systému je neaktivní. Pokud záznam o poli v mdadm.conf není, začne to hlásit chyby, až když se ho pokouším zprovoznit ručně přes "mdadm ...". Program mdadm tedy pro chod pole nejspíš není potřeba, potřeba je pouze pro jeho případnou správu - je to tak?
Název: Re:Jak správně vytvořit SW RAID 1 na dvou discích pomocí mdadm?
Přispěvatel: jirka456 30. 03. 2016, 20:40:59

Pokud vznikne problem, nic se nedovis, pokud jej sam nebudes hledat. Staci mrknout do /proc/mdstat, na to staci maly kontrolni script.


V mdadm.conf je položka MAILADDR. Při jaké příležitosti se tedy zasílá mail, když ne při problému s polem?
Název: Re:Jak správně vytvořit SW RAID 1 na dvou discích pomocí mdadm?
Přispěvatel: jirka456 30. 03. 2016, 21:29:17
Citace
Program mdadm tedy pro chod pole nejspíš není potřeba, potřeba je pouze pro jeho případnou správu - je to tak?

Hmmm... tak bez mdadm to asi nepůjde. Odinstaloval jsem a po RAIDu ani stopy.
Název: Re:Jak správně vytvořit SW RAID 1 na dvou discích pomocí mdadm?
Přispěvatel: nobody(ten pravej) 31. 03. 2016, 12:47:44
Citace
Program mdadm tedy pro chod pole nejspíš není potřeba, potřeba je pouze pro jeho případnou správu - je to tak?

Hmmm... tak bez mdadm to asi nepůjde. Odinstaloval jsem a po RAIDu ani stopy.

nezkousej odinstalovat Linux jadro, aby jsi se pak nedivil ze Linux nestartuje ;)
aneb ano, mdadm je rozhodne potreba, protoze se pri startu automaticky diky nemu muze sestavovat pole...