Гид по технологиям

Настройка Samba и ZFS/NFS для домашних директорий

• 4 min read • Администрирование • Обновлено 19 Nov 2025
Настройка Samba и ZFS/NFS для домашних директорий
Настройка Samba и ZFS/NFS для домашних директорий

Важное (кратко)

  • Права доступа Samba зависят от UNIX-пермиссий: для шаринга /export/home/newuser нужно подключаться как newuser.
  • Опции ZFS (dedup, compression) сильно влияют на использование CPU и RAM — протестируйте на нагрузке перед массовым включением.
  • UID/GID клиента и сервера должны совпадать для корректной работы NFS.

5 Samba: сервисы и ZFS

Запустите сервис Samba (smb/service):

root@server1:/# svcadm enable -r smb/server

Если появится такое предупреждение, можно его игнорировать:

svcadm: svc:/milestone/network depends on svc:/network/physical, which has multiple instances

Задайте имя рабочей группы (workgroup):

root@server1:/# smbadm join -w SHARING

Пример вывода после присоединения:

After joining SHARING the smb service will be restarted automatically.  
Would you like to continue? [no]: yes  
Successfully joined SHARING

После этого можно включать шаринги для пользователей. В этой схеме права доступа к шарам определяются unix-пермиссиями файловой системы: если шарите /export/home/newuser, подключаться нужно как newuser (владелец каталога newuser:newuser).

Если вы шарите весь домашний каталог пользователя и в нём уже есть файлы, временно переместите их в промежуточный каталог, чтобы точка монтирования была пустой:

root@server1:/# mkdir /opt/tmp/   
root@server1:/# mv /export/home/newuser/* /opt/tmp/; mv /export/home/newuser/.* /opt/tmp/

Проверьте, что файлы переместились:

root@server1:/# ls -lha /export/home/newuser/; ls -lha /opt/tmp/

Пример вывода:

total 3.0K  
drwxr-xr-x 2 newuser newuser 2 Apr 22 15:51 .  
drwxr-xr-x 4 root    root    4 Apr 22 15:16 ..  
total 9.5K  
drwxr-xr-x 2 root    root       8 Apr 22 15:51 .  
drwxr-xr-x 3 root    sys        3 Apr 22 15:50 ..  
-rw-r--r-- 1 newuser newuser  220 Apr 22 15:16 .bash_logout  
-rw-r--r-- 1 newuser newuser 2.9K Apr 22 15:16 .bashrc  
-rw-r--r-- 1 newuser newuser  964 Apr 22 15:16 .profile  
-rw-r--r-- 1 newuser newuser 1.1K Apr 22 15:16 local.cshrc  
-rw-r--r-- 1 newuser newuser  988 Apr 22 15:16 local.login  
-rw-r--r-- 1 newuser newuser 1002 Apr 22 15:16 local.profile

Создайте ZFS-файловую систему и включите шаринг SMB:

root@server1:/# zfs create -o compression=gzip-9 -o dedup=on -o quota=100g -o casesensitivity=mixed -o nbmand=on -o sharesmb=on pool1/newuser

Краткое описание ключевых опций:

  • dedup=on — включение дедупликации; экономит место, но потребляет много RAM и CPU.
  • compression=gzip-9 — максимальная степень сжатия gzip; улучшает хранение, но снижает скорость записи и повышает нагрузку на CPU.
  • quota=100g — ограничение размера файловой системы до 100 ГБ.
  • nbmand=on — включение поддержки NFS клент-блокировок (NFSv4 related POSIX locks).
  • sharesmb=on — автоматически выставить шаринг SMB для этой файловой системы.

Важно: включайте dedup и gzip-9 только если у вас достаточный запас RAM и CPU; на слабых серверах это приведёт к ухудшению производительности при интенсивных записях.

Верните файлы обратно в домашний каталог:

