Перейти к содержанию

Миграция с версии 0.7 и более ранних версий на версию 2.

Примечание

Начиная с версии 2.0.0, GPUStack Worker официально поддерживает только Linux. Если вы используете Windows или macOS, переместите каталог данных в систему Linux, чтобы выполнить миграцию.

В Windows и macOS сервер GPUStack (без встроенного рабочего процесса) по-прежнему можно запускать с помощью Docker Desktop.

До миграции

Критические изменения

1. Удаление источника моделей Ollama (начиная с версии 0.7.x)

  • Изменить: Начиная с версии 0.7, GPUStack больше не поддерживает ollama в качестве источника модели.
  • Влияние: Модели, файлы моделей и экземпляры моделей, источником которых является ollama, не будут сохранены в процессе обновления.
  • Требуется действие: Если вы обновляетесь с версии, предшествующей версии 0.7, и в настоящее время у вас есть модели, развернутые из источника ollama, перед обновлением необходимо перенести эти модели вручную. Мы рекомендуем повторно развернуть затронутые модели, используя один из поддерживаемых источников:

    • Hugging Face
    • ModelScope
    • Локальный путь

    Вы можете выполнить эту миграцию, повторно развернув модели через GPUStack UI перед началом обновления.

Резервное копирование ваших данных

Предупреждение

Сначала сделайте резервную копию: Перед началом миграции сервера настоятельно рекомендуется создать резервную копию базы данных.

Для установок по умолчанию на версии 0.7 или более ранней версии остановите сервер GPUStack и создайте резервную копию каталога данных, расположенного внутри контейнера по адресу:

/var/lib/gpustack

Пожалуйста, перейдите к разделу Требования к установке перед началом миграции.

Если вы использовали GPUStack без Docker в версиях до версии 0.7.1 (например, с помощью pip install или сценария установки), пожалуйста, установите Docker, следуя руководству Docker Engine Руководство по установке, прежде чем приступить к миграции.

Если вы использовали ускорение графического процессора для вывода в GPUStack до версии 0.7.1, проверьте, нужно ли вам устанавливать Container Toolkit или Container Runtime соответствующего ускорителя после установки Docker. Вы можете выполнить действия, описанные в разделе Требования к установке, чтобы проверить и установить их.

Этапы миграции

Определите свой устаревший каталог данных

Найдите каталог данных, который использовался вашей предыдущей установкой GPUStack. Путь по умолчанию:

/var/lib/gpustack

Чтобы узнать о других методах установки, перейдите по этой ссылке, чтобы найти каталог данных. В следующих шагах этот путь обозначается как ${your-data-dir}.

Из-за архитектурных изменений в версии 2.0.0 новые компоненты, такие как postgres и s6-supervisor, могут читать и записывать файлы в ${your-data-dir} с использованием пользователей без полномочий root. Убедитесь, что ${your-data-dir} доступен всем необходимым пользователям. Вы можете использовать следующий сценарий для настройки разрешений, но помните об угрозах безопасности и точно поймите, что делает сценарий, прежде чем запускать его.

1
2
3
4
5
6
7
dir="${your-data-dir}"
chmod a+rx "${dir}/log" || true
chmod a+rx $dir
while [ "$dir" != "/" ]; do
  chmod a+x "$dir"
  dir=$(dirname "$dir")
done

Миграция сервера с помощью Docker

Начиная с версии 2.0.0 больше не нужно указывать вычислительную платформу или версию графического процессора (например, -cpu, -cuda12.8 или -rocm) для серверных или рабочих образов. Вместо этого используйте единый образ: gpustack/gpustack:latest.

Миграция встроенной базы данных (SQLite → PostgreSQL)

В версии 0.7 и более ранних версиях GPUStack по умолчанию использовал встроенную базу данных SQLite для хранения данных управления. Начиная с версии 2.0.0, GPUStack отказался от поддержки SQLite и теперь по умолчанию использует встроенную базу данных PostgreSQL для повышения производительности и масштабируемости.

Запустите GPUStack с помощью GPUSTACK_DATA_MIGRATION=true, чтобы включить миграцию встроенной базы данных. Замените ${your-data-dir} устаревшим каталогом данных, содержащим исходную базу данных SQLite и связанные файлы:

1
2
3
4
5
6
7
8
9
sudo docker run -d --name gpustack \
  --restart=unless-stopped \
  --privileged \
  --network=host \
  --env GPUSTACK_DATA_MIGRATION=true \
  --volume /var/run/docker.sock:/var/run/docker.sock \
  --volume ${your-data-dir}:/var/lib/gpustack \
  --runtime nvidia \
  gpustack/gpustack:latest

