NAS může zůstat přístupný, i když zpool status začíná hlásit chyby čtení nebo kontrolního součtu. Než usoudíte, že je disk mrtvý, spusťte scrub na správném poolu. Tato kontrola čte bloky z poolu a ověřuje jejich kontrolní součty.
Na serveru, který hostí VM, zálohy nebo sdílené složky, bych si vybral klidné I/O okno. Scrub zatěžuje disky, a ZFS nedovolí provést scrub současně s resilveringem. Cílem je zjistit, zda zůstává pool zdravý, ne spouštět příkaz, aby se eliminovalo varování.

Před scrubem potvrďte název poolu
Začněte tím, že si přečtete aktuální stav. Nevymýšlejte název poolu na základě montáže nebo disku viděného v lsblk. Příkaz zpool list uvádí importované pooly, a poté zpool status -v zobrazuje jejich stav a známé chyby.
sudo zpool list
sudo zpool status -v tank
Vyměňte tank za název vrácený vaším systémem. V výstupu se podívejte na řádek scan, na celkový stav poolu a na počítadla READ, WRITE a CKSUM vdevů. Varianta -v také může uvést dotčené soubory, když ZFS zná jejich cestu.
Pool, který je již v resilveru, obnovuje přidaný nebo nahrazený disk. Počkejte na tento proces, než požádáte o scrub: OpenZFS povoluje pouze jednu operaci tohoto typu najednou. Pokud disky slouží databázi nebo velmi zatíženým VM, odložte kontrolu raději, než abyste vytvořili přetížení I/O během dne.
Spusťte scrub během klidného období
Následující příkaz spustí normální scrub na tank:
sudo zpool scrub tank
Scrub prochází daty a ověřuje kontrolní součty. Na zrcadle, v RAIDZ nebo dRAIDu může ZFS opravit poškozené bloky, pokud má platnou kopii. Izolovaný disk nebo poškození bez replikace zůstává incidentem, který je třeba řešit zálohou nebo materiálním nahrazením.
Příkaz se vrátí téměř okamžitě. To je normální: práce pokračuje na pozadí. Pokud se zátěž stane obtěžující, OpenZFS umožňuje pozastavit scrub a poté jej znovu spustit později pomocí stejného příkazu.
sudo zpool scrub -p tank
sudo zpool scrub tank
Vyhněte se zpool scrub -a pro první kontrolu. Tato možnost spouští, pozastavuje nebo zastavuje operaci na všech poolech a může silně zatížit stroj, který hostí více z nich.
Sledování pokroku a čtení chyb
Znovu spusťte zpool status během scrub:
sudo zpool status tank
sudo zpool status -v tank
Řádek scan uvádí začátek operace, objem skenovaný, pokrok, propustnost a odhad zbývajícího času. Pokrok vyšší než 100 % může být zobrazen na aktivním poolu, protože data se mění během čtení.
Na konci si znovu přečtěte počítadla disků a podrobný seznam. Čistý výsledek vypadá jako scrub ukončený s 0 errors. Opravené chyby si stále zaslouží kontrolu historie disku, kabelů a řadiče. Zprávy jádra jsou často užitečné v tomto stádiu: příručka dmesg pod Linuxem ukazuje, jak izolovat varování o úložišti.
- RŮST READ nebo WRITE: zkontrolujte disk, kabel a řadič před další těžkou operací.
- RŮST CKSUM: hledejte chybu přenosu nebo čtení, i když ZFS opravil bloky díky zdravé kopii.
- Seznamované soubory po scrub: obnovte je z ověřené zálohy a poté vyměňte vadný hardware, pokud chyby přetrvávají.
Po trvalé chybě přejděte k jednoduché kontrole
Scrub validuje pozorovatelnou integritu poolu v daném okamžiku. Nenahrazuje zálohu mimo NAS a nepřetváří nestabilní disk na spolehlivý. Pokud zpool status -v tank stále uvádí chyby po dokončení skenování, nejprve zkopírujte ještě čitelné údaje na zdravé místo.
Dokumentace OpenZFS o zpool scrub uvádí, že kontroly kontrolního součtu procházejí všechny bloky a automatické opravy vyžadují platnou redundatní kopii. Pro pool bez redundance zůstává rozumným rozhodnutím obnova ze zálohy a výměna vadného média.