Nem lenne jobb bebukni 25 %-ot a 1,5 TB-al és csak RAID 1-be tenni, és akkor 6 helyett lenne 4,5 TB egyszerűbben átlátható és gyorsabb és biztonságosabb kialakításod?
Azért a BTRFS-es RAID-del komoly probléma van. Még laboratóriumi körülmények között is csak az add-remove replace-t támogatja, a remove-add-ot nem. Azaz ha szól előre a diszk, hogy meg fog dögleni, és van szabad diszked és vezérlőd, ahova időben be tudsz konfigurálni egy másikat, akkor túléli a btrfs-es RAID tömb egy diszk elvesztését. Nekem a gyakorlat megmutatta, hogy ha csak simán megdöglik a diszk, az adatvesztést okozhat.
Ráadásul ha megdöglött 1 diszk, akkor annyit tudsz tenni, hogy "restore" - ral elkezded kidumpolni a tartalmat egy másik olyan területre, ami hasonló méretű, mint a szétesett RAID, nem tudod online-ba rakni. Impssible Mission: szerezz 6TB diszket húsvét vasárnap... (akkor történt a baleset otthon)
Amivel konkrétan szívtam, az az, hogy I/O hiba esetén a BTRFS nem csapja ki a device-ot a RAID tömbből, és megy át automatikusan degradált módba, hanem nem csinál semmit egészen addig, amíg valamelyik set írás referencia countere nem kezd el mást mutatni a diszkeken meg a cache-ben. Ekkor átvált read-onlyba azt jónapot. Ugye ekkor már jó eséllyel adatvesztésed van, mert gyakorlatilag az egyetlen megoldás a subvolume elindítására, hogy kinullázod a cache-t. Ez után már csak az olyan apró problémák maradtak, hogy az egyes RAID szintekhez meg van határozva a minimum diszk szám, amivel hajlandó elindulni. Ez RAID1-nél 2, RAID10-nél 4, RAID5-nél 4. Azaz konkrétan a 4 diszkes RAID10-et nem tudtam 3 diszkkel elindítani, mert kevesebb diszked van, mint az adott RAID szint felépítéséhez minimum kell. A 4 diszkből álló RAID5-öt sem tudtam 3 diszkből online rakni degradált módban, hanem csak off-line a recoveryvel lemásolhattam az összes benne levő adatot. Ami működött, no de azért...
RAID10-em és RAID5-öm volt, de gyanítom RAID1 esetén is ugyan így működik, 1 diszkkel nem lesz online a rendszer. Szó se róla, 5 diszkes RAIID5-nél túlélt volna egy diszk elvesztést, csak egy rebalace-ot kellett volna nyomni rá, betenni egy új diszket, aztán még egy rebalance.
Ha jól értem amit írsz, akkor szerintem azzal hogy nem csapja ki degradált módba, azzal nagyobb adat biztonság van, mert akkor így továbbra is ír friss adatokat az ún. rossz diszkre is és így több helyen lesznek friss adatok, mintha hiányozna az egyik diszk.
Ha a fenti igaz, akkor te azt hiányolod, hogy nem jelez ezek szerint a BtrFS? Vagyis hogy nem jut a tudomásodra a dolog a rosszalkodó diszkről egészen addig, míg teljesen le nem döglik?
Nem jól érted. Mivel nem megy át degradált módba a tömb, ezért a cache-ben levő, már felírtként visszaigazolt adatot el fogod veszíteni, inkonzisztens lesz a fájlrendszered / a fájlrendszeren tárolt adatod. (A subvolume-ot csak cache reset után tudod újraindítani)
A leírásokat én is olvastam, csak nem működtek. Lehet, hogy működött volna, ha lett volna még egy SATA portom, ahova felkötöm az új vinyót, de nem volt. A rossz vinyót eltávolítva, helyette egy újat berakva viszont nem lehetett degradált módban elindítani a tömböket. Szerintem nem véletlen, hogy a leírás a RAID5-öt 6 device-szal, a RAID-1-et meg 4-el demózza, úgy tuti működik a dolog, mert egy diszk kiesése után is felette vagy a minimum device darabszámnak.
"Mivel nem megy át degradált módba a tömb, ezért a cache-ben levő, már felírtként visszaigazolt adatot el fogod veszíteni.."
Ha nem megy át degradáltba és a kettőből az egyik diszk rosszabb, attól még a jó diszkre felíródnak az adatok, nem? Tehát leállítod a rendszert, majd rescue módban restart, ott is nyomhatsz sync-et mielőtt leválasztod.
BTRFS-nél van egy diszken tartott cache, ahova először kerülnek az adatok. A következőkkel van baj:
- Meghibásodott diszk read-onlyba rakja a subvolume-ot, akkor is, ha egyébként degradált módban még tudna futni
- Nálam úgy állt meg a rendszer, hogy a cache referencia számlálója nagyobb volt, mint a diszkek referencia számlálója, azaz volt olyan commitált írás, ami csak a cache-ben volt benn. Ilyen esetben az egyetlen módszer a subvolume elindítására, ha előtte törlöd a cache-t -> azaz a rendszer nem okoz inkonzisztenciát, hanem lehetővé teszi neked, hogy ha el akarod valahogy érni az adataid, akkor okozz te azt.
Read only-ba rakja, de csak a rossz diszket. nem? Így a jóra nem tud rákerülni a cache? Ez nem világos nekem. Hogy ha hibás lesz egy, akkor mindig az összest elérhetetlenné teszi?
A teljes subvolume került read onlyba. Nem tudok általánosítani, ez egy konkrétan megtörtént eset volt. Lehet, én vagyok az az 1 ezrelék, akinek nem működik, és a másik 999 esetben nem lesz a subvolume read only, valamint nem lesz adatvesztésed. Nekem volt, ennyit tudok elmondani.
RAID0: /dev/md0 = 1,5 TB + 1,5 TB
RAID5: /dev/md1 = 3TB + 3TB + /dev/md0 -- vagy ezt a RAID5-öt már BTRFS-ből is összerakhatod elvileg, bár az alábbi hír kevésbé bíztató: https://btrfs.wiki.kernel.org/index.php/RAID56
A raid0 fölé jön még egy raid5. Így az egész tömb kiesésének az esélye azért nem annyira durva.
Csináltam egy gyors számítást és kb 1,6x akkora eséllyel esik ki adatvesztéssel egy RAID5(diszk,diszk,RAID0(diszk,diszk)) tömb, mint egy RAID5(diszk,diszk,diszk) tömb. Ez azért nem mérhető a RAID0 vs RAID1-hez ahol 2/n-el (n->0) elszáll a végtelenbe a szorzó.
Lehet már nem aktuális de ha nagyon muszáj katyvasztani, én így csinálnám:
ZFS-el (a btrfs raid5,6, stb hivatalosan instabil, adatvesztéssel jár)
ZFS-nél elvileg (40%) meg lehet csinálni ezt:
zpool create valami raidz /dev/hdd3tb1 /dev/hdd3tb2 stripe /dev/hdd15tb1 /dev/hdd15tb2
A gond ott van, hogy a stripe opció nem érvényes, tehát két lépésben kell valahogy megoldani, először létrehozni a raidz-t 2 lemezzel, és ha nem engedi degraded módban létrehozni akkor 3-nak egy virtuális lemezzel, ebből kivenni a virtuális lemezt és hozzáadni a két 1.5 TB-s HDD stripe-ban mint 3 lemez.
Elvileg működnie kellene, de figyelj, hogy ne a teljes 3 TB-n hozz létre partíciót, hanem hagyj legalább 50 GB-t szabadon a végén, hogy biztos beleférjen a 2x1.5 TB a méretbe.
Hozzászólások
Sarkítva.
Van 1db 8TB-os HDD-m. Lehet e rá úgy RAID5 tömböt létrehozni, hogy a tömb mérete 6TB legyen?
Na, ezt most nem ertem, bocs. :)
Kozben eszembe jutott, hogy a 2 db 1.5 TB-os HHDbol letrehozok egy LVM logical volume-ot, es az lesz majd a harmadik db "hdd-je" a RAID5 tombnek...
Biztos kell ez neked?
"The parity RAID code has multiple serious data-loss bugs in it. It should not be used for anything other than testing purposes."
https://btrfs.wiki.kernel.org/index.php/RAID56
Hat, most mar nem. Koszi az infot. Ezek utan ebbol megiscsak LVM raid5 lesz...
Hát az nem túl gyors...
A legtöbb ami értelmesen kihozható:
4x1.5T partíció raid5, a maradék 2x1.5T raid1, és ezt a md-t egy LVM-be fogni. Ez kb 6TB, bár nem lesz sebességbajnok.
Fedora 23, Thinkpad x220
Es igy: a 2x1.5TB-bol logical volume-ot csinalni, majd 3TB hdd + 3TB hdd + 3TB LV segitsegevel alakitani ki raid5 tombot?
Hát én nem keverném az LVM-et mdadm-el. Akkor már inkább az amit mondtam. Mikor még LVM-el akartam raidet, valahogy nem volt az igazi.
Fedora 23, Thinkpad x220
Akkor már inkább 2x1.5-ból raid0-val 3Tb, és afölött (a másik két diszkkel) a raid5, valahogy így: RAID5(3TB,3TB,RAID0(1.5TB,1.5TB))
szvsz a kerdezo is igy gondolta kiepiteni, csak arra kivancsi hogy btrfs-el ez megvalosithato-e
--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!
Hardwares raid vezérlő?
Az nem jatszik, tekintve hogy egy low-cost home nas-kent hasznalt HP Microserver gen8-rol van szo...
zfs?
+1 kiforrottabb, mint a BTRFS.
Nem lenne jobb bebukni 25 %-ot a 1,5 TB-al és csak RAID 1-be tenni, és akkor 6 helyett lenne 4,5 TB egyszerűbben átlátható és gyorsabb és biztonságosabb kialakításod?
+1 A btrfs RAID1 teljesen megbízható, az a 1.5TB meg nem ér meg egy adatvesztést...
Azért a BTRFS-es RAID-del komoly probléma van. Még laboratóriumi körülmények között is csak az add-remove replace-t támogatja, a remove-add-ot nem. Azaz ha szól előre a diszk, hogy meg fog dögleni, és van szabad diszked és vezérlőd, ahova időben be tudsz konfigurálni egy másikat, akkor túléli a btrfs-es RAID tömb egy diszk elvesztését. Nekem a gyakorlat megmutatta, hogy ha csak simán megdöglik a diszk, az adatvesztést okozhat.
Ráadásul ha megdöglött 1 diszk, akkor annyit tudsz tenni, hogy "restore" - ral elkezded kidumpolni a tartalmat egy másik olyan területre, ami hasonló méretű, mint a szétesett RAID, nem tudod online-ba rakni. Impssible Mission: szerezz 6TB diszket húsvét vasárnap... (akkor történt a baleset otthon)
Szerintem amiről beszélsz, nem áll fenn RAID1-nél. Szép is lenne.
Amivel konkrétan szívtam, az az, hogy I/O hiba esetén a BTRFS nem csapja ki a device-ot a RAID tömbből, és megy át automatikusan degradált módba, hanem nem csinál semmit egészen addig, amíg valamelyik set írás referencia countere nem kezd el mást mutatni a diszkeken meg a cache-ben. Ekkor átvált read-onlyba azt jónapot. Ugye ekkor már jó eséllyel adatvesztésed van, mert gyakorlatilag az egyetlen megoldás a subvolume elindítására, hogy kinullázod a cache-t. Ez után már csak az olyan apró problémák maradtak, hogy az egyes RAID szintekhez meg van határozva a minimum diszk szám, amivel hajlandó elindulni. Ez RAID1-nél 2, RAID10-nél 4, RAID5-nél 4. Azaz konkrétan a 4 diszkes RAID10-et nem tudtam 3 diszkkel elindítani, mert kevesebb diszked van, mint az adott RAID szint felépítéséhez minimum kell. A 4 diszkből álló RAID5-öt sem tudtam 3 diszkből online rakni degradált módban, hanem csak off-line a recoveryvel lemásolhattam az összes benne levő adatot. Ami működött, no de azért...
RAID10-em és RAID5-öm volt, de gyanítom RAID1 esetén is ugyan így működik, 1 diszkkel nem lesz online a rendszer. Szó se róla, 5 diszkes RAIID5-nél túlélt volna egy diszk elvesztést, csak egy rebalace-ot kellett volna nyomni rá, betenni egy új diszket, aztán még egy rebalance.
ZFS sem dobja ki a tömbből, csak akkor mikor teljesen elérhetetlenné válik a lemez. Idei tapasztalat FreeBSD alatt.
Ha jól értem amit írsz, akkor szerintem azzal hogy nem csapja ki degradált módba, azzal nagyobb adat biztonság van, mert akkor így továbbra is ír friss adatokat az ún. rossz diszkre is és így több helyen lesznek friss adatok, mintha hiányozna az egyik diszk.
Ha a fenti igaz, akkor te azt hiányolod, hogy nem jelez ezek szerint a BtrFS? Vagyis hogy nem jut a tudomásodra a dolog a rosszalkodó diszkről egészen addig, míg teljesen le nem döglik?
Az alábbi leírás szerint nem látok problémát:
https://btrfs.wiki.kernel.org/index.php/Using_Btrfs_with_Multiple_Devic…
Lásd még ezt (a replace parancsra hívja fel a figyelmet):
http://unix.stackexchange.com/questions/227560/how-to-replace-a-device-…
Nem jól érted. Mivel nem megy át degradált módba a tömb, ezért a cache-ben levő, már felírtként visszaigazolt adatot el fogod veszíteni, inkonzisztens lesz a fájlrendszered / a fájlrendszeren tárolt adatod. (A subvolume-ot csak cache reset után tudod újraindítani)
A leírásokat én is olvastam, csak nem működtek. Lehet, hogy működött volna, ha lett volna még egy SATA portom, ahova felkötöm az új vinyót, de nem volt. A rossz vinyót eltávolítva, helyette egy újat berakva viszont nem lehetett degradált módban elindítani a tömböket. Szerintem nem véletlen, hogy a leírás a RAID5-öt 6 device-szal, a RAID-1-et meg 4-el demózza, úgy tuti működik a dolog, mert egy diszk kiesése után is felette vagy a minimum device darabszámnak.
Ne haragudj, de nem értem. :) Azt írod, hogy:
"Mivel nem megy át degradált módba a tömb, ezért a cache-ben levő, már felírtként visszaigazolt adatot el fogod veszíteni.."
Ha nem megy át degradáltba és a kettőből az egyik diszk rosszabb, attól még a jó diszkre felíródnak az adatok, nem? Tehát leállítod a rendszert, majd rescue módban restart, ott is nyomhatsz sync-et mielőtt leválasztod.
BTRFS-nél van egy diszken tartott cache, ahova először kerülnek az adatok. A következőkkel van baj:
- Meghibásodott diszk read-onlyba rakja a subvolume-ot, akkor is, ha egyébként degradált módban még tudna futni
- Nálam úgy állt meg a rendszer, hogy a cache referencia számlálója nagyobb volt, mint a diszkek referencia számlálója, azaz volt olyan commitált írás, ami csak a cache-ben volt benn. Ilyen esetben az egyetlen módszer a subvolume elindítására, ha előtte törlöd a cache-t -> azaz a rendszer nem okoz inkonzisztenciát, hanem lehetővé teszi neked, hogy ha el akarod valahogy érni az adataid, akkor okozz te azt.
Read only-ba rakja, de csak a rossz diszket. nem? Így a jóra nem tud rákerülni a cache? Ez nem világos nekem. Hogy ha hibás lesz egy, akkor mindig az összest elérhetetlenné teszi?
A teljes subvolume került read onlyba. Nem tudok általánosítani, ez egy konkrétan megtörtént eset volt. Lehet, én vagyok az az 1 ezrelék, akinek nem működik, és a másik 999 esetben nem lesz a subvolume read only, valamint nem lesz adatvesztésed. Nekem volt, ennyit tudok elmondani.
Ok, kösz.
RAID0: /dev/md0 = 1,5 TB + 1,5 TB
RAID5: /dev/md1 = 3TB + 3TB + /dev/md0 -- vagy ezt a RAID5-öt már BTRFS-ből is összerakhatod elvileg, bár az alábbi hír kevésbé bíztató: https://btrfs.wiki.kernel.org/index.php/RAID56
RAID0? Ne már... igaz ugyan, hogy gyorsabb, de cserébe dupla olyan sérülékeny, mint egyetlen lemez (vagy JBOD) használata.
Magasabb a diszkhalál kockázata, de ezzel együtt lehet élni.
Csak tudni kell róla.
Fuszenecker Róbert
Ja, ha nem fontosak a rajta levő adatok/vagy az OS, ám legyen.
A raid0 fölé jön még egy raid5. Így az egész tömb kiesésének az esélye azért nem annyira durva.
Csináltam egy gyors számítást és kb 1,6x akkora eséllyel esik ki adatvesztéssel egy RAID5(diszk,diszk,RAID0(diszk,diszk)) tömb, mint egy RAID5(diszk,diszk,diszk) tömb. Ez azért nem mérhető a RAID0 vs RAID1-hez ahol 2/n-el (n->0) elszáll a végtelenbe a szorzó.
Végülis egy picivel kisebb az így kapott 3 komponenses RAID5 tömb meghibásodásának kockázata egy 4 diszkes sima RAID5-höz képest.
Koszi, ezt fogom megprobalni.
Milyen disztribúción?
ubuntu server
Lehet már nem aktuális de ha nagyon muszáj katyvasztani, én így csinálnám:
ZFS-el (a btrfs raid5,6, stb hivatalosan instabil, adatvesztéssel jár)
ZFS-nél elvileg (40%) meg lehet csinálni ezt:
zpool create valami raidz /dev/hdd3tb1 /dev/hdd3tb2 stripe /dev/hdd15tb1 /dev/hdd15tb2
A gond ott van, hogy a stripe opció nem érvényes, tehát két lépésben kell valahogy megoldani, először létrehozni a raidz-t 2 lemezzel, és ha nem engedi degraded módban létrehozni akkor 3-nak egy virtuális lemezzel, ebből kivenni a virtuális lemezt és hozzáadni a két 1.5 TB-s HDD stripe-ban mint 3 lemez.
Elvileg működnie kellene, de figyelj, hogy ne a teljes 3 TB-n hozz létre partíciót, hanem hagyj legalább 50 GB-t szabadon a végén, hogy biztos beleférjen a 2x1.5 TB a méretbe.