Eu tenho um pool ZFS feito de 6 RAIDZs. Um dos RAIDZ está degradado, devido à perda de dois discos no RAIDZ único, próximos o suficiente, que o ZFS não conseguiu se recuperar da primeira falha antes que o segundo disco falhasse. Aqui está a saída do "zpool status" logo após a reinicialização:
pool: pod2
state: DEGRADED
status: One or more devices has experienced an error resulting in data
corruption. Applications may be affected.
action: Restore the file in question if possible. Otherwise restore the
entire pool from backup.
see: http://www.sun.com/msg/ZFS-8000-8A
scrub: resilver in progress for 0h6m, 0.05% done, 237h17m to go
config:
NAME STATE READ WRITE CKSUM
pod2 DEGRADED 0 0 29.3K
raidz1-0 ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F165XG ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F1660X ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F1678R ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F1689F ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F16AW9 ONLINE 0 0 0
raidz1-1 ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F16C6E ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F16C9F ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F16FCD ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F16JDQ ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F17M6V ONLINE 0 0 0
raidz1-2 ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F17MSZ ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F17MXE ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F17XKB ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F17XMW ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F17ZHY ONLINE 0 0 0
raidz1-3 ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F18BM4 ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F18BRF ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F18XLP ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F09880 ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F098BE ONLINE 0 0 0
raidz1-4 DEGRADED 0 0 58.7K
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F09B0M ONLINE 0 0 0
spare-1 DEGRADED 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F09BEN UNAVAIL 0 0 0 cannot open
disk/by-id/scsi-SATA_ST3000DM001-1CH_W1F49M01 ONLINE 0 0 0 837K resilvered
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0D6LC ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0CWD1 ONLINE 0 0 0
spare-4 DEGRADED 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F09C8G UNAVAIL 0 0 0 cannot open
disk/by-id/scsi-SATA_ST3000DM001-1CH_W1F4A7ZE ONLINE 0 0 0 830K resilvered
raidz1-5 ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-1CH_Z1F2KNQP ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BML0 ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BPV4 ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BPZP ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BQ78 ONLINE 0 0 0
raidz1-6 ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BQ9G ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BQDF ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BQFQ ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0CW1A ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BV7M ONLINE 0 0 0
spares
disk/by-id/scsi-SATA_ST3000DM001-1CH_W1F49M01 INUSE currently in use
disk/by-id/scsi-SATA_ST3000DM001-1CH_W1F4A7ZE INUSE currently in use
disk/by-id/scsi-SATA_ST3000DM001-1CH_W1F49MB1 AVAIL
disk/by-id/scsi-SATA_ST3000DM001-1ER_Z5001SS2 AVAIL
disk/by-id/scsi-SATA_ST3000DM001-1ER_Z5001R0F AVAIL
errors: 37062187 data errors, use '-v' for a list
Quando o primeiro disco falhou, substituí-lo por um hot spare e ele começou a resilver. Antes da conclusão do resilver, um segundo disco falhou, então substituí o segundo disco por outro hot spare. Desde então, ele começará a fazer o resilver, obterá cerca de 50% concluído e começará a devorar a memória até que ela consuma tudo e faça com que o sistema operacional falhe.
Atualizar a RAM no servidor não é uma opção direta neste momento, e não está claro para mim que isso garantiria uma solução. Eu entendo que haverá perda de dados neste estágio, mas se eu puder sacrificar o conteúdo deste RAIDZ para preservar o resto do conjunto que é um resultado perfeitamente aceitável. Estou no processo de fazer o backup do conteúdo deste servidor para outro servidor, mas o problema de consumo de memória força uma reinicialização (ou travamento) a cada 48 horas, o que interrompe meu backup rsync e reiniciar o rsync leva tempo (pode retomar uma vez que descubra de onde parou, mas isso leva muito tempo).
Acredito que o ZFS que está tentando lidar com duas operações sobressalentes de substituição esteja na raiz do problema de consumo de memória. Por isso, quero remover uma das hot spares para que o ZFS possa trabalhar uma por vez. No entanto, quando tento desanexar uma das peças, recebo "não consigo desanexar / dev / disk / by-id / scsi-SATA_ST3000DM001-1CH_W1F49M01: nenhuma réplica válida". Talvez eu possa usar a opção -f para forçar a operação, mas não está claro para mim exatamente qual será o resultado disso, então eu queria ver se alguém tem alguma opinião antes de prosseguir.
Se eu conseguir colocar o sistema em um estado estável em que ele possa permanecer operacional por tempo suficiente para que o backup seja concluído, planejo retirá-lo para revisão, mas com as condições atuais ele fica preso em um loop de recuperação.