Поддержка графических процессоров в OpenStack/CloudStack
Мне интересно, был ли кто-нибудь здесь успешным с любым из уровней облачной оркестровки с использованием графического процессора (предпочтительно vGPU)? Мне удалось заставить XenServer 6.2 успешно видеть нашу карту nvidia GRID K1, но я не знал, поддерживает ли какой-либо из слоев OpenStack/CloudStack тип GPU/vGPU.
3 ответа
В настоящее время нет полной поддержки ускорения GPU для OpenStack. Существует предложение добавить поддержку машин с GPU-ускорением в качестве альтернативного типа машин в OpenStack. Целевой релиз для этого - Grizzly. Вы можете проверить функциональный прототип здесь.
Успешное развертывание openstack с поддержкой CUDA. Тип экземпляра cg1.xlarge и графические процессоры NVIDIA Fermi
$ nova flavor-list
+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+----------------------------------------------+
| ID | Name | Memory_MB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor | Is_Public | extra_specs |
+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+----------------------------------------------+
| 9 | cg1.xlarge | 16384 | 160 | 0 | | 8 | 1.0 | True | {u'hypervisor': u's== LXC', u'gpus': u'= 2', u'gpu_arch':u's== fermi'} |
+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+----------------------------------------------+
$ nova boot --flavor 9 --key-name mykey --image 2b1509fe-b573-488a-be4d-d61d25c7ab4f gpu_test
Единственный подход, который был успешным для доступа CUDA от виртуальной машины kvm, это gVirtuS. Здесь нам нужен прямой доступ к gpus из экземпляров LXC. При условии, что ядро хост-системы поддерживает lxc-attach, и утилиты для lxc-attach установлены.
nova.virt.GPULibvirt
который является продолжением nova.virt.libvirt
создать экземпляр виртуальной машины с поддержкой графического процессора по запросу.
1) Когда экземпляр создается (или перезагружается), nova запускает виртуальную машину LXC
2) Запрашиваемые графические процессоры помечены как выделенные, и их устройства созданы в LXC с использованием lxc-attach
3) Добавлено разрешение доступа к gpu(s) в /cgroup. Загрузка завершается.
4) Когда экземпляр прекращается (уничтожается), графические процессоры освобождаются.
В Cloudstack есть поддержка GPU, начиная с версии 4.4. Ссылка на проектный документ приведена в [1]
Я установил довольно большую настройку Openstack для компании, которая использует карты K2. Требуется небольшая настройка вокруг nova (пользовательские свойства), но в остальном он работает отлично, фактически в 4 раза быстрее FPS, чем Xen на том же оборудовании.