100 lines
3.7 KiB
Markdown
100 lines
3.7 KiB
Markdown
# Монтирование NFS-шары из TrueNAS в VM
|
|
|
|
> Краткая и практичная инструкция для подключения NFS-шары из **TrueNAS** к Linux‑виртуальной машине.
|
|
|
|
---
|
|
## 1. Подготовка на TrueNAS
|
|
|
|
1. Создать **отдельные dataset'ы** под хранение данных и конфигов сервиса
|
|
```
|
|
MainPool/apps/config/<service>
|
|
```
|
|
|
|
2. Настроить права доступа
|
|
- Создай пользователя и группу и запомни `uid` и `gid`
|
|
- Назначь владельца dataset:
|
|
- User: `nebaryshev`, UID: `3000`
|
|
- Group: `apps`, GID: `568`
|
|
|
|
2. Создать две NFS Share
|
|
```
|
|
/mnt/MainPool/apps/config/<service>
|
|
/mnt/MainPool/apps/data/<service>
|
|
```
|
|
- **Mapall User**: `nebaryshev`
|
|
- **Mapall Group**: `apps`
|
|
|
|
`mapall` — все подключения к этой шаре будут `мапится` на `nebaryshev` и группу `apps` и любой сможет писать в датасет от лица `nebaryshev`
|
|
|
|
### ⚠️ Важно
|
|
NFS-шара **должна указывать прямо на dataset**.
|
|
Нельзя экспортировать `/apps` и монтировать `/apps/config/<service>` на клиенте.
|
|
|
|
---
|
|
## 2. Подключение на виртуальной машине
|
|
|
|
1. Установить клиент
|
|
```bash
|
|
sudo apt update
|
|
sudo apt install -y nfs-common
|
|
```
|
|
|
|
2. Создать точку монтирования
|
|
```bash
|
|
sudo mkdir -p /srv/<service>/config
|
|
sudo mkdir -p /srv/<service>/data
|
|
```
|
|
|
|
3. Примонтировать шару вручную
|
|
```bash
|
|
sudo mount -t nfs4 <truenas_ip>:/path/to/config /srv/<service>/config
|
|
sudo mount -t nfs4 <truenas_ip>:/path/to/data /srv/<service>/data
|
|
```
|
|
|
|
4. Проверить права
|
|
```bash
|
|
ls -l /srv/<service>/config
|
|
```
|
|
|
|
> Должны отображаться **uid/gid пользователя из TrueNAS (mapall)**.
|
|
> UID, GID=3000,568 в моем случае
|
|
|
|
5. Проверка записи **без sudo**:
|
|
```bash
|
|
touch /srv/<service>/config/test.txt
|
|
touch /srv/<service>/data/test.txt
|
|
```
|
|
|
|
> Если файл создался — права настроены корректно.
|
|
|
|
---
|
|
|
|
## 3. Настройка автоматического монтирования
|
|
|
|
Для настройки автоматического монтирования необходимо дописать строки конфигурации в конец файла `/etc/fstab` (**file system table**)
|
|
|
|
- Простой вариант
|
|
```
|
|
<truenas_ip>:/path/to/dataset /mount/point nfs4 defaults 0 0
|
|
```
|
|
|
|
- Рекомендуемый вариант
|
|
```
|
|
<truenas_ip>:/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
|
|
```
|
|
|
|
Если ошибок нет — конфигурация корректна. |