Записываются ли в кэш-память в память и данные ZIL через коммиты TXG?
В настоящее время ZFS имеет интервал 5 секунд для выполнения TXG (транзакций групповых транзакций) в кэш-памяти записи в памяти. Как и через какое время данные ZIL записываются на ротационный носитель, скажем, из SSD SLOG?
Команды ZIL также происходят через 5 секунд (конечно, как и когда позволяет загрузка системы?)
1 ответ
Не существует такого понятия, как "ЗИЛ коммит". Фактически блоки всегда загрязняются в кеше памяти при запросе на запись, независимо от того, является ли он синхронным или асинхронным. ZIL просто добавляет устойчивость для синхронных запросов на запись.
Таким образом, если у вас есть отдельное устройство журналирования ZFS для вашего пула, вы можете заметить, что оно загружается только при записи, данные не считываются с него при нормальных обстоятельствах. Только если у вас нечистое завершение работы вашего пула (например, из-за аппаратного сброса или сбоя питания), журнал намерений читается и применяется к данным пула по мере загрузки пула.
Загрязненные блоки сбрасываются при фиксации TXG, тип операции не имеет большого значения.