mv /opt/tmp/* /export/home/newuser/; mv /opt/tmp/.* /export/home/newuser/

Альтернатива (без риска попытки переместить ‘.’ и ‘..’):

cd /export/home/newuser && find . -mindepth 1 -maxdepth 1 -exec mv -t /opt/tmp/ -- {} +

Проверьте пул ZFS:

root@server1:/# zpool list
NAME      SIZE  ALLOC   FREE    CAP  DEDUP  HEALTH  ALTROOT  
pool1    3.97T   239K  3.97T     0%  1.00x  ONLINE  -  
syspool   127G  1.31G   126G     1%  1.00x  ONLINE  -

Проверьте файловые системы ZFS:

root@server1:/# zfs list
NAME                     USED  AVAIL  REFER  MOUNTPOINT  
pool1                    136K  3.91T    31K  /export/home  
pool1/newuser             21K  3.91T    21K  /export/home/newuser  
syspool                 2.34G   123G    26K  none  
syspool/rootfs-nmu-000  1.31G   123G  1007M  legacy  
syspool/swap            1.03G   124G    16K  -

Проверьте, что шаринг SMB выставлен:

root@server1:/# sharemgr show -vp
default nfs=()  
zfs  
    zfs/pool1/newuser smb=()  
          /export/home/newuser  
                  pool1_newuser=/export/home/newuser     smb=(abe="false" guestok="false")

Теперь подключиться к шару можно с другого компьютера (не забудьте авторизоваться под тем же именем пользователя):

smb://(ip address or host name)/export/home/newuser

Повторите процесс для каждого пользователя/шара по необходимости.

Полезные практики и эвристики

  • Тестируйте дедупликацию и сжатие на тестовом пуле со схожими данными перед включением в проде.
  • Для рабочих станций с большим количеством мелких файлов gzip-9 может давать небольшую выгоду при большой нагрузке CPU.
  • Если у вас мало оперативной памяти, лучше не включать dedup; вместо этого используйте компрессию средней степени (gzip-1..gzip-3).

6 NFS: настройка

Чтобы расшарить все домашние директории по NFS:

root@server1:~# zfs set sharenfs=on pool1

Чтобы расшарить только созданный пул для пользователя:

root@server1:~# zfs set sharenfs=on pool1/newuser

Проверьте шаринг NFS:

root@server1:/# sharemgr show -vp
default nfs=()  
zfs  
    zfs/pool1 nfs=()  
          /export/home

Важно: UID и GID на клиенте и сервере должны совпадать — иначе вы не сможете корректно читать/записывать файлы. Если у вас централизованная система учёта учётных записей (LDAP/NIS/AD), убедитесь, что клиенты используют ту же базу учётных записей.

Прямое подключение с клиента будет выглядеть как обычный NFS-монтаж:

mount -t nfs server:/export/home/newuser /mnt/newuser

Трублшутинг (быстрый набор)

  • Ошибка доступа при SMB: проверьте владельца и права каталога (ls -la /export/home/newuser). Подключайтесь как соответствующий пользователь.
  • Долгая запись после включения сжатия/дедупликации: мониторьте CPU/RAM, отключите dedup или снизьте степень сжатия.
  • NFS: “permission denied” — проверьте export и соответствие UID/GID между машинами.
  • sharemgr не показывает SMB/NFS: перезапустите службы smb и nfs, затем повторите sharemgr show -vp.

Роли и чек-листы

Администратор сервера:

  • Включить smb: svcadm enable -r smb/server
  • Join workgroup: smbadm join -w SHARING
  • Создать zfs: zfs create … pool1/newuser
  • Установить sharenfs или sharesmb
  • Проверить zpool list, zfs list, sharemgr show -vp

Пользователь рабочего места:

  • Подключаться под именем пользователя, совпадающим с владельцем каталога на сервере.
  • Убедиться, что монтирование по SMB или NFS использует правильные учётные данные.

Критерии приёмки

  • zpool list показывает pool1 ONLINE.
  • zfs list показывает pool1/newuser с правильным MOUNTPOINT и QUOTA.
  • sharemgr show -vp показывает запись для zfs/pool1/newuser smb и/или nfs.
  • Клиент может смонтировать и прочитать/записать файлы под соответствующим пользователем.

Короткий глоссарий (1 строка)

  • ZFS: продвинутая файловая система с пулом томов, поддержкой снапшотов, дедупликации и сжатия.
  • Samba (SMB): протокол файлового обмена для совместного доступа между Unix и Windows-подобными машинами.
  • NFS: сетевой файловый протокол для Unix-подобных систем.

Альтернативные подходы

  • Использовать отдельный dataset на ZFS для каждого пользователя вместо единого /export/home — даёт гибкую настройку квот и политик.
  • Управление учётными записями через LDAP/AD для синхронизации UID/GID между клиентами и сервером.

Ресурсы

Итог

Samba + ZFS и NFS позволяют масштабируемо управлять домашними директориями пользователей с квотами, сжатием и дедупликацией. Внимательно относитесь к нагрузке на CPU/RAM при включении dedup/compression и проверяйте соответствие UID/GID при работе с NFS.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро