Intereting Posts

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

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

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