Назад | Перейти на главную страницу

Linux ZFS не выполняет буферизацию записи в буфер записи (SLOG / ZIL)?

При вводе-выводе записи столбец журнала в 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 в наборе данных, чтобы заставить все операции записи вести себя так, как если бы они были синхронными.