Установка#
Установка Platform V Vector DB (далее - Vector DB) выполняется с помощью архива. Архив распаковывается в один каталог. Каталог содержит бинарные файлы и конфигурационные файлы, которые расположены в подкаталогах. Особенностью установки из архива является отсутствие необходимости получения прав корневого администратора (root) и возможность установки на любом дистрибутиве Linux.
Перед установкой обязательно выполните указания раздела «Подготовка окружения».
Порядок установки#
Шаг 1 Запуск bin-файла (обязательный)#
Последовательность действий#
Для запуска бинарного файла используется команда ./qdrant
Скачайте дистрибутив Vector DB.
Распакуйте архив:
tar -xzf Vector-DB-XYZ.tar.gzЭто создаст директорию с содержимым Vector DB, например:
Vector-DB-XYZ/ ├── config.yaml └── qdrantПереместите Vector DB в системную директорию (опционально):
sudo mkdir -p /opt/qdrant sudo mv Vector-DB-XYZ /opt/qdrant/Запустите Qdrant:
cd /opt/qdrant/Vector-DB-XYZ ./qdrantПараметры запуска:
--config-path– путь к основному конфигурационному файлу (по умолчаниюconfig/config.yaml).--sec-config-path- путь к дополнительному конфигурационному файлу (по умолчанию/config/sec-config.yaml).--storage-path– директория для данных (по умолчанию./storage).
Пример запуска продукта с двумя конфигурационными файлами:
./target/debug/qdrant --config-path ./config/config.yaml --sec-config-path ./config/sec-config.yaml```Пример основного конфигурационного файла
config.yaml:storage: storage_path: "/var/lib/qdrant" snapshots_path: "/var/lib/qdrant/snapshots" service: http_port: 6333 grpc_port: 6334 cluster: enabled: false # Для standalone-режимаПример дополнительного конфигурационного файла
sec-config.yaml:audit: is_enabled: true log_dml: false application: "VectorDB" system_id: "system_id" log_file_path: "/home/admin/audit.log" log_file_permissions: 0o644 buffer_size_bytes: 16```
Проверка результата#
Проверьте, что Qdrant отвечает на запросы (например, через HTTP API):
curl http://localhost:6333/collections
Успешным результатом считается JSON-ответ с информацией о коллекциях или успешным статусом 200 OK.
Шаг 2 Настройка порядка загрузки и приоритетов (опциональный)#
Цель выполнения#
Этот шаг направлен на гарантирование корректной последовательности запуска сервисов, необходимых для работы Qdrant, и оптимизацию ресурсов системы. Хотя он необязателен, его настройка особенно важна в сложных инфраструктурах или при наличии зависимостей от других сервисов.
Данный шаг необходим:
в продакшн-средах с критичными зависимостями (например, IAM-сервисы, базы данных);
в кластерах с несколькими компонентами, где порядок запуска влияет на стабильность;
если Qdrant использует внешние ресурсы (например, LDAP, S3, мониторинг).
Последовательность действий#
Определите зависимости:
cоставьте список сервисов, которые должны быть запущены до Qdrant, например, сеть (network-online.target), Prometheus, IAM-сервис, база данных и т.д.;
проверьте, доступны ли эти сервисы в системе:
systemctl list-units | grep <имя_сервиса>
Отредактируйте файл конфигурации
systemd:Откройте файл qdrant.service:
sudo nano /etc/systemd/system/qdrant.serviceВ секции [Unit] добавьте параметры
AfterиRequires:[Unit] Description=Qdrant Vector Search Engine After=network-online.target prometheus.service Requires=network-online.target prometheus.serviceAfter: указывает, что Qdrant запустится после указанных сервисов.Requires: гарантирует, что Qdrant не запустится, если указанные сервисы недоступны.
Перезагрузите
systemd:Перезагрузите конфигурацию
systemd:sudo systemctl daemon-reload
Настройте автозапуск (если не сделано):
Включите автозапуск Qdrant:
sudo systemctl enable qdrant
Проверьте порядок загрузки:
Перезагрузите систему:
sudo rebootПосле перезагрузки проверьте статус Qdrant:
sudo systemctl status qdrantУбедитесь, что сервис запущен и зависящие сервисы работают.
Проверка результата#
При запуске Vector DB объединяет несколько источников конфигурации в одну эффективную конфигурацию. Порядок загрузки следующий (от наименее до наиболее значимых):
Встроенная конфигурация по умолчанию.
config/config.yaml.config/{RUN_MODE}.yaml.config/local.yaml.Пользовательский файл конфигурации.
Переменные среды.
Параметры из более поздних источников в списке переопределяют те, что находятся в предыдущих источниках:
Настройки в
config/{RUN_MODE}.yaml(3) будут переопределять настройки вconfig/config.yaml(2).Пользовательский файл конфигурации, указанный через аргумент
--config-path(5), переопределит все остальные настройки, заданные файлами.Переменные среды (6) имеют наивысший приоритет и переопределяют любые настройки из файлов.
Шаг 3 Настройка systemd (опциональный)#
Цель выполнения#
Настройка systemd направлена на автоматизацию управления процессом, обеспечение надежности работы сервиса и интеграцию с системными инструментами Linux. Этот шаг является опциональным, но рекомендуется для Развертывание в production-среду.
Последовательность действий#
Для работы продукта в фоне как сервис выполните:
Создайте файл
/etc/systemd/system/qdrant.service:`[Unit] Description=Qdrant Vector Search Engine After=network.target [Service] User=qdrant Group=qdrant ExecStart=/usr/local/bin/qdrant --config-path /etc/qdrant/config.yaml Restart=always [Install] WantedBy=multi-user.targetЗапустите сервис:
sudo useradd -r qdrant sudo mkdir -p /var/lib/qdrant/{data,snapshots} sudo chown -R qdrant:qdrant /var/lib/qdrant sudo systemctl enable --now qdrant
Проверка результата#
Чтобы убедиться, что сервис Qdrant настроен и работает корректно через systemd, выполните следующие шаги:
Проверка статуса сервиса: используйте команду
systemctlдля проверки текущего состояния сервиса. Статус должен бытьactive (running).Просмотр логов сервиса: проверьте логи через
journalctl. Убедитесь, что нет ошибок типаFailed to start qdrant.serviceилиSegmentation fault.Проверка запущенного процесса: убедитесь, что процесс Qdrant запущен. В выводе будет строка с процессом Qdrant (например:
qdrant --config /etc/qdrant/config.yaml).Проверка автоматического запуска при загрузке системы: убедитесь, что сервис включен в автозагрузку командой:
sudo systemctl is-enabled qdranУспешным результатом считается отображение
enabled.Проверка автоперезапуска: если Qdrant завершился аварийно,
systemdдолжен перезапустить его. Чтобы проверить:Остановите Qdrant вручную:
sudo systemctl stop qdrantПодождите 10 секунд и проверьте статус:
sudo systemctl status qdrant
Если автоперезапуск включен, сервис должен снова запуститься.
Шаг 4 Развертывание кластера (опциональный)#
Цель выполнения#
Развертывание кластера направлено на обеспечение масштабируемости, отказоустойчивости и высокой производительности при работе с векторными данными.
Последовательность действий#
Для отказоустойчивой конфигурации:
Включите кластерный режим в
config.yaml:cluster: enabled: true p2p: port: 6335 consensus: tick_period_ms: 100 storage: storage_path: "/path/to/node1_data"По умолчанию Vector DB будет использовать порт
6335для внутренней коммуникации. Все узлы должны быть доступны по этому порту внутри кластера, однако убедитесь, что доступ извне к этому порту изолирован, так как он может использоваться для выполнения операций записи.Кроме того, следует предоставить флаг
--uriпервому узлу, чтобы он мог сообщить другим узлам о том, как его можно достичь:./qdrant --uri 'http://qdrant_node_1:6335'Последующие узлы в кластере должны знать хотя бы один узел существующего кластера, чтобы синхронизироваться с ним и остальными узлами кластера. Для этого им необходимо указать адрес начальной загрузки:
./qdrant --bootstrap 'http://qdrant_node_1:6335'
Обратите внимание, что включение режима распределенного развертывания само по себе не приводит к автоматической репликации данных.
Использование нового распределенного кластера#
При активации распределенного режима и увеличении количества узлов до двух или более, данные автоматически не перемещаются на новый узел. Для того чтобы воспользоваться новым пустым узлом, выполните одно из следующих действий:
Создайте новую реплицированную коллекцию, установив параметр
replication_factorравным двум или больше и задав параметр количества шардов кратным количеству узлов.Если существующая коллекция не содержит достаточно шардов для каждого узла, нужно создать новую коллекцию, как описано в предыдущем пункте.
Если достаточное количество шардов для каждого узла и нужно реплицировать свои данные, создайте новые реплики шардов.
Если достаточное количество шардов для каждого узла иданные уже реплицированы, можете переместить данные (без их репликации) на новые узлы путем перемещения шардов.
Проверка результата#
После успешной синхронизации состояние кластера можно наблюдать через REST API:
GET /cluster
Пример результата:
{
"result": {
"status": "enabled",
"peer_id": {peer_id},
"peers": {
"{peer_id}": {
"uri": "http://{ip_address}:6335/"
},
"{peer_id}": {
"uri": "http://qdrant_node_1:6335/"
}
},
"raft_info": {
"term": 1,
"commit": 4,
"pending_operations": 1,
"leader": {leader_id},
"role": "Leader"
}
},
"status": "ok",
"time": 5.731e-06
}
Шаг 5 Настройка Secman#
Цель выполнения#
Интеграция с Secman направлена на обеспечение безопасности, автоматизации управления конфиденциальными данными и улучшение надежности при работе с векторной базой данных.
Последовательность действий#
Выполните редактирование файла конфигурации sec-config.yaml согласно руководству по безопасности.
Выполните запуск продукта с двумя конфигурационными файлами:
./target/debug/qdrant --config-path ./config/config.yaml --sec-config-path ./config/sec-config.yaml```
Проверка результата#
Если используется Secman в качестве хранилища секретов, то:
После запуска Vector DB аутентифицируется в Secret Management, используя расшифрованную пару
role_idиsecret_id, и получает токен доступа.Используя токен доступа, сервер считывает из хранилища необходимые секреты.
Продукт успешно запустится.