diff --git a/03_NFS_MOUNTING.md b/03_NFS_MOUNTING.md new file mode 100644 index 0000000..3177004 --- /dev/null +++ b/03_NFS_MOUNTING.md @@ -0,0 +1,100 @@ +# Монтирование NFS-шары из TrueNAS в VM + +> Краткая и практичная инструкция для подключения NFS-шары из **TrueNAS** к Linux‑виртуальной машине. + +--- +## 1. Подготовка на TrueNAS + +1. Создать **отдельные dataset'ы** под хранение данных и конфигов сервиса +``` +MainPool/apps/config/ +``` + +2. Настроить права доступа +- Создай пользователя и группу и запомни `uid` и `gid` +- Назначь владельца dataset: + - User: `nebaryshev`, UID: `3000` + - Group: `apps`, GID: `568` + +2. Создать две NFS Share + ``` + /mnt/MainPool/apps/config/ + /mnt/MainPool/apps/data/ + ``` +- **Mapall User**: `nebaryshev` +- **Mapall Group**: `apps` + +`mapall` — все подключения к этой шаре будут `мапится` на `nebaryshev` и группу `apps` и любой сможет писать в датасет от лица `nebaryshev` + +### ⚠️ Важно +NFS-шара **должна указывать прямо на dataset**. +Нельзя экспортировать `/apps` и монтировать `/apps/config/` на клиенте. + +--- +## 2. Подключение на виртуальной машине + +1. Установить клиент +```bash +sudo apt update +sudo apt install -y nfs-common +``` + +2. Создать точку монтирования +```bash +sudo mkdir -p /srv//config +sudo mkdir -p /srv//data +``` + +3. Примонтировать шару вручную +```bash +sudo mount -t nfs4 :/path/to/config /srv//config +sudo mount -t nfs4 :/path/to/data /srv//data +``` + +4. Проверить права +```bash +ls -l /srv//config +``` + +> Должны отображаться **uid/gid пользователя из TrueNAS (mapall)**. +> UID, GID=3000,568 в моем случае + +5. Проверка записи **без sudo**: +```bash +touch /srv//config/test.txt +touch /srv//data/test.txt +``` + +> Если файл создался — права настроены корректно. + +--- + +## 3. Настройка автоматического монтирования + +Для настройки автоматического монтирования необходимо дописать строки конфигурации в конец файла `/etc/fstab` (**file system table**) + +- Простой вариант +``` +:/path/to/dataset /mount/point nfs4 defaults 0 0 +``` + +- Рекомендуемый вариант +``` +:/path/to/dataset /mount/point nfs4 rw,hard,noatime,_netdev,x-systemd.automount 0 0 +``` + +Что здесь важно: +- `rw` — монтирование в режиме чтения и записи +- `hard` — гарантирует целостность данных. Сервер ждет только успешную транзацкию +- `noatime` — не обновлять access time при чтении файлов. Меньше нагрузка на сеть +- `_netdev` — предотвращает попытки монтирования до поднятия сети при загрузке ВМ +- `x-systemd.automount` — монтирование только при обращении. ВМ загружается быстро и не зависает, если NAS временно недоступен + +--- + +После редактирования выполни: +```bash +sudo mount -a +``` + +Если ошибок нет — конфигурация корректна. \ No newline at end of file