При вводе-выводе записи столбец журнала в zpool iostat -v
не показывает никакой активности ЗИЛ, никогда. Это приводит к увеличению времени ожидания при записи данных на диск (иногда более 80 мс во время конкуренции).
capacity operations bandwidth
pool alloc free read write read write
---------------- ----- ----- ----- ----- ----- -----
storage 1.88T 2.09T 3 3.01K 512K 39.3M
mirror 961G 1.05T 0 1.97K 128K 20.8M
mpathf - - 0 393 0 20.8M
mpathg - - 0 391 128K 20.6M
mirror 961G 1.05T 2 1.04K 384K 18.5M
mpathi - - 1 379 256K 21.1M
mpathj - - 0 281 128K 18.3M
logs - - - - - -
/zlog/zilcache 0 15.9G 0 0 0 0
cache - - - - - -
mpathk 232G 8M 1 0 130K 0
mpathl 232G 8M 1 0 130K 0
---------------- ----- ----- ----- ----- ----- -----
На моем устройстве / zlog / zilcache никогда не было операций ввода-вывода. Это файл на очень быстрой вспышке. Я могу писать и читать его, когда удаляю его из хранилища ZFS, но ZFS, похоже, его игнорирует.
Устройство выглядит доступным:
pool: storage
state: ONLINE
scan: scrub repaired 0 in 19h31m with 0 errors on Wed Nov 19 07:39:03 2014
config:
NAME STATE READ WRITE CKSUM
storage ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
mpathf ONLINE 0 0 0
mpathg ONLINE 0 0 0
mirror-1 ONLINE 0 0 0
mpathi ONLINE 0 0 0
mpathj ONLINE 0 0 0
logs
/zlog/zilcache ONLINE 0 0 0
cache
mpathk ONLINE 0 0 0
mpathl ONLINE 0 0 0
errors: No known data errors
Есть ли способ настроить ZFS для кеширования записей на устройство журналов для более быстрого подтверждения?
Спасибо
Полагаю, вы неправильно понимаете предназначение ЗИЛа. Вы описываете это как кэш записи, а это не так. Отсутствие активности на ZIL может быть нормальным поведением в зависимости от того, что работает на вашей машине.
С ЗИЛа ничего не читается, это устройство только на запись. Единственное исключение может произойти во время импорта пула после сбоя.
Записи в него выполняются только в том случае, если приложения выполняют синхронную запись. Регулярные операции ввода-вывода, такие как перемещение файлов, не используют ZIL.
Вы можете установить sync=always
в наборе данных, чтобы заставить все операции записи вести себя так, как если бы они были синхронными.