У меня есть zfsonlinux (Centos 7) и raidz1. А у меня беда: два диска умирают.
Первый диск имеет сбой Raw_Read_Error_Rate в SMART и ошибку Reallocated_Sector_Ct (на диске закончились свободные сектора для перемещения данных)
На втором диске есть ошибки Reallocated_Sector_Ct, но все еще есть резервные сектора.
Я поменял первый диск на новый, и zfs начал перенос обновлений. Сначала скорость была ~ 2 МБ / с, но через какое-то время она упала до 20 КБ / с и даже меньше и несколько дней остается очень маленькой!
И еще ошибок:
Jul 9 06:14:09 shaggycat-desktop smartd[966]: Device: /dev/sdf [SAT], FAILED SMART self-check. BACK UP DATA NOW!
Jul 9 06:14:11 shaggycat-desktop smartd[966]: Device: /dev/sdf [SAT], 488 Currently unreadable (pending) sectors
Jul 9 06:14:11 shaggycat-desktop smartd[966]: Device: /dev/sdf [SAT], 107 Offline uncorrectable sectors
Jul 9 06:44:08 shaggycat-desktop smartd[966]: Device: /dev/sdf [SAT], FAILED SMART self-check. BACK UP DATA NOW!
Jul 9 06:44:12 shaggycat-desktop smartd[966]: Device: /dev/sdf [SAT], 488 Currently unreadable (pending) sectors
Jul 9 06:44:12 shaggycat-desktop smartd[966]: Device: /dev/sdf [SAT], 107 Offline uncorrectable sectors
перезагрузка и пул импорта не помогают.
Могу ли я использовать dd_rescue для копирования второго отказавшего диска на новый и обмануть zpool? Как я могу его обмануть и импортировать пул с нового диска? Я использую / dev / disk / by-id / для идентификации дисков в моем zpool.
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 Sun Jul 5 15:16:17 2015
59.2G scanned out of 1.70T at 81.3K/s, (scan is slow, no estimated time)
14.8G resilvered, 3.40% done
config:
NAME STATE READ WRITE CKSUM
tank DEGRADED 0 0 0
raidz1-0 DEGRADED 0 0 0
ata-Hitachi_HDS721010CLA332_JP2940HQ2VTTDH-part1 ONLINE 0 0 0
replacing-1 DEGRADED 0 0 1
4455585976361728304 UNAVAIL 0 0 0 was /dev/disk/by-id/ata-Hitachi_HDS721010CLA332_JP2940HQ2VTZUH-part1
ata-ST1000DM003-1ER162_W4Y1HJTP-part1 ONLINE 0 0 0 (resilvering)
ata-WDC_WD10EALS-00Z8A0_WD-WCATR1714802-part1 ONLINE 0 0 0
ata-WDC_WD10EALS-00Z8A0_WD-WCATR1737637-part1 ONLINE 0 0 0
zpool list
NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
tank 3.56T 1.70T 1.86T - - 47% 1.54x DEGRADED -
Я использую эти версии программного обеспечения: zfs-release-1-2.el7.centos.noarch libzfs2-0.6.4.1-1.el7.centos.x86_64 zfs-0.6.4.1-1.el7.centos.x86_64 zfs-dkms-0.6 .4.1-1.el7.centos.noarch
EDIT: сначала я подумал, что это зеркальный пул, а не raidz.
Во-первых, zpool replace должен работать нормально. Если он медленный, потому что умирающий диск работает медленно, вы можете сначала отключить / отсоединить его, чтобы данные были восстановлены с других дисков и не выполнялись попытки чтения с плохого диска. Однако наличие нескольких неисправных дисков - это нехорошо.
Экспорт пула с использованием ddrescue и последующим импортом также должен работать, если старый мертвый диск будет удален с машины в этот момент. При импорте обычно просматриваются все диски, чтобы определить, какие пулы нужно найти и импортировать.
А если у вас несколько вышедших из строя дисков, нет ничего плохого в том, чтобы заменить их одновременно, обычно это быстрее, так как требуется всего один проход resilver, чтобы сделать все диски таким образом. Когда вы заменяете оперативный диск, он по-прежнему используется в качестве цели чтения / записи до завершения замены.