ZFS Raid1z диск заменить
Я использую ZFS Raid1z с 5 дисками под Ubuntu 12.04 уже 3 года без проблем.
К сожалению, настал день выхода из строя диска. Я потерял диск в массиве, он просто перешел в автономный режим, и через несколько дней второй также начал сбрасывать ошибки. Когда система обнаружила ошибки контрольной суммы на втором диске, который начал выходить из строя (некоторые поврежденные сектора в соответствии с SMART), она начала выполнять повторное серебрение массива, и когда я добрался до ПК и увидел, что повторное серебрение было уже на 40%, чтобы избежать катастрофы, я решил остановить сервер как можно скорее.
Так что в основном мой массив выглядит примерно так, и где-то упоминается, что данные были потеряны:
NAME STATE READ WRITE CKSUM
Misu DEGRADED 0 0 0
raidz1-0 ONLINE 0 0 0
scsi-SATA_ST3000DM001-9YN_Z1F1587B OFFLINE 0 0 0 (failed hdd)
scsi-SATA_ST3000DM001-9YN_Z1F14J7V ONLINE 0 0 0
scsi-SATA_ST3000DM001-9YN_Z1F14JYL ONLINE 0 0 0
scsi-SATA_ST3000DM001-1CH_W1F1G04F ONLINE 0 0 0
scsi-SATA_ST3000DM001-1CH_W1F1G1H7 ONLINE 134 5 139 (failing hdd)
Поскольку процесс восстановления занимает некоторое время, я очень боюсь заменить первый диск и надеюсь, что второй, тот, у которого есть ошибки контрольной суммы, не потерпит неудачу. Поэтому я решил заменить печатную плату на первом неисправном диске, поскольку у него были проблемы с печатной платой, а не механические проблемы.
Итак, если мне удастся заставить первый диск работать, что мне делать дальше, как zfs узнает, что диск не был заменен (не уверен, но я верю, что изменение pcb изменит серийный номер и материал для этого диска) и обнаружит диск как оригинальный член?
Любая другая информация, которая может помочь мне не сделать это хуже?
2 ответа
Повторно импортируйте пул только для чтения и сделайте резервную копию, пока он еще монтируется. У вас два плохих диска в пуле с одним уровнем защиты по четности, и если второй диск также выходит из строя в автономном режиме, проблема становится намного хуже. Избегайте сна или отключения питания оборудования, пока у вас не будет резервной копии.
OpenZFS может распознавать данные на отремонтированном диске независимо от того, изменяет ли PCB серийный номер диска. Если восстановленный диск появится в системе с другим именем /dev, просто повторно импортируйте пул. Перед восстановлением второго отказавшего диска должно произойти восстановление на восстановленном диске, что может привести к фатальной ошибке.
Обратите внимание, что это может быть ошибка "ванны", потому что диски, кажется, из одной и той же производственной партии. Если так, то ожидайте дополнительных сбоев.
Я вижу, что это сообщение очень старое, однако я добавлю решение, которое предлагаю, на случай, если кто-то еще столкнется с той же проблемой.
Что вам нужно сделать, так это запустить команду zpool replace для вашего диска с ошибками, а не для диска, который находится в ОФФЛАЙНЕ. Я уточню.
Если вы замените диск в автономном режиме, ваши изменения для восстановления информации исчезнут. У вас по-прежнему будет один диск с ошибками, поэтому затронутые файлы нельзя будет восстановить.
Но если вы запустите команду zpool replace для диска с ошибками, например, scsi-SATA_ST3000DM001-1CH_W1F1G1H7, вы восстановите ту же информацию, что и в предыдущем случае, но у вас будет шанс восстановить остальное, если вы сможете чтобы снова оживить диск OFFLINE.
ИМО это лучший способ продолжить. ZFS будет знать, какие данные исправны с диска с ошибками, и Resilver будет работать немного быстрее, так как ZFS читает с большего количества дисков. Кроме того, в случае, если другие диски имеют ошибки в блоке полосы, но диск, возвращающий ошибки, имеет данные в хорошем состоянии, вы сможете восстановить эту полосу, поэтому вы не потеряете данные при ошибках на другом диске, но нет в других, включая scsi-SATA_ST3000DM001-1CH_W1F1G1H7. Так что не делайте ОФЛАЙН scsi-SATA_ST3000DM001-1CH_W1F1G1H7.ZFS очень хорошо использует информацию с неисправных дисков, поэтому она сделает все возможное.
Если ваш пул состоял из дисков емкостью 14 ТБ и на каждом из них было заполнено по 10 ТБ, перенос этих 10 ТБ на новый диск займет менее 24 часов. (Диски ~200 МБ / с, 5,4 тыс. об / мин) Ваши диски — Seagate Barracuda ST3000DM001 3000 ГБ / 3 ТБ 7,2 КБ 6,0 Гбит / с SATA Desktop, поэтому повторное резервирование диска при условии, что пул заполнен на 100%, займет менее 8 часов.
Ваше здоровье