On a Solaris 10 server I needed to replace a disk in a ZFS pool by using a spare drive:
zpool replace mypool c4t69d0 c5t65d0
ZFS then began to resilver the drive:
zpool status
pool: mypool
state: ONLINE
status: One or more devices is currently being resilvered. The pool will
continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
scrub: resilver in progress for 0h0m, 0.00% done, 199h10m to go
config:
NAME STATE READ WRITE CKSUM
mypool ONLINE 0 0 0
mirror ONLINE 0 0 0
spare ONLINE 0 0 0
c4t69d0 ONLINE 0 0 0
c5t65d0 ONLINE 0 0 0 16.6M resilvered
c4t66d0 ONLINE 0 0 0
spares
c5t65d0 INUSE currently in use
c5t85d0 AVAIL
After almost 11 hours, the scrub line mentioned 100% done, but the status was still resilvering:
zpool status
pool: mypool
state: ONLINE
status: One or more devices is currently being resilvered. The pool will
continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
scrub: resilver in progress for 10h45m, 100.00% done, 0h0m to go
config:
NAME STATE READ WRITE CKSUM
mypool ONLINE 0 0 0
mirror ONLINE 0 0 0
spare ONLINE 0 0 0
c4t69d0 ONLINE 0 0 0
c5t65d0 ONLINE 0 0 0 480G resilvered
c4t66d0 ONLINE 0 0 0
spares
c5t65d0 INUSE currently in use
c5t85d0 AVAIL
Is the status line wrong? Can I ignore it? Or is the 100% a false information? I came across this post in the FreeNAS.org forums where in general the OP was asked to be patient and... just wait. So that's what I did, too. And indeed, a few hours later the resilvering finished:
zpool status
pool: mypool
state: ONLINE
scrub: resilver completed after 12h21m with 0 errors on Mon Oct 6 20:51:46 2014
config:
NAME STATE READ WRITE CKSUM
mypool ONLINE 0 0 0
mirror ONLINE 0 0 0
spare ONLINE 0 0 0
c4t69d0 ONLINE 0 0 0
c5t65d0 ONLINE 0 0 0 486G resilvered
c4t66d0 ONLINE 0 0 0
spares
c5t65d0 INUSE currently in use
c5t85d0 AVAIL
Note that another 6GB were resilvered in between. So there is no technical way to solve this. It's just patience.
At the end I just needed to detach c4t69d0:
zpool detach mypool c4t69d0
zpool status
pool: mypool
state: ONLINE
scrub: resilver completed after 12h21m with 0 errors on Mon Oct 6 20:51:46 2014
config:
NAME STATE READ WRITE CKSUM
mypool ONLINE 0 0 0
mirror ONLINE 0 0 0
c5t65d0 ONLINE 0 0 0 486G resilvered
c4t66d0 ONLINE 0 0 0
spares
c5t85d0 AVAIL
QS from Who Cares? wrote on Dec 9th, 2014:
It's probably resilvering data that has changed since the resilvering process began.
AWS Android Ansible Apache Apple Atlassian BSD Backup Bash Bluecoat CMS Chef Cloud Coding Consul Containers CouchDB DB DNS Database Databases Docker ELK Elasticsearch Filebeat FreeBSD Galera Git GlusterFS Grafana Graphics HAProxy HTML Hacks Hardware Icinga Influx Internet Java KVM Kibana Kodi Kubernetes LVM LXC Linux Logstash Mac Macintosh Mail MariaDB Minio MongoDB Monitoring Multimedia MySQL NFS Nagios Network Nginx OSSEC OTRS Office OpenSearch PGSQL PHP Perl Personal PostgreSQL Postgres PowerDNS Proxmox Proxy Python Rancher Rant Redis Roundcube SSL Samba Seafile Security Shell SmartOS Solaris Surveillance Systemd TLS Tomcat Ubuntu Unix VMWare VMware Varnish Virtualization Windows Wireless Wordpress Wyse ZFS Zoneminder