Skip to main content

Зачем нужен NFS в кластерной конфигурации

Зачем нужен NFS в кластерной конфигурации Назначение NFS (Network File System) — сетевой протокол для совместного доступа к файловой системе (RFC 7530 для v4). В кластере Принтум используется как общее хранилище заданий печати. Версии NFS Версия Статус Ключевые особенности NFSv3 Широко используется Stateless, UDP/TCP, порт 2049 NFSv4 Рекомендуется Stateful, только TCP, порт 2049, ACL, Kerberos NFSv4.1/4.2 Современный pNFS, параллельный доступ, улучшенная производительность Принцип работы NFS-сервер экспортирует директорию: /exports/printum-jobs NFS-клиенты (узлы ПринтМенеджера) монтируют её: mount -t nfs nfs-server:/exports/printum-jobs /var/printum/jobs Оба клиента видят одну и ту же файловую систему: ПринтМенеджер 1: /var/printum/jobs/ ←─── один каталог ───→ ПринтМенеджер 2 Почему задания нужно хранить централизованно В Active-Active кластере любой узел может получить запрос от любого пользователя. Без общего хранилища: Пользователь отправил задание через ПринтМенеджер 1. Он подходит к МФУ и его запрос попадает на ПринтМенеджер 2. ПринтМенеджер 2 не видит задания — release-печать невозможна. С NFS: Задание сохраняется в общую директорию. Любой узел читает задание и отправляет его на МФУ. Роль NFS в Active-Active кластере Принтум ┌──────────────────────────────────┐ │ NFS-сервер │ │ /exports/printum-jobs │ └──────────────┬───────────────────┘ │ NFS mount ┌──────────┴──────────┐ ▼ ▼ ПринтМенеджер 1 ПринтМенеджер 2 /var/printum/jobs /var/printum/jobs (одна и та же физическая директория) Файлы заданий создаются и читаются через единую точку монтирования. HAProxy определяет, какой узел обработает запрос release, но оба могут прочитать задание. NFS-сервер должен быть отказоустойчивым сам по себе (например, HA NFS с DRBD, Pacemaker или Ceph). Производительность и надёжность Аспект Рекомендация Сеть Выделенная сеть хранилищ (10 Гбит/с) или отдельный VLAN NFS-опции монтирования rsize=1048576,wsize=1048576,hard,intr,timeo=600 Блокировки (locks) NFSv4 использует встроенные блокировки; NFSv3 требует rpc.lockd Отказ NFS При недоступности NFS (hard mount) операции I/O зависают — критично для ПринтМенеджер Рекомендуемая версия NFS — 4 (nfsvers=4). Допустимые значения nfsvers: 3, 4, 4.2. Стандартные опции монтирования: addr=NFS_ADDR,nolock,soft,rw . Для явного указания версии: addr=NFS_ADDR,nolock,soft,rw,nfsvers=4 — задаётся в переменной DRIVER_OPTS_O в файле .env ПринтМенеджера.