119 lines
3.4 KiB
Markdown
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` внутри контейнера.
|