Puncte:8

O unitate eșuată + un singur sector defect distruge un întreg RAID 5?

drapel in

În timpul planificării configurării mele RAID pe un Synology Disk Station, am citit multe despre diferite tipuri RAID, aceasta fiind o lectură grozavă: Niveluri RAID și importanța URE (Eroare de citire irecuperabilă).

Totuși, un lucru îmi rămâne neclar:

Să avem două scenarii:

  1. O matrice este a RAID 1 din 2 unități
  2. O matrice este a RAID 5 din 3 unități

Aceleași ipoteze pentru ambele scenarii:

  • Să avem 100.000 de fișiere în matricea RAID
  • O unitate se defectează (trebuie înlocuită)
  • Se întâmplă să existe un sector defect (URE) în timpul reconstrucției matricei

Ce se întâmplă? Se reconstruiește RAID-ul cu 99.999 fișiere funcționând bine și 1 fișier pierdut? Sau voi pierde toate cele 100.000 de fișiere?

Dacă răspunsul necesită cunoașterea tipului sistemului de fișiere, să presupunem că sistemul de fișiere este BTRFS sau ZFS.

djdomi avatar
drapel za
răspunsul logic este: depinde. Raid 1 este o copie directă a unei alte unități.Raid 5 necesită cel puțin 3 unități pentru a funcționa, unde Raid 1 are nevoie doar de 2, dar cu faptul că pierzi capacitatea. Și depinde de care este eroarea. În cazul ZFS, ar putea fi o șansă mai mare de a obține din nou un fișier corect. Cu toate acestea, raid-ul nu va fi niciodată soluția pentru a nu face copii de rezervă.
drapel in
pts
Poate doriți să distingeți aceste moduri de defecțiune: 1. un sector este ilizibil și inscriptibil; 2. un sector este ilizibil, dar poate fi suprascris, iar apoi este din nou lizibil.
Andrew Henle avatar
drapel ph
*Ce se întâmplă? Se reconstruiește RAID-ul cu 99.999 fișiere funcționând bine și 1 fișier pierdut? Sau voi pierde toate cele 100.000 de fișiere?* Se poate întâmpla oricare dintre ele. De aceea ai copii de rezervă. RAID nu este o copie de rezervă! Doar pentru că fișierele dvs. sunt într-o matrice RAID nu le face sigure. Dacă cineva rulează `rm -f -r /all/my/important/files`, e ***dispărut*** - de pe fiecare disc din matricea RAID. Singurul lucru pe care îl face RAID este să îmbunătățească disponibilitatea datelor dvs.
adamsfamily avatar
drapel in
@AndrewHenle Poți, te rog, să detaliezi partea „S-ar putea întâmpla oricare dintre ele”? Mulțumiri
Andrew Henle avatar
drapel ph
Presupuneți că eroarea de citire apare numai în datele fișierului. Se poate întâmpla și în metadatele sistemului de fișiere. În funcție de sistemul dvs. de fișiere, este posibil ca acest lucru să provoace pierderea a tot ceea ce este stocat în sistemul de fișiere. Nu vă bazați niciodată pe RAID pentru securitatea datelor. Tot ceea ce face este să vă protejeze capacitatea de a *accesa* datele împotriva câtorva tipuri de defecțiuni ale discului.
J... avatar
drapel jp
RAID 5 este absolut inutil pentru unități mari (de exemplu: contemporane) pentru consumatori - doar *nu-l utilizați*. Sfarsitul povestii. Prin statistică pură, probabilitatea copleșitoare este ca *veți* să aveți cel puțin un URE în timpul unei reconstruiri, așa că este sortit să eșueze grav în majoritatea cazurilor. Chiar și în situații de întreprindere, ale căror unități sunt în general de 10 ori mai puțin probabil să dezvolte erori de citire, este încă o soluție dubioasă. RAID 6 încă funcționează, așa că dacă doriți RAID paritate, utilizați-l în schimb.
J... avatar
drapel jp
Dupe : [Dacă un sistem RAID5 întâmpină un URE în timpul reconstrucției, se pierd toate datele?](https://serverfault.com/q/937547/221656)
Puncte:13
drapel ca

Răspunsul scurt este că depinde.

În situația pe care o descrieți (un disc defect + unele sectoare ilizibile pe un alt disc), unele controlere RAID de întreprindere vor distruge întregul array pe motiv că integritatea acestuia este compromisă și astfel singura acțiune sigură este restaurarea din backup.

Alte controlere (mai ales de la LSI) va in schimb străpungere matricea, marcând unele LBA ca necizibile, dar continuând cu reconstrucția. Dacă LBA-urile care nu pot fi citite sunt în spațiu liber, efectiv, nu se pierde date reale, deci acesta este cel mai bun scenariu. Dacă acestea afectează datele deja scrise, unele informații (sperăm de mică valoare) se pierd inevitabil.

Linux MDADM este foarte versatil, cele mai recente versiuni având o „zonă de remapare” dedicată pentru o astfel de matrice perforată. În plus, se poate folosi întotdeauna dd sau ddrescue pentru a copia mai întâi unitatea cu sectoare ilizibile pe un disc nou și pentru a utiliza acel disc pentru a reasambla matricea (cu unele pierderi de date, desigur).

BTRFS și ZFS, în virtutea că sunt mai integrate cu stratul de alocare a blocurilor, pot detecta dacă datele pierdute sunt pe spațiul gol sau alocat, cu raportare detaliată a fișierelor afectate.

drapel jp
Odată a trebuit să recuperez un fișier crucial dintr-o matrice RAID-0 cu șase discuri, cu două unități defectuoase, în Solstice Disk Suite. Am descoperit că `ufsdump` va citi în continuare datele, dar se oprește de fiecare dată când ajungea la un bloc pe care nu-l putea citi și întreba dacă ar trebui să continue. `da | ufsdump` mi-a oferit un flux de date pe care l-am putut introduce în `ufsrestore` și, deoarece fișierul meu crucial era mult mai mic decât dimensiunea stripe RAID, m-am gândit că aveam o șansă de ~5/6 să-mi recuperez fișierul. Ceea ce am făcut, ducând la o mare bucurie în rândul dezvoltatorilor - ah, vremuri bune!
J... avatar
drapel jp
Problema cu perforațiile este că nu ai o modalitate ușoară de a ști dacă datele importante au fost deteriorate sau nu fără a face o verificare completă a integrității și nu poți face asta decât dacă ai o copie de rezervă bună pentru a le verifica și dacă" Avem o copie de rezervă bună pentru a o verifica, atunci nu există niciun motiv întemeiat să faceți o verificare a integrității când ați putea doar să restaurați din backup și să terminați cu ea. Economisește multă verificare. De aceea, controlorii întreprinderii consideră că toată treaba este toast pentru o puncție.
adamsfamily avatar
drapel in
@shodanshok Ar avea sens să implementăm un RAID cu 2 copii redundante (3 unități care conțin exact aceleași date) astfel încât, dacă o unitate moare și celelalte două au câteva sectoare defecte, este aproape imposibil din punct de vedere statistic ca acele sectoare dăunătoare să se suprapună, prin urmare, fiabilitatea unei astfel de configurații ar fi de 99,99999%+?
drapel pl
Da, se numește RAID 6.
shodanshok avatar
drapel ca
@J... o matrice perforată nu este o situație bună cu siguranță. Cu toate acestea, *puteți* detecta ce date sunt afectate: deoarece blocul perforat este efectiv ilizibil, puteți pur și simplu să citiți/să vă aruncați datele importante și să verificați orice eroare de copiere. Dacă nu vedeți astfel de erori, datele dumneavoastră sunt ok. Alternativ, se poate citi întreaga matrice, se poate verifica LBA-ul primei erori de citire și, de aici, se poate identifica fișierul afectat. Aceasta este într-adevăr o lucrare complicată...
shodanshok avatar
drapel ca
@adamsfamily ceea ce descrii este RAID1 cu 3 căi. Este perfect realizabil atât cu Linux MDRAID, cât și cu ZFS, dar nu toate controlerele hardware îl acceptă din cauza penalizării foarte mari de spațiu (doar 33% din spațiu este disponibil pentru utilizator). Dacă aveți de-a face cu paritate RAID, aveți nevoie de RAID6 pentru dublă redundanță.
J... avatar
drapel jp
@shodanshok Da, este multă muncă. Este mai ușor să restabiliți doar din copiile de rezervă. Riscul de a nu face acest lucru este că ratați pierderea de date din cauza perforației și apoi datele tale proaste ajung să înlocuiască datele bune din lanțul tău de rezervă. Dacă nu aveți deloc copii de siguranță (serios?!), rareori există un motiv bun pentru a recurge la astfel de tehnici de recuperare a datelor de nivel scăzut.
shodanshok avatar
drapel ca
@J... la fel de multe lucruri, depinde: un bloc de necitit întâlnit în timpul unei copii de rezervă ar trebui să alerteze imediat administratorul de sistem deoarece backup-ul în sine ar fi incomplet (mai degrabă decât corupt). Mai mult, dacă poți fi sigur că perforarea este pe spațiul liber, nu a avut loc nicio pierdere de date. În cele din urmă, ar trebui să luați în considerare că restaurarea din backup vine cu propriile sale riscuri. Din nou, nu susțin că a avea o matrice perforată este un lucru bun; chiar este o situatie proasta. Dar, de asemenea, nu-mi plac vânzătorii de hardware care distrug complet o matrice de 100TB, deoarece sectoarele mici de 512B s-au stricat la momentul nepotrivit...
J... avatar
drapel jp
@shodanshok Nu-mi plac administratorii de sistem care nu iau în considerare riscurile rulării unei matrice de 100 TB în RAID5 și apoi plâng când datele lor sunt toate corupte...
shodanshok avatar
drapel ca
@J... Nu susțin matrice RAID5 mari. Subliniez doar că prefer o implementare RAID flexibilă, în care să pot lua cea mai potrivită acțiune în funcție de mediu, mai degrabă decât să fiu forțat să mă descurc brusc cu o matrice nucleară și inaccesibilă, poate în timpul orelor de lucru... Dar hei - simți-te liber a nu fi de acord ;)
J... avatar
drapel jp
@shodanshok Desigur - vreau doar să spun că, dacă te-ai trezit într-o dimineață cu o perforație într-o matrice RAID5 de 100 TB, cel mai bun lucru pe care l-ai putea face ar fi să restabiliți din backup-uri pe RAID6 și să terminați cu el. Poate că poți repara acea înțepătură, dar doar dă cu piciorul pe drum pentru că se va întâmpla din nou și ar putea fi și mai rău data viitoare.
adamsfamily avatar
drapel in
@AntonTykhyy Răspunzând la: *Da, se numește RAID 6.* - Ok, doar pentru a clarifica: în RAID6, după ce a avut o eroare de disc și apoi un sector defect pe a doua unitate, matricea va putea să se reconstruiască fericit, deoarece va sursa sectorul prost din altă unitate? Referindu-ne la această lectură: https://www.zdnet.com/article/why-raid-6-stops-working-in-2019/
adamsfamily avatar
drapel in
@shodanshok Răspunzând la: *Ceea ce descrieți este RAID1 cu trei căi. Este perfect realizabil atât cu Linux MDRAID, cât și cu ZFS* - aceasta este o veste grozavă! Am un argument puternic împotriva „Este mai bine să recuperați dintr-o copie de rezervă” - aș susține că nu este pentru că dacă aveți un sistem activ care rulează 24/7 (aproape totul în zilele noastre), atunci recuperarea dintr-o copie de rezervă înseamnă timp de nefuncționare și asta este groaznic. . Cred că este mult mai bine să trăiești cu penalizarea de 33/66% a RAID1 cu 3 căi, care va da roade cu clienți mulțumiți și servicii fără timpi de nefuncționare. Trebuie doar să îmi dau seama dacă acest lucru este posibil pe un Synology DS.
adamsfamily avatar
drapel in
@shodanshok Se pare că Synology (folosind Linux MDADM) este capabil de RAID1 cu 3 căi și, de asemenea, cu 4 căi, ceea ce ar putea însemna că, prin înlocuirea a 1 HDD în fiecare an, sistemul ar putea funcționa aproape pentru totdeauna. (https://www.synology.com/en-global/company/news/article/Synology_Showcases_Full_featured_NAS_Server_the_DiskStation_and_its_System_Software_DiskStation_Manager_2_3_at_DSE_2010/Synology)
drapel pl
Da se va. Experienta personala.
J... avatar
drapel jp
@adamsfamily `recuperarea dintr-o copie de rezervă înseamnă timp de nefuncționare` Dacă aveți o perforație ** sunteți deja defect** și nu este sigur să continuați să utilizați matricea până când puteți verifica integritatea acesteia. Și da, RAID6 poate tolera o unitate eșuată și orice număr de erori de citire, atâta timp cât două dintre unitățile rămase nu suferă erori exact în același sector. RAID5 este un gunoi absolut în 2021 și nu este soluția potrivită în aproape toate circumstanțele.
adamsfamily avatar
drapel in
@J...- *Dacă ai o înțepătură, ești deja în jos* - Dacă am un RAID 1 cu 3 căi și un disc se defectează, iar celălalt are sectoare dăunătoare aici sau acolo, atâta timp cât nu se suprapun, ar trebui să fiu bine cu timp de nefuncționare zero. Apoi pot înlocui toate discurile care sunt defecte unul câte unul și rămân în continuare 100% din timp în funcțiune. Îmi lipsește ceva?
J... avatar
drapel jp
@adamsfamily Singurul lucru care îți lipsește este că situația pe care ai descris-o *nu este o înțepătură*. Este o matrice *degradată*, ceea ce înseamnă că și-a pierdut o parte sau toată redundanța, dar datele rămase sunt încă intacte. O matrice RAID5 cu un disc prost nu este perforată - este degradată. Dacă, în timpul reconstrucției, întâlniți un URE, **atunci** matricea dvs. este perforată (adică: nu toate datele ar putea fi păstrate).
J... avatar
drapel jp
@adamsfamily Vă sugerez că *în cazul în care aveți un RAID5 perforat*, recuperarea din backup este opțiunea mai bună, dar mai ales recuperarea la un *nivel RAID diferit*, deoarece vă oferă posibilitatea de a renunța la RAID5 și de a vă restaura backupul la o arhitectură mai sănătoasă, care nu este atât de predispusă la perforații în viitor (adică: RAID6, 3-way RAID1, etc). RAID6 este mai eficient cu spațiu, dar este mai lent, mai puțin performant. Oricare ar fi superior RAID5, căruia îi lipsește suficientă redundanță pentru a funcționa de fapt conform intenției.
drapel jp
Dacă datele dvs. sunt cu adevărat critice, luați în considerare o matrice raid-1 de 4 sau mai multe discuri. Controlerele „raid” hardware leneșe nu acceptă adesea matrice raid-1 mai mari de 2 discuri, deși nu mă pot gândi la un motiv serios pentru care nu. Dar TRUE raid, realizat în nucleul linux cu mdadm, îl suportă ușor și fără efort. De asemenea, dacă utilizați btrfs, ar trebui să citiți despre modul în care btrfs implementează tehnici de tip raid și duplicare la nivel de volum. Practic, un sistem de fișiere btrfs poate acoperi mai multe dispozitive bloc. Și foarte frumos, poate face raid1 în două copii peste TREI discuri, rotind ce discuri transportă ce fișiere
adamsfamily avatar
drapel in
@J... punct corect, de acord.
adamsfamily avatar
drapel in
@BillyC. Interesant, nu am auzit niciodată de această capacitate a `btrfs`, fiind capabil să înlocuiască RAID.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.