OpenStack Flamingo : Compute ノードを追加する (GPU)2025/11/21 |
|
GPU を搭載した Compute ノードを追加して、仮想マシンインスタンスで GPU が利用できるように設定します。 当例では以下のような環境を例に、新たに GPU を搭載した [node02.srv.world] を Compute ノードとして追加します。
------------+--------------------------+--------------------------+------------
| | |
eth0|10.0.0.30 eth0|10.0.0.50 eth0|10.0.0.51
+-----------+-----------+ +-----------+-----------+ +-----------+-----------+
| [ dlp.srv.world ] | | [ network.srv.world ] | | [ node01.srv.world ] |
| (Control Node) | | (Network Node) | | (Compute Node) |
| | | | | |
| MariaDB RabbitMQ | | Open vSwitch | | Libvirt |
| Memcached Nginx | | Neutron Server | | Nova Compute |
| Keystone httpd | | OVN-Northd | | Open vSwitch |
| Glance Nova API | | Nginx | | OVN Metadata Agent |
| | | | | OVN-Controller |
+-----------------------+ +-----------------------+ +-----------------------+
------------+------------
|
eth0|10.0.0.52
+-----------+-----------+
| [ node02.srv.world ] |
| (Compute Node (GPU)) |
| |
| Libvirt |
| Nova Compute |
| Open vSwitch |
| OVN Metadata Agent |
| OVN-Controller |
+-----------------------+
|
| [1] |
追加する Compute ノードに こちらの [1] を参考にして GPU パススルーの設定を適用しておきます。 |
| [2] |
追加する ノードを こちらを参考にして Openstack クラスターに Compute ノードとして追加しておきます。 |
| [3] | 追加した Nova-Compute に、GPU パススルー用の設定をします。 |
|
root@node02:~# lspci -nn | grep -i nvidia 81:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA104 [GeForce RTX 3060] [10de:2487] (rev a1) 81:00.1 Audio device [0403]: NVIDIA Corporation GA104 High Definition Audio Controller [10de:228b] (rev a1)
root@node02:~#
vi /etc/nova/nova.conf
# 最終行に追記
# パススルーしたいデバイスの [vendor_id], [product_id] を追記
[pci]
passthrough_whitelist = { "vendor_id": "10de", "product_id": "2487" }
systemctl restart nova-compute
|
| [4] | Control ノードで Nova の設定を変更します。 |
|
root@dlp ~(keystone)#
vi /etc/nova/nova.conf
# 最終行に追記
# 対象の Compute ノードでパススルー設定したデバイスの [vendor_id], [product_id] を追記
# [name] は任意の名称
[pci]
alias: { "vendor_id":"10de", "product_id":"2487", "device_type":"type-PCI", "name":"RTX-3060" }
[filter_scheduler]
enabled_filters = PciPassthroughFilter
root@dlp ~(keystone)#
systemctl restart apache2 nova-scheduler root@dlp ~(keystone)# su -s /bin/bash nova -c "nova-manage cell_v2 discover_hosts" # GPU 用の [flavor] 作成 root@dlp ~(keystone)# openstack flavor create --id 6 --vcpus 4 --ram 8192 --disk 20 --property "pci_passthrough:alias"="RTX-3060:1" gpu1.small +----------------------------+------------------------------------+ | Field | Value | +----------------------------+------------------------------------+ | OS-FLV-DISABLED:disabled | False | | OS-FLV-EXT-DATA:ephemeral | 0 | | description | None | | disk | 20 | | id | 6 | | name | gpu1.small | | os-flavor-access:is_public | True | | properties | pci_passthrough:alias='RTX-3060:1' | | ram | 8192 | | rxtx_factor | 1.0 | | swap | 0 | | vcpus | 4 | +----------------------------+------------------------------------+root@dlp ~(keystone)# openstack flavor list +----+------------+-------+------+-----------+-------+-----------+ | ID | Name | RAM | Disk | Ephemeral | VCPUs | Is Public | +----+------------+-------+------+-----------+-------+-----------+ | 1 | m1.tiny | 2048 | 10 | 0 | 1 | True | | 2 | m1.small | 4096 | 10 | 0 | 2 | True | | 3 | m1.medium | 8192 | 10 | 0 | 4 | True | | 4 | m1.large | 16384 | 10 | 0 | 8 | True | | 5 | m2.medium | 8192 | 10 | 10 | 4 | True | | 6 | gpu1.small | 8192 | 20 | 0 | 4 | True | +----+------------+-------+------+-----------+-------+-----------+ |
| [5] | 任意の Openstack ユーザーで GPU インスタンスを作成して動作確認します。 |
|
ubuntu@dlp ~(keystone)$ openstack network list +---------------------------------+---------+----------------------------------+ | ID | Name | Subnets | +---------------------------------+---------+----------------------------------+ | 3d439616-ee5c-49b9-ac27- | private | ca5e015c-a5cb-4c2e-a390- | | 9525818605d8 | | d0ac1bd05916 | | 7457c2ad-572e-4cb9-86c0- | public | 0143ec7e-f39a-43ac-8c12- | | 20f4e89da51b | | 78e2b9d27ba7 | +---------------------------------+---------+----------------------------------+ubuntu@dlp ~(keystone)$ netID=$(openstack network list | grep private | awk '{ print $2 }')
ubuntu@dlp ~(keystone)$
ubuntu@dlp ~(keystone)$ openstack server create --flavor gpu1.small --image Ubuntu2404 --security-group secgroup01 --nic net-id=$netID --key-name mykey Ubuntu-2404GPU
openstack server list +-------------+-------------+---------+--------------+------------+------------+ | ID | Name | Status | Networks | Image | Flavor | +-------------+-------------+---------+--------------+------------+------------+ | a2ce9573- | Ubuntu- | ACTIVE | private=192. | Ubuntu2404 | gpu1.small | | b679-44cf- | 2404GPU | | 168.100.170 | | | | 89f0- | | | | | | | 765787eb655 | | | | | | | b | | | | | | | 38617807- | Ubuntu-2404 | SHUTOFF | private=10.0 | Ubuntu2404 | m1.small | | e027-4d1f- | | | .0.221, 192. | | | | 9320- | | | 168.100.176 | | | | c94d4d05bb8 | | | | | | | a | | | | | | +-------------+-------------+---------+--------------+------------+------------+ubuntu@dlp ~(keystone)$ openstack floating ip create public +---------------------+--------------------------------------+ | Field | Value | +---------------------+--------------------------------------+ | created_at | 2025-11-21T04:49:27Z | | description | | | dns_domain | | | dns_name | | | fixed_ip_address | None | | floating_ip_address | 10.0.0.249 | | floating_network_id | 7457c2ad-572e-4cb9-86c0-20f4e89da51b | | id | bf7aff64-d4a4-460b-b1f3-47c15aa27bfb | | name | 10.0.0.249 | | port_details | None | | port_id | None | | project_id | b45ce8ac12c749e49e933c84334e79de | | qos_policy_id | None | | revision_number | 0 | | router_id | None | | status | DOWN | | subnet_id | None | | tags | [] | | updated_at | 2025-11-21T04:49:27Z | +---------------------+--------------------------------------+ubuntu@dlp ~(keystone)$ openstack server add floating ip Ubuntu-2404GPU 10.0.0.249 ubuntu@dlp ~(keystone)$ ssh ubuntu@10.0.0.249
The authenticity of host '10.0.0.249 (10.0.0.249)' can't be established.
ED25519 key fingerprint is SHA256:Z+NwzOi0mdx59YRtCuEnL/M38Sn2/eHrKRVE/mmuObA.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '10.0.0.249' (ED25519) to the list of known hosts.
Welcome to Ubuntu 24.04.3 LTS (GNU/Linux 6.8.0-87-generic x86_64)
.....
.....
ubuntu@ubuntu-2404gpu:~$ubuntu@ubuntu-2404gpu:~$ lspci | grep -i nvidia 00:05.0 VGA compatible controller: NVIDIA Corporation GA104 [GeForce RTX 3060] (rev a1) |
| Sponsored Link |
|
|