Загрузить файлы в «/»
This commit is contained in:
@@ -0,0 +1,100 @@
|
||||
# Монтирование 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
|
||||
```
|
||||
|
||||
Если ошибок нет — конфигурация корректна.
|
||||
Reference in New Issue
Block a user