De server van mijn vader staat bij mijn ouders in Zwolle. Ik beheer hem vanuit Ommen, 25 kilometer verderop. In juli logde ik in om de Proxmox-versie te checken en ontdekte ik dat de storage pool al ruim twee weken stilletjes degraded was. Dit is een verhaal over Western Digital die drives verkoopt die liegen, ZFS dat overal gelijk in heeft, en monitoring die je pas bouwt NADAT je hem nodig had.
Eerst even wat context. De server in Zwolle is een zelfgebouwde Proxmox-bak: een i7-11700K, 128GB RAM, een GTX 1060 met creatief gelicentieerde NVENC-firmware voor Plex, en een ZFS pool die data heet. Die pool bestaat uit zes WD Reds van 6TB in drie mirrors. Klinkt verantwoord, toch? Mirrors! Redundantie! Hier hebben we over nagedacht!
Maar nu het addertje. Vier van die zes drives zijn WD60EFAX. Zegt dat typenummer je niks: gefeliciteerd met je bloeddruk. De EFAX is de drive uit het WD-schandaal van 2020, toen ze stiekem SMR-drives in hun NAS-lijn gingen leveren zonder het iemand te vertellen. Daarover straks meer, want ik heb MENINGEN.
Mijn vader en moeder zijn de remote hands van het datacenter (sensoren en actuatoren, zeg maar). Fysieke toegang is een rit van 25 minuten. Monitoring was, en dat zeg ik met liefde voor vroegere ik, nul.
Ik wilde alleen de Proxmox-versie checken. Proxmox 9 was uit, ik had zin om te upgraden, dus ik SSH’de erin voor een bezoekje van 30 seconden. En als ik er toch was, even een snelle healthcheck:
root@pve:~# zpool status
pool: data
state: DEGRADED
status: One or more devices are faulted in response to persistent errors.Ah.
Een van de EFAX-drives stond daar FAULTED, met 60 read errors en 69 checksum errors. Zijn buurman in mirror-0 had er zelf 7 read errors bij, gewoon om het spannend te houden. Twee van de zes drives die zich misdragen, allebei SMR, in een pool waar niemand naar keek.
Tijd voor wat journal-archeologie. De kernel logde de eerste medium errors op 27 juni. De event daemon van ZFS faultte de drive op 12 juli, vlak na een geplande scrub (de scrub repareerde ook nog 1M aan data, dus de rot was actief aan het rotten). Ik vond het op 28 juli.
Dat betekent dat de pool ZESTIEN DAGEN degraded draaide. Zestien dagen waarin één mirror precies nul redundantie over had, in een huis waar het dichtstbijzijnde equivalent van een NOC mijn moeder is die langs de bijkeuken loopt. Had de andere drive in die mirror besloten zijn maatje achterna te gaan, dan was dat de hele pool geweest. De Plex-bibliotheek, de VM’s, alles.
Niemand wist het. Ik niet, mijn vader niet, de mail-daemon van ZFS niet (niet geconfigureerd), de Discord-webhook niet (bestond nog niet). ZFS deed alles goed en vertelde het toen aan helemaal niemand, omdat ik het nooit een telefoon had gegeven.
Dus de drive gaat zeker dood, toch? 60 read errors! Laten we naar de SMART-data kijken:
5 Reallocated_Sector_Ct - 0
196 Reallocated_Event_Count - 0
197 Current_Pending_Sector - 0
198 Offline_Uncorrectable - 0Nul. Overal nul. Volgens de drive zelf is hij kerngezond.
Dit is de beroemde EFAX-partytruc. De drive gaat niet fysiek dood. Het is een SMR-drive, wat betekent dat schrijfacties soms een grote interne herschikking van shingled zones triggeren, en tijdens die herschikking houdt de drive gewoon op met reageren. Een tijdje. ZFS stuurt een commando, hoort niks, telt het als fout, en na genoeg van die fouten kickt het de drive uit de pool. De drive gelooft ondertussen oprecht dat hij niks fout heeft gedaan. Hij was gewoon even aan het nadenken!
Je krijgt dus een drive die tegelijk prima en onbruikbaar is. Schrödingers Red.
SMR is per terabyte een paar procent goedkoper om te maken. Dat is de hele reden dat het bestaat. WD nam die besparing, stopte SMR in de ENE productlijn die expliciet wordt verkocht voor NAS- en RAID-workloads (waar SMR het slechtst presteert), zette het niet op de spec sheet, en wachtte tot de community het via benchmark-forensics zou uitvogelen. Wat die in 2020 dus luidruchtig deed.
De gevolgen voor WD: een Amerikaanse class action-schikking ter waarde van een afrondingsfout, wat relabeling (SMR-Reds werden “Red”, CMR werd “Red Plus”), en dat was het. Geen recall. Geen verlengde garantie. En als je je drives in Europa kocht, zoals mijn vader: helemaal niks. De schikking gold alleen voor Amerikaanse kopers. Onze vier EFAX-drives vallen onder de categorie “jammer dan”.
Het structurele probleem is dat de harddiskmarkt uit drie bedrijven bestaat (WD, Seagate, Toshiba) en alle drie in dezelfde periode dezelfde stille SMR-zet deden. Er is geen vierde optie om ze mee te straffen. Datzelfde oligopolie jaagt op dit moment de drive-prijzen op voor de vraag van AI-datacenters, wat verderop in dit verhaal nog relevant wordt.
Het officiële antwoord van de klantenservice van WD: “jammer dan”.
Omdat de SMART schoon was en de errors timeout-theater bleken, kreeg de drive één (1) tweede kans: zpool clear, terug de pool in, resilver. ZFS stelde meteen de verwachtingen bij:
627M resilvered, 0.01% done, 3 days 23:08:30 to goVier dagen. VIER DAGEN één mirror zonder vangnet, op precies het type drive dat berucht is om eruit gekickt te worden tijdens resilvers. Ik bereidde me mentaal voor op een lange week.
Het was klaar in 19 minuten. 69,5GB, nul errors. De schatting van vier dagen was ZFS die extrapoleerde vanaf een koude start, zoals de actieradius-indicator van je auto na 200 meter bergop. Het hoefde alleen in te halen wat de drive gemist had terwijl hij op de bank zat, niet 6TB opnieuw op te bouwen.
Beide probleemdrives laten sindsdien schone tellers zien. Ze zijn niet vergeven, ze staan onder toezicht. Dat is een verschil.
Als ik toch in een testbui was, draaide ik ook een self-test op de Samsung 970 EVO boot-NVMe. Leuk weetje: smartctl kan geen NVMe self-tests doen, daar heb je nvme-cli voor nodig. Resultaat:
Operation Result : 0x7 (failed: media/data integrity)
Self Test Result : failing LBA 0x13a4cc80Natuurlijk. NATUURLIJK. Ook de bootdrive.
Een handmatige dd-read van die sector kwam schoon terug, wat betekent dat de controller hem al geremapt had. De drive heeft ook 8 lifetime Media and Data Integrity Errors, wat geen noodgeval is maar nu wel een Patroon Om In De Gaten Te Houden is. Deze server wordt bij elkaar gehouden door geremapte sectoren en hoop.
De echte les van die 16 dagen is niet “SMR slecht” (hoewel: SMR slecht). Het is dat een ZFS pool zonder alerting een pool is die stil kapotgaat tot hij luid kapotgaat.
Dus de server kreeg een telefoon. ZED (de ZFS event daemon) schiet nu elke statuswijziging in een Discord-webhook, en een systemd timer post elke ochtend om 09:00 een volledig health report van de disks. Het kanaal heet “Road to Bankruptcy”, genoemd naar waar deze hobby financieel naartoe gaat.
Elke toekomstige teller die niet op nul staat is nu binnen een dag nieuws in plaats van binnen een kwartaal. Het is eerlijk gezegd gênant hoe weinig werk dit was vergeleken met hoe lang ik het niet gedaan heb.
De naam van de webhook is gekozen voordat ik de huidige harddiskprijzen had bekeken. Inmiddels is het een profetie geworden.
De juiste oplossing is de EFAX-drives vervangen door echte CMR-enterprisedrives. Gecertificeerd refurbished Seagate Exos of WD Ultrastar, saai en kogelvrij. Het probleem: ik heb het slechtst denkbare jaar uitgekozen om harddisks nodig te hebben. AI-datacenters zuigen elke drive op de planeet leeg en de prijzen zijn belachelijk (een NIEUWE 6TB Red Plus kost nu zo’n €309, wat beledigend is).
Dus het plan is geduld. De pool is gezond, de monitoring is luid, beide verdachten gedragen zich, en er draait een prijsalert voor refurbs. Zodra er een normale deal op refurbished enterprisedrives opduikt, gaan er twee naar Zwolle.
Oh, en ZFS stelde behulpzaam voor dat ik, nu alles gezond is, zpool upgrade kon draaien. Nee. Een upgrade van pool features is een deur zonder terugweg en de features die op tafel liggen lossen problemen op die ik niet heb. De pool blijft zoals hij is, overal importeerbaar, voor altijd saai.
Dat is trouwens het doel. Saai. Al zo’n drie weken is zpool status de meest oninteressante output op die machine. Moge dat nog lang duren.
Update, oktober 2026
Dat duurde niet lang. Bij de scrub van half september werd een van de EFAX-drives weer uit de pool gegooid, nu met 131 read errors en 127 checksum errors. Dit keer wist ik het wel.
Zelfde patroon als in juli: SMART-test zonder fouten, nul reallocated sectors. zpool clear, resilveren, en ZFS schatte weer ruim: 7 dagen. Het duurde 11 minuten en 39 seconden. Bij de volgende scrub had dezelfde drive alweer 114 checksum errors. De scrub repareerde alles, er is geen data kwijt, en na een reboot staat hij weer ONLINE.
Nieuwe drives zitten er nog steeds niet in. Schijven zijn op dit moment een soort goud. De drive staat dus nog steeds onder toezicht, en dat toezicht is inmiddels een stuk uitgebreider. Daarover meer in Het bleef niet saai.
