Înțeleg că, cu un raidz2, mașina poate avea până la două unități defectuoase fără a se defecta. Dacă un al treilea merge, atunci zpool-ul dispare. Este corect?
Nu. Matricea poate avea până la două unități fără a se defecta. Acest lucru nu are nimic de-a face cu mașina care merge în sus sau în jos.
În această situație, nicio unitate nu arată defecte și singura eroare care apare este eroarea permanentă.
Afișează o eroare permanentă într-un fișier. Într-un fișier deja șters din câte am înțeles (dar întrebarea inițială încă lipsește starea zpool
ieșire, avem doar interpretarea dvs. potențial eronată a acesteia). Capacitățile de auto-vindecare ale Zfs nu sunt magice, fs-ul este capabil să-și revină de la erori până la un anumit prag, dar apoi se întâmplă lucruri rele. Ca erorile permanente ale tale. Cel mai obișnuit caz este atunci când aveți mai multe erori de sumă de control pe mai multe unități, care se intersectează pe un fișier. Fără starea zpool
e greu de ghicit.
Fără unități defecte, zfs nu ar trebui să poată recupera sau reconstrui fișierul din alte copii bune pe un raidz2?
Ar fi, dar nu pentru un fișier șters.
Acolo prin eliminarea erorii permanente.
Deci vrei ca zfs să înghită erorile în tăcere. Nu așa funcționează lucrurile în IT. Partea nucleului zfs se plânge de erorile care au loc și aceasta este partea bună.
Dacă VM-ul serverului de fișiere rulase pe această mașină când s-a produs această eroare permanentă, atunci VM-ul este aruncat la gunoi?
Depinde de. Dacă acest fișier corupt este un volum zfs pe care VM-ul îl folosește pentru discul său - cu siguranță ar fi.
Va marca apoi zfs aceste blocuri ca fiind proaste și va reconstrui fișierul dintr-o copie bună într-o altă zonă de pe disc?
Probabil că a făcut-o deja. Pur și simplu spălați piscina și eroarea va dispărea după ceva timp (nu imediat).
Și nu folosiți zfs pe Linux în producție. Da, acea parte va primi zeci de voturi negative, dar este adevărul dur. Nimănui nu-i pasă de zfs pe Linux în producție. Liderul neînfricat Linux neagă în mod deschis nevoia și îi urăște curajul, deoarece provine din cele mai urâte Sun Microsystems și este distribuit sub licență CDDL. Folosiți FreeBSD sau Solaris (da, Joyent SmartOS este și o alegere posibilă, deși este puțin exotică), cel puțin cele două sunt mult mai fiabile când vine vorba de zfs. Solaris are încă implementarea canonică a zfs (nici Linux, nici FreeBSD nu o pot folosi ca schimb (o dată au declarat că pot, dar după unele lupte, acest lucru s-a întâmplat să fie pur și simplu neadevărat), nici nu pot să se blocheze pe el, iar pe Solaris aceste două lucrurile sunt native). Da, Linux are o bază de utilizatori atât de largă încât FreeBSD pare să fie o eroare statistică în comparație cu ea, dar lucrul este că, când vine vorba de oameni care folosesc zfs, baza de utilizatori FreeBSD zfs este mult mai mare decât cea Linux.