TrueNAS Sharing: Настройка SMB, NFS, AFP, iSCSI, WebDAV | Гайд 2024 | AdminWiki

TrueNAS Sharing: Полное руководство по настройке общих ресурсов

19 января 2026 9 мин. чтения #iSCSI #nas #nfs #sharing #smb #storage #truenas #webdav #zfs
Содержание статьи

Представь, что ты развернул мощный сервер хранения на TrueNAS. Диски отформатированы в ZFS, пулы созданы... но как теперь предоставить доступ к данным пользователям, виртуальным машинам или контейнерам? Именно здесь на сцену выходит TrueNAS Sharing — механизм, который превращает твое хранилище из "черного ящика" в полноценный сетевой ресурс. Давай разберем все протоколы, настройки и подводные камни, чтобы ты мог делиться файлами как профи.

Что такое Sharing в TrueNAS и зачем он нужен?

Sharing (общий доступ) — это функционал TrueNAS Core/SCALE, позволяющий "экспортировать" твои наборы данных (datasets) в сеть по различным сетевым протоколам. Без него твои данные будут заперты внутри системы. Основные цели:

  • Доступ для пользователей: Пользователи Windows/Mac/Linux подключаются к общим папкам.
  • Интеграция с инфраструктурой: Виртуальные машины (KVM, VMware) используют iSCSI LUN'ы как диски. Контейнеры монтируют NFS-шары.
  • Удаленный доступ и синхронизация: WebDAV для доступа через веб или синхронизации календарей/контактов.
Важно: Sharing всегда работает поверх Dataset'ов (или ZVOL'ов для iSCSI). Сначала создай Dataset с нужными параметрами (компрессия, квоты), а потом настрой на нем общий доступ.

Сравнение протоколов общего доступа

Выбор протокола зависит от ОС клиентов и задач. Вот сравнительная таблица:

Протокол Основное применение Клиенты Производительность Безопасность
SMB/CIFS Общие папки для пользователей Windows, macOS, Linux Высокая Аутентификация AD/LDAP, шифрование (SMB3)
NFS Общий доступ для Linux/Unix, виртуализация Linux, VMware, контейнеры Очень высокая IP-based, Kerberos (NFSv4)
iSCSI Блочное хранилище для ВМ и БД VMware, Hyper-V, Windows/Linux хосты Максимальная (блочный доступ) CHAP-аутентификация
WebDAV Веб-доступ, CalDAV/CardDAV Браузеры, macOS Finder, клиенты CalDAV Средняя (HTTP-оверхед) HTTPS, базовая аутентификация
AFP (устарел) Для старых Mac OS (до 10.9) macOS Legacy Средняя Базовая

Пошаговая настройка SMB Sharing (для Windows и не только)

SMB — самый популярный протокол. Давай создадим общую папку для отдела разработки.

Шаг 1: Подготовка Dataset и разрешений (ACL)

Сначала создай Dataset. В веб-интерфейсе: Storage → Datasets → ADD → Dataset.

bash
# Пример: Создание dataset через CLI (альтернатива GUI)
zfs create tank/data/dev_team
zfs set acltype=posixacl tank/data/dev_team # Для Windows-like ACL
zfs set casesensitivity=mixed tank/data/dev_team

Настрой ACL (Access Control List). В GUI: Нажми на Dataset → Edit Permissions. Выбери тип ACL "SMB" и настрой:

  • Владелец (Owner): root (или специальный пользователь).
  • Группа (Group): dev (предварительно создай группу в Credentials → Local Groups).
  • Права для группы: Full Control (Read, Write, Execute).
  • Примени рекурсивно ко всем файлам и подпапкам.

Шаг 2: Создание SMB Share

Иди в Sharing → Windows Shares (SMB) → ADD.

  • Path: Выбери созданный dataset (например, /mnt/tank/data/dev_team).
  • Name: dev_share (это имя папки в сети).
  • Purpose: Выбери шаблон (например, "Multi-protocol (SMB + NFS)" для гибкости).
  • Advanced Options:
    • Enable ACL inheritance: Да.
    • Enable SMB3 encryption: Да (для безопасности).
    • Allow Guest Access: Нет (если не нужно анонимное подключение).
    • Auxiliary Parameters: Здесь можно добавить тонкие настройки из smb.conf.
