ZFS: "Too many errors" men "0 errors" enligt scrub
Hej
Jag skulle i fredags påbörja en uppgradering utav min filservers lagringsutrymme, byta ut alla (4) 500 GB diskar mot 1.5 TB diskar. Men har nu stött på ett litet problem.
Operativsystem: Nexenta 2 (= OpenSolris + Ubuntu).
Filsystem: ZFS (en zpool bestående utav två raidz1 stripes).
zpool: tank
Första disken som skulle bytas ut är c2t0d0 och en ny disk skulle kopplas in på samma SATA port.
Utförande:
# zfs set readonly=on tank
# zpool offline c2t0d0
# halt
(Omstart av systemet där den gamla disken plockas bort och den nya sattes i.)
# format (verifierade att den nya disken hittades och hette c2t0d0)
# zpool replace tank c2t0d0
Efter ett tag när replace:en var färdig kollade jag statusen
# zpool status tank
pool: tank
state: ONLINE
scrub: resilver completed after 7h33m with 0 errors on Fri Aug 28 22:32:13 2009
config:
NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
raidz1 ONLINE 0 0 0
c1t0d0 ONLINE 0 0 0
c1t1d0 ONLINE 0 0 0
c2t0d0 ONLINE 0 0 0 349G resilvered
c2t1d0 ONLINE 0 0 0
raidz1 ONLINE 0 0 0
c3t0d0 ONLINE 0 0 0
c3t1d0 ONLINE 0 0 0
c6d1 ONLINE 0 0 0
c5d1 ONLINE 0 0 0
errors: No known data errors
Därefter påbörjade jag en scrub (så som ZFS Administration Guide föreslår att man bör göra)
# zpool scrub tank
# zpool status tank
pool: tank
state: DEGRADED
status: One or more devices has experienced an unrecoverable error. An
attempt was made to correct the error. Applications are unaffected.
action: Determine if the device needs to be replaced, and clear the errors
using 'zpool clear' or replace the device with 'zpool replace'.
see: http://www.sun.com/msg/ZFS-8000-9P
scrub: scrub in progress for 0h0m, 0.07% done, 9h4m to go
config:
NAME STATE READ WRITE CKSUM
tank DEGRADED 0 0 0
raidz1 DEGRADED 0 0 0
c1t0d0 ONLINE 0 0 0
c1t1d0 ONLINE 0 0 0
c2t0d0 DEGRADED 0 0 378 too many errors
c2t1d0 ONLINE 0 0 0
raidz1 ONLINE 0 0 0
c3t0d0 ONLINE 0 0 0
c3t1d0 ONLINE 0 0 0
c6d1 ONLINE 0 0 0
c5d1 ONLINE 0 0 0
errors: No known data errors
"too many errors" va fan! Resilver statusmeddelandet sa ju att allt gick bra?
Jag var strax efter tvungen att stänga av servern då den står i min garderob och min flickvän vill inte höra den hela natten igenom. (# zpool scrub -s tank; halt)
Morgonen där efter så startade jag datorn igen och påbörjade en ny scrub.
# zpool scrub tank
Lät den köra tills den blev klar och följande är vad den visade:
# zpool status -v tank
pool: tank
state: DEGRADED
status: One or more devices has experienced an unrecoverable error. An
attempt was made to correct the error. Applications are unaffected.
action: Determine if the device needs to be replaced, and clear the errors
using 'zpool clear' or replace the device with 'zpool replace'.
see: http://www.sun.com/msg/ZFS-8000-9P
scrub: scrub completed after 6h54m with 0 errors on Sat Aug 29 19:06:24 2009
config:
NAME STATE READ WRITE CKSUM
tank DEGRADED 0 0 0
raidz1 DEGRADED 0 0 0
c1t0d0 ONLINE 0 0 0
c1t1d0 ONLINE 0 0 0
c2t0d0 DEGRADED 0 0 2.63M too many errors
c2t1d0 ONLINE 0 0 0
raidz1 ONLINE 0 0 0
c3t0d0 ONLINE 0 0 0
c3t1d0 ONLINE 0 0 0
c6d1 ONLINE 0 0 0
c5d1 ONLINE 0 0 0
errors: No known data errors
Nu så undrar jag vad jag kan göra? Borde inte ZFS kunna fixa till datan till de där 2.63 MiB felaktiga checksummorna eller är det checksummorna som är fel och datan som är korrekt? Borde inte ZFS fixa det automagiskt åt mig då? Något annat jag kan göra för att fixa det. "action:" fältet ifrån status utskriften ber ju mig antingen "clear":a eller köra en ny "replace". Är någon av de valen mitt bästa val?
Jag har kvar den utbytta 500 GB disken som det inte är något fel på. Så i värsta fall så kan jag sätta i den igen (behöver min filserver och vill helst inte stressa den med en disk nere ).
Väldigt tacksam ifall ni kan hjälpa mig att fixa detta!
rastersize