I ordered a new Seagate Skyhawk 4TB hard drive. While waiting for it to arrive, I thought I could write a post about how to replace a failing old drive in a ZFS system like mine.
The first thing to do is get as much information about the system hard drives. I'll need information on the drives.
#ls -la /dev/disk/by-id #to list all my drives with their model and numbers
donato@donato-ubuntu:~$ ls -la /dev/disk/by-id total 0 drwxr-xr-x 2 root root 720 Aug 3 12:34 . drwxr-xr-x 8 root root 160 Aug 3 12:34 .. lrwxrwxrwx 1 root root 9 Aug 3 12:34 ata-Crucial_CT240M500SSD1_14210C259405 -> ../../sda lrwxrwxrwx 1 root root 10 Aug 3 12:34 ata-Crucial_CT240M500SSD1_14210C259405-part1 -> ../../sda1 lrwxrwxrwx 1 root root 10 Aug 3 12:34 ata-Crucial_CT240M500SSD1_14210C259405-part2 -> ../../sda2 lrwxrwxrwx 1 root root 10 Aug 3 12:34 ata-Crucial_CT240M500SSD1_14210C259405-part3 -> ../../sda3 lrwxrwxrwx 1 root root 10 Aug 3 12:34 ata-Crucial_CT240M500SSD1_14210C259405-part4 -> ../../sda4 lrwxrwxrwx 1 root root 9 Aug 3 12:34 ata-ST2000DM001-1CH164_W1E8B1ZS -> ../../sdc lrwxrwxrwx 1 root root 10 Aug 3 12:34 ata-ST2000DM001-1CH164_W1E8B1ZS-part1 -> ../../sdc1 lrwxrwxrwx 1 root root 10 Aug 3 12:34 ata-ST2000DM001-1CH164_W1E8B1ZS-part9 -> ../../sdc9 lrwxrwxrwx 1 root root 9 Aug 3 12:34 ata-ST2000DM001-1ER164_Z5600J73 -> ../../sde lrwxrwxrwx 1 root root 10 Aug 3 12:34 ata-ST2000DM001-1ER164_Z5600J73-part1 -> ../../sde1 lrwxrwxrwx 1 root root 10 Aug 3 12:34 ata-ST2000DM001-1ER164_Z5600J73-part9 -> ../../sde9 lrwxrwxrwx 1 root root 9 Aug 3 12:34 ata-ST3000DM008-2DM166_Z50520KD -> ../../sdb lrwxrwxrwx 1 root root 10 Aug 3 12:34 ata-ST3000DM008-2DM166_Z50520KD-part1 -> ../../sdb1 lrwxrwxrwx 1 root root 10 Aug 3 12:34 ata-ST3000DM008-2DM166_Z50520KD-part9 -> ../../sdb9 lrwxrwxrwx 1 root root 9 Aug 3 12:34 ata-ST31000524AS_5VP9CZC8 -> ../../sdd lrwxrwxrwx 1 root root 10 Aug 3 12:34 ata-ST31000524AS_5VP9CZC8-part1 -> ../../sdd1 lrwxrwxrwx 1 root root 10 Aug 3 12:34 ata-ST31000524AS_5VP9CZC8-part9 -> ../../sdd9 donato@donato-ubuntu:~$
#zpool status dpool -v #to get the status of the pool
#fdisk -l #list your disks
You can set the pool properties to automatically use replacement disk or expand to a larger size with:
# zpool set autoreplace=on poolname #to set any new disk to replace old disk
# zpool set autoexpand=on poolname #to expand size of pool automatically
Then:
# zpool offline poolname device #to set old device offline
Remove the old / failed disk.
Insert the replacement disk.
Run the replacement command:
# zpool replace poolname device
Bring the disk online with:
# zpool online poolname device
NOTE: that if you set the autoreplace property of the pool any new device found on the location will be formatted and used as replacement, but this might not work on your particular hardware. Also, having the autoreplace property "off" is a good check whenever you make a mistake in naming the device. That is why it is good practice to use the disk ID instead of the location.
Comments