TLDR;
Pool-ul meu de oglindă ZFS a primit câteva erori de sumă de verificare. Am înlocuit controlerul, crezând că aceasta este cauza cea mai probabilă, dar erorile nu se vor înlătura. Pool clear le resetează temporar, dar revin data viitoare când fac un scrub. Cum le pot șterge definitiv?
Întreaga poveste:
Am instalat și rulat un ZFS mirror-0 pe ubuntu 20.04.2 LTS de ceva timp. Când una dintre unități a murit, am profitat de eșecul de a înlocui ambele unități cu altele mai mari, precum și de a adăuga o placă PCI SATA-III pentru noile unități (cele vechi fuseseră conectate la controlerul SATA II de la bord). , deoarece nu mai aveam porturi SATA III disponibile). După ce a rulat pe noile unități și controler timp de câteva săptămâni, ZFS s-a plâns de erorile de sumă de control pe ambele unități noi și, ca urmare, a pus matricea într-o stare „degradată”.
Unele cercetări m-au condus la concluzia că, deoarece ambele unități prezentau exact același număr de erori de sumă de control, era mult mai probabil să fie o problemă cu controlerul decât cu unitățile în sine. Așa că am scos noul controler și am pus unitățile înapoi pe controlerul SATA II de la bord pentru moment, intenționând să înlocuiesc placa de controler odată ce verific că aceasta este problema. Am șters apoi cele două fișiere care starea zpool -v
prezentată ca având erori permanente, a emis a zpool clear data
pentru a reseta erorile și a executat un scrub.
Din pacate, dupa scrub erorile au reaparut, abia acum a -v
nu a mai afișat un fișier, ci doar adresa (inode, cred), probabil pentru unul dintre fișierele pe care le-am șters mai devreme. Am incercat din nou, cu acelasi rezultat. De fiecare dată când fac un scrub, acesta revine cu următorul rezultat:
root@watchman:~# starea zpool -v
pool: date
stare: DEGRADAT
stare: unul sau mai multe dispozitive au întâmpinat o eroare care a dus la date
corupţie. Aplicațiile pot fi afectate.
acțiune: restaurați fișierul în cauză, dacă este posibil. În caz contrar, restaurați
întregul pool de la backup.
vezi: http://zfsonlinux.org/msg/ZFS-8000-8A
scanare: scrub reparat 16K în 0 zile 09:10:20 cu 1 erori în sâmbătă, 24 iulie 15:48:21 2021
config:
NUME STAT CITEȘTE SCRIE CKSUM
date DEGRADATE 0 0 0
oglindă-0 DEGRADAT 0 0 0
ata-ST8000VE000-2P6101_WSD1M5NW DEGRADAT 0 0 15 prea multe erori
ata-ST8000VE000-2P6101_WSD1HEJX DEGRADAT 0 0 15 prea multe erori
erori: au fost detectate erori permanente în următoarele fișiere:
date:<0x380508>
Din câte îmi pot da seama, aceasta este aceeași problemă care a existat deja din cauza, probabil, controlerului prost, dar nu pot să o rezolv. Cum îmi pot restabili oglinda într-o stare de funcționare completă?
UPDATE: În cele din urmă, am renunțat la ideea de a șterge erorile și, în schimb, am luat-o de la capăt. Am creat o nouă piscină, furând una dintre unități de pe oglinda existentă. Am alergat apoi a rsync
pentru a copia toate datele din vechiul pool în cel nou. Acest lucru a întâmpinat câteva erori (zfs nu a mințit despre erorile de date), dar nimic semnificativ sau deranjant și excluderea fișierelor eroate a permis rsync-ului să se termine cu succes. Am adăugat apoi a doua unitate la noul bazin și, după un resilver, totul arată bine acum și o frecare pe noua piscină s-a finalizat fără eroare.
Deci, presupunând că totul continuă să arate bine pentru săptămâna viitoare sau cam asa ceva, cred că este sigur să presupunem că cardul SATA III a fost cauza problemei și să o înlocuim cu o marcă/opțiune mai bună :)