config
# Пример дополнительных параметров SMB (Auxiliary Parameters)
veto files = /.snapshot/.windows/.mac/.zfs/
delete veto files = yes
spotlight = yes # Для индексации поиска на Mac
vfs objects = catia fruit streams_xattr shadow_copy_zfs
fruit:encoding = native

Шаг 3: Подключение с клиента

На Windows: открой Проводник → \\IP_ВАШЕГО_TRUENAS\dev_share. Используй логин/пароль пользователя TrueNAS или доменные учетные данные, если настроена интеграция с Active Directory.

Опасно: Не используй учетную запись root для SMB-доступа из соображений безопасности. Создавай отдельных пользователей или настраивай интеграцию с Active Directory/LDAP.

Настройка NFS Sharing для Linux и виртуализации

NFS идеален для монтирования в Linux-системы и гипервизоры типа VMware ESXi.

Шаг 1: Создание NFS Share

Sharing → Unix Shares (NFS) → ADD.

  • Path: Укажи путь к dataset.
  • Network: Укажи подсеть клиентов (например, 192.168.1.0/24).
  • Advanced Options:
    • Enabled NFSv4: Да (более безопасный и современный).
    • Maproot User/Group: root/wheel (с осторожностью!). Лучше использовать Mapall User для привязки к конкретному непривилегированному пользователю.
    • Security: sys (для Kerberos выбери krb5, krb5i, krb5p).

Шаг 2: Монтирование на клиенте Linux

bash
# Установи NFS-клиент (если нет)
sudo apt install nfs-common  # Debian/Ubuntu
sudo yum install nfs-utils   # RHEL/CentOS

# Создай точку монтирования
sudo mkdir -p /mnt/nas/dev_team

# Смонтируй NFS-шару (NFSv4)
sudo mount -t nfs4 truenas.local:/mnt/tank/data/dev_team /mnt/nas/dev_team

# Для автоматического монтирования при загрузке добавь в /etc/fstab
truenas.local:/mnt/tank/data/dev_team  /mnt/nas/dev_team  nfs4  rw,hard,intr,noatime,timeo=300,retrans=3  0  0

Настройка iSCSI Sharing для блочного хранилища

iSCSI предоставляет не файловый, а блочный доступ, как будто к серверу подключен физический диск. Используется для ВМ и баз данных.

Шаг 1: Создание ZVOL (блочного устройства)

В Storage → Datasets нажми ADD, но выбери ZVOL (а не Dataset). Укажи размер (например, 100GiB).

Шаг 2: Настройка iSCSI Target

Иди в Sharing → Block Shares (iSCSI). Настройка состоит из нескольких вкладок:

  1. Target Global Configuration: Базовая конфигурация портала (IP и порт 3260).
  2. Portals: Создай портал, слушающий на IP твоего TrueNAS.
  3. Initiators Groups: Ограничь доступ по IP или имени инициатора (клиента). Можно оставить "ALL" для любого.
  4. Authorized Access: Настрой CHAP-аутентификацию (рекомендуется для безопасности).
  5. Targets: Создай сам Target (виртуальный SCSI-устройство).
  6. Extents: Создай Extent, указав путь к созданному ZVOL (например, /dev/zvol/tank/data/db_volume).
  7. Associated Targets: Свяжи Target и Extent.
bash
# Пример: Подключение iSCSI Target с Linux-клиента (Ubuntu)
# Установи инициатор
sudo apt install open-iscsi

# Обнаружь Target
sudo iscsiadm -m discovery -t st -p TRUENAS_IP

# Подключись (с CHAP-аутентификацией, если настроена)
sudo iscsiadm -m node -T iqn.2005-10.org.freenas.ctl:target_name -p TRUENAS_IP --login

# После подключения новый диск появится в системе (проверь lsblk)
lsblk

Настройка WebDAV Sharing для веб-доступа

WebDAV полезен для доступа к файлам через веб или как сетевая папка в macOS Finder.

