Обновление OpenZFS 2.1.14 и 2.2.2 с устранением ошибки, приводящей к повреждению файлов
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Сформированы корректирующие выпуски проекта OpenZFS 2.1.14 и 2.2.2, развивающего реализацию файловой системы ZFS для Linux и FreeBSD. В обновлениях устранена проблема в коде проверки согласованности кэша dnode, приводящая к повреждению данных в файлах, содержавших пустые области, при их копировании после внесения изменений.
Изначально проблему попытались устранить в версии 2.2.1, но исправление оказалось неэффективно. Ошибка долгое время оставалась незамеченной и начала проявляться после изменений, внесённых в утилиту "cp" в пакете coreutils 9.x. Предполагается, что в Red Hat Enterprise Linux и дистрибутивах на его основе проблема не проявляется, так как в RHEL 9 используется пакет coreutils 8.x с иной логикой работы утилиты "cp".
Проблема проявляется при использовании утилит копирования файлов, умеющих определять и оптимизировать пустые области в файлах. Повреждение может возникнуть в нагруженных ФС при копировании файла, если операция выполнена почти сразу после изменения и часть данных остаётся только в dirty-кэше и ещё не сброшена на диск.
Для оптимизации работы с пустыми областями в файлах, OpenZFS, начиная с выпуска 0.6.2, поддерживает операции
SEEK_HOLE и SEEK_DATA, позволяющие пропустить пустую область файла при чтении с диска. Распознавание пустых областей и сохранение информации о них производится только после сброса на диск всех остающихся в кэше данных, связанных с файлом. Для инициирования сброса в OpenZFS имеется проверка, которая оценивает присутствие в кэше несохранённых данных и производит принудительный сброс информации на диск, необходимый для использования SEEK_HOLE и SEEK_DATA.
К сожалению проверка оказалась неполной и при некотором стечении обстоятельств данные о состоянии сброса определялось не верно и на диске находилась старая информация о содержимом файла, если запрос попадал в небольшое временное окно между двумя операциями сброса данных из кэша. Операции чтения, оптимизирующие загрузку пустых областей, в этот момент могли пропустить чтение части данных, посчитав их пустыми, в то время как работающая с файлом программа до этого могла внести в пустые области изменения. В результате применение утилиты "cp" могло привести к созданию копии, содержащей пустые области там, где их не было в оригинальном файле.
===========
Источник:
OpenNet.RU
===========
Похожие новости
- Главная ссылка к новости (https://github.com/openzfs/zfs...)
- OpenNews: В OpenZFS выявлена ошибка, которая может привести к повреждению файлов
- OpenNews: Релиз OpenZFS 2.2, реализации ZFS для Linux и FreeBSD
- OpenNews: В инсталляторе Ubuntu 23.10 будет возвращена поддержка ZFS
- OpenNews: Ошибка в патчах FreeNAS, вызывающая скрытое повреждение данных в ZFS
- OpenNews: Уязвимость в OpenZFS, нарушающая обработку прав доступа во FreeBSD
Похожие новости:
- В OpenZFS выявлена ошибка, которая может привести к повреждению файлов
- Релиз OpenZFS 2.2, реализации ZFS для Linux и FreeBSD
- В инсталляторе Ubuntu 23.10 будет возвращена поддержка ZFS
- Релиз OpenZFS 2.1 с поддержкой dRAID
- [Open source, Системное администрирование, Хранение данных, Софт] RAIDz добавит возможность добавлять диски
- [*nix, Лайфхаки для гиков] Mein Konfig: экскурсия по dotfiles (часть 2)
- [*nix, Лайфхаки для гиков] Mein Konfig: экскурсия по dotfiles
- [IT-инфраструктура, Сетевые технологии, DevOps, Софт] Работа с пакетами в изолированной среде. Использование zfs datasets и jail’ов
- [Системное администрирование] Таков путь! Эволюция бэкапов в Timeweb: от rsync до ZFS
- Ошибка в патчах FreeNAS, вызывающая скрытое повреждение данных в ZFS
Теги для поиска: #_openzfs, #_zfs
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 23-Ноя 14:33
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Сформированы корректирующие выпуски проекта OpenZFS 2.1.14 и 2.2.2, развивающего реализацию файловой системы ZFS для Linux и FreeBSD. В обновлениях устранена проблема в коде проверки согласованности кэша dnode, приводящая к повреждению данных в файлах, содержавших пустые области, при их копировании после внесения изменений. Изначально проблему попытались устранить в версии 2.2.1, но исправление оказалось неэффективно. Ошибка долгое время оставалась незамеченной и начала проявляться после изменений, внесённых в утилиту "cp" в пакете coreutils 9.x. Предполагается, что в Red Hat Enterprise Linux и дистрибутивах на его основе проблема не проявляется, так как в RHEL 9 используется пакет coreutils 8.x с иной логикой работы утилиты "cp". Проблема проявляется при использовании утилит копирования файлов, умеющих определять и оптимизировать пустые области в файлах. Повреждение может возникнуть в нагруженных ФС при копировании файла, если операция выполнена почти сразу после изменения и часть данных остаётся только в dirty-кэше и ещё не сброшена на диск. Для оптимизации работы с пустыми областями в файлах, OpenZFS, начиная с выпуска 0.6.2, поддерживает операции SEEK_HOLE и SEEK_DATA, позволяющие пропустить пустую область файла при чтении с диска. Распознавание пустых областей и сохранение информации о них производится только после сброса на диск всех остающихся в кэше данных, связанных с файлом. Для инициирования сброса в OpenZFS имеется проверка, которая оценивает присутствие в кэше несохранённых данных и производит принудительный сброс информации на диск, необходимый для использования SEEK_HOLE и SEEK_DATA. К сожалению проверка оказалась неполной и при некотором стечении обстоятельств данные о состоянии сброса определялось не верно и на диске находилась старая информация о содержимом файла, если запрос попадал в небольшое временное окно между двумя операциями сброса данных из кэша. Операции чтения, оптимизирующие загрузку пустых областей, в этот момент могли пропустить чтение части данных, посчитав их пустыми, в то время как работающая с файлом программа до этого могла внести в пустые области изменения. В результате применение утилиты "cp" могло привести к созданию копии, содержащей пустые области там, где их не было в оригинальном файле. =========== Источник: OpenNet.RU =========== Похожие новости
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 23-Ноя 14:33
Часовой пояс: UTC + 5