I’m using ZFS for my main fileserver, this pool was created over 10 years ago.
Meanwhile i’ve: Swapped broken disks, switched disks for bigger ones and effectively resized my storage 2 or 3 times. Never had any corruption.
Yesterday i say a warning that one of the disks in the pool was OFFLINE.
Today i replaced it using below command’s
- Put the disk in OFFLINE mode (if needed, mine was already offline)
- zpool offline tank sdb
- Remove disk from system
- echo 1 | sudo tee /sys/block/sdb/device/delete
- Remove the disk physically
- Insert the replacement disk. And copy headers/structure from another disk
- sgdisk –replicate=/dev/sdb /dev/sda
- sgdisk –randomize-guids /dev/sdb
- Run the zpool replace command.
- zpool replace tank /dev/sdb
- Use online command to activate disk (no needed in my case, it already did that)
Tips: # My labels with serials fell off :( dd if=/dev/sdb of=/dev/null -> blinky led .. # What is the serial? sudo hdparm -i /dev/sdb | grep Serial
root@latex:~# sgdisk --replicate=/dev/sdb /dev/sda The operation has completed successfully. root@latex:~# sgdisk --randomize-guids /dev/sdb The operation has completed successfully. root@latex:~# zpool replace tank /dev/sdb root@latex:~# zpool status pool: tank state: DEGRADED 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 May 18 11:31:21 2022 5.64T scanned out of 14.4T at 331M/s, 7h42m to go 1.88T resilvered, 39.16% done config: NAME STATE READ WRITE CKSUM tank DEGRADED 0 0 0 raidz1-0 DEGRADED 0 0 0 sda ONLINE 0 0 0 replacing-1 REMOVED 0 0 0 old REMOVED 0 0 0 sdb ONLINE 0 0 0 (resilvering) sdc ONLINE 0 0 0 errors: No known data errors