Sharing → WebDAV Shares → ADD.

  • Path: Укажи dataset.
  • Name: webdav_share (будет частью URL).
  • Authentication Type: BASIC (или DIGEST).
  • Certificate: Выбери SSL-сертификат, если хочешь HTTPS (настоятельно рекомендуется!).
  • Permit All Users: Нет (явно укажи пользователей, которым разрешен доступ).

После создания активируй службу WebDAV в Services → WebDAV.

Типичные проблемы и их решение

1. "Доступ запрещен" в SMB

Причина: Несоответствие разрешений Windows (ACL) и Unix. Решение:

  • Убедись, что в ACL dataset'а пользователю или группе даны права на чтение/запись.
  • Проверь, что служба SMB запущена (Services → SMB).
  • В Advanced Options SMB-шары попробуй добавить: `ntlm auth = yes`.

2. Медленная скорость NFS

Причина: Неоптимальные настройки монтирования или сеть. Решение:

  • Используй опции монтирования `rw,hard,intr,noatime,rsize=65536,wsize=65536`.
  • Убедись, что сетевое соединение — гигабитное (1 Gbps) или выше.
  • Проверь, не включен ли sync=always на dataset (это замедляет запись).

3. iSCSI Target не виден клиенту

Причина: Брандмауэр или неправильная настройка Initiator Group. Решение:

  • Открой порт 3260/TCP на фаерволе TrueNAS и клиента.
  • В Initiator Group укажи корректный IP-адрес клиента или "ALL".
  • Перезапусти службу iSCSI: Services → iSCSI → Restart.

Часто задаваемые вопросы (FAQ)

Можно ли использовать один Dataset для нескольких типов Sharing (SMB и NFS одновременно)?

Да, это называется multi-protocol sharing. Но будь осторожен с разрешениями. Для лучшей совместимости:

  1. Используй тип ACL "SMB" на dataset.
  2. В настройках NFS используй опцию `Mapall User` и `Mapall Group`, указав непривилегированного пользователя (например, `nobody`).
  3. В SMB-шаре включи "Enable ACL inheritance".
Это позволит и Windows, и Linux клиентам работать с файлами, сохраняя права.

Как организовать резервное копирование общих ресурсов?

Используй встроенные снапшоты ZFS и репликацию.

  • Создай периодические снапшоты dataset'а (Storage → Snapshots).
  • Настрой репликацию на другой TrueNAS или удаленный сервер.
  • Для SMB можно включить теневое копирование (Previous Versions) через параметр `shadow:snapdir = .zfs/snapshot` в Auxiliary Parameters.

Как повысить безопасность Sharing?

  • SMB: Включи SMB3 encryption, отключи SMB1, используйте аутентификацию через Active Directory.
  • NFS: Ограничь доступ по IP (Network в настройках NFS share), рассмотри возможность использования NFSv4 с Kerberos (krb5p).
  • iSCSI: Обязательно настрой двустороннюю CHAP-аутентификацию.
  • WebDAV: Работай только через HTTPS (SSL), отключи BASIC-аутентификацию, если не используешь SSL.
  • Общее: Выдели для сервисов отдельную VLAN, используй фаервол.

Почему не стоит использовать корневой dataset для Sharing?

Корневой dataset (например, `tank`) содержит системные данные и метаданные ZFS. Создавая общий доступ на нем, ты рискуешь:

  1. Случайно удалить или повредить критичные для работы пула структуры.
  2. Усложнить управление квотами и снапшотами.
  3. Снизить производительность из-за смешивания пользовательских и системных операций ввода-вывода.
Всегда создавай отдельный дочерний dataset (например, `tank/data`, `tank/media`) для общих ресурсов.

Заключение

TrueNAS Sharing — это мощный и гибкий инструмент, который превращает твое ZFS-хранилище в универсальный сетевой ресурс. Ключ к успеху — понимание задачи: для пользовательских файлов выбирай SMB, для инфраструктуры Linux — NFS, для виртуальных машин — iSCSI. Всегда настраивай разрешения (ACL) до создания шары, используй отдельные dataset'ы под разные задачи и не забывай о безопасности (шифрование, аутентификация). Теперь у тебя есть полная картина — вперед, настраивать и делиться данными эффективно и безопасно!

Поделиться:
Сохранить гайд? В закладки браузера