Files
llm/docs/runbooks/gpu-host-preflight.md
T

119 lines
3.4 KiB
Markdown

# GPU Host Preflight
Цель: проверить, что `docker-gpu.cin.su` готов к запуску GPU-контейнеров.
Если `docker-gpu.cin.su` указывает на Windows-хост, используйте также отдельный runbook:
```text
docs/runbooks/windows-docker-gpu-host.md
```
## SSH Host Key
Если SSH сообщает `Host key verification failed`, нужно вручную проверить fingerprint хоста и добавить ключ в `known_hosts`.
Команда для просмотра ключа:
```powershell
ssh-keyscan docker-gpu.cin.su
```
После проверки fingerprint можно добавить ключ:
```powershell
ssh-keyscan docker-gpu.cin.su >> $env:USERPROFILE\.ssh\known_hosts
```
Не добавляйте ключ вслепую, если есть риск подмены DNS или хоста.
## Preflight
Из корня проекта:
```powershell
powershell -NoProfile -ExecutionPolicy Bypass -File scripts/check_gpu_host.ps1
```
Если нужен явный пользователь SSH:
```powershell
powershell -NoProfile -ExecutionPolicy Bypass -File scripts/check_gpu_host.ps1 -SshTarget USER@docker-gpu.cin.su
```
Скрипт проверяет:
- SSH-доступ;
- наличие GPU через `nvidia-smi`;
- Docker Engine;
- Docker Compose;
- запуск тестового CUDA-контейнера с `--gpus all`.
## Readiness Report
Чтобы одной командой проверить SSH preflight и endpoints активного GPU-профиля:
```powershell
python scripts/check_gpu_readiness.py --profile text --print
```
Отчет пишется в:
```text
reports/gpu-readiness.json
```
По умолчанию проверяется профиль `text` из `config/gpu_profiles.json`:
- SSH/GPU/Docker preflight через `scripts/check_gpu_host.ps1`.
- health/model endpoints из поля `wait` выбранного профиля.
Полная проверка взаимоисключающих OpenAI-compatible endpoints доступна отдельно:
```powershell
python scripts/check_gpu_readiness.py --all-endpoints --print
```
Если SSH возвращает `Permission denied`, нужно настроить SSH-ключ или явно указать пользователя:
```powershell
python scripts/check_gpu_readiness.py --ssh-target USER@docker-gpu.cin.su --print
```
## Full GPU Stack Flow
После настройки SSH-доступа можно запустить весь контур:
```powershell
powershell -NoProfile -ExecutionPolicy Bypass -File scripts/deploy_gpu_stack.ps1 -Pull
```
Сценарий выполняет:
- GPU host preflight;
- deploy vLLM;
- deploy llama.cpp GGUF;
- ожидание `/v1/models` для обоих endpoint-ов;
- запуск live evals.
Посмотреть план без запуска:
```powershell
powershell -NoProfile -ExecutionPolicy Bypass -File scripts/deploy_gpu_stack.ps1 -PlanOnly -Pull
```
Проверить compose-файлы без SSH preflight:
```powershell
powershell -NoProfile -ExecutionPolicy Bypass -File scripts/deploy_gpu_stack.ps1 -ConfigOnly -SkipPreflight
```
## Expected Result
В выводе должны быть:
- имя хоста;
- модель GPU и объем VRAM;
- версия Docker;
- версия Docker Compose;
- результат `nvidia-smi` внутри контейнера.