ZFS :: bitrot (in checksum)

As far as I know, zfs uses checksums to protect against data loss caused by bitrot.

But what happens if a bitrot affects the data of the checksum. Then, does zfs think the data is corrupt or think the checksum is corrupt?

Thx 4 any answer,

tbol

0
задан 29 July 2016 в 15:36
2 ответа

Я нашел правильное объяснение:

Пул хранения ZFS - это на самом деле просто дерево блоков. ZFS обеспечивает изоляцию сбоев между данными и контрольной суммой, сохраняя контрольную сумму каждого блока в указателе родительского блока, а не в самом блоке. Каждый блок в дереве содержит контрольные суммы для всех своих дочерних элементов, поэтому весь пул проходит самопроверку. [Уберблок (корень дерева) - особый случай, потому что у него нет родителя; подробнее о том, как мы справляемся с этим, в другом сообщении.]

Когда данные и контрольная сумма не совпадают, ZFS знает, что контрольной сумме можно доверять, потому что сама контрольная сумма является частью какого-то другого блока, который на один уровень выше в дереве, и этот блок уже подтвержден.

Есть только одна точка отказа: если корневой узел в дереве сорбирован, но должно быть решение для этого

Прочтите @ https://blogs.oracle. com / bonwick / entry / zfs_end_to_end_data

1
ответ дан 4 December 2019 в 12:22

ZFS обеспечивает изоляцию ошибок между данными и контрольной суммой, сохраняя контрольная сумма каждого блока в указателе родительского блока, а не в самом блоке. Каждый блок в дереве содержит контрольные суммы для всех своих дочерних элементов, поэтому весь пул проходит самопроверку.

Сквозная целостность данных ZFS

Редактировать: потому что вы спросили о родителе:

Наблюдение 1 : ZFS обнаруживает все повреждения [на диске] из-за использование контрольных сумм. В наших экспериментах по инжекции ошибок по всем метаданным и данным мы обнаружили, что неверные данные никогда не возвращался пользователю, потому что ZFS смог обнаружить все повреждения из-за использования контрольных сумм в блоке указатели. Родительские контрольные суммы используются в ZFS для проверки целостности всех доступных на диске блоков. В единственное исключение - уберблоки, у которых нет родительского блочные указатели. Обнаружены повреждения уберблока за счет использования контрольных сумм внутри самого уберблока.

Сквозная целостность данных для файловых систем: пример использования ZFS

Вы можете проверить это сами. Вставьте случайный блок в середину устройства ZFS и посмотрите, сохраняет ли он целостность.

Обратите внимание, что в следующем разделе этой статьи они показывают, что повреждения памяти остались незамеченными.

2
ответ дан 4 December 2019 в 12:22

Теги

Похожие вопросы