Очистка данных
Очистка данных — это метод исправления ошибок , который использует фоновую задачу для периодической проверки основной памяти или хранилища на наличие ошибок, а затем исправляет обнаруженные ошибки, используя избыточные данные в виде различных контрольных сумм или копий данных. Очистка данных снижает вероятность накопления единичных исправимых ошибок, что приводит к снижению риска возникновения неисправимых ошибок.
Целостность данных является первоочередной задачей при записи, чтении, хранении, передаче или обработке данных в компьютерных операционных системах , а также в компьютерных системах хранения и передачи данных . Однако лишь немногие из существующих и используемых в настоящее время файловых систем обеспечивают достаточную защиту от повреждения данных . [1] [2] [3]
Чтобы решить эту проблему, очистка данных обеспечивает регулярную проверку всех несоответствий в данных и, в целом, предотвращение сбоев оборудования или программного обеспечения. Эта функция «очистки» обычно встречается в памяти, дисковых массивах, файловых системах или FPGA как механизм обнаружения и исправления ошибок. [4] [5] [6]
RAID [ править ]
Благодаря очистке данных контроллер RAID может периодически считывать все жесткие диски в массиве RAID и проверять наличие дефектных блоков, прежде чем приложения смогут получить к ним фактический доступ. Это снижает вероятность скрытого повреждения данных и потери данных из-за ошибок на уровне битов. [7]
В RAID-средах Dell PowerEdge функция, называемая «патрульное чтение», позволяет выполнять очистку данных и профилактическое обслуживание . [8]
В OpenBSD bioctl(8)
Утилита позволяет системному администратору контролировать эти патрульные чтения через BIOCPATROL
ioctl на /dev/bio
псевдоустройство ; по состоянию на 2019 год эта функция поддерживается в некоторых драйверах устройств для контроллеров LSI Logic и Dell, включая mfi(4)
начиная с OpenBSD 5.8 (2015) и mfii(4)
начиная с OpenBSD 6.4 (2018). [9] [10]
В FreeBSD и DragonFly BSD патрулем можно управлять с помощью RAID-контроллера. специальной утилиты mfiutil(8)
начиная с FreeBSD 8.0 (2009 г.) и 7.3 (2010 г.). [11] Реализация из FreeBSD использовалась разработчиками OpenBSD для добавления поддержки патрулирования в их общую структуру bio(4) и утилиту bioctl без необходимости использования отдельной утилиты для конкретного контроллера.
В NetBSD в 2008 году структура bio(4) из OpenBSD была расширена за счет поддержки проверок согласованности, которая была реализована для /dev/bio
псевдо-устройство под BIOCSETSTATE
Команда ioctl с параметрами start и stop ( BIOC_SSCHECKSTART_VOL
и BIOC_SSCHECKSTOP_VOL
, соответственно); по состоянию на 2019 год это поддерживается только одним драйвером — arcmsr(4)
. [12]
Linux MD RAID , как программная реализация RAID , делает доступными проверки согласованности данных и обеспечивает автоматическое исправление обнаруженных несоответствий данных. Такие процедуры обычно выполняются путем настройки еженедельного задания cron . Техническое обслуживание осуществляется путем выдачи операций проверки , ремонта или простоя каждому из проверяемых устройств MD. Статусы всех выполненных операций, а также общие статусы RAID всегда доступны. [13] [14] [15]
Файловые системы [ править ]
Бтрфс [ править ]
Будучи копирования при записи (CoW) файловой системой для Linux , Btrfs обеспечивает изоляцию ошибок, обнаружение и исправление повреждений, а также очистку файловой системы. Если файловая система обнаруживает несоответствие контрольной суммы при чтении блока, она сначала пытается получить (или создать) хорошую копию этого блока с другого устройства – если используются его методы внутреннего зеркалирования или RAID. [16]
Btrfs может инициировать онлайн-проверку всей файловой системы, запуская задание очистки файловой системы, которое выполняется в фоновом режиме. Задание очистки сканирует всю файловую систему на целостность и автоматически пытается сообщить и исправить любые поврежденные блоки, обнаруженные на этом пути. [17] [18]
ZFS [ править ]
Возможности ZFS, комбинированной файловой системы и диспетчера логических томов , включают проверку на предмет повреждения данных , непрерывную проверку целостности и автоматическое восстановление. Компания Sun Microsystems разработала ZFS с нуля, уделяя особое внимание целостности данных и защите данных на дисках от таких проблем, как ошибки встроенного ПО диска и фантомная запись . [ не удалось пройти проверку ] [19]
ZFS предоставляет утилиту восстановления под названием scrub
который исследует и устраняет скрытое повреждение данных, вызванное гниением данных и другими проблемами.
Память [ править ]
Из-за высокой плотности интеграции современных компьютерных микросхем памяти отдельные структуры ячеек памяти стали достаточно маленькими, чтобы быть уязвимыми для космических лучей и/или излучения альфа-частиц . Ошибки, вызванные этими явлениями, называются мягкими ошибками . Это может быть проблемой для памяти на основе DRAM и SRAM .
Очистка памяти выполняет обнаружение и исправление битовых ошибок в оперативной памяти компьютера с использованием памяти ECC , других копий данных или других кодов исправления ошибок .
ПЛИС [ править ]
Очистка — это метод, используемый для перепрограммирования FPGA . Его можно использовать периодически, чтобы избежать накопления ошибок без необходимости их поиска в битовом потоке конфигурации, что упрощает проектирование.
Для очистки можно использовать множество подходов: от простого перепрограммирования FPGA до частичной реконфигурации. Самый простой метод очистки — полностью перепрограммировать FPGA с некоторой периодичностью (обычно 1/10 от расчетной частоты сбоев). Однако FPGA не работает в течение этого времени перепрограммирования, порядка микросекунд или миллисекунд. В ситуациях, когда прерывание такого типа недопустимо, возможна частичная реконфигурация. Этот метод позволяет перепрограммировать FPGA, пока он еще работает. [20]
См. также [ править ]
- Повреждение данных
- Деградация данных
- Обнаружение и исправление ошибок
- fsck — инструмент для проверки целостности файловой системы
- CHKDSK — аналог fsck, используется в Windows . операционных системах
Ссылки [ править ]
- ^ «Проверка целостности файловой системы ZFS» . Руководство по администрированию файловой системы Oracle Solaris ZFS . Оракул. Архивировано из оригинала 31 января 2013 года . Проверено 25 ноября 2012 г.
- ^ Виджаян Прабхакаран (2006). «ЖЕЛЕЗНЫЕ ФАЙЛОВЫЕ СИСТЕМЫ» (PDF) . Доктор философии в области компьютерных наук . Университет Висконсин-Мэдисон. Архивировано (PDF) из оригинала 29 апреля 2011 г. Проверено 9 июня 2012 года .
- ^ Андрей Крюков; Лакшми Н. Байравасундарам; Гарт Р. Гудсон; Киран Шринивасан; Рэнди Телен; Андреа К. Арпачи-Дюссо; Ремзи Х. Арпачи-Дюссо (2008). «Паритет потерян и паритет восстановлен» . В Мэри Бейкер; Эрик Ридель (ред.). FAST'08: Материалы 6-й конференции USENIX по файловым технологиям и технологиям хранения данных . Архивировано из оригинала 26 августа 2020 г. Проверено 28 мая 2021 г.
- ^ «Анализ повреждения данных в стеке хранения» (PDF) . Архивировано (PDF) из оригинала 15 июня 2010 г. Проверено 26 ноября 2012 г.
- ^ «Влияние повреждения диска на СУБД с открытым исходным кодом» (PDF) . Архивировано (PDF) из оригинала 15 июня 2010 г. Проверено 26 ноября 2012 г.
- ^ «Баарф.com» . Baarf.com. Архивировано из оригинала 5 ноября 2011 года . Проверено 4 ноября 2011 г.
- ^ Ульф Троппенс, Вольфганг Мюллер-Фридт, Райнер Эркенс, Райнер Волафка, Нильс Хауштайн. Объяснение сетей хранения: основы и применение Fibre Channel SAN, NAS, ISCSI, InfiniBand и FCoE. Джон Уайли и сыновья, 2009. стр.39.
- ^ «О контроллерах PERC 6 и CERC 6i» . Архивировано из оригинала 29 мая 2013 г. Проверено 20 июня 2013 г.
Функция Patrol Read создана в качестве превентивной меры для обеспечения работоспособности физического диска и целостности данных. Patrol Read сканирует и устраняет потенциальные проблемы на настроенных физических дисках.
- ^ «/sys/dev/ic/mfi.c — LSI Logic и RAID-контроллер Dell MegaRAID SAS» . Перекрестная ссылка BSD . OpenBSD .
- ^ «/sys/dev/pci/mfii.c — RAID-контроллер LSI Logic MegaRAID SAS Fusion» . Перекрестная ссылка BSD . OpenBSD .
- ^ «mfiutil — Утилита для управления контроллерами LSI MegaRAID SAS» . Перекрестная ссылка BSD . FreeBSD .
- «mfiutil — Утилита для управления контроллерами LSI MegaRAID SAS». Страницы руководства FreeBSD .
- ^ «sys/dev/pci/arcmsr.c — RAID-контроллер SATA/SAS Areca Technology Corporation» . Перекрестная ссылка BSD . НетБСД .
- ^ «РЕЙД-Администрация» . ядро.орг . Архивировано из оригинала 21 сентября 2013 г. Проверено 20 сентября 2013 г.
- ^ «Программный RAID и LVM: очистка данных» . Archlinux.org . Архивировано из оригинала 21 сентября 2013 г. Проверено 20 сентября 2013 г.
- ^ «Документация ядра Linux: Documentation/md.txt» . ядро.орг . Архивировано из оригинала 21 сентября 2013 г. Проверено 20 сентября 2013 г.
- ^ «Btrfs Wiki: Возможности» . Проект btrfs. Архивировано из оригинала 25 апреля 2012 г. Проверено 20 сентября 2013 г.
- ^ Бирман, Маргарет; Гриммер, Ленц (август 2012 г.). «Как я использую расширенные возможности Btrfs» . Архивировано из оригинала 2 января 2014 г. Проверено 20 сентября 2013 г.
- ^ Кукартс, Вим (28 сентября 2011 г.). «Почистите btrfs – исправьте повреждения с помощью зеркальных копий, пожалуйста!» . Архивировано из оригинала 21 сентября 2013 г. Проверено 20 сентября 2013 г.
- ^ Бонвик, Джефф (08 декабря 2005 г.). «Сквозная целостность данных ZFS» . Архивировано из оригинала 6 мая 2017 г. Проверено 19 сентября 2013 г.
- ^ «Журнал Xcell, выпуск 50» (PDF) . FPGA на Марсе . Ксилинкс. 2004. с. 9. Архивировано (PDF) из оригинала 30 августа 2019 г. Проверено 16 октября 2013 г.