обнаружение и исправление ошибок на уровне программного обеспечения для необработанного хранилища

обнаружение и исправление ошибок на уровне программного обеспечения для необработанного хранилища

Если я правильно понимаю хранение данных, все устройства хранения в некоторой степени ненадежны, поэтому у большинства есть уровни абстракции на аппаратном уровне. Жесткие диски используют коррекцию ошибок. Если сектор считывается и ECC обнаруживает ошибку (будь то исходная запись или случайная перестановка битов с течением времени), ECC используется для попытки восстановления после ошибки, и этот сектор потенциально помечается как плохой и переназначается в резервный секторный пул. Однако некоторые аппаратные устройства не имеют ничего из этого, особенно такие вещи, как флэш-память во встроенных системах, к которой осуществляется прямой доступ без слоя проверки ошибок на аппаратном уровне между ней и ядром.

Предоставляет ли Linux методы, такие как специальные файловые системы или логические тома (под логическими томами я подразумеваю такие вещи, как cryptsetup или lvm2), которые могут напрямую работать с такими "сырыми" устройствами, выполняя все контрольные суммы, переназначение плохих секторов, исправление ошибок и т. д. на программном уровне? Будет ли метод проверки ошибок зависеть от типа или свойств сырого хранилища?

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