Введение: кворум в TrueNAS SCALE HA и защита от split-brain
Кворум в TrueNAS SCALE HA - это механизм, который определяет, какой узел имеет право продолжить работу при потере связи в кластере. Он нужен, чтобы при failover активным оставался только один контроллер и не возникал split-brain, когда два узла одновременно получают доступ к общему ZFS pool.
Кворум решает проблему через принцип большинства голосов. В типовой схеме 2 узла + 3-й голос роль quorum device выполняет отдельный третий участник. Когда узлы теряют связь, право на работу получает тот, кто сохранил доступ к quorum device. Второй узел блокируется и переходит в режим ожидания. Это защищает общий пул ZFS от параллельной записи и снижает риск повреждения данных. Возможности HA зависят от версии TrueNAS SCALE и выбранной схемы, поэтому перед внедрением проверьте поддержку конкретного quorum device в своей конфигурации.
В статье разберем, как настроить кворум, проверить failover, выбрать конфигурацию ZFS и организовать мониторинг для превентивного обнаружения проблем.
Перед настройкой кластера стоит изучить пошаговое руководство по созданию отказоустойчивого кластера файлового хранилища на TrueNAS SCALE. Для проектирования дисковой и сетевой схемы также полезно руководство по проектированию отказоустойчивого NAS. Эти материалы дополняют описанные здесь принципы сценариями сбоев и готовыми командами.
Когда кворум нужен / когда не нужен
Кворум нужен в конфигурации с двумя узлами TrueNAS SCALE HA, общим ресурсом и автоматическим failover. Он особенно важен, если оба контроллера могут оставаться включенными при потере связи между ними: без третьего голоса каждый узел может ошибочно считать себя активным.
Кворум не нужен для автономного одноконтроллерного NAS, где нет автоматического переключения и общего ресурса между узлами. В этом случае отказоустойчивость ZFS, scrub, SMART и резервное копирование настраиваются отдельно. Если HA используется только для ручного переключения, необходимость quorum device определяется конкретной схемой и политикой эксплуатации.
Типовая схема кластера: 2 узла + 3-й голос
В базовой схеме два контроллера TrueNAS SCALE обслуживают общий ZFS pool, а третий участник предоставляет quorum device. Он участвует в принятии решения о состоянии кластера и не должен одновременно использоваться как обычный узел хранения данных.
- Два узла TrueNAS SCALE. Один работает в роли MASTER, второй находится в состоянии BACKUP и готов принять ресурсы.
- Общее хранилище. Оба контроллера имеют доступ к одному дисковому массиву и ресурсам HA.
- Третий голос. quorum device подтверждает, какой узел может продолжить работу после потери связи.
- Каналы связи. Отдельно проверяются каналы данных и heartbeat, а доступ к quorum device должен оставаться независимым от отказавшего узла.
Кворум-устройство не заменяет резервное копирование, репликацию и защиту от физической потери оборудования. Его задача - предотвратить одновременную работу двух узлов, а не сохранить копию данных.
Основы отказоустойчивости ZFS: пулы, vdev и уровни RAID-Z
Кворум и ZFS решают разные задачи: кворум выбирает активный узел, а конфигурация vdev определяет, сколько отказов дисков выдержит ZFS pool. Поэтому выбор Mirror или RAID-Z не заменяет quorum device и не защищает от split-brain.
ZFS объединяет диски в пулы, а пулы состоят из виртуальных устройств - vdev. Каждый vdev имеет свой уровень избыточности. От конфигурации vdev зависят допустимое количество отказов дисков, скорость восстановления и производительность. Базовые типы vdev: mirror, RAID-Z1, RAID-Z2, RAID-Z3 и dRAID.
Mirror - зеркало из двух или более дисков. Выдерживает отказ всех дисков, кроме одного. Скорость чтения высокая, запись ограничена скоростью самого медленного диска. Восстановление после замены диска занимает минимум времени, так как данные копируются с живого зеркала.
RAID-Z1 - аналог RAID-5, требует минимум три диска и выдерживает отказ одного. RAID-Z2 - аналог RAID-6, минимум четыре диска, выдерживает отказ двух. RAID-Z3 - минимум пять дисков, выдерживает отказ трех. dRAID - распределенный RAID-Z с фиксированной шириной полосы и ускоренным восстановлением на больших массивах.
Самовосстановление ZFS работает через контрольные суммы. При обнаружении несовпадения данных с контрольной суммой ZFS автоматически читает копию с другого диска и перезаписывает поврежденный блок. Этот механизм работает на всех типах vdev с избыточностью.
Зеркала против RAID-Z: сравнение надежности и производительности
Выбор между зеркалами и RAID-Z зависит от приоритетов: скорость восстановления, производительность или полезная емкость.
| Параметр | Mirror | RAID-Z1 | RAID-Z2 |
|---|---|---|---|
| Минимум дисков | 2 | 3 | 4 |
| Допустимые отказы | 1 (при 2 дисках) | 1 | 2 |
| Полезная емкость | 50% | 66-80% | 50-75% |
| Скорость записи | Высокая | Средняя | Низкая |
| Время восстановления | Минимальное | Высокое | Очень высокое |
| Гибкость расширения | Высокая (добавление пар) | Низкая (добавление vdev) | Низкая |
Зеркала выбирают для баз данных, виртуальных машин и задач с интенсивной записью. RAID-Z2 и RAID-Z3 - для архивного хранения и файловых серверов, где важна емкость и допустимость нескольких отказов. RAID-Z1 на дисках большого объема (от 4 ТБ) рискован: во время восстановления одного диска вероятность отказа второго высока.
Для детального разбора выбора конфигурации пула обратитесь к статье о сборке массива хранения TrueNAS. Там разобраны критерии выбора HBA-контроллера и расчет емкости.
Специальные vdev: ZIL, L2ARC и их роль в отказоустойчивости
ZIL (ZFS Intent Log) - журнал синхронной записи. По умолчанию ZIL хранится в самом пуле на обычных дисках. Для ускорения синхронных операций (NFS, iSCSI) можно вынести ZIL на отдельное устройство - SLOG. SLOG должен быть зеркалирован. Потеря SLOG при незеркалированной конфигурации приводит к потере последних синхронных транзакций и повреждению данных.
L2ARC - кэш чтения второго уровня. Расширяет оперативный кэш ARC за счет быстрых SSD или NVMe. L2ARC не влияет на отказоустойчивость: при потере устройства кэш просто очищается, данные в пуле остаются целыми. Для L2ARC зеркалирование не требуется.
Практический вывод: SLOG всегда зеркалируйте, L2ARC можно использовать без избыточности. Подробнее о настройке кэширования рассказано в руководстве по конфигурации ZFS-пула.
Кластеризация TrueNAS SCALE HA: архитектура High Availability
TrueNAS HA-кластер состоит из двух контроллеров, подключенных к общему дисковому массиву. Оба контроллера имеют доступ к одним и тем же дискам, но активным является только один. Второй находится в режиме ожидания и постоянно синхронизирует состояние. При отказе активного узла пассивный перехватывает управление и продолжает обслуживать клиентов.
Требования к оборудованию: идентичные контроллеры, общее хранилище с двумя портами SAS, выделенный канал heartbeat между узлами. TrueNAS SCALE реализует HA с использованием технологий кластеризации, встроенных в операционную систему. Для корректной работы требуется минимум три точки подключения: два канала данных и один канал управления.
Без quorum device HA-кластер из двух узлов уязвим для split-brain. Кворум-устройство добавляет третий голос, который решает, какой узел продолжит работу.
Настройка кворум-устройства (quorum device) в TrueNAS SCALE HA
Кворум-устройство в TrueNAS HA - это третий узел или сетевое хранилище, доступное обоим контроллерам. В этой роли используется именно согласованный quorum device, а не любой SMB/NFS-ресурс: проверьте требования конкретной версии TrueNAS SCALE. Настройка выполняется через веб-интерфейс в разделе System → Failover.
- Подготовьте третий узел с минимальной конфигурацией: достаточно одноплатного компьютера с сетевым интерфейсом и небольшим диском.
- Настройте статические IP-адреса для обоих контроллеров и кворум-устройства в одной подсети.
- В веб-интерфейсе активного узла перейдите в System → Failover → Quorum Device.
- Укажите IP-адрес кворум-устройства и метод аутентификации (SSH-ключ или пароль).
- Сохраните конфигурацию и проверьте статус командой
midclt call failover.status.
Проверка состояния кворума выполняется командой midclt call failover.status. Вывод должен показывать оба узла в состоянии MASTER и BACKUP, а кворум-устройство - в состоянии CONNECTED. Если quorum device недоступно, кластер может продолжать текущую работу, но риск split-brain возрастает; автоматический failover может быть ограничен или небезопасен. До восстановления состояния CONNECTED не выполняйте planned failover и не меняйте конфигурацию обоих узлов одновременно.
Тестирование отказоустойчивости: имитация сбоев
Тестирование кластера до ввода в эксплуатацию - обязательный этап. Проверьте четыре сценария:
- Отключение сетевого интерфейса активного узла. Пассивный узел должен перехватить управление в течение 5-30 секунд. Клиенты могут заметить кратковременную паузу, но данные останутся целыми.
- Перезагрузка активного узла. Пассивный узел становится активным, сервисы продолжают работать. После возврата перезагруженного узла он должен автоматически перейти в режим ожидания.
- Отказ диска в пуле. ZFS должна пометить диск как DEGRADED и продолжить работу. Замените диск и убедитесь, что resilver запустился автоматически.
- Потеря quorum device. Убедитесь, что состояние кворума меняется ожидаемым образом, а до восстановления доступа не выполняется незапланированный failover. После восстановления проверьте состояние CONNECTED.
После каждого теста проверяйте целостность данных: zpool status -v и zpool scrub. Если scrub находит ошибки, конфигурация требует доработки.
Симптомы и проверка split-brain, failover и quorum
| Симптом | Возможная причина | Что проверить |
|---|---|---|
| Оба узла показывают MASTER или клиенты получают двойной доступ к ресурсам | split-brain из-за потери heartbeat, ошибки в сетевой схеме или недоступного quorum device | midclt call failover.status, IP-адреса, каналы heartbeat и состояние quorum device |
| failover не происходит после отказа узла | quorum device не находится в состоянии CONNECTED или нарушена конфигурация Failover | System → Failover, вывод midclt call failover.status, сетевой доступ и правила переключения |
| quorum device недоступно | Ошибка IP-маршрутизации, сетевого интерфейса, SSH-доступа или самого третьего узла | IP-адрес, маршрут, SSH и доступность сервиса quorum device с обоих контроллеров |
| ZFS pool перешел в состояние DEGRADED | Отказ диска, кабеля, HBA или проблемы с питанием | zpool status -v, SMART-параметры, подключение диска и состояние HBA |
| resilver не запускается после замены диска | Диск не распознан, выбран неправильный диск или замена не подтверждена в конфигурации пула | zpool status, список Disks, состояние нового диска и сообщения TrueNAS |
Автоматическое восстановление после сбоев
ZFS автоматически восстанавливает данные при обнаружении ошибок контрольных сумм. Механизм самовосстановления работает на уровне блоков: поврежденный блок перезаписывается корректной копией с другого диска. Это происходит без вмешательства администратора.
Resilver - процесс восстановления данных на замененном диске. В отличие от традиционного RAID, ZFS resilver копирует только занятые блоки, а не весь диск. На пуле с 30% заполнением resilver занимает примерно 30% времени полного копирования. Скорость resilver можно регулировать через параметр zfs_resilver_delay.
TrueNAS автоматически переключает ресурсы при failover: IP-адреса, SMB-шары, NFS-экспорты и iSCSI-таргеты переносятся на резервный узел. Клиенты повторно подключаются к тем же адресам без изменения конфигурации.
Настройка scrub и SMART-мониторинга для превентивного обнаружения проблем
Scrub - полная проверка всех данных в пуле. Рекомендуемая периодичность: еженедельно для корпоративных систем, ежемесячно для домашних. Настройка в TrueNAS: Tasks → Scrub Tasks → Add. Выберите пул, расписание и порог уведомлений.
SMART-мониторинг выявляет проблемы дисков до их отказа. Настройка: Storage → Disks → выберите диск → Edit → S.M.A.R.T. Tests. Рекомендуемые тесты:
- Short self-test - ежедневно, занимает 2-5 минут.
- Long self-test - еженедельно, занимает несколько часов.
- Conveyance self-test - после установки нового диска.
Критичные параметры SMART: Reallocated_Sector_Ct, Current_Pending_Sector, Offline_Uncorrectable, Temperature_Celsius. Рост первых трех параметров - сигнал к замене диска. Температура выше 45°C для HDD и 60°C для SSD сокращает срок службы.
Мониторинг состояния пулов и оповещения
Встроенные средства TrueNAS показывают базовые метрики: занятость пула, активность дисков, состояние SMART. Для превентивного обнаружения проблем этого недостаточно. Настройте email-оповещения и внешний мониторинг.
Настройка email-оповещений в TrueNAS
TrueNAS отправляет уведомления о событиях: отказ диска, ошибки scrub, превышение порогов SMART, проблемы с failover. Настройка SMTP:
- Перейдите в System → Alert Settings → Email.
- Укажите SMTP-сервер, порт, логин и пароль.
- В поле From Email укажите адрес отправителя.
- В поле To Email укажите адрес получателя.
- Нажмите Send Test Email для проверки.
Выберите события для оповещения в System → Alert Settings → Alert Rules. Минимальный набор: CRITICAL и ALERT уровни. Информационные события можно отключить, чтобы не создавать шум.
Интеграция с Prometheus и Grafana для расширенного мониторинга
Для продвинутого мониторинга используйте node_exporter с ZFS collector. Node_exporter собирает метрики: состояние пулов, количество ошибок, занятость, скорость операций. Prometheus сохраняет метрики, Grafana визуализирует их.
Ключевые метрики для отслеживания:
zfs_pool_state- состояние пула: ONLINE, DEGRADED, FAULTED.zfs_pool_errors- количество ошибок чтения/записи/контрольных сумм.zfs_pool_free_bytes- свободное место в пуле.node_disk_smart_healthy- состояние SMART каждого диска.
Настройте алерты в Prometheus: состояние пула не ONLINE, ошибки контрольных сумм больше нуля, свободное место меньше 20%. Это позволит реагировать на проблемы до того, как они станут критичными.
FAQ по quorum device и failover в TrueNAS SCALE HA
Что будет при потере quorum device?
Потеря quorum device не означает немедленную потерю данных: активный узел может продолжить текущую работу. Но третий голос недоступен, поэтому автоматический failover может быть запрещен, ограничен или небезопасен в зависимости от версии TrueNAS SCALE и настроек. Восстановите сетевую доступность quorum device и проверьте состояние CONNECTED до выполнения переключения.
Можно ли использовать NAS или VM в роли кворума?
VM можно использовать, если она доступна обоим контроллерам по независимому сетевому пути и ее жизненный цикл не зависит от того же HA-кластера. NAS подходит только в том случае, если конкретная реализация TrueNAS SCALE поддерживает его как quorum device. Обычный SMB- или NFS-ресурс сам по себе не является кворумом. Не размещайте VM или NAS в том же failure domain, что и оба контроллера.
Как проверить статус quorum и failover?
Базовая проверка выполняется в System → Failover и командой midclt call failover.status. Для рабочего состояния ожидаются роли MASTER и BACKUP, а quorum device должен показывать CONNECTED. Состояние данных проверяйте отдельно командой zpool status -v: статус failover не подтверждает целостность ZFS pool.
Рекомендации по выбору конфигурации для различных сценариев
Выбор конфигурации зависит от бюджета, требований к доступности и квалификации администратора. Ниже - проверенные схемы для трех типовых сценариев.
Домашний NAS: баланс цены и надежности
Для домашнего использования HA-кластер избыточен. Рекомендуемая конфигурация: один узел TrueNAS, зеркало из двух дисков или RAID-Z1 из трех дисков. Обязательные настройки: еженедельный scrub, ежедневный SMART short self-test, email-оповещения о критических событиях.
Резервное копирование - главный приоритет. Даже идеальная конфигурация ZFS не защищает от случайного удаления файлов, пожара или кражи оборудования. Настройте резервное копирование на ZFS снимках и храните копии на отдельном устройстве.
Корпоративное хранилище: максимальная доступность
Для бизнеса простой стоит денег. Рекомендуемая конфигурация: HA-кластер TrueNAS из двух контроллеров, кворум-устройство, RAID-Z2 или зеркала из трех дисков. Обязательные компоненты:
- Кворум-устройство для предотвращения split-brain.
- Зеркалированный SLOG для синхронной записи.
- Полный мониторинг: SMART, scrub, Prometheus с алертами.
- Резервное копирование на отдельное хранилище.
- Регулярное тестирование отказоустойчивости.
Перед внедрением изучите руководство по проектированию отказоустойчивого NAS. Материал содержит проверенные конфигурации для корпоративного сегмента.
Для развертывания тестовой среды перед внедрением в продакшен подойдет облачная инфраструктура. Timeweb Cloud предоставляет виртуальные серверы, на которых можно отработать сценарии failover без риска для рабочих данных.
Заключение: ключевые выводы и дальнейшие шаги
Кворум в TrueNAS SCALE HA - обязательный элемент HA-кластера. Без него отказоустойчивая система из двух узлов рискует столкнуться с split-brain и повреждением данных. Добавьте quorum device, настройте тестирование сбоев и проверьте, что failover работает корректно.
Выбор конфигурации ZFS определяет надежность и производительность. Зеркала подходят для высоконагруженных систем, RAID-Z2 и RAID-Z3 - для архивного хранения. SLOG всегда зеркалируйте, L2ARC используйте без избыточности.
Мониторинг - последняя линия защиты. Настройте scrub, SMART-тесты и email-оповещения. Для корпоративных систем добавьте Prometheus и Grafana с алертами на критические метрики.
Дальнейшие шаги: оцените свои требования к доступности, выберите конфигурацию из описанных выше, разверните тестовый стенд и проверьте сценарии сбоев. После успешного тестирования переносите конфигурацию в продакшен.