首页 > 其他分享 >OpenStack显卡穿透

OpenStack显卡穿透

时间:2023-01-20 22:56:22浏览次数:40  
标签:00 10de nova 穿透 pci 显卡 OpenStack id

OpenStack显卡穿透

  • 注意事项

  • 服务器主板CPU虚拟化打开

  • 如果只有一张显卡物理机不要安装显卡驱动

1. 确认是否支持iommu

cat /proc/cmdline | grep iommu
  • 针对Inter CPU(注意自己CPU型号)。如果没有输出,说明不支持iommu,需要手动开启。
vim /etc/default/grub
GRUB_CMDLINE_LINUX="intel_iommu=on crashkernel=auto rhgb quiet"
  • 针对AMD CPU(注意自己CPU型号)。如果没有输出,说明不支持iommu,需要手动开启。
vim /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 amd_iommu=on"

2. 更新grub,并重启设备

  • 更新grub(注意自己安装系统用的方式,这种是系统盘)
grub-mkconfig -o /boot/grub/grub.cfg
  • 如果是efi安装的系统,那么使用如下更新grub
grub-mkconfig -o /boot/grub/grub.cfg
  • 重启系统
reboot
  • 重启以后如下确认是否正常
dmesg | grep -i iommu
  • 检查当前显卡设备信息
    • 注意,将得到的输出结果保存下来
lspci -nn | grep NVID
# 输出结果,第一个是显卡器,第二个是显卡音频
83:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP107 [GeForce GTX 1050] [10de:1c81] (rev a1)
83:00.1 Audio device [0403]: NVIDIA Corporation GP107GL High Definition Audio Controller [10de:0fb9] (rev a1)

3. vfio

  • 配置vfio
vim /etc/modprobe.d/blacklist.conf
blacklist nouveau
options nouveau modeset=0
blacklist xhci_hcd
blacklist nvidia
blacklist snd_hda_intel
blacklist nvidiafb
  • 配置系统加载模块
vim /etc/modules-load.d/openstack-gpu.conf
vfio_pci
pci_stub
vfio
vfio_iommu_type1
kvm
kvm_intel
  • 配置vfio加载的设备
    • 注意下面的ids设备码对应自己显卡
vim /etc/modprobe.d/vfio.conf
options vfio-pci ids=10de:1c81,10de:0fb9
  • 重启
reboot

4. 挂载VFIO驱动

echo 10de 1c81 > /sys/bus/pci/drivers/vfio-pci/new_id
echo 10de 0fb9 > /sys/bus/pci/drivers/vfio-pci/new_id
  • 检查VIFO驱动是否挂载成功
lspci -nnk -d 10de:1c81
lspci -nnk -d 10de:0fb9

5. OpenStack穿透配置

5.1 控制节点配置

  • 配置nova文件
vim /etc/nova/nova.conf
[scheduler]
scheduler_driver=nova.scheduler.filter_scheduler.FilterScheduler
scheduler_available_filters=nova.scheduler.filters.all_filters
scheduler_available_filters=nova.scheduler.filters.pci_passthrough_filter.PciPassthroughFilter
scheduler_default_filters=RamFilter,ComputeFilter,AvailabilityZoneFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,PciPassthroughFilter
  • 重启nova-scheduler服务
service nova-scheduler restart
  • 配置nova-api
    • 注意显卡编码对应上,有多少个写多少个
vim /etc/nova/nova.conf
[pci]
alias = { "name": "nvidia1050vga", "product_id": "1c81", "vendor_id": "10de", "device_type": "type-PCI" }
alias = { "name": "nvidia1050aud", "product_id": "0fb9", "vendor_id": "10de", "device_type": "type-PCI" }
  • 重启相关服务
service nova-api restart

5.2 计算节点

  • 配置nova文件
    • 注意显卡编码对应上,有多少个写多少个
vim /etc/nova/nova.conf
[pci]
alias = { "name": "nvidia1050vga", "product_id": "1c81", "vendor_id": "10de", "device_type": "type-PCI" }
alias = { "name": "nvidia1050aud", "product_id": "0fb9", "vendor_id": "10de", "device_type": "type-PCI" }
passthrough_whitelist = [{ "vendor_id": "10de", "product_id": "1c81" },{ "vendor_id": "10de", "product_id": "0fb9" }]
  • 重启nova-compute
service nova-compute restart
  • 安装ovmf,支持windows uefi启动
apt install ovmf -y

6. OpenStack调用显卡

  • 创建及设置flavor,将显卡透传给虚拟机
openstack flavor create C2-4G-100G --ram 4096 --disk 100 --vcpus 2 --public

