5.4 KiB
5.4 KiB
Инструкция: создание VM для RTL-SDR ingest-контура
1. Цель
Поднять на PVE отдельную VM, в которую пробрасывается RTL-SDR по USB, после чего внутри VM разворачивается Docker Compose стек с PostgreSQL/PostGIS, capture, preprocess и API.
2. Рекомендуемый профиль VM
Ограничения проекта:
- CPU: до 6 vCPU
- RAM: 10–12 GB
- SSD: 80–100 GB
Рекомендация по стартовому размеру
Если нет явного дефицита ресурсов на хосте:
- 4 vCPU
- 10 GB RAM
- 80 GB SSD
Если хост позволяет и нужен запас:
- 6 vCPU
- 12 GB RAM
- 100 GB SSD
3. ОС
Рекомендуемая ОС:
- Debian 12 minimal
Причина:
- предсказуемая база для Docker/PostgreSQL
- меньше лишнего, чем в desktop-образах
- удобно держать long-running сервисы
4. Настройки VM в PVE
4.1 Общие параметры
- Name:
fr24-adsbилиfr24-ingest - Machine:
q35 - BIOS:
SeaBIOS - CPU type:
host - Disk bus:
VirtIO SCSI - Network model:
VirtIO - QEMU guest agent: enabled
- Ballooning: disabled или очень консервативно
4.2 Диск
- один системный диск на
80–100 GB - включить
Discard/SSD emulation, если storage позволяет - не дробить диск без необходимости
4.3 Сеть
- подключить к основному bridge PVE
- лучше использовать DHCP reservation или статический IP
- имя хоста зафиксировать заранее, чтобы не плодить путаницу в compose и мониторинге
5. Установка ОС
- Создать VM в PVE
- Подключить ISO Debian 12
- Установить minimal system
- Включить SSH server
- Создать обычного пользователя для администрирования
- После первого boot обновить систему
6. Базовые пакеты внутри VM
После установки:
qemu-guest-agentdocker.ioили Docker Enginedocker compose plugingitcurlca-certificatesgnupglsb-releaseusbutilsjqchronyили аналогичный time sync
7. Подготовка каталогов
Рекомендуемая структура на VM:
/srv/fr24//srv/fr24/postgres//srv/fr24/data//srv/fr24/logs//srv/fr24/config/
Смысл:
- отдельно держать данные и логи
- не сваливать всё в home пользователя
- проще backup/restore
8. USB passthrough для RTL-SDR
8.1 Принцип
RTL-SDR подключён к физической машине по USB, а в VM он должен быть проброшен как USB-устройство.
8.2 Рекомендация
- использовать постоянный способ привязки устройства: по USB port или by-id, а не по случайному bus number
- после reboot хоста и VM устройство должно подниматься без ручной переконфигурации
8.3 Проверка в VM
Внутри VM проверить:
lsusbdmesg | tailrtl_testили аналогичный тест захвата
Если устройство не видно:
- проверить, не занял ли его хост
- проверить настройки passthrough в PVE
- переподключить устройство через интерфейс PVE
9. Docker Compose подготовка
Перед запуском стека внутри VM:
- Создать рабочую директорию проекта
- Подготовить
.envотдельно от репозитория - Создать volume для PostgreSQL
- Подготовить network для compose
- Проверить, что контейнеры смогут обращаться друг к другу по service name
10. Проверка после создания VM
Минимальный чек-лист:
- VM загрузилась после установки ОС
- SSH доступен
qemu-guest-agentработает- RTL-SDR виден внутри VM
- Docker и Compose работают
- диск и RAM соответствуют лимитам
- каталог
/srv/fr24создан - время синхронизировано
11. Что делать дальше после создания VM
После VM setup передать работу Dev-агенту на:
- Docker Compose стек
- PostgreSQL/PostGIS
- capture/preprocess/API контейнеры
- healthchecks
- backup/restore
- мониторинг
12. Критерий готовности VM
VM считается готовой, если:
- RTL-SDR доступен внутри VM
- Docker Compose запускается без ошибок
- есть место под PostgreSQL volume
- система переживает reboot и сохраняет USB passthrough
- VM готова принимать конфигурацию от Dev-агента