124 lines
8.5 KiB
Markdown
124 lines
8.5 KiB
Markdown
# TrueNAS — Домашний NAS
|
||
|
||
## Основное
|
||
|
||
| Параметр | Значение |
|
||
|----------|------------------------------------|
|
||
| Версия | TrueNAS SCALE 24.10 |
|
||
| CPU | Intel Pentium G2020 @ 2.90 ГГц (2 ядра / 2 потока, Ivy Bridge, LGA1155) |
|
||
| RAM | 21 ГБ DDR3 |
|
||
| Мать | ASUS P8H77-V LE (чипсет Intel H77) |
|
||
| Web UI | https://mallexxx.duckdns.org |
|
||
| Web UI (IP) | http://90.189.160.148 |
|
||
| SSH | truenas_admin@mallexxx.duckdns.org |
|
||
| SSH (IP) | truenas_admin@90.189.160.148 |
|
||
| SSH-ключ | ~/.ssh/id_rsa |
|
||
| Сеть | 192.168.2.0/24 (через OpenWrt) |
|
||
|
||
> ⚠️ **Eagle и Kraken — в 192.168.1.x, это другая сеть.** Прямой доступ по 192.168.2.197 с них не работает. Для SSH/API с Eagle и Kraken используйте **только** `mallexxx.duckdns.org`.
|
||
>
|
||
> 📝 Наблюдение 2026-07-31: `ssh truenas_admin@192.168.2.197` **сработал с Mac Кита (Кит)** в ходе диагностики SATA-карты (по явной просьбе Alex). Т.е. локальный IP может работать, но это не гарантировано — при неудаче откатываться на `mallexxx.duckdns.org`.
|
||
|
||
## Железо (проверено 2026-09-10, `lscpu` + `free -h` на живом хосте)
|
||
|
||
| Параметр | Значение |
|
||
|----------|----------|
|
||
| Материнская плата | ASUS P8H77-V LE (чипсет Intel H77, LGA1155) |
|
||
| CPU | **Intel Pentium G2020 @ 2.90 ГГц** (2 ядра / 2 потока, Ivy Bridge, 2013) |
|
||
| RAM | **21 ГБ DDR3** (на 2026-09-10: занято 17 ГБ, free 1.8 ГБ, buff/cache 3.2 ГБ, available 3.6 ГБ) |
|
||
| Swap | 0 B (не используется) |
|
||
| Диски | см. [[truenas-sata-ports-and-zfs-pools]] |
|
||
|
||
> 📌 До 2026-09-10 CPU/RAM в доке **отсутствовали** — при вопросах о производительности/совместимости приходилось выяснять заново. Теперь зафиксировано.
|
||
>
|
||
> ⚠️ **RAM 21 ГБ нестандартна для LGA1155** — на P8H77-V LE стоят планки разного объёма (flex mode). Проверять при апгрейде.
|
||
>
|
||
> **Следствие по нагрузке:** занято 17 из 21 ГБ → узел работает **на пределе по памяти, не по CPU**. Именно RAM (21 ГБ), а не процессор — причина, по которой тут крутятся immich + HA + ~25 контейнеров + ZFS-кэш. CPU G2020 — узкое место только в single-thread-задачах.
|
||
|
||
### Производительность в сравнении (2026-09-10)
|
||
|
||
| Узел | CPU | PassMark (сумма) | Single-thread | RAM | TDP |
|
||
|------|-----|------------------|---------------|-----|-----|
|
||
| TrueNAS (Таёга) | 2× Pentium G2020 @2.9 | ~1700 | ~1400 | 21 ГБ DDR3 | 55 Вт |
|
||
| RPi4 4GB (Кракен) | 4× Cortex-A72 @1.5 | ~1900 | ~750 | 4 ГБ LPDDR4 | 5–7 Вт |
|
||
| HP t610 | 2× AMD T56N @1.65 | ~850 | ~450 | 4 ГБ DDR3 | 9–15 Вт |
|
||
|
||
**Выводы:**
|
||
- TrueNAS ≈ RPi4 по многопотоку (2 ядра против 4), но **вдвое выше в single-thread**. Сервисы HA/Node-RED/БД single-thread-зависимы → здесь TrueNAS выигрывает.
|
||
- **HP t610 — вдвое слабее обоих** (2011, Bobcat-ядро). Единственный плюс — x86-64, официальные образы встают без возни с ARM.
|
||
- 📌 **2026-09-12: t610 назначен хостом для переноса домашней автоматизации** (HA OS + zigbee2mqtt/mosquitto/nodered/mbusd/modbus-bridge). План: [[family/plans/home-automation-migration-t610]]. RAM 4 ГБ и HDD признаны достаточными (замер нагрузки не требуется).
|
||
- **Jellyfin-транскод не тянет никто** из трёх (iGPU HD2500 у G2020 без современного кодека; RPi4/t610 — нет аппаратного пути).
|
||
|
||
### Совместимость с DDR/DDR2 из гаража
|
||
|
||
Платы из гаража ([[family/documents/garage-lucky-park]]) несут **DDR 333/400** и **DDR2 533/667**; TrueNAS (P8H77-V LE) — **DDR3**. Три поколения, физически и электрически несовместимы (184 / 240 / 240 контактов, разные ключи). **Перенос планок невозможен ни в одну сторону.**
|
||
|
||
## Подключение
|
||
|
||
```bash
|
||
ssh -i ~/.ssh/id_rsa truenas_admin@mallexxx.duckdns.org
|
||
```
|
||
|
||
### Снятие железа (рецепт, если понадобится снова)
|
||
|
||
```bash
|
||
ssh -i ~/.ssh/id_rsa truenas_admin@mallexxx.duckdns.org \
|
||
'lscpu | grep -iE "model name|^CPU\(s\)|MHz|socket|core|thread"; free -h'
|
||
```
|
||
> `dmidecode -t 17` требует root — `truenas_admin` не имеет passwordless sudo, вернёт пусто. CPU/RAM берутся из `lscpu` + `free -h` без root.
|
||
|
||
## OpenWrt — доступ с TrueNAS
|
||
|
||
**SSH на роутер:**
|
||
```bash
|
||
# через docker-контейнер с sshpass
|
||
docker run --rm alpine sh -c 'apk add -q openssh sshpass && sshpass -p 1316261 ssh -o StrictHostKeyChecking=no root@192.168.2.2 "команда"'
|
||
```
|
||
|
||
**Проверка правил форвардинга портов:**
|
||
```bash
|
||
docker run --rm alpine sh -c 'apk add -q openssh sshpass && sshpass -p 1316261 ssh -o StrictHostKeyChecking=no root@192.168.2.2 "uci show firewall | grep redirect"'
|
||
```
|
||
|
||
**Добавление правила порт-форвардинга:**
|
||
```bash
|
||
docker run --rm alpine sh -c 'apk add -q openssh sshpass && sshpass -p 1316261 ssh -o StrictHostKeyChecking=no root@192.168.2.2 "uci add firewall redirect && uci set firewall.@redirect[-1].name=ИМЯ && uci set firewall.@redirect[-1].proto=tcpudp && uci set firewall.@redirect[-1].src=wan && uci set firewall.@redirect[-1].src_dport=ПОРТ && uci set firewall.@redirect[-1].dest=lan && uci set firewall.@redirect[-1].dest_ip=192.168.2.197 && uci set firewall.@redirect[-1].dest_port=ПОРТ && uci set firewall.@redirect[-1].target=DNAT && uci commit firewall && /etc/init.d/firewall reload"'
|
||
```
|
||
|
||
**Пароль root:** `1316261`
|
||
|
||
> 💡 **Бэкап firewall OpenWrt перед любой правкой redirect-правил** (вошло в практику 2026-09-01):
|
||
> ```bash
|
||
> # с TrueNAS: сохранить весь firewall-конфиг OpenWrt в backup-папку TrueNAS
|
||
> docker run --rm alpine sh -c 'apk add -q openssh sshpass && sshpass -p 1316261 ssh -o StrictHostKeyChecking=no root@192.168.2.2 "uci show firewall"'
|
||
> # → сохранить вывод в /mnt/RED_2TB/docker/backups/openwrt-firewall-YYYYMMDD-HHMMSS.txt
|
||
> # Пример сделанного: /mnt/RED_2TB/docker/backups/openwrt-firewall-20260901-130558.txt
|
||
> ```
|
||
> Существующие redirect-правила OpenWrt → TrueNAS(192.168.2.197): MQTT 1883, SSH 22, caddy_http 80→8088, caddy_https 443→8443, HomeAssistant 8123 (disabled).
|
||
|
||
## Пул и датасеты
|
||
|
||
Пул: RED_2TB (ZFS)
|
||
Точка монтирования: /mnt/RED_2TB/
|
||
|
||
| Датасет | Путь | Назначение |
|
||
|---------------|-------------------------------|-----------------------|
|
||
| storage/ | /mnt/RED_2TB/storage/ | Общее хранилище |
|
||
| backup/ | /mnt/RED_2TB/backup/ | Резервные копии |
|
||
| Photos/ | /mnt/RED_2TB/Photos/ | Фотографии |
|
||
| TimeMachine/ | /mnt/RED_2TB/TimeMachine/ | Бэкапы macOS |
|
||
| Edu/ | /mnt/RED_2TB/Edu/ | Учебные материалы |
|
||
| storage/git/ | /mnt/RED_2TB/storage/git/ | Git-репозитории |
|
||
|
||
## ⚠️ Важно: boot-pool не выживает после обновления
|
||
|
||
/home и /root находятся на boot-pool и **стираются при обновлении TrueNAS**.
|
||
|
||
Всё важное (конфиги, ключи, скрипты) должно лежать в /mnt/RED_2TB/,
|
||
а не в /home/truenas_admin/ или /root/.
|
||
|
||
Типичные жертвы:
|
||
- SSH authorized_keys в /home
|
||
- Cron jobs, написанные в /etc
|
||
- Любые файлы вне /mnt/RED_2TB/
|