From 5b98264c2619d7b3b788d7bcffbef624d5098a86 Mon Sep 17 00:00:00 2001 From: Alexey Martemyanov Date: Fri, 31 Jul 2026 11:53:29 +0600 Subject: [PATCH 1/3] [2026-07-31] eagle: family/how-to/truenas-access.md family/how-to/truenas-sata-ports-and-zfs-pools.md --- family/how-to/truenas-access.md | 2 + .../truenas-sata-ports-and-zfs-pools.md | 74 ++++++++++++++++--- 2 files changed, 64 insertions(+), 12 deletions(-) diff --git a/family/how-to/truenas-access.md b/family/how-to/truenas-access.md index 57b50da7..9652c40f 100644 --- a/family/how-to/truenas-access.md +++ b/family/how-to/truenas-access.md @@ -13,6 +13,8 @@ | Сеть | 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`. ## Подключение diff --git a/family/how-to/truenas-sata-ports-and-zfs-pools.md b/family/how-to/truenas-sata-ports-and-zfs-pools.md index 5271d731..36016d1c 100644 --- a/family/how-to/truenas-sata-ports-and-zfs-pools.md +++ b/family/how-to/truenas-sata-ports-and-zfs-pools.md @@ -1,35 +1,85 @@ # TrueNAS — SATA порты и пулы +> Обновлено: 2026-07-31 + ## Материнская плата **ASUS P8H77-V LE**, чипсет Intel H77. 6 SATA портов на Intel контроллере (порт от ASMedia отсутствует). -### Распределение портов +### Распределение портов (текущее состояние) -| Порт | Тип | Скорость | Цвет | Диск | -|------|-----|----------|------|------| -| SATA6G_1 → ata1 | SATA 3 | **6 Gb/s** | серый | sda — WD 2TB | -| SATA6G_2 → ata2 | SATA 3 | **6 Gb/s** | серый | *свободен, для HGST 12TB* | -| SATA3G_1 → ata3 | SATA 2 | **3 Gb/s** | синий | sdd — WD 4TB | -| SATA3G_2 → ata4 | SATA 2 | **3 Gb/s** | синий | sdb — Kingston 120GB SSD (boot) | -| SATA3G_3 → ata5 | SATA 2 | **3 Gb/s** | синий | *свободен, для Seagate IronWolf* | -| SATA3G_4 → ata6 | SATA 2 | **3 Gb/s** | синий | sdc — Seagate 4TB | +| Порт (ata) | Тип | Скорость | Цвет | Диск | by-id | +|------------|-----|----------|------|------|-------| +| ata1 (SATA6G_1) | SATA 3 | 6 Gb/s | серый | **sda** — WD 2TB (WD20EFAX) | WD-WXH2A31D5HDJ | +| ata2 (SATA6G_2) | SATA 3 | 6 Gb/s | серый | **sdc** — Seagate IronWolf 12TB (ST12000NT001) | WV700FQ5 | +| ata3 (SATA3G_1) | SATA 2 | 3 Gb/s | синий | **sdb** — WD 4TB (WD40EZAZ) | WD-WX22D51JJFZ7 | +| ata4 (SATA3G_2) | SATA 2 | 3 Gb/s | синий | **sde** — Kingston 120GB SSD (boot) | 50026B77844E881C | +| ata5 (SATA3G_3) | SATA 2 | 3 Gb/s | синий | *свободен* | — | +| ata6 (SATA3G_4) | SATA 2 | 3 Gb/s | синий | **sdd** — Seagate 4TB (ST4000DM004) | WFN66CM2 | -### Подключение дисков +> ⚠️ В отличие от изначального плана, **IronWolf 12TB сейчас на ata2 (SATA6G_2)**, а не на ata5. Это нормально — ZFS не привязана к порту (см. ниже). + +## Плата расширения SATA в PCIe (установлена ~2026-07-30) + +**PCIe карта:** ASMedia ASM1166 (PCI ID `1b21:1166`, rev 02), на шине `02:00.0` (под PCIe bridge `0000:00:1c.0`). +Контроллер виден ядру (драйвер `ahci` активен), подсистема: ZyDAS Technology Corp. + +**Состояние (диагностика 2026-07-31):** +- Контроллер создал **32 ата-порта** (`ata7`–`ata38` на 0000:02:00.0). ⚠️ Это НЕ типичные 6 портов чистой ASM1166 — вероятно плата с расширенным числом портов / мультиплексированием. Уточнить физическое число разъёмов. +- **На НИ ОДНОМ порту карты нет ни одного подключённого/живого диска**: у всех 32 портов в sysfs только `ata_port host link power uevent`, отсутствуют `target*` и блок-устройства. +- `lsscsi` показывает диски только на Intel-хостах 0,1,2,3,5. Хосты карты (7–38) без дисков. +- В `/dev/disk/by-id` только 5 дисков — все на материнке. + +**Заключение:** диск, подключённый к плате расширения, **не виден даже на уровне PHY/AHCI** — ядро не получило ответа на IDENTIFY, нет ни линка, ни присутствия устройства. Это **физическая проблема** (кабель/разъём SATA, питание диска от платы/блока, плохой контакт, или диск не был корректно подключён), а НЕ проблема софта/TrueNAS. Диск жив (определяется через USB-бокс, «шуршит» при включении). + +## Следующие шаги (диск на карте PCIe SATA — НЕ починен, статус открыт) + +Диагностика 2026-07-31 завершена, но **исправление не выполнено** — это физическая задача (на месте у NAS). Чтобы будущая сессия подхватила с места простоя: + +1. Переподключить SATA-кабель к карте и диску заново (оба конца до щелчка), попробовать другой разъём карты / другой SATA-кабель. +2. Убедиться, что карта полностью вставлена в PCIe-слот. +3. Выключить NAS → переподключить диск → включить (на горячую AHCI hotplug на карте может не сработать). +4. Проверить задетектился ли диск на карте: +```bash +lsscsi -H; lsscsi -g +# ожидается появление нового /dev/sd* на хостах карты (7–38) или target* под: +for a in /sys/devices/pci0000:00/0000:00:1c.0/0000:02:00.0/ata*/host*; do + tgt=$(ls -d "$a"/target* 2>/dev/null); [ -n "$tgt" ] && echo "$a: $tgt" +done +``` +5. Если диск появился в TrueNAS Storage — импортировать пул (WebUI → Storage → Import Pool) или создать новый. + +> Когда диск заведётся и добавится в пул — **обновить таблицу портов выше** и удалить этот блок «Следующие шаги». + +## Диагностические команды (полезно для будущих проверок) +```bash +# какие диски видит система и где +lsscsi -H; lsscsi -g +# какие порты создала карта и живы ли (target = есть диск) +ls /sys/devices/pci0000:00/0000:00:1c.0/0000:02:00.0/ata* +# для каждого порта карты — есть ли подключённое устройство (target*): +for a in /sys/devices/pci0000:00/0000:00:1c.0/0000:02:00.0/ata*/host*; do + tgt=$(ls -d "$a"/target* 2>/dev/null); [ -n "$tgt" ] && echo "$a: $tgt" +done +# контроллеры +lspci -k | grep -i sata +``` + +## Подключение дисков (исходный план) - **HGST 12TB (sde, USB)** — при подключении по SATA: в серый порт **SATA6G_2 (ata2)**. Диск enterprise, 6Gb/s. Ему не нужен USB-карман. - **Seagate IronWolf** — в синий порт **SATA3G_3 (ata5)**. HDD не упирается в 3Gb/s (~300MB/s пропускная), смысла в 6Gb/s нет. - **Kingston SSD (boot)** — оставить в синем порту SATA3G_2 (ata4). Вся активность только при загрузке, система работает из RAM. - **WD 2TB** — серый SATA6G_1 (ata1), занят. -### Важно про ZFS и перетыкивание +## Важно про ZFS и перетыкивание - ZFS не привязана к букве диска или SATA порту. TrueNAS распознаёт пул по GUID на дисках. - Можно перетыкать диски в любые порты — TrueNAS поднимет пул автоматически. - Если пул не поднялся автоматически: WebUI → Storage → Import Pool. -### Запрещено +## Запрещено - **Boot pool (Kingston 120GB SSD)** — нельзя использовать для Docker, файлов, app data. TrueNAS обновления могут пересоздать boot pool. Размер 120GB мал для логов/образов. From 102a73f49939edaed434dcb4fc6ff1e9b857eddb Mon Sep 17 00:00:00 2001 From: Alexey Martemyanov Date: Fri, 31 Jul 2026 12:04:03 +0600 Subject: [PATCH 2/3] [2026-07-31] eagle: family/how-to/truenas-sata-ports-and-zfs-pools.md --- family/how-to/truenas-sata-ports-and-zfs-pools.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/family/how-to/truenas-sata-ports-and-zfs-pools.md b/family/how-to/truenas-sata-ports-and-zfs-pools.md index 36016d1c..304fab1f 100644 --- a/family/how-to/truenas-sata-ports-and-zfs-pools.md +++ b/family/how-to/truenas-sata-ports-and-zfs-pools.md @@ -31,7 +31,12 @@ - `lsscsi` показывает диски только на Intel-хостах 0,1,2,3,5. Хосты карты (7–38) без дисков. - В `/dev/disk/by-id` только 5 дисков — все на материнке. -**Заключение:** диск, подключённый к плате расширения, **не виден даже на уровне PHY/AHCI** — ядро не получило ответа на IDENTIFY, нет ни линка, ни присутствия устройства. Это **физическая проблема** (кабель/разъём SATA, питание диска от платы/блока, плохой контакт, или диск не был корректно подключён), а НЕ проблема софта/TrueNAS. Диск жив (определяется через USB-бокс, «шуршит» при включении). +**Целевой диск:** HGST 12TB (Ultrastar) — для него и покупалась PCIe SATA-карта. В плане значился как «по USB определяется как sde, USB-карман не нужен, вставить по SATA». + +**Заключение (диагностика 2026-07-31):** +- HGST 12TB **сейчас физически НЕ подключён к серверу** (нет в `lsscsi`, нет в by-id, диски подключаются/перетыкаются). Пока диск не воткнут — система его, естественно, не видит. +- Когда диск подключается к карте, карта **не даёт `target*` ни на одном порту** — т.е. если при реальном подключении по карте диск не появляется в `lsscsi`, это **физическая проблема** (контакт кабеля/разъёма, питание диска от БП или от карты — если карта питается только от PCIe слота и недополучает, линк не поднимается). Не софт/TrueNAS. +- Диск жив — через USB-бокс определяется, «шуршит» при включении (это единственное известное состояние — по плану он сидел в USB как sde). ## Следующие шаги (диск на карте PCIe SATA — НЕ починен, статус открыт) From bf5cc47fc3a82472daf17f2561b4c3bc2ced65de Mon Sep 17 00:00:00 2001 From: Alexey Martemyanov Date: Fri, 31 Jul 2026 12:25:38 +0600 Subject: [PATCH 3/3] [2026-07-31] eagle: family/how-to/truenas-sata-ports-and-zfs-pools.md --- .../truenas-sata-ports-and-zfs-pools.md | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/family/how-to/truenas-sata-ports-and-zfs-pools.md b/family/how-to/truenas-sata-ports-and-zfs-pools.md index 304fab1f..e31a6b8e 100644 --- a/family/how-to/truenas-sata-ports-and-zfs-pools.md +++ b/family/how-to/truenas-sata-ports-and-zfs-pools.md @@ -33,18 +33,19 @@ **Целевой диск:** HGST 12TB (Ultrastar) — для него и покупалась PCIe SATA-карта. В плане значился как «по USB определяется как sde, USB-карман не нужен, вставить по SATA». -**Заключение (диагностика 2026-07-31):** -- HGST 12TB **сейчас физически НЕ подключён к серверу** (нет в `lsscsi`, нет в by-id, диски подключаются/перетыкаются). Пока диск не воткнут — система его, естественно, не видит. -- Когда диск подключается к карте, карта **не даёт `target*` ни на одном порту** — т.е. если при реальном подключении по карте диск не появляется в `lsscsi`, это **физическая проблема** (контакт кабеля/разъёма, питание диска от БП или от карты — если карта питается только от PCIe слота и недополучает, линк не поднимается). Не софт/TrueNAS. -- Диск жив — через USB-бокс определяется, «шуршит» при включении (это единственное известное состояние — по плану он сидел в USB как sde). +**✅ Заключение после решающего теста (карта исправна, дело в HGST):** +- **Карта 100% исправна.** При подключении заведомо рабочего WD 2TB (второго WD20EFAX, `WD-WXJ2A31CUNNT`) в порт карты она **определилась** — появился `host9`→`target9:0:0` с блок-устройством `/dev/sde`. Значит слот/порты/кабель AHCI работают, питания хватает. +- У карты **нет отдельного разъёма питания** (питается от PCIe-слота). Диск питается от БП напрямую. +- Проверены физические порты карты **1 и 6** — оба без линка для HGST. +- Поэтому **проблема в самом HGST 12TB**: при подключении к заведомо исправной карте он не даёт даже `target*` (AHCI не видит присутствие на линке), хотя диск вращается («шуршит» — питание доходит) и определяется через USB-бокс. → **неисправен SATA-интерфейс самого диска** (разъём/PCB/гибкий кабель шпинделя), а не карта и не питание/НЕ TrueNAS. -## Следующие шаги (диск на карте PCIe SATA — НЕ починен, статус открыт) +## Следующие шаги (HGST 12TB на карте PCIe SATA — НЕ починен, статус открыт) -Диагностика 2026-07-31 завершена, но **исправление не выполнено** — это физическая задача (на месте у NAS). Чтобы будущая сессия подхватила с места простоя: +Диагностика 2026-07-31 дала **окончательный вывод** (карта исправна, проблема в диске). Физически проблема диска решается на месте у NAS: -1. Переподключить SATA-кабель к карте и диску заново (оба конца до щелчка), попробовать другой разъём карты / другой SATA-кабель. -2. Убедиться, что карта полностью вставлена в PCIe-слот. -3. Выключить NAS → переподключить диск → включить (на горячую AHCI hotplug на карте может не сработать). +1. **Заведомо рабочий WD 2TB сейчас в карте (host9 = /dev/sde)** — на нём карта работает. Оставь его или верни на материнку после теста. +2. Решающий контроль: вернуть **HGST 12TB в тот же порт/кабель карты**, где определялся рабочий WD. Если HGST снова не даст `target*` при заведомо рабочем кабеле/порте → HGST неисправен по **SATA-интерфейсу**. +3. Проверить HGST **через USB-бокс** (в плане значится «по USB определяется как sde»): если через USB работает, а через SATA нет → дефект SATA-коннектора/PCB самого диска. Тогда: чинить контакт платы диска / использовать через USB / не использовать. 4. Проверить задетектился ли диск на карте: ```bash lsscsi -H; lsscsi -g @@ -53,7 +54,9 @@ for a in /sys/devices/pci0000:00/0000:00:1c.0/0000:02:00.0/ata*/host*; do tgt=$(ls -d "$a"/target* 2>/dev/null); [ -n "$tgt" ] && echo "$a: $tgt" done ``` -5. Если диск появился в TrueNAS Storage — импортировать пул (WebUI → Storage → Import Pool) или создать новый. +5. Если HGST всё же заведётся и добавится в пул — обновить таблицу портов и удалить блок «Следующие шаги». + +> ⚠️ NB: буквы дисков (`sda`/`sdb`/...) **shift-аются при перетыкивании** — сейчас на материнке: [0]=WD2TB, [2]=WD4TB, [3]=Kingston boot, [5]=Seagate4TB, IronWolf на [1]. Не полагаться на буквы, проверять по `by-id`/модели. > Когда диск заведётся и добавится в пул — **обновить таблицу портов выше** и удалить этот блок «Следующие шаги».