( wauf | 2021. 01. 06., sze – 06:52 )

Szerkesztve: 2021. 01. 06., sze – 06:54

Most mar valoszinuleg mindegy ebben a konkret esetben, ezert csak elmeleti lehetosegkent emlitem meg hogy hogyan lett volna esely megmenteni az adatokat.

(Mondjuk azert ennyi diskkel en sem hasznalnek RAID-Z1-t soha)

 

Az elmeleti felallas: A kommersz diskeken hetente futtatott zfs scrub eszreveszi hogy az egyik disk rossz (tehat write/read timeout miatt a zfs kidobja). Nevezzuk ezt a disket BADDISK01-nek

A bad sector altalaban nem az egesz disket eszi meg, hanem csak egy reszet:

BADDISK01:
OOOOOOOBBBBBOOOOOOOOOOOOOOOO

O - OK
B - BAD SECTOR

Mivel a ZFS 2^(ashift) meretu allocation unitokkal dolgozik, es ezeket checksumolja -- ezert ha pl. (GNU) ddrescue-val atmasolod az adatokat egy jo diskre (GOODDISK01), ezert ahol a BADDISK01 bad sectoros volt, ott eselyes hogy a GOODDISK01 checksum hibakat fog eredmenyezni, de ezt paritasbol helyre tudja hozni zfs scrub soran

GOODDISK01:
OOOOOOORRRRROOOOOOOOOOOOOOOO

O - OK
R - RECOVERABLE CHECKSUM ERROR

Ha a zfs scrub soran kiderul, hogy van meg egy disk ami bad sectoros (BADDISK02), akkor azert kell imadkozni hogy ne ugyanott legyenek a bad sectorok:

GOODDISK01:
OOOOOOORRRRROOOOOOOOOOOOOOOO

BADDISK02:
OBBBOOOOOOOOOOOOOOOOOOOOOOOO

O - OK
B - BAD SECTOR
R - RECOVERABLE CHECKSUM ERROR

Ebbol a felallasbol a fenti ddrescue + disk csere + zfs scrub lepeseket megismetelve:

GOODDISK01:
OOOOOOORRRRROOOOOOOOOOOOOOOO

GOODDISK02:
ORRROOOOOOOOOOOOOOOOOOOOOOOO

O - OK
B - BAD SECTOR
R - RECOVERABLE CHECKSUM ERROR

A ZFS RAID-Z1 vissza tudja allitani az adatokat es a paritast ugy, hogy nem lesz Permanent error.