В каждой ветке форума по NAS рано или поздно возникает один и тот же вопрос: действительно ли добавление кэша SSD помогает? Честный ответ зависит от того, перечитывает ли ваша рабочая нагрузка одни и те же файлы достаточно часто, чтобы заполнить кэш, и можете ли вы измерить коэффициент попаданий, чтобы это доказать. Большинство люди добавляют SSD, не видят очевидных улучшений и винят в этом оборудование.
На этой неделе мы перестроили настройки кэша на трёх разных платформах NAS, чтобы протестировать, какие инструменты действительно помогают. Эта статья охватывает семь приложений, которые либо реализуют кэширование SSD, либо настраивают его, либо измеряют, приносит ли оно хоть какую-то пользу. Выберите те, которые подходят для вашей ОС NAS и вашей рабочей нагрузки, перед тем как потратиться на дополнительную флэш-память.
На что обратить внимание при выборе инструмента кэширования SSD
Неправильная настройка кэша делает записи медленнее, а чтение не быстрее. Несколько критериев отделяют полезные инструменты от пустых надежд.
- Кэширование метаданных vs кэширование данных. Кэши метаданных (ZFS L2ARC в режиме метаданных, Synology кэш SSD только для метаданных) ускоряют список каталогов и поиск файлов без необходимости больших SSD. Кэши данных кэшируют содержимое самих файлов и требуют намного больше места, чтобы быть полезными.
- Чтение vs запись vs оба. Кэширование записи рискует потерей данных при сбое питания без зеркалирования. Кэширование чтения безопасно, но помогает только при перечитывании.
- Видимость коэффициента попаданий. Кэш с коэффициентом попадания 2% ничего не делает. Вам нужно видеть это число.
- Поведение прогрева. L2ARC в старых версиях ZFS теряет всё при перезагрузке. Постоянный L2ARC (OpenZFS 2.0+) его сохраняет.
- Выравнивание износа и мониторинг выносливости. Кэши SSD изнашиваются быстрее, чем SSD данных. Отслеживание TBW имеет значение.
Быстрое сравнение
| Приложение | Лучше всего для | Платформы | Бесплатный план | Начальная цена/месяц | Рейтинг |
|---|---|---|---|---|---|
| TrueNAS SCALE | ZFS L2ARC + SLOG | Linux (appliance) | Полностью бесплатно | Бесплатно (Enterprise доступна) | 4.7 |
| Unraid | Кэш пул для пользовательских акций | Linux | Пробная версия | Около $50 разовый Basic | 4.6 |
| Synology DSM | Кэш SSD для потребительского NAS | Оборудование Synology | Включено | N/A (оборудование) | 4.5 |
| OpenZFS CLI | Точный контроль кэширования | Linux, macOS, FreeBSD | Полностью бесплатно | Бесплатно | 4.6 |
| bcachefs | Современное блочное кэширование | Linux 6.7+ | Полностью бесплатно | Бесплатно | 4.2 |
| LVM Cache | Существующий уровень блоков Linux | Linux | Полностью бесплатно | Бесплатно | 4.1 |
| Netdata | Мониторинг коэффициента попаданий кэша | Linux, macOS, Windows | Бесплатный уровень | Около $5/месяц Cloud | 4.6 |
Приложения
1. TrueNAS SCALE — Лучше всего для кэширования на основе ZFS с графическим интерфейсом
TrueNAS SCALE предоставляет как L2ARC (кэш чтения), так и SLOG (синхронный журнал записи) в качестве операций первого класса с графическим интерфейсом. Добавьте устройство NVMe, назначьте его пулу, и статистика ARC появится на панели управления. График коэффициента попадания показывает вам в течение дня, стоит ли кэш этого места.
Постоянный L2ARC выживает при перезагрузках с OpenZFS 2.0, поэтому проблема прогрева устранена. SCALE поставляется с разумными настройками по умолчанию для рабочих нагрузок, интенсивных по метаданным или по данным.
Где это не работает: L2ARC требует достаточно ARC (основного кэша ОЗУ) для его отслеживания. Недостаточное ОЗУ делает L2ARC контрпродуктивным. Практическое правило: 1 ГБ ОЗУ на 40 ГБ L2ARC.
Цены:
- Бесплатно: Все функции
- Платно: Коммерческая поддержка iX Systems для Enterprise сборок
Платформы: Linux (работает как выделенная ОС appliance)
Загрузить: TrueNAS SCALE
Итог: Выбор по умолчанию, если вы хотите кэширование ZFS без редактирования файлов конфигурации. Выберите L2ARC только для метаданных для малых SSD, выделенное зеркало SLOG для рабочих нагрузок с интенсивной синхронной записью.
2. Unraid — Лучше всего для кэшей пула пользовательских акций
Unraid делает кэширование иначе: вместо кэша на уровне блоков, он использует быстрые SSD как зону выгрузки для записей, которые запланированный движок позже сбрасывает в массив. Кэширование чтения происходит неявно, потому что недавно написанные файлы остаются в кэше до запуска движка.
Релиз 7.x добавил несколько именованных кэш пулов, поэтому вы можете посвятить один NVMe для appdata (контейнеры Docker), другой для образов виртуальных машин и третий для записи медиа.
Где это не работает: Не истинный кэш чтения для холодных данных. Файлы, написанные не недавно и не в appdata, не получают преимущества. Потери пула кэша могут потерять записи в полёте, если не зеркалированы.
Цены:
- Бесплатно: 30-дневная пробная версия
- Платно: Около $50 разовый Basic, $110 Plus, $250 Pro (пожизненные лицензии; новые уровни подписки существуют как опция)
Платформы: Linux (выделенный appliance)
Загрузить: Unraid
Итог: Лучше всего для пользователей Docker и виртуальных машин. Модель именованного пула означает, что каждая рабочая нагрузка получает свой собственный слот кэша, что избегает проблемы “кэш полон одного”.
3. Synology DSM — Лучше всего для кэширования потребительского NAS
DSM на любом Synology с M.2 слотами поддерживает кэш чтения SSD и кэш чтения-записи из коробки. Мастер Storage Manager проводит вас через создание кэша только для метаданных (маленькие SSD, большое влияние на операции каталога) или полного кэша данных (большие SSD, помогает повторным чтениям).
Инструмент Cache Advisor наблюдает вашу рабочую нагрузку неделю и говорит вам, действительно ли добавление кэша поможет перед тем как вы купите SSD.
Где это не работает: Заблокировано на драйверах Synology в некоторых моделях (DSM 7.2+). Cache Advisor точен только если ваша рабочая нагрузка в течение испытательной недели совпадает с вашим обычным использованием.
Цены:
- Бесплатно: Включено с DSM
- Платно: N/A
Платформы: Оборудование Synology NAS
Загрузить: Включено с Synology DSM
Итог: Если вы уже владеете Synology с M.2 слотами, запустите Cache Advisor перед тратой денег. Это спасает от ловушки “$100 SSD не помог”.
4. OpenZFS CLI — Лучше всего для точного управления
Для всего, что абстрагирует графический интерфейс TrueNAS, командная строка OpenZFS позволяет вам настраивать вручную. arc_summary выводит коэффициент попадания ARC, zpool iostat -v показывает задержку по каждому устройству, и zfs get all раскрывает каждый параметр включая l2arc_write_max, l2arc_write_boost и l2arc_headroom.
Для L2ARC только для метаданных установите secondarycache=metadata на наборе данных. Кэш использует около 10% места, которое потребовалось бы полному кэшу данных для того же рабочего набора.
Где это не работает: Крутая кривая обучения. Неправильные настройки могут повредить производительность больше, чем вообще отсутствие кэша.
Цены:
- Бесплатно: Открытый исходный код
- Платно: Нет
Платформы: Linux, macOS, FreeBSD, illumos
Загрузить: OpenZFS
Итог: Используйте это для последних 10% настройки после того, как TrueNAS или DSM сделает первые 90%.
5. bcachefs — Лучше всего современное блочное кэширование на Linux
bcachefs был объединён в ядро Linux в 6.7 и предлагает модель кэширования ближе к ZFS, но построенную на современных примитивах Linux. Вы можете назначить SSD и HDD файловой системе и позволить bcachefs автоматически продвигать горячие данные на быстрое хранилище, по файлам если вы установите флаг.
Репликация и сжатие тоже по файлам, что полезно для NAS со смешанными рабочими нагрузками (архивы резервных копий сжимаются и кэшируются менее агрессивно чем ежедневные рабочие файлы).
Где это не работает: Новее чем ZFS, поэтому инструменты восстановления тоньше. Дистрибутивы NAS сообщества (TrueNAS, Unraid) официально его еще не поддерживают.
Цены:
- Бесплатно: Открытый исходный код
- Платно: Нет
Платформы: Linux 6.7 и позже
Загрузить: bcachefs
Итог: Выберите это если вы строите свой собственный NAS из стандартного Linux и хотите многоуровневое хранилище без требований к памяти ZFS. Подождите год если вы хотите стабильность уровня appliance.
6. LVM Cache — Лучше всего для существующих настроек LVM
LVM cache превращает существующий SSD в кэш writeback или writethrough перед более медленным томом LVM. Он использует dm-cache под капотом и интегрируется с любой файловой системой сверху.
Для Debian или Ubuntu NAS, который уже использует LVM для управления томами, добавление кэша - это три команды. Перестройка файловой системы не требуется.
Где это не работает: Встроенный мониторинг графического интерфейса отсутствует. Коэффициент попадания кэша требует чтения /proc или вывода dmsetup. Режим writeback рискует потерей данных при сбое кэша.
Цены:
- Бесплатно: Часть Linux
- Платно: Нет
Платформы: Linux
Загрузить: Включено с LVM2
Итог: Лучший выбор для стандартного NAS Linux, который уже использует LVM. Пропустите если вы используете ZFS или Btrfs; они имеют встроенное кэширование.
7. Netdata — Лучше всего для измерения помогает ли кэш
Netdata мониторит коэффициент попадания ZFS ARC, коэффициент попадания L2ARC, метрики dm-cache, статистику bcache и статистику Btrfs в одной панели управления. Он производит выборку в секунду и хранит месяцы истории.
Если вы добавили кэш SSD к вашему NAS и не можете определить помогает ли он, установите Netdata. В течение дня у вас есть график, который точно говорит как часто кэш обслуживает чтение вместо основного диска.
Где это не работает: Бесплатный уровень по узлам; мониторинг нескольких узлов требует Netdata Cloud (всё ещё бесплатно для личного использования). Кривая обучения какие из многих графиков имеют значение.
Цены:
- Бесплатно: Community edition, неограниченно
- Платно: Около $5/месяц Cloud team tier для расширенных оповещений
Платформы: Linux, macOS, Windows, FreeBSD
Загрузить: Netdata
Итог: Установите на любой NAS с кэшем. Число коэффициента попадания говорит вам в течение 48 часов стоит ли кэш оставлять.
Как выбрать правильный
Если вы хотите самый простой вариант: Synology или TrueNAS SCALE. Оба обрабатывают L2ARC и пулы кэша через графический интерфейс без файлов конфигурации.
Если вам нужна максимальная настройка: OpenZFS CLI на FreeBSD или Linux, наложенный на TrueNAS для графического интерфейса где возможно.
Если вы на бюджете: LVM cache на стандартном Ubuntu Server с маленьким NVMe. Бесплатно, без лицензии, работает с любым оборудованием.
Если вы продвинутый пользователь который хочет многоуровневое хранилище: bcachefs. Новейший, самый гибкий, наименее испытанный в боевых условиях.
Если вы уже пробовали добавить кэш и это не помогло: установите Netdata перед покупкой другого SSD. Метрики обычно показывают рабочий набор уже в ОЗУ, или рабочная нагрузка не перечитывает.
Часто задаваемые вопросы
Какая лучшая свободная установка кэширования NAS SSD? TrueNAS SCALE для полного опыта appliance, LVM cache для самодельного Linux NAS. Оба бесплатны без требуемой лицензии.
Всегда ли добавление кэша SSD ускоряет NAS? Нет. Если ваша рабочная нагрузка пишет один раз и никогда не перечитывает, или читает рабочий набор который уже находится в ОЗУ, кэш ничего не делает. Измеряйте с помощью Netdata или статистики ZFS ARC в течение недели перед тратой.
Должен ли я использовать кэш чтения или кэш чтения-записи? Кэш чтения безопасен и дешевле. Кэш чтения-записи нужно зеркалировать (два SSD) чтобы выжить сбой устройства. Если у вас нет специфических потребностей задержки записи, начните с чтения.
Сколько SSD мне нужно для L2ARC? Практическое правило: в 5-10 раз ваш активный рабочий набор. Для L2ARC только для метаданных, 1-2% общего размера пула достаточно. Кэш L2ARC чрезмерного размера расходует накладные расходы управления кэшем.
Какие приложения кэширования NAS работают с Btrfs? Btrfs не имеет встроенного кэширования SSD. Используйте LVM cache или dm-cache под томом Btrfs и мониторьте с помощью модуля dm-cache Netdata.
Быстро ли изнашиваются кэши SSD? Кэши записи изнашиваются быстрее всего, особенно SLOG на ZFS. Выберите SSD предприятия с высоким рейтингом TBW и мониторьте выносливость с помощью smartctl или Netdata. Кэши чтения изнашиваются с нормальной скоростью.