Очистка данных - это метод исправления ошибок , который использует фоновую задачу для периодической проверки основной памяти или хранилища на наличие ошибок, а затем исправляет обнаруженные ошибки, используя избыточные данные в виде различных контрольных сумм или копий данных. Очистка данных снижает вероятность накопления единичных исправляемых ошибок, что приводит к снижению рисков появления неисправимых ошибок.
Целостность данных является первоочередной задачей при записи, чтении, хранении, передаче или обработке компьютерных данных в компьютерных операционных системах, а также в системах хранения и передачи данных компьютера. Однако лишь некоторые из существующих и используемых в настоящее время файловых систем обеспечивают достаточную защиту от повреждения данных . [1] [2] [3]
Чтобы решить эту проблему, очистка данных обеспечивает регулярную проверку всех несоответствий в данных и, в целом, предотвращение аппаратных или программных сбоев. Эта функция «очистки» обычно используется в памяти, дисковых массивах, файловых системах или ПЛИС в качестве механизма обнаружения и исправления ошибок. [4] [5] [6]
RAID [ править ]
При очистке данных RAID-контроллер может периодически читать все жесткие диски в RAID-массиве и проверять наличие дефектных блоков, прежде чем приложения смогут получить к ним доступ. Это снижает вероятность скрытого повреждения данных и потери данных из-за ошибок битового уровня. [7]
В средах Dell PowerEdge RAID функция «патрульное чтение» может выполнять очистку данных и профилактическое обслуживание . [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]
Файловые системы [ править ]
Btrfs [ править ]
Как файловая система с копированием при записи (CoW) для Linux , Btrfs обеспечивает изоляцию ошибок, обнаружение и исправление повреждений, а также очистку файловой системы. Если файловая система обнаруживает несоответствие контрольной суммы при чтении блока, она сначала пытается получить (или создать) хорошую копию этого блока с другого устройства - если используются методы его внутреннего зеркалирования или RAID. [16]
Btrfs может инициировать онлайн-проверку всей файловой системы, запустив задание очистки файловой системы, которое выполняется в фоновом режиме. Задание очистки сканирует всю файловую систему на предмет целостности и автоматически пытается сообщить и исправить любые сбойные блоки, которые оно обнаружит. [17] [18]
ZFS [ править ]
Функции ZFS, которая представляет собой объединенную файловую систему и диспетчер логических томов , включают проверку режимов повреждения данных , непрерывную проверку целостности и автоматическое восстановление. Sun Microsystems разработала ZFS с нуля, уделяя особое внимание целостности данных и защите данных на дисках от таких проблем, как ошибки микропрограммного обеспечения дисков и посторонние записи . [19]
ZFS предоставляет служебную программу восстановления, scrub
которая проверяет и устраняет скрытые повреждения данных, вызванные гниением данных и другими проблемами.
Память [ править ]
Благодаря высокой плотности интеграции современных компьютерных микросхем памяти , отдельные структуры ячеек памяти стали достаточно маленькими, чтобы быть уязвимыми для космических лучей и / или испускания альфа-частиц . Ошибки, вызванные этими явлениями, называются мягкими ошибками . Это может быть проблемой для памяти на основе DRAM и SRAM .
Очистка памяти выполняет обнаружение ошибок и исправление битовых ошибок в ОЗУ компьютера с использованием памяти ECC , других копий данных или других кодов обнаружения ошибок.
FPGA [ править ]
Очистка - это метод, используемый для перепрограммирования ПЛИС . Его можно использовать периодически, чтобы избежать накопления ошибок без необходимости их поиска в потоке битов конфигурации, что упрощает конструкцию.
В отношении очистки можно использовать множество подходов, от простого перепрограммирования FPGA до частичной реконфигурации. Самый простой метод очистки - это полностью перепрограммировать FPGA с некоторой периодической скоростью (обычно 1/10 расчетной скорости сбоя). Однако ПЛИС не работает в течение этого времени перепрограммирования порядка от микрометров до миллисекунд. Для ситуаций, когда такой тип прерывания недопустим, доступна частичная реконфигурация. Этот метод позволяет перепрограммировать ПЛИС, пока она еще работает. [20]
См. Также [ править ]
- Повреждение данных
- Обнаружение и исправление ошибок
- fsck - инструмент для проверки целостности файловой системы
- CHKDSK - аналог fsck, используемый в операционных системах Windows.
Ссылки [ править ]
- ^ «Проверка целостности файловой системы ZFS» . Руководство администратора Oracle Solaris ZFS . Oracle . Проверено 25 ноября 2012 года .
- ^ Виджаян Прабхакаран (2006). "ЖЕЛЕЗНЫЕ ФАЙЛОВЫЕ СИСТЕМЫ" (PDF) . Доктор философии компьютерных наук . Университет Висконсин-Мэдисон . Проверено 9 июня 2012 года .
- ^ «Паритет потерян и паритет восстановлен» .
- ^ «Анализ повреждения данных в стеке хранения» (PDF) .
- ^ «Влияние повреждения диска на СУБД с открытым исходным кодом» (PDF) .
- ^ "Baarf.com" . Baarf.com . Проверено 4 ноября 2011 года .
- ^ Ulf Troppens, Вольфганг Мюллер-Friedt, Rainer Erkens, Rainer Wolafka, Nils Haustein. Объяснение сетей хранения данных: основы и применение Fibre Channel SAN, NAS, ISCSI, InfiniBand и FCoE. Джон Вили и сыновья, 2009. стр.39.
- ^ «О контроллерах PERC 6 и CERC 6i» . Архивировано из оригинала на 2013-05-29 . Проверено 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 . Выложите резюме .
- ^ "sys / dev / pci / arcmsr.c - Контроллер SATA / SAS RAID от Areca Technology Corporation" . Перекрестная ссылка BSD . NetBSD . Выложите резюме .
- ^ «Администрирование RAID» . kernel.org . Проверено 20 сентября 2013 .
- ^ «Программный RAID и LVM: очистка данных» . archlinux.org . Проверено 20 сентября 2013 .
- ^ "Документация ядра Linux: Documentation / md.txt" . kernel.org . Архивировано из оригинала на 2013-09-21 . Проверено 20 сентября 2013 .
- ^ "btrfs Wiki: Возможности" . Проект btrfs . Проверено 20 сентября 2013 .
- ^ Бирман, Маргарет; Гриммер, Ленц (август 2012 г.). «Как я использую расширенные возможности Btrfs» . Проверено 20 сентября 2013 .
- ^ Coekaerts, Wim (2011-09-28). "btrfs scrub - исправляйте повреждения с помощью зеркальных копий, пожалуйста!" . Проверено 20 сентября 2013 .
- ^ Бонвик, Джефф (2005-12-08). «Сквозная целостность данных ZFS» . Проверено 19 сентября 2013 .
- ^ "Журнал Xcell, выпуск 50" (PDF) . ПЛИС на Марсе . Xilinx. 2004. с. 9 . Проверено 16 октября 2013 .
Внешние ссылки [ править ]
- Мягкие ошибки в электронной памяти