Files
obsidian-vault/family/how-to/truenas-sata-ports-and-zfs-pools.md
T

101 lines
9.8 KiB
Markdown
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.
# TrueNAS — SATA порты и пулы
> Обновлено: 2026-08-01
## Материнская плата
**ASUS P8H77-V LE**, чипсет Intel H77.
6 SATA портов на Intel контроллере (порт от ASMedia отсутствует).
### Распределение портов (текущее состояние)
| Порт (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 дисков — все на материнке.
**Целевой диск:** HGST 12TB (Ultrastar) — для него и покупалась PCIe SATA-карта. В плане значился как «по USB определяется как sde, USB-карман не нужен, вставить по SATA».
**✅ Заключение после решающего теста (карта исправна, дело в HGST):**
- **Карта 100% исправна.** При подключении заведомо рабочего WD 2TB (второго WD20EFAX, `WD-WXJ2A31CUNNT`) в порт карты она **определилась** — появился `host9``target9:0:0` с блок-устройством `/dev/sde`. Значит слот/порты/кабель AHCI работают, питания хватает.
- У карты **нет отдельного разъёма питания** (питается от PCIe-слота). Диск питается от БП напрямую.
- Проверены физические порты карты **1 и 6** — оба без линка для HGST.
**✅ Дополнительный тест HGST через USB (2026-08-01) — диск полностью исправен:**
- HGST 12TB подключён через **USB-мост JMicron** (`152d:0578`, "USB to ATA/ATAPI Bridge") на xHCI-порт (`usb3/3-1`).
- Ядро определило его как **/dev/sdf**, модель **HGST HUH721212ALE600**, **полная ёмкость 10.9 TB** (23 437 770 752 сектора × 512 B — точно размер 12TB-драйва).
- Диск размечен: `sdf1` = 200M, `sdf2` = 10.9TB.
- Через USB диск заводится, читается на всю ёмкость и виден целиком.
**➡️ Уточнённый диагноз:** проблема **именно в паре HGST SATA-интерфейс ↔ SATA-карта ASMedia**, а не в самом диске. Диск работоспособен. Две вероятные причины не-линка по SATA в карте: (1) питание с SATA-разъёма БП до диска в карте не доходит (в USB-боксе питание даёт мост/свой блок, потому и работает), либо (2) enterprise-диск (4Kn/особый PHY) не поднимает линк на ASM1166. USB-мост — рабочий способ диагностики, но ненадёжен как постоянное решение для ZFS.
## Следующие шаги (HGST 12TB — статус: диск рабочий через USB, но по SATA-карте не линкуется)
Цель — завести HGST в пул TrueNAS. USB-мост подтвердил исправность диска; теперь вопрос только в SATA-линке.
1. **Вариант А (рекомендуется):** вешать HGST на **свободный SATA-порт материнки ata5 (SATA3G_3, синий)** вместо карты. Intel H77 AHCI к enterprise-дискам надёжнее, чем ASM1166. После подключения проверить `lsscsi -g` — диск должен появиться на хосте материнки (host 0/1/2/3/5). Если заведётся — добавить в пул по by-id/GUID (ZFS не привязана к порту).
2. **Вариант Б (проверочный):** вернуть HGST в тот же порт/кабель карты, где определялся рабочий WD 2TB (host9). Если с заведомо рабочим кабелем/портом HGST всё равно не даёт `target*` → подтверждается мизер питания до диска в карте или несовместимость PHY HGST↔ASM1166.
3. **Особое внимание питанию:** у карты нет отдельного питания, диск в карте питается SATA-разъёмом напрямую. Проверить, что кабель питания доходит и даёт 12V — подозрение, что в USB-боксе питание подаёт мост, а в SATA-схеме до HGST оно не доходит.
4. Проверить появился ли диск на материнке после переноски:
```bash
lsscsi -g # смотреть новые /dev/sd* на хостах материнки (0,1,2,3,5)
lsblk -o NAME,SIZE,MODEL,TRAN
```
5. Если HGST заведётся и добавится в пул — обновить таблицу портов и удалить этот блок.
> ⚠️ NB: буквы дисков (`sda`/`sdb`/...) **shift-аются при перетыкивании** — сейчас на материнке: [0]=WD2TB, [2]=WD4TB, [3]=Kingston boot, [5]=Seagate4TB, IronWolf на [1]. Не полагаться на буквы, проверять по `by-id`/модели.
> Когда диск заведётся и добавится в пул — **обновить таблицу портов выше** и удалить этот блок «Следующие шаги».
## Диагностические команды (полезно для будущих проверок)
```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 не привязана к букве диска или SATA порту. TrueNAS распознаёт пул по GUID на дисках.
- Можно перетыкать диски в любые порты — TrueNAS поднимет пул автоматически.
- Если пул не поднялся автоматически: WebUI → Storage → Import Pool.
## Запрещено
- **Boot pool (Kingston 120GB SSD)** — нельзя использовать для Docker, файлов, app data. TrueNAS обновления могут пересоздать boot pool. Размер 120GB мал для логов/образов.
## SATA кабель
Любой стандартный SATA кабель подходит. Разницы между кабелями для SATA 2 и SATA 3 нет.