openstack flavor set C2-4G-100G --property "pci_passthrough:alias"="nvidia1050vga:1,nvidia1050aud:1"
  • 因为NVIDIA显卡的驱动会检测是否跑在虚拟机里,如果在虚拟机里驱动就会出错,所以我们需要对显卡驱动隐藏hypervisor id
openstack image set [IMG-UUID] --property img_hide_hypervisor_id=true
  • 之后利用相应的云主机类型创建相关实例即可
  • 查看pci设备
root@ubuntu:~# lspci 
00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02)
00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]
00:01.1 IDE interface: Intel Corporation 82371SB PIIX3 IDE [Natoma/Triton II]
00:01.2 USB controller: Intel Corporation 82371SB PIIX3 USB [Natoma/Triton II] (rev 01)
00:01.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 03)
00:02.0 VGA compatible controller: Red Hat, Inc. Virtio GPU (rev 01)
00:03.0 Ethernet controller: Red Hat, Inc. Virtio network device
00:04.0 SCSI storage controller: Red Hat, Inc. Virtio block device
# 这是我们的显卡驱动
00:05.0 VGA compatible controller: NVIDIA Corporation GP107 [GeForce GTX 1050] (rev a1)
00:06.0 Audio device: NVIDIA Corporation GP107GL High Definition Audio Controller (rev a1)

00:07.0 Unclassified device [00ff]: Red Hat, Inc. Virtio memory balloon
00:08.0 Unclassified device [00ff]: Red Hat, Inc. Virtio RNG
  • 安装完显卡驱动的效果
root@ubuntu:~# nvidia-smi 
Fri Jan 20 13:07:31 2023       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 515.76       Driver Version: 515.76       CUDA Version: 11.7     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ...  Off  | 00000000:00:05.0 Off |                  N/A |
| 21%   18C    P8    N/A /  80W |      6MiB /  2048MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

标签:00,10de,nova,穿透,pci,显卡,OpenStack,id
From: https://www.cnblogs.com/wsxier/p/17063362.html

相关文章

  • 样式穿透
    应用场景Vue组件中写样式,通常如下方代码:<stylescoped>.comA.data{background:red;}</style>因为关键字scoped的原因,style标签内的样式只会对当前......
  • openEuler资源利用率提升之道06:虚拟机混部OpenStack调度
    虚拟机混合部署是指把对CPU、IO、Memory等资源有不同需求的虚拟机通过调度方式部署、迁移到同一个计算节点上,从而使得节点的资源得到充分利用。虚拟机混合部署的场景有多......
  • nvidia显卡信息获取以及配置
    获取温度 memset(&Config,0,sizeof(Config)); Config.version=NV_GPU_THERMAL_SETTINGS_VER; Stat=_NvAPI_GPU_GetThermalSettings(m_hNvGpu[i],NVAPI_THER......
  • ubuntu16.04安装Nvidia显卡驱动,CUDA8.0,cuDNN6,TensorFlow-gpu
    ​​WelcomeToMyBlog​​​实验室学姐让跑一个深度学习模型的程序,需要配置环境,查阅各种资料后安装成功,记录一下安装过程,确实挺刺激,也算是开启了自己的深度学习之......
  • 彻底清除显卡驱动
    使用驱动自带的卸载程序一般都不能完全删除(甚至有些驱动只能在设备管理器中手动删除),重新安装该驱动可能就会出现问题。最好的办法就是用专门的工具删除,或者将设备相关的IN......
  • Ubuntu显卡安装
    使用官方的NVIDIA驱动进行手动安装(稳定、靠谱)1.安装驱动前一定要更新软件列表和安装必要软件、依赖(必须)aptupdate#更新软件列表aptinstallg++gccmake-y2.......
  • 网络安全之frp内网穿透
    前言内网穿透,也即NAT穿透,进行NAT穿透是为了使具有某一个特定源IP地址和源端口号的数据包不被NAT设备屏蔽而正确路由到内网主机环境需求一台公网服务器(linux操......
  • linux下查看显卡厂商
    使用lshw命令,centos和ubuntu可以自行安装其中:capabilities:pcimsipciexpresspmnormal_decodebus_mastercap_list行,可以看出msi即微星公司root@coder-671T-M:/dev......
  • OpenStack命令行
    OpenStack命令行发放创建租户(项目)一个租户下面有很多个用户[root@controller~]#source keystonerc_admin#admin环境变量[root@controller~(keystone_admin)]#no......
  • CUDNN_STATUS_EXECUTION_FAILED 错误原因:显卡版本和cuda版本不匹配
    又是寄人篱下使用服务器的一天...造成错误的过程:跑实验需要装一个新的虚拟环境来使用cuda,别人的readme上面要用torh1.3,搜了一下教程,适配的cuda版本是10.1,目前显卡支持......