Как избежать потери данных из-за поврежденных секторов диска?
Как следует из названия, я обеспокоен тем, как мы можем избежать потери данных из-за поврежденных секторов жесткого диска (механического жесткого диска или SSD).
\ Дополнительная информация \
Вопрос хорошо определен. Вопрос заканчивается здесь. Позвольте мне попытаться предоставить больше информации. Отказ устройства хранения (аппаратный сбой, исключая сначала вирусную вещь) в основном делится на два типа.
Ошибка всего диска. Что-то механически и / или электронно идет не так внутри диска, делает диск недоступным.
Плохой сектор. Только определенная часть является ошибкой. Весь диск работает нормально. Если к определенному плохому сектору нет доступа / проверки, мы никогда не узнаем, что есть плохой сектор.
\ RAID не может избежать потери данных из-за плохих секторов \
RAID1, RAID5 или RAID6 могут избежать потери данных из-за случая 1. Однако, насколько мне известно, стандартный RAID не будет регулярно сканировать и проверять все данные, что означает, что RAID не может избежать потери данных из-за случая 2. Например, в корпус зеркала RAID1. Если плохой сектор появляется на первом диске, файл поврежден на первом диске. В то время у нас все еще есть зеркальный файл на втором диске. Но мы не знаем, что есть плохой сектор. Таким образом, массив RAID1 не будет указывать на сбой диска и не будет запускать восстановление. Потом время идет, появляется все больше и больше плохих секторов. (Каждое оборудование изношено, это всего лишь вопрос времени.) Существует определенная вероятность того, что точная зеркальная битовая / зеркальная часть на втором диске также страдает от плохого сектора. В настоящее время больше нет избыточных копий. Пострадавшие данные будут потеряны навсегда. Точно так же мы не заметим это сразу. Мы только обнаружим эту потерю, пока не получим доступ к этой части данных.
\ Является ли ZFS (файловая система с контрольной суммой) решением? \
Из-за опасения, что я хочу избежать потери данных из-за плохих секторов, я начал изучать контрольную сумму файла. Кажется, что не многие популярные файловые системы включают контрольную сумму каждого файла. У меня есть некоторые знания в Gentoo Linux. Таким образом, я планирую использовать ZFS на Gentoo Linux.
Идеи ZFS о том, что "Администрирование хранилища должно быть простым" и "Избыточность должна обрабатываться файловой системой", хороши. Мне кажется, что если на диске ZFS возникнет плохой сектор, он будет восстанавливать его в молчании (не так ли? Я пока не могу это подтвердить). Если на диске ZFS появляется все больше и больше поврежденных секторов, означает ли это, что размер этого диска ZFS будет уменьшаться? Если нет, как я могу заметить, когда происходит плохой сектор? Как узнать, когда поврежденных секторов жесткого диска слишком много, и я должен заменить его другим здоровым жестким диском? Я предполагаю, что мне нужны некоторые мониторы ZFS и утилиты ZFS, которые я не могу найти много информации в Интернете.
2 ответа
Учитывая, что вы предполагаете, что хранение данных в конечном итоге всегда будет выходить из строя, вам просто нужно будет хранить более одной копии данных, а иногда проверять и убедиться, что вы можете успешно прочитать данные.
Использование некоторого типа RAID звучит как хороший способ иметь по крайней мере одну резервную копию, но дополнительные копии - отличная идея, по крайней мере, по очевидной причине не хранения всех копий в одном здании, помещении и машине. Резервное копирование в онлайн-хранилище - это хороший способ позволить кому-то еще беспокоиться о сбое их дисков.
Чтобы убедиться, что данные все еще читаемы, просто сохраняйте свои контрольные суммы и регулярно проверяйте их. Основной CRC будет работать, как cksum
из основных утилит GNU, или даже md5sum или shaXsum (хотя они излишни только для плохих секторов IMO).
[И сохраните несколько копий файлов контрольной суммы по понятным причинам.]
Даже если ZFS имеет свои собственные контрольные суммы, вы все равно должны хранить свою собственную копию, чтобы проверять копии, хранящиеся в других файловых системах или в сети. И я предполагаю, что вам или ZFS все равно придется читать все файлы, чтобы проверить их (я считаю, что это называется очисткой данных ZFS, явно вызываемой с помощью zpool scrub
).
Интересно также учитывать, что многие накопители (особенно флеш-накопители) самостоятельно управляют плохими блоками (и выравниванием износа), заменяя плохие и маргинальные блоки новыми запасными частями, причем все (в основном) молча, даже если вы или операционная система даже не заметили. Однажды я читал о картах флэш-памяти, как из 16 ГБ памяти было достаточно хорошей памяти, чтобы сделать карту 512 МБ или 1 ГБ.
Что касается RAID 5/6
RAID 5/6 имеет данные четности.
Если он может восстановить весь диск, конечно, достаточно данных о четности, чтобы восстановить один сектор.
В худшем случае вы обнаружите, что поврежденный сектор заменит весь диск, и теперь все восстановлено.
Поэтому, если RAID 5/6 обнаруживает неисправный сектор, он должен автоматически использовать данные четности для его восстановления.
Мой RAID-контроллер Adaptec даже имеет специальную опцию "проверить / исправить" в графическом интерфейсе.
Также обратите внимание, что контрольные суммы sha1,sha2, CRC и т. Д. Позволяют определять только, когда произошла ошибка. Он предлагает любую возможность исправить их.