Files
obsidian-vault/family/how-to/red2tb-dataset-map.md
T

119 lines
11 KiB
Markdown
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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` (в инфраструктурных доках такие разборы не держим).