У меня есть пул ZFS, состоящий из 6 RAIDZ. Один из RAIDZ вышел из строя из-за потери двух дисков в одном RAIDZ, достаточно близко друг к другу, чтобы ZFS не смогла восстановиться после первого сбоя до того, как второй диск отказал. Вот результат "zpool status" вскоре после перезагрузки:
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
Когда первый диск вышел из строя, я заменил его горячим резервом, и он начал восстанавливаться. Перед завершением переноса данных произошел сбой второго диска, поэтому я заменил второй диск другим «горячим» резервом. С тех пор он начнет повторно обновляться, сделает около 50%, а затем начнет поглощать память, пока не съест все это и не вызовет сбой ОС.
Обновление ОЗУ на сервере не является простым вариантом на данный момент, и мне неясно, может ли это гарантировать решение. Я понимаю, что на этом этапе будет потеря данных, но если я могу пожертвовать содержимым этого RAIDZ, чтобы сохранить остальную часть пула, это вполне приемлемый результат. Я нахожусь в процессе резервного копирования содержимого этого сервера на другой сервер, но проблема с потреблением памяти вызывает перезагрузку (или сбой) каждые 48 часов или около того, что прерывает мое резервное копирование rsync, а перезапуск rsync требует времени (это может возобновить, как только выяснится, где остановился, но это занимает очень много времени).
Я думаю, что попытка ZFS справиться с двумя запасными операциями по замене является корнем проблемы потребления памяти, поэтому я хочу удалить один из горячих резервов, чтобы ZFS могла работать по одной за раз. Однако, когда я пытаюсь отсоединить одну из запчастей, я получаю «не могу отсоединить / dev / disk / by-id / scsi-SATA_ST3000DM001-1CH_W1F49M01: нет действительных реплик». Возможно, я могу использовать параметр -f для принудительного выполнения операции, но мне не совсем ясно, каков будет результат, поэтому я хотел узнать, есть ли у кого-нибудь какие-либо данные, прежде чем двигаться дальше.
Если я смогу привести систему в стабильное состояние, в котором она может оставаться в рабочем состоянии достаточно долго для завершения резервного копирования, я планирую снять ее для капитального ремонта, но в текущих условиях она застряла в некотором цикле восстановления.
Прямо сейчас вы можете отсоединить диски UNAVAIL, ZFS их больше не использует.
У вас два вышедших из строя диска в системе RAIDZ-1. Очень вероятно, что вы наблюдаете потерю данных и должны быть готовы к восстановлению из резервной копии.
Кстати, из моего опыта работы с OpenSolaris / Solaris11 RAIDZ оказался очень ненадежным. Я бы не советовал использовать его в ЛЮБОМ виде производственной нагрузки.
Кроме того, чтобы подтвердить то, что сказал ewwhite, FUSE - не лучший вариант. Я бы воспользовался этой возможностью, чтобы перейти на что-нибудь более стабильное (возможно, FreeBSD 10).