119 lines
11 KiB
Markdown
119 lines
11 KiB
Markdown
# RED_2TB — карта датасетов и назначений (для решения о пересоздании пула)
|
||
|
||
> Собрано: 2026-08-20 (Ель — Кит). Источник: live-данные `zfs list` + `ls` с TrueNAS (readonly-импорт).
|
||
> НАЗНАЧЕНИЕ: решить, воссоздавать ли карту датасетов как есть, или что-то поменять/добавить/убрать перед пересозданием пула RED_2TB.
|
||
> Ничего не изменялось — только сбор информации.
|
||
|
||
## Статус спасения на 2026-08-21
|
||
|
||
- **Выгрузка ЗАВЕРШЕНА УСПЕШНО** (подтверждено Alex). Данные RED_2TB (4.56T) на IronWolf — `DEST`, `/mnt/IRONWOLF`.
|
||
- **RED_2TB пул — OFFLINE** в БД TrueNAS (id=1), НЕ импортирован. `zpool export` → `no such pool`.
|
||
- Проверочный rsync прогон завершён (rsync не запущен).
|
||
- **РЕШЕНИЕ:** пересоздаём пул с новой топологией — ВКЛЮЧАЕМ WD2TB#2 (sdf) зеркалом к WD2TB#1 (sdc). Итог: `mirror {sdc,sdf}` + `mirror {sde,sdd}`.
|
||
- Следующий шаг: `zpool labelclear` по разделам `*2` + `zpool create` (подробно в [[truenas-sata-ports-and-zfs-pools]] → «Пересоздание пула 2026-08-21»).
|
||
|
||
## Общая сводка
|
||
|
||
- Пул: RED_2TB, 5.44T (4.61T занято), компрессия lz4, рекордсайз 128K, acltype nfsv4, atime=on, exec=on.
|
||
- Квот/резерваций НЕТ ни на одном датасете (все `none`).
|
||
- Монтинг: датасеты в `/RED_2TB/*`, служебные `.system`/`ix-apps` в `legacy`/`/.ix-apps`.
|
||
|
||
## ✅ Датасеты (воссоздавать как ZFS datasets)
|
||
|
||
| Датасет | USED | REFER | Назначение | Примечание |
|
||
|---------|------|-------|-----------|------------|
|
||
| **storage** | 3.24T | 3.24T | Общее хранилище мультимедиа и файлов | Подкаталоги: Cartoons, Downloads, Edu, Movies, Music, ada3s1, art, books, cartoons-series, documentaries(-series), git, nas(пусто), obsidian, obsidian-syncthing, photo_dedup_test, radarr, seafile, series, shared, singularity, sonarr, work. `git/` = hermes-taiga.git, obsidian-vault.git |
|
||
| **backup** | 287G | 287G | Резервные копии (личные доки, коды, VM, пароли, браузеры) | Много семейных документов (договоры, справки), Google Keep/Play, VPN, Virtual Machines, accessKeys.csv, lastpass_export.zip, коды восстановления. |
|
||
| **TimeMachine/guest** | 277G | 267G | Бэкапы macOS (Time Machine) | Родитель TimeMachine 277G/96K; дочерний `guest` несёт данные. Много снимков `aapltm-*`. |
|
||
| **Edu** | 214G | 214G | Учебные материалы | |
|
||
| **Photos** | 146G | 146G | Фотографии | |
|
||
| **old-bu** | 65.5G | 65.5G | Старый семейный архив фото/видео | Фото 2009–2010+, свадьбы, семейные события (папки вида `09-01-01 Новый 2009 год!`). |
|
||
| **ix-apps** | 24.0G | - | Системный — TrueNAS Apps (docker 23.6G, truenas_catalog 385M) | Воссоздаётся самой TrueNAS, не вручную. |
|
||
| **iocage** | 15.4G | 9.19M | Jail-ы TrueNAS | Jails: backuppc, emby, homeassistant, plex, transmission, worker + releases 11.2/12.2/12.3, images, download, templates. |
|
||
| **openbsd** | 10.2G | 4.43M | ?? неясно — refer всего 4.43M при used 10.2G | Вероятно remnants после снимка/пробного пула. Решить: нужен ли вообще. |
|
||
| **docker** | 2.98G | 2.98G | Живой docker-конфиг (текущие контейнеры) | |
|
||
| **apps** | 192K | 96K | Точка для app-конфигов | Дочерний `apps/homeassistant-config` (96K). |
|
||
| **.system/** | 568M | - | Служебное TrueNAS (configs, netdata, rrd, samba4, syslog...) | Воссоздаётся самой системой, не создавать руками. |
|
||
|
||
## ⚠️ Данные ВНЕ датасетов — лежат прямо в корне `RED_2TB` (REFER 362G)
|
||
|
||
Эти пути НЕ являются ZFS-datasets (их нет в `zfs list`) — при пересоздании пула их надо решать отдельно, иначе потеряются (или перепутаются с содержимым корневого датасета):
|
||
|
||
| Путь | Содержимое | Важность |
|
||
|------|-----------|----------|
|
||
| `/RED_2TB/system/` | SSH-туннель: `tunnel.sh`, `tunnel_key` (приватный!), `tunnel_key.pub`, `99-tty-alias.rules`. Владелец root, режим 600/644. | ⚠️ **КРИТИЧНО** — рабочий туннель TrueNAS. root-only. |
|
||
| `/RED_2TB/docker.bak/` | Бэкап конфигов docker: caddy, cups, filebrowser, ha, hermes, homeassistant, immich, inpx-web, inpxer, mbusd, modbus-bridge, mosquitto, nodered, portainer, python, rclone, ser2net | Архив/бэкап контейнеров. `hermes/` = бэкап Hermes-агента. |
|
||
| `/RED_2TB/immich-photos-upload/` | Конфиг Immich: backups, encoded-video, library, profile, thumbs, upload | Рабочий Immich (он же в docker). |
|
||
| Корневые файлы | `.DS_Store`, `._.DS_Store` (мусор mac), `dedupe_rm.sh`, `files.txt.xz` (содержимое old-bu/somo?) | dedupe_rm.sh — скрипт дедупликации, файловый список. |
|
||
|
||
## 🤔 Метки для решения
|
||
|
||
Вопросы, которые надо решить ПЕРЕД пересозданием:
|
||
|
||
1. **openbsd (10.2G/4.43M)** — судя по refer почти пуст. Что это? Удалить из map?
|
||
2. **Внутри storage/ есть `Edu`** — это ДУБЛЬ датасета `Edu`? Проверить: возможно медиа-папка Edu в storage vs отдельный датасет Edu для учебных.
|
||
3. **`nas` внутри storage пуст**.
|
||
4. **`TimeMachine`** (277G) — вернуть ли отдельным датасетом как было, с дочерним `guest`?
|
||
5. **`docker` vs `docker.bak`** — оба сохранить? `docker` = живой, `docker.bak` = архив.
|
||
6. **`immich-photos-upload`** — оставить в корне пула (вне датасета) или завести отдельный датасет?
|
||
7. **Внедатасетные каталоги** (`system`, `docker.bak`, `immich-photos-upload`) — после пересоздания они окажутся в корневом dataset RED_2TB (REFER 362G). Решить, оставить их там или разнести по датасетам.
|
||
|
||
## Ключевые решения по подходу к пересозданию (из truenas-sata-ports-and-zfs-pools.md)
|
||
|
||
- In-place починки НЕТ (битая space map, паника на rw).
|
||
- Рабочий путь: readonly-импорт → выгрузка rsync → `zpool destroy`+`create` → возврат данных rsync.
|
||
- НЕ использовать `zfs send|recv` (падает на повреждённом пуле). Только rsync.
|
||
- **РЕШЕНО (2026-08-21):** включить WD2TB#2 (sdf) зеркалом к WD2TB#1 (sdc) при пересоздании. Топология `mirror {sdc,sdf}` + `mirror {sde,sdd}` — оба зеркалированы.
|
||
- `zpool import`/`mount`/destroy/create — ТОЛЬКО под root (truenas_admin не root).
|
||
- **НИКОГДА не импортировать RED_2TB в rw** (kernel panic). Только `labelclear` + `create`.
|
||
|
||
## Ссылки
|
||
|
||
- Связанные: [[truenas-sata-ports-and-zfs-pools]] (план спасения/пересоздания), [[truenas-access]] (общие данные доступа).
|
||
|
||
## 🔑 Кто «владелец» Edu — группы и uid на TrueNAS (2026-09-23)
|
||
|
||
**Датасет `Edu` (214 ГБ) НЕ имеет единого владельца** — внутри лежат файлы разных uid, и ACL наследует `uid 0 / gid 0`:
|
||
|
||
| Путь | Владелец | Режим | `everyone@` |
|
||
|---|---|---|---|
|
||
| `Edu` | `root:root` | `drwxrwxr-x` | `READ_DATA`+`EXECUTE` |
|
||
| `Edu/Маскелиаде` | `root:root` | `drwxrwx---` | только аттрибуты |
|
||
| `Edu/Книги, учебники`, `Edu/sponsr.ru-uroki-istorii` | `nas:nas` / `nas:nas_users` | `drwxrwx---` | — |
|
||
| `Edu/*.mp4` (Маскелиаде) | `root:root` | `-rwxrwx---` | — |
|
||
| `Edu/PointFree`, `Edu/library`, `Edu/mallexxx` | `mallexxx:root` | `drwxrwx---` | — |
|
||
|
||
> ⚠️ ACL у датасета `trivial: true` (это чистый POSIX-эквивалент, без DENY-ACE) — но `group@` = **gid 0**,
|
||
> поэтому он не даёт доступа никому, кроме root. **Это и есть причина «нет доступа» у любых не-root юзеров.**
|
||
|
||
**Группы (факт, `id truenas_admin` + `getent group`):**
|
||
```
|
||
truenas_admin uid=950 gid=950 groups=950,544(builtin_administrators),921(transmission),999(docker),1000(nas),3000(nas_users)
|
||
root uid=0 gid=0 groups=0(root)
|
||
nas uid=? gid=1000 (группа nas:x:1000:truenas_admin)
|
||
mallexxx uid=? gid=1001
|
||
nas_users gid=3000 → root, truenas_admin, mallexxx, nas, transmission
|
||
builtin_administrators gid=544 → root, truenas_admin
|
||
```
|
||
|
||
> 🔑 **Для ACL-фиксов на `Edu` (и вообще на этом пуле) использовать группу `nas_users` (gid 3000)** —
|
||
> одна ACE покрывает админа, `nas`, `mallexxx` и transmission сразу. Вариант-альтернатива — `builtin_administrators` (gid 544).
|
||
>
|
||
> 🔴 **`truenas_admin` НЕ root и НЕ в группе 0.** Любой файл/каталог `root:root` + `rwxrwx---` для него закрыт.
|
||
> Это НЕ поломка ФС и НЕ повод лезть в ACL — сначала посчитать `owner/group/other` против его groups.
|
||
>
|
||
> **Применённый план (2026-09-23, ✅ ВЫПОЛНЕН):** рекурсивно по `Edu` — владелец-группа `nas_users`,
|
||
> ACE `group@` с `flags.BASIC: INHERIT` (read-modify-write, сохраняя `id`; `stripacl` НЕ использовать).
|
||
> Детали и подводные камни — [[truenas-infrastructure]] § «WebDAV — устройство».
|
||
>
|
||
> ✅ **Подтверждено живой проверкой 2026-09-23 (вечер):** дерево реально переехало на группу.
|
||
> ```
|
||
> drwxrwxr-x 12 root nas_users 14 Sep 22 23:47 /mnt/RED_2TB/Edu
|
||
> drwxrwxr-x 8 root nas_users 14 Sep 22 23:56 /mnt/RED_2TB/Edu/Маскелиаде
|
||
> ```
|
||
> Таблица владельцев выше (строки `root:root` / `mallexxx:root` / `nas:nas`) — **снимок ДО правки**,
|
||
> после рекурсивного прохода корень и дерево = `root:nas_users` `drwxrwxr-x`. Доступ есть и у
|
||
> `truenas_admin`, и через WebDAV.
|
||
>
|
||
> 📌 Разбор доступа к `Edu` — выше. Заметка про конкретную папку внутри `Edu` — отдельно, в `personal/tech/truenas-local-tree-comparison.md` (в инфраструктурных доках такие разборы не держим).
|