Представь, что ты развернул мощный сервер хранения на TrueNAS, создал пулы ZFS, настроил RAID. Но теперь перед тобой стоит задача: как сделать эти данные доступными для пользователей в сети? Именно здесь на помощь приходят TrueNAS shares — общие ресурсы, которые превращают твое хранилище в полноценный сетевой диск. Давай разберем, как правильно создавать и настраивать эти ресурсы, чтобы избежать типичных ошибок с правами доступа.
Что такое TrueNAS Share и зачем он нужен?
В контексте TrueNAS, share (общий ресурс или "шар") — это точка доступа к данным, которую ты предоставляешь по сети. Это не физическая директория, а скорее "дверь" к ней, с определенными правилами доступа. Основные протоколы:
- SMB/CIFS — для сетей Windows и смешанных сред
- NFS — для Linux/Unix систем и виртуализации
- AFP — для устаревших Mac систем (не рекомендуется)
- WebDAV — для доступа через HTTP/HTTPS
Подготовка: Создание Dataset и настройка прав
Давай начнем с основ. Представь, что у тебя есть пул tank. Сначала создадим Dataset для наших общих файлов:
# Через CLI (опционально):
zfs create tank/shared_data
zfs set acltype=posixacl tank/shared_data # Для SMB с расширенными правами
zfs set xattr=sa tank/shared_data # Для расширенных атрибутов
Через Web-интерфейс TrueNAS:
- Перейди в Storage → Datasets
- Выбери пул (например,
tank) - Нажми Add Dataset
- Укажи имя:
shared_data - В Share Type выбери
SMB(если планируешь SMB) - Настрой права доступа: Владелец
nobody, Группаnogroupили создай конкретных пользователей
Создание SMB Share в TrueNAS
SMB shares — это твой основной инструмент для интеграции с Windows-сетями. Давай создадим его правильно.
Шаг 1: Активация SMB службы
Перейди в Services → SMB и включи службу. Нажми шестеренку для базовой настройки:
[global]
server min protocol = SMB2_10
server max protocol = SMB3
encrypt passwords = yes
dns proxy = no
strict locking = no
oplocks = yes
deadtime = 15
max log size = 51200
max open files = 468682
logging = file
load printers = no
printing = bsd
printcap name = /dev/null
disable spoolss = yes
getwd cache = yes
guest account = nobody
map to guest = Bad User
obey pam restrictions = yes
ntlm auth = yes
allow trusted domains = no
client signing = required
server signing = required
socket options = TCP_NODELAY IPTOS_LOWDELAY
use sendfile = yes
aio read size = 0
aio write size = 0
Шаг 2: Создание самого Share
- Перейди в Sharing → Windows Shares (SMB)
- Нажми Add
- Заполни параметры:
- Path: Выбери созданный Dataset
/mnt/tank/shared_data - Name:
company_share(это имя увидут пользователи) - Purpose: Выбери шаблон (например,
Default share parameters) - Description: Опциональное описание
- Path: Выбери созданный Dataset
- В разделе Access:
- Enable ACL: Отметь, если нужны расширенные права Windows
- Настрой права для пользователей/групп
company_share вместо company share). Это может вызвать проблемы с некоторыми клиентами.
Шаг 3: Расширенные настройки SMB Share
В Advanced Options обрати внимание на ключевые параметры:
| Параметр | Рекомендуемое значение | Описание |
|---|---|---|
| Enable Shadow Copies | Да | Включает поддержку Previous Versions в Windows |
| Enable Alternate Data Streams | Да | Нужно для совместимости с Windows |
| Enable SMB3 encryption | По необходимости | Шифрование трафика, требует SMB3 клиентов |
| Browsable to Network Clients | Да | Показывать share в сетевом окружении |
Создание NFS Share для Linux и виртуализации
Если твоя инфраструктура построена на Linux или ты используешь гипервизоры (Proxmox, ESXi), тебе понадобятся NFS shares.
Настройка NFS Service
- Перейди в Services → NFS и включи службу
- Нажми шестеренку для настройки:
- Number of servers: 4-8 (зависит от нагрузки)
- Allow non-root mount: Да (для гибкости)
- Support >16 groups: Да
Создание NFS Share
- Перейди в Sharing → Unix Shares (NFS)
- Нажми Add
- Укажи путь:
/mnt/tank/shared_data - Добавь сети и права в разделе Hosts:
Пример настроек доступа
Network: 192.168.1.0/24 Access: Read/Write Squash: No Root Squash (осторожно!) Или для конкретного хоста: Host: 192.168.1.100 Access: Read Only Squash: Root Squash - Важные флаги:
- Enabled: Включить share
- Quiet: Подавлять некоторые предупреждения
- All dirs: Разрешить просмотр всех поддиректорий
Проверка и подключение к Share
Для Windows (SMB):
# В командной строке:
net use Z: \\TRUENAS_IP\company_share /persistent:yes
# Или в проводнике:
\\TRUENAS_IP\company_share
Для Linux (SMB):
# Установи cifs-utils если нет:
sudo apt install cifs-utils # Debian/Ubuntu
sudo yum install cifs-utils # RHEL/CentOS
# Создай точку монтирования:
sudo mkdir -p /mnt/company_share
# Монтируй:
sudo mount -t cifs -o username=myuser,password=mypass //truenas_ip/company_share /mnt/company_share
# Для автоматического монтирования при загрузке, добавь в /etc/fstab:
//truenas_ip/company_share /mnt/company_share cifs credentials=/etc/samba/credentials,uid=1000,gid=1000 0 0
Для Linux (NFS):
# Установи nfs-common если нет:
sudo apt install nfs-common
# Просмотр доступных NFS shares:
showmount -e truenas_ip
# Монтирование:
sudo mount -t nfs truenas_ip:/mnt/tank/shared_data /mnt/nfs_share
# В /etc/fstab для авто-монтирования:
truenas_ip:/mnt/tank/shared_data /mnt/nfs_share nfs defaults,noatime,vers=4.2 0 0
Типичные проблемы и их решение
Решение: Проверь:
- Права на Dataset (chmod) и владельца (chown)
- Настройки ACL если они используются
- Пароль пользователя в TrueNAS (попробуй сменить)
- Версию SMB протокола (попробуй SMB2 или SMB3)
Решение:
- Проверь сеть (jumbo frames, скорость линка)
- В SMB Advanced Settings попробуй отключить
oplocks - Для NFS: используй
asyncв опциях монтирования - Проверь нагрузку на диски (zpool iostat)
Решение: Проверь:
- Настройки
Maproot Userв NFS share - Права на директории (должны быть 777 или соответствовать maproot)
- Не используй
no_root_squashбез необходимости
Безопасность и лучшие практики
- Изолируй сети: Используй VLAN для storage трафика
- Минимальные права: Давай доступ только тем, кому нужно
- Регулярные бэкапы: Настрой snapshots на Dataset
- Аудит: Включи логирование SMB/NFS операций
- Шифрование: Для чувствительных данных используй SMB3 encryption или VPN
- Обновления: Регулярно обновляй TrueNAS для закрытия уязвимостей
Производительность: SMB vs NFS
| Критерий | SMB | NFS |
|---|---|---|
| Мелкие файлы | Хорошо | Отлично |
| Крупные файлы | Отлично | Отлично |
| Латентность | Выше | Ниже |
| Видеостриминг | Хорошо | Отлично |
Рекомендация: Используй SMB для офисных файлов и Windows клиентов, NFS — для виртуализации, баз данных и Linux сред.
Часто задаваемые вопросы (FAQ)
Можно ли создать один Dataset с несколькими SMB shares?
Да, абсолютно. Ты можешь создать несколько SMB shares, указывающих на один и тот же Dataset, но с разными именами и настройками доступа. Например, \\nas\finance с доступом для бухгалтерии и \\nas\public с доступом для всех из того же Dataset.
Как мигрировать существующие данные в TrueNAS share?
Лучшая практика:
- Создай Dataset и настрой права
- Смонтируй share на клиенте
- Копируй данные через сеть (robocopy для Windows, rsync для Linux)
- Проверь целостность данных
- Перенастрой приложения на новый путь
Почему не видно файлы, созданные из Windows, из Linux и наоборот?
Проблема в масках создания файлов (create mask) и правах. В настройках SMB share проверь:
- File create mask: 0664 (для файлов)
- Directory create mask: 0775 (для директорий)
- Убедись, что владелец Dataset — пользователь, от которого происходит запись
Как настроить квоты на SMB share?
Квоты настраиваются не на уровне share, а на уровне Dataset. Перейди в Storage → Datasets, выбери нужный Dataset и в свойствах установи:
- Quota for this dataset: Ограничение размера
- Quota for this dataset and all children: Рекурсивное ограничение
- Reserved Space: Гарантированное пространство
Заключение
Настройка TrueNAS shares — это фундаментальный навык для любого администратора систем хранения. Ключевые моменты, которые нужно запомнить:
- Все начинается с правильно настроенного Dataset с соответствующими правами
- SMB идеален для Windows-сред, NFS — для Linux и виртуализации
- Проблемы с доступом обычно решаются проверкой прав (chmod/chown) и настроек служб
- Используй мониторинг и логи для диагностики проблем
- Не забывай о безопасности: минимальные права, изоляция сети, шифрование
Теперь у тебя есть полное руководство по созданию и управлению общими ресурсами в TrueNAS. Начни с простого SMB share для домашней сети, затем поэкспериментируй с NFS для виртуальных машин. Помни: практика и тестирование в изолированной среде — лучший способ стать экспертом по TrueNAS shares.