NVIDIA MIG — как разделить GPU в Proxmox?
Введение
Графические ускорители корпоративного уровня — это очень дорогое удовольствие, поэтому покупка отдельных GPU для каждого рабочего места обошлась бы в кругленькую сумму. Вместо этого, существуют технологии, такие как Nvidia MIG, которая позволяет разделить ресурсы ИИ-ускорителя на несколько частей, после чего выделить их сразу нескольким пользователям. В этом руководстве специалисты компании ServerFlow расскажут вам, как использовать технологию MIG в Proxmox для эффективного использования вашего ИИ-ускорителя.
Что такое Nvidia MIG?
Nvidia MIG позволяет на аппаратном уровне разделять вычислительные мощности профессионального ИИ-ускорителя на несколько полностью изолированных экземпляров — MIG-инстансы. Каждый инстанс получает определенное количество потоковых мультипроцессоров (SMs), определенный объем видеопамяти, пропускную способность памяти и кэш, аппаратные планировщики задач и движки копирования данных, в зависимости от выбранного профиля разделения ресурсов. Для каждой видеокарты доступен свой набор инстансов — например, у H100 80 ГБ доступно до 7 MIG-инстансов, в зависимости от выбранного профиля. Nvidia MIG, в отличие от технологии vGPU, не требует дополнительных лицензий — она доступна через стандартные LTS-драйверы корпоративного уровня (начиная с версии R450) для поддерживаемых GPU. Кроме того, MIG и vGPU используются в разных сценариях — первая подойдет для жесткого аппаратного разделение ресурсов, а вторая делит GPU между виртуальными машинами на программном уровне. При этом, Nvidia MIG также может работать совместно с vGPU поверх поддерживаемых гипервизоров, вроде Proxmox, обеспечивая максимальную гибкость при работе в высоконагруженной вычислительной инфраструктуре. Важно отметить, что технология MIG доступна именно на полноценных ИИ-ускорителях, таких как A100, H200 или B200, единственным исключением является профессиональная видеокарта RTX Pro 6000 Blackwell, но она поддерживает не все профили MIG.

Использование Nvidia MIG в Proxmox
Итак, приступим к практике!
Активация MIG
Для начала запустите в Proxmox и перейдите в раздел Shell, после чего пропишите команду, чтобы определить, какие физические GPU видны системе до аппаратного разделения:
nvidia-smi -L
Затем введите команду, чтобы убедиться, что функция MIG отключена:
nvidia-smi –query-gpu=index,name,uuid,mig.mode.current –format=csv
Если в поле mig.mode.current прописано текущее состояние как Disabled, то можно включить функцию MIG командой:
sudo nvidia-smi -i 0 -mig 1
Индекс видеокарты в системе — 0. GPU можно выбирать как по индексу, так и по PCI Bus ID или UUID. В параметре MIG необходимо поставить 1.
Важно: если вы используете ИИ-ускоритель поколения Ampere, то при включении MIG драйвер выполнит reset GPU, чтобы режим вступил в силу. Если reset недоступен, например, в некоторых ВМ Pass-through сценариях, может потребоваться перезагрузка системы или виртуальной машины. Но на поколениях Hopper и Blackwell GPU reset уже не требуется.
Теперь снова введите команду для проверки активации MIG:
nvidia-smi –query-gpu=index,name,uuid,mig.mode.current –format=csv
Если поле mig.mode.current показывать текущее состояние как Enabled, значит MIG включился.
Выбор профилей MIG
Теперь переходим к выбору профилей MIG нашего GPU — H100 80 ГБ.
Для просмотра доступных профилей введите команду:
sudo nvidia-smi mig -lgip
После этого система предложит вам несколько доступных профилей. В нашем случае нам доступны:
- 1g.10gb;
- 1g.20gb;
- 2g.20gb;
- 3g.40gb;
- 4g.40gb;
- 7g.80gb.
Первая часть профиля — это количество compute-срезов, которые получает MIG-инстанс. Вторая часть — объем памяти, которые получает инстанс. Например, 3g.40gb — это большой инстанс на 40 ГБ памяти, то есть на ускорителе H100 таких можно сделать два таких профиля. А 1g.10gb — маленький инстанс на 10 ГБ, на H100 можно развернуть до семи таких профилей.

Теперь введем следующую команду:
sudo nvidia-smi mig -lgipp
Эта команда показывает не новые профили, а варианты их размещения внутри GPU. Система покажет вам текстовую версию раскладки MIG-инстансов по срезу ресурсов.