Если вы получаете сообщение об ошибке из докера docker: Error response from daemon: unknown or invalid runtime name: nvidia, сначала проверьте Требования к среде выполнения ускорителя и следуйте документу Другие архитектуры графического процессора, чтобы изменить аргумент --runtime nvidia на вашу среду выполнения.

Настройка каталога данных с помощью --data-dir или GPUSTACK_DATA_DIR также поддерживается во время миграции базы данных. Настройте команду следующим образом:

1
2
3
4
5
6
...
-  --volume ${your-data-dir}:/var/lib/gpustack
+  --volume ${your-data-dir}:${your-data-dir}
...
+   gpustack/gpustack:latest \
+   --data-dir ${your-data-dir}

Миграция внешней базы данных

GPUStack поддерживает использование внешней базы данных для хранения данных управления. Если вы ранее развернули GPUStack с внешней базой данных, запустите сервер с помощью следующей команды:

1
2
3
4
5
6
7
8
9
sudo docker run -d --name gpustack-server \
  --restart=unless-stopped \
  --privileged \
  --network=host \
  --volume /var/run/docker.sock:/var/run/docker.sock \
  --volume ${your-data-dir}:/var/lib/gpustack \
  --runtime nvidia \
  gpustack/gpustack \
  --database-url ${your-database-url}

Миграция работников с помощью Docker

Для рабочих узлов замените ${your-data-dir} на путь к устаревшему каталогу рабочих данных. Используйте следующую команду:

sudo docker run -d --name gpustack-worker \
  --restart=unless-stopped \
  --privileged \
  --network=host \
  --volume ${your-data-dir}:/var/lib/gpustack \
  --volume /var/run/docker.sock:/var/run/docker.sock \
  --runtime nvidia \
  gpustack/gpustack \
  --server-url ${server-url} \
  --token ${token}

Убедитесь, что в команду docker добавлены оба --volume /var/run/docker.sock:/var/run/docker.sock и --runtime nvidia. Для предыдущей версии они не требуются. Информацию о другой среде выполнения ускорителя см. в разделе Другие архитектуры графического процессора, чтобы использовать вариант, отличный от --runtime nvidia.

Это запустит рабочий GPUStack, используя существующие данные, и подключит его к указанному серверу.

Другие архитектуры графических процессоров

Для архитектур, отличных от NVIDIA (например, AMD, Ascend), процесс миграции остается прежним. Пожалуйста, подтвердите, что ваша архитектура графического процессора поддерживается в документе Требования к работе ускорителя.

Например, при запуске сервера и рабочего процесса на хосте с графическим процессором AMD измените команду запуска Docker с помощью:

1
2
3
4
5
  sudo docker run -d --name gpustack \
  ...
- --runtime nvidia \
+ --runtime amd \
  ...

Воссоздание экземпляров модели

После завершения обновления существующие экземпляры модели могут остаться в состоянии Starting. Если это произойдет, воссоздание экземпляра модели позволит модели работать нормально.

Миграция из llama-box

Если вы использовали llama-box как механизм вывода в предыдущих версиях, учтите, что с версии 2.0.0 он больше не поддерживается. Вместо этого используйте llama.cpp через пользовательский механизм вывода.

  1. Создайте пользовательский бэкэнд llama.cpp на странице Inference Backend. Для настройки llama.cpp обратитесь к этому документу.
  2. Перейдите на страницу «Развертывание», измените модель, изначально запущенную с помощью llama-box, измените серверную часть на llama.cpp.
  3. Воссоздайте экземпляр модели после сохранения.

Примечание

Распределенный вывод по нескольким рабочим процессам в настоящее время не поддерживается настраиваемыми серверными модулями вывода.

Миграция с пользовательских версий серверной части

Если вы использовали пользовательскую версию серверной части в версиях GPUStack до версии 2.0.0, обратите внимание, что эти версии основывались на виртуальных средах Python, которые больше не поддерживаются начиная с версии 2.0.0. Все механизмы вывода теперь работают в контейнерных средах.

Чтобы продолжить использование ваших моделей, вам необходимо воссоздать их, используя один из следующих подходов:

Вариант 1. Используйте встроенную серверную версию:

GPUStack v2.0.0+ предоставляет несколько предварительно настроенных версий встроенных механизмов вывода. Воссоздайте развертывание модели и выберите встроенную серверную версию, которая лучше всего соответствует требованиям вашей модели.

Вариант 2. Добавление пользовательской версии во встроенный бэкэнд:

Если ни одна из встроенных версий не соответствует вашим потребностям, вы можете расширить встроенный механизм вывода, добавив собственную версию. Подробные инструкции можно найти в этом руководстве: Добавить пользовательскую версию во встроенный сервер вывода vLLM.