Назад | Перейти на главную страницу

zfsonlinux, raidz1: два повреждения диска: как я могу использовать dd / dd_rescue и обмануть zpool?

У меня есть 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, чтобы сделать все диски таким образом. Когда вы заменяете оперативный диск, он по-прежнему используется в качестве цели чтения / записи до завершения замены.