Чтобы вам было проще, предоставим вам эту же раскладку доступных комбинаций профилей и срезов ресурсов на H100 в виде таблицы:

Например, если у 3g.40gb написано {0,4}:4, это значит, что такой инстанс занимает блок размером 4 и может начинаться либо с позиции 0, либо с позиции 4 — то есть при выборе комбинации 4+3 или 3+4, большой блок будет занимать сразу 4 среза подряд. Ввиду этого крупных инстансов на H100 может быть не более двух.
Разделение видеокарты на инстансы
Чтобы лучше разобраться с тонкостями настройки MIG, рекомендуем разбивать видеокарту не на 2 больших одинаковых инстанса, а на 4 инстанса разного размера. Это позволит разделить ускоритель под разные задачи с конкретными требованиями к ресурсам — от инференса тяжелой LLM до развертывания легких сервисов. Для этого введите команду:
sudo nvidia-smi mig -cgi 3g.40gb,2g.20gb,1g.10gb,1g.10gb -C
Мы поделили ИИ-ускоритель следующим образом: 40 ГБ ушло под инференс LLM, 20 ГБ под систему обучения нейронки, оставшиеся два инстанса по 10 ГБ выделили под прикладные сервисы, один под Whisper, второй под embeddings.
После этого введите команду для проверки появления инстансов:
nvidia-smi -L
Также посмотрим на объем памяти каждого инстанса командой:
nvidia-smi
Теперь еще раз введем команду, чтобы увидеть доступные профили для разбиения, на всех профилях доступное количество разбиений должно быть равно 0:
sudo nvidia-smi mig -lgipp
Создание LXC контейнера
Теперь созданные инстансы нужно передать LXC-контейнерам. Это не просто всем известные Docker-контейнеры с одним приложением, а практически отдельное легкое Linux-окружение внутри Proxmox — у LXC-контейнеров есть своя сеть, автозапуск, снапшоты, лимиты и более привычная серверная логика. LXC Контейнеры значительно легче виртуальных машин, они быстрее стартуют, их проще обслуживать — в них каждый инстанс получает отдельные ресурсы GPU и при этом изолирован от соседних инстансов. Такая упаковка инстансов немного напоминает vGPU, но в LXC-контейнерах меньше гибкости и слабее изоляция, чем у виртуальных машин с vGPU.
Чтобы создать LXC-контейнер, необходимо скачать шаблоны виртуальных машин (templates). Для этого перейдите в раздел storage, затем перейдите в ct templates, и в конце в раздел templates. Перед вами откроется большой список из различных шаблонов под разные ОС и их версии. В нашем случае необходимо скачать шаблон Ubuntu версии 25.04 — находим его через поиск и нажимаем кнопку download. Шаблоны весят немного, около 150 МБ, поэтому скачивание не займет много времени.
После скачивания шаблона нажмите кнопку create ct и перейдите в окно создания LXC-контейнера. Перед вами откроются поля настройки контейнера.
Мы выберем одну node и не будем менять ID, но поменяем hostname для удобства. В поле unprivileged container ставим галочку, это позволит запускать контейнер без root-прав, то есть контейнер будет работать под другим пользователь и ограничивает доступ контейнера к системным ресурсам хоста. Также ставим галочку в поле nesting, что позволит создавать дополнительную среду виртуализации, например, Docker-контейнер. В конце укажите пароль для входа и перейдите к следующему разделу настройки — template, в котором вы укажете ранее скачанный шаблон. Теперь в разделе disks укажите размер диска внутри контейнера (у нас 100 ГБ), в разделе CPU укажите количество ядер, выделенных контейнеру (у нас 32), и в разделе memory укажите количество оперативной памяти в мегабайтах (у нас 64 ГБ, 65536 МБ). Теперь перейдите в раздел network, укажите static ip, в поле ipv4 указываю тот же IP-адрес сети, в котором находится Proxmox (у нас 192.168.90.180), и выберите маску подсети (24). В качестве шлюза ipv4 укажите 192.168.90.1, чтобы устройство могло выходить в интернет. Этап настройки DNS-сервера мы решили опустить. Затем перейдите в раздел confirm и нажмите finish. После успешной установки перейдите в GPU-инстанс, введите логин и пароль, и ваш LXC-контейнер будет запущен.
Добавление GPU в LXC-контейнер
Чтобы добавить GPU в LXC-контейнер, вернитесь в shell хоста и пропишите команду:
nvidia-smi
Вы увидите ID ваших инстансов — GI ID и CI ID. Их нужно запомнить, так как они пригодятся нам следующем шаге. Теперь введите команду:
cat /proc/driver/nvidia-caps/mig-minors | grep ‘gpu0/’
Система выведет все возможные инстансы, однако нам нужны только инстансы с GI ID от от 0 до 4 и CI ID равный нулю. Ищем среди инстансов gpu0/gi0/ci2/access21 и gpu0/gi0/ci2/access22 — первый инстанс на 40 ГБ. Эта информация нужна для того, чтобы прокинуть инстансы через device passthrough в контейнеры.
Теперь вернитесь в Proxmox, выберите созданный LXC-контейнер, зайдите во вкладку resources, нажмите add и выберите device passthrough. Для 1 инстанса нужно добавить следующие 6 путей:
- /dev/nvidia0
- /dev/nvidiactl
- /dev/nvidia-uvm
- /dev/nvidia-uvm-tools
- /dev/nvidia-caps/nvidia-cap21
- /dev/nvidia-caps/nvidia-cap22
Для остальных девайсов первые 4 пути не меняются, а у последних двух меняются лишь две последние цифры, на те, что мы увидели на прошлом шаге — например, для 3 инстанса будут цифры 84 и 85.
После этого перейдите контейнер — вы увидите, что ИИ-ускоритель прокинут в контейнер успешно, однако в нем не установлены драйверы, поэтому команда nvidia-smi работать не будет. Для установки драйверов, введите команду:
cd /root
wget https://us.download.nvidia.com/XFree86/Linux-x86_64/590.48.01/NVIDIA-Linux-x86_64-590.48.01.run
chmod +x NVIDIA-Linux-x86_64-590.48.01.run
sh ./NVIDIA-Linux-x86_64-590.48.01.run –no-kernel-module
Затем перезагрузите контейнер и пропишите команду nvidia-smi — инстанс будет в вашем контейнере. Поздравляем! Вы научились прокидывать GPU в LXC-контейнер, теперь вы можете выполнять любые задачи на отдельных, изолированных инстансах вашего ИИ-ускорителя.
Выводы
Если у вас есть один ИИ-ускоритель, но необходимо выполнять несколько параллельных GPU-задач, то технология Nvidia MIG станет идеальным решением, которое позволит эффективно разделить и утилизировать ресурсы, выделяя их под разные сервисы. А если вы хотите приобрести GPU корпоративного класса от Nvidia или другого бренда, обращайтесь в компанию ServerFlow. Мы не только подберем идеальный ИИ-ускоритель и другое оборудование для вашей IT-инфраструктуры, но и поможем с развертыванием всего необходимого софта, чтобы ваша система могла выполнять прикладные задачи с первого дня.
Рекомендуемые товары
- Новое
- Выгодно
- Под заказ
- Б/У
Артикул: SF-00003249
Нет в наличии
Видеокарта AMD Radeon Instinct MI50 32GB HBM2 [100-506194] [Новый]
- Сокет AM4
- Сокет AM4
- Сокет AM4
- Сокет AM4
29 800 ₽
- Цена включает НДС 7%
- Гарантия: 1 год
- Новое
- Выгодно
- Под заказ
- Б/У
Артикул: SF-00001431
Нет в наличии
Видеокарта NVIDIA A100 OEM 40GB HBM2 [900-21001-0000-000] [Новый]
- Сокет AM4
- Сокет AM4
- Сокет AM4
- Сокет AM4
529 800 ₽
- Цена включает НДС 7%
- Гарантия: 1 год
- Новое
- Выгодно
- Под заказ
- Б/У
Артикул: 285
Нет в наличии
SSD-накопитель Intel (HP) S3700 400GB 2.5" 6Gb/s [SSDSC2BA400G3P] [Новый]
- Сокет AM4
- Сокет AM4
- Сокет AM4
- Сокет AM4
13 100 ₽
- Цена включает НДС 7%
- Гарантия: 1 год
- Новое
- Выгодно
- Под заказ
- Б/У
Артикул: 1350
Нет в наличии
HBA адаптер Broadcom 9500-16i (NVMe/SAS/SATA 12GB/s, no cache) [Новый]
- Сокет AM4
- Сокет AM4
- Сокет AM4
- Сокет AM4
53 900 ₽
- Цена включает НДС 7%
- Гарантия: 1 год
- Новое
- Выгодно
- Под заказ
- Б/У
Артикул: 5136
Нет в наличии
Кабель Supermicro SFF8643 (NVMe) - SFF8643 (NVMe) 0.7м [Новый]
- Сокет AM4
- Сокет AM4
- Сокет AM4
- Сокет AM4
3 000 ₽
- Цена включает НДС 7%
- Гарантия: 1 год