====== ZFS - Replace a Disk ====== * Offline the disk, if necessary, with the zpool offline command. * Remove the disk to be replaced. * Insert the replacement disk. * Run the zpool replace command. * Bring the disk online with the zpool online command. ---- ===== Check the Pool Status ===== zpool status Pool1 returns: pool: Pool1 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://illumos.org/msg/ZFS-8000-9P scan: scrub repaired 0B in 21:37:28 with 0 errors on Sun Nov 15 21:37:28 2020 config: NAME STATE READ WRITE CKSUM Pool1 ONLINE 0 0 0 raidz1-0 ONLINE 0 0 0 gptid/2d35e96c-b611-11ea-be33-00d861fcb7d8 ONLINE 0 0 0 gptid/2d41dcbd-b611-11ea-be33-00d861fcb7d8 DEGRADED 0 0 40 too many errors gptid/2ddb5cb2-b611-11ea-be33-00d861fcb7d8 ONLINE 0 0 0 errors: No known data errors **NOTE:** This shows that Pool1 is in a **degraded** state. It tells me that the device gptid/2d41dcbd-b611-11ea-be33-00d861fcb7d8 is the culprit. ---- ===== Determine Drive Identifier ===== glabel status | grep 2d41 returns: ptid/2d41dcbd-b611-11ea-be33-00d861fcb7d8 N/A ada3p2 **NOTE:** This shows the device that is degraded and has too many errors is /dev/ada3. ---- ===== Determine current Disks ===== ls -1 /dev/gptid/ returns: 2d35e96c-b611-11ea-be33-00d861fcb7d8 2d41dcbd-b611-11ea-be33-00d861fcb7d8 2dcf9d03-b611-11ea-be33-00d861fcb7d8 2ddb5cb2-b611-11ea-be33-00d861fcb7d8 b649914a-acc6-11ea-8ed5-00d861fcb7d8 b64bffb3-acc6-11ea-8ed5-00d861fcb7d8 ---- ===== Offline the Disk ===== Take the Broken Disk offline: zpool offline Pool1 /dev/gptid/2d41dcbd-b611-11ea-be33-00d861fcb7d8 ---- ===== Replace the Physical Disk ===== Replace the physical disk, and check the status again, it should show the disk as offline now. zpool status Pool1 returns: pool: Pool1 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://illumos.org/msg/ZFS-8000-9P scan: scrub repaired 0B in 21:37:28 with 0 errors on Sun Nov 15 21:37:28 2020 config: NAME STATE READ WRITE CKSUM Pool1 ONLINE 0 0 0 raidz1-0 ONLINE 0 0 0 gptid/2d35e96c-b611-11ea-be33-00d861fcb7d8 ONLINE 0 0 0 gptid/2d41dcbd-b611-11ea-be33-00d861fcb7d8 OFFLINE 0 0 40 too many errors gptid/2ddb5cb2-b611-11ea-be33-00d861fcb7d8 ONLINE 0 0 0 errors: No known data errors ---- ===== Determine current Disks Again ===== This should not contain details of the newly installed disk. ls -1 /dev/gptid/ returns: 1d41dcbd-b611-11ea-be33-00d861fcb7d8 2d35e96c-b611-11ea-be33-00d861fcb7d8 2dcf9d03-b611-11ea-be33-00d861fcb7d8 2ddb5cb2-b611-11ea-be33-00d861fcb7d8 b649914a-acc6-11ea-8ed5-00d861fcb7d8 b64bffb3-acc6-11ea-8ed5-00d861fcb7d8 **NOTE:** Notice that **1d41dcbd-b611-11ea-be33-00d861fcb7d8** is newly there compared to when this was originally checked earlier. Also, the old disk **2d41dcbd-b611-11ea-be33-00d861fcb7d8** is probably gone too. ---- ===== Do the Replacement ===== zpool replace POOLNAME OLDDRIVE NEWDRIVE zpool replace Pool1 /dev/gptid/2d41dcbd-b611-11ea-be33-00d861fcb7d8 /dev/gptid/1d41dcbd-b611-11ea-be33-00d861fcb7d8 ---- ===== Check the Status ===== It should now be rebuilding / resilvering. zpool status Pool1 returns: pool: Pool1 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. scan: resilver in progress since Wed Aug 10 12:12:12 2016 241.4G scanned out of 8.55T at 432M/s, 6h12m to go 85.21G resilvered, 10.69% done config: NAME STATE READ WRITE CKSUM Pool1 ONLINE 0 0 0 raidz1-0 ONLINE 0 0 0 gptid/2d35e96c-b611-11ea-be33-00d861fcb7d8 ONLINE 0 0 0 gptid/1d41dcbd-b611-11ea-be33-00d861fcb7d8 ONLINE 0 0 0 (resilvering) gptid/2ddb5cb2-b611-11ea-be33-00d861fcb7d8 ONLINE 0 0 0 errors: No known data errors **NOTE:** Once the resilver is complete the status should be back to normal.