This is an almost verbatim copy of Replacing a Failed Disk in SmartOS but when it counted I couldn’t find that particular post. I will try to elaborate a little bit on the original post.
I had an issue on my SmartOS system at home where the disk names changed due to a missing drive. ie. I removed the first drive in my array(c0t0d0) and after the reboot the second drive in the array became c0t0d0, the third drive became c0t1d0 . A better way to replace the drive is to do it without rebooting.
This assumes the failed drive is c0t0d0 in slot sata0/0
Replacing a failed drive
- Offline the failed drive:
zpool offline zones c0t0d0
This is fairly self explanitory. The drive is taken offline and all IO on the device ceases whilst remaining part of the pool.
devfsadm -C -c disk -v(may not be necessary)
This command will attempt to clean up any ‘dangling logical links’. The
-Cruns devfsadm in cleanup mode, the
-c disklimits operations to the device class
-vruns the command in verbose mode.
devfsadm -c disk -v(may not be necessary)
I’m not entirely sure what this does.
cfgadm -lyou should see type sata-port & receptacle disconnected. If you don’t do this, type will be unknown (may not be necessary)
cfgadm -f -c connect sata0/0
Forces the connection on sata0/0
cfgadm -lshould show type disk, receptacle connected, occupant unconfigured
cfgadm -c configure sata0/0
Allows the disk to be usable
cfgadm -lshould now show occupant configured
zpool replace zones c0t0d0I got an error that the drive was already part of a ZFS pool because it was a used drive. In that case, do:
zpool replace -f zones c0t0d0
That’s about it. Just online the device and wait for the re-silver.