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 изменит серийный номер и прочее для этого диска) и определить диск как исходный элемент?

Любая другая информация, которая может помочь мне не сделать это хуже?

0
задан 3 June 2015 в 22:59

2 ответа

Повторно импортируйте пул, только для чтения, и сделайте резервное копирование, в то время как это является все еще монтируемым. У Вас есть два дефектных диска в пуле с одним уровнем защиты четности, и если второй диск также дает сбой офлайн, то проблема становится намного хуже. Постарайтесь не спать или подвергать циклу включения и выключения питания аппаратные средства, пока у Вас не будет резервного копирования.

OpenZFS может распознать данные по восстановленному диску независимо от того, изменяет ли изменение PCB дисковый порядковый номер. Если восстановленный диск вновь появляется в системе с различным именем/dev, то просто повторно импортируют пул. Перепосеребрение должно произойти на восстановленном диске, прежде чем второй сбойный диск сможет быть заменен, который является, когда фатальная ошибка, вероятно, произойдет.

Примечание, что это может быть отказом 'ванны', потому что диски, кажется, от того же производственного пакета. Если так, затем ожидайте дополнительные отказы.

0
ответ дан 3 June 2015 в 22:59

Я вижу, что это сообщение очень старое, однако я добавлю предложенное решение на случай, если кто-то еще столкнется с той же проблемой.

Что вам нужно сделать, так это запустить команду 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 для настольных ПК, поэтому повторное резервирование диска при условии, что пул заполнен на 100%, займет менее 8 часов.

Ура

0
ответ дан 2 January 2021 в 20:33

Другие вопросы по тегам:

Похожие вопросы: