Вопрос или проблема
Я заменил кэш-диски на своём сервере ZFS, и всё кажется в порядке:
$ zpool status
pool: storage
state: ONLINE
scan: scrub repaired 0B in 1 days 09:44:40 with 0 errors on Tue Jan 21 17:50:23 2025
config:
NAME STATE READ WRITE CKSUM
storage ONLINE 0 0 0
.
.
.
cache
sdu ONLINE 0 0 0
sdw ONLINE 0 0 0
Однако, когда я пытаюсь запросить l2arc с помощью arcstat
, я получаю это сообщение об ошибке:
$ arcstat -f l2hits
No L2ARC Here
l2hits
Incompatible field specified! -- ['l2hits']
Usage: arcstat [-havxp] [-f fields] [-o file] [-s string] [interval [count]]
. . .
Возможно, я упускаю что-то очевидное, но не могу понять что именно, и интернет в этом вопросе не очень помогает.
Я использую zfs-2.1.16-1 на Rocky Linux 9.5.
Теперь кажется, что проблема решена, хотя я точно не знаю как. Единственное, что я сделал, это zpool clear
, чтобы удалить остаточные ошибки записи из-за вышедшего из строя и заменённого диска в одном из raidz в пуле storage
. Я бы сказал, что это не должно повлиять на cache/l2arc, но я действительно не знаю…
.
Ответ или решение
Для начала, давайте разберемся с теоретической частью вопроса о том, что собой представляет L2ARC в ZFS и какие функции он выполняет. L2ARC (Level 2 Adaptive Replacement Cache) – это механизм кэширования в файловой системе ZFS, который служит для расширения памяти кэша за счет использования более медленных накопителей, таких как SSD. Основная цель L2ARC – увеличить объем доступного кэша поверх основной оперативной памяти (ARC — Adaptive Replacement Cache), что позволяет ускорить доступ к данным, особенно в системах с большой нагрузкой на чтение.
Теперь перейдем к конкретному примеру из вашего вопроса. Вы упомянули, что заменили диски в кэше вашего ZFS сервера, и хотя состояние пула отображается как ONLINE, команда arcstat -f l2hits
возвращает ошибку "No L2ARC Here". Это может указывать на несколько возможных сценариев:
-
Конфигурация L2ARC. Убедитесь, что ваши SSD-диски действительно добавлены в кэш ZFS и определены как устройства L2ARC. Иногда после физической замены устройств необходимо выполнить дополнительные действия по настройке через команду
zpool add
, чтобы они были правильно распознаны в качестве L2ARC. -
Архитектурные или системные ограничения. Проверьте, поддерживают ли используемая версия ZFS и операционная система Rocky Linux 9.5 все необходимые функции для работы L2ARC. Хотя это маловероятно, иногда несовместимости между версиями ПО могут вызывать подобные ошибки.
-
Инициализация или прогрев L2ARC. После добавления новых дисков в кэш L2ARC может потребоваться некоторое время для инициализации и начала эффективной работы. В этот период он может не кэшировать данные до тех пор, пока не заполнится определенными данными от ARC.
-
Проблемы с кэшированием данных. Если ранее были зафиксированы ошибки записи, как вы и упомянули, было проведено
zpool clear
, это могло потенциально повлиять на механизм кэширования или требовать обновления состояния пула. В некоторых случаях сброс ошибок может побудить систему пересчитать или пересобрать индексы для L2ARC.
Теперь, как данные аспекты могут быть применены на практике:
-
Проверка конфигурации. Сначала убедитесь, что устройства действительно добавлены в кэш через
zpool status
. Это должно выглядеть как "cache" с правильными устройствами, которые вы добавили. -
Логи системы. Проверьте системные логи и логи ZFS на наличие сообщений об ошибках или предупреждениях, касающихся ваших действий по замене дисков или последующей инициализации L2ARC.
-
Мониторинг производительности. Используйте инструменты мониторинга производительности, такие как
zpool iostat
, чтобы проследить любые изменения в производительности системы. Это может помочь понять, начинает ли L2ARC работать или есть какие-то узкие места. -
Ограничения версий. Если проблема сохраняется, изучите возможность перехода на более новую версию ZFS или обновление ОС, особенно если текущая конфигурация не поддерживает все необходимые функции.
Таким образом, решение проблемы "No L2ARC Here" может лежать как в поверхностных аспектах, таких как ошибки во время конфигурации, так и более глубоко, требуя детального анализа журнала работы системы и изучения возможностей используемого ПО. Убедившись, что все настройки выполнены корректно и что внедрение L2ARC полностью поддерживается вашей версией ZFS и ОС, вы значительно повысите шансы на успешную интеграцию и память кэша в вашей системе.