Как избежать потери данных из-за поврежденных секторов диска?

Как избежать потери данных из-за поврежденных секторов диска?

Как следует из названия, меня беспокоит, как мы можемизбежать потери данныхиз-за поврежденных секторов жесткого диска (механического HDD или SSD).

\Больше информации\

Вопрос хорошо определен. Вопрос заканчивается здесь. Позвольте мне попытаться предоставить больше информации. Отказ устройства хранения данных (аппаратный отказ, исключая вирусную штуковину в первую очередь) в основном делится на два типа.

  1. Полная неисправность диска. Любая механическая и/или электронная неисправность внутри диска делает диск недоступным.

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

\RAID не может избежать потери данных из-за плохих секторов\

RAID1, RAID5 или RAID6 могут избежать потери данных из-за случая 1. Однако, насколько мне известно, стандартный RAID не будет регулярно сканировать и проверять все данные, что означает, что RAID не может избежать потери данных из-за случая 2. Например, в случае зеркалирования RAID1. Если на первом диске появляется плохой сектор, файл на первом диске повреждается. В это время у нас все еще есть зеркальный файл на втором диске.Но мы не знаем, есть ли плохой сектор.Таким образом, массив RAID1 не будет указывать на неисправность диска и не запустит восстановление. Затем время идет и идет, появляется все больше и больше плохих секторов. (Любое оборудование изнашивается, это всего лишь вопрос времени.) Определенно есть вероятность, что точный зеркальный бит / зеркальная часть на втором диске также пострадает от плохого сектора. В это время больше нет избыточных копий.Затронутые данные будут утеряны навсегда.Аналогично, мы не заметим этого сразу. Мы узнаем об этой потере только до тех пор, пока не получим доступ к этой части данных.

\ZFS-это(файловая система с контрольной суммой)решение?\

Из-за опасений, что я хочу избежать потери данных из-за плохих секторов, я начал изучать штуку с контрольной суммой файла. Похоже, что не многие популярные файловые системы включают контрольную сумму каждого файла. У меня есть некоторые знания о Gentoo Linux. Поэтому я планирую использовать ZFS на Gentoo Linux.

Идеи ZFS о том, что «Управление хранилищем должно быть простым» и «Избыточность должна обрабатываться файловой системой» хороши. Мне кажется, что если на диске ZFS появляется плохой сектор, он его тихо восстановит (не так ли? Пока не могу этого подтвердить). Если на диске ZFS появляется все больше и больше плохих секторов, означает ли это, что размер этого диска ZFS уменьшится? Если нет, как я могу заметить, когда появляется плохой сектор? Как узнать, когда на жестком диске слишком много плохих секторов, и мне придется заменить его другим здоровым жестким диском? Думаю, мне нужны какие-то мониторы ZFS и утилиты ZFS, о которых я не могу найти много информации в Интернете.

решение1

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

Использование какого-либо типа RAID звучит как хороший способ иметь по крайней мере одну резервную копию, но дополнительные копии — это отличная идея, по крайней мере по очевидной причине, чтобы не хранить все копии в одном здании, комнате и машине. Онлайн-резервные копии — это хороший способ позволить кому-то другому беспокоиться о выходе из строя своих дисков.

Чтобы убедиться, что данные по-прежнему читабельны, просто сохраняйте свои собственные контрольные суммы и регулярно их проверяйте. Подойдет базовая CRC, например, cksumиз основных утилит GNU, или даже md5sum или shaXsum (хотя они, по моему скромному мнению, излишни только для плохих секторов).

[И сохраните несколько копий файлов контрольных сумм по понятным причинам.]

Даже если ZFS имеет свои собственные контрольные суммы, вам все равно следует хранить свою собственную копию, чтобы проверять копии, хранящиеся в других файловых системах или в сети. И я предполагаю, что вам или ZFS придется читать все файлы, чтобы проверять их в любом случае (я думаю, это называетсяОчистка данных ZFS, явно вызываемый с помощью zpool scrub).


Также интересно учесть, что многие диски (особенно флэш-накопители) выполняют собственное управление плохими блоками (и выравнивание износа), заменяя плохие и пограничные блоки новыми запасными, и все это (в основном) происходит тихо, без вашего или операционной системы даже без вашего уведомления. Я как-то читал о картах флэш-памяти, как из 16 ГБ памяти было достаточно хорошей памяти только для создания карты на 512 МБ или 1 ГБ.

решение2

Относительно RAID 5/6

RAID 5/6 имеет данные четности.

Если он может восстановить весь диск, то наверняка данных четности достаточно для восстановления одного сектора.

В худшем случае вы обнаружите поврежденный сектор, замените весь диск, и теперь все восстановлено.

Итак, если RAID 5/6 обнаруживает плохой сектор, ондолженавтоматически использовать данные четности для его восстановления.

В графическом интерфейсе моего RAID-контроллера Adaptec даже есть специальная опция «проверить/исправить».

Также обратите вниманиеконтрольные суммы,sha1,sha2, CRC и т. д. предлагают только возможность обнаружить, когда произошла ошибка. Он не предлагает никакой возможности исправить их.

Связанный контент