OpenStack GPU直通服务器

本文详细介绍了OpenStack环境下实现GPU直通的技术特性,包括操作系统支持、设备兼容性和部署步骤,如BIOS设置、IOMMU配置、vfio模块的使用,以及OpenStack配置和GPU云服务器的验证。此外,还讨论了NVIDIA显卡的兼容性问题和解决方法。

layout: post
title: OpenStack GPU直通服务器
catalog: true
tag: [OpenStack, GPU]

1. 概述

直通GPU 云服务器(GPU Virtual Machine)是基于 GPU 的快速、稳定、弹性的计算服务,主要应用于深度学习训练\推理、图形图像处理以及科学计算等场景。
直通GPU 云服务器提供和标准 云服务器一致的方便快捷的管理方式,相对于vGPU云服务器,直通GPU使用的PCI透传技术能带来几乎和物理设备同等的性能。

2. 直通GPU特性

直通GPU具备以下产品特点

  • 租户独享物理GPU,可利用几乎与物理设备同等的性能。
  • 直通GPU 云服务器位于云内部网络,内网时延低,提供优秀的计算能力。

3. 功能说明

3.1. 操作系统支持

直通GPU云服务器支持Windows和Linux操作系统。

3.2. 设备支持

支持主流厂商PCI插槽的GPU卡。

4. 实现方案

直通GPU云服务器采用了PCI Passthrough技术,将宿主机上某个PCI槽位透传给虚拟机使用,GPU卡即安装在PCI卡槽上,如下图:

在这里插入图片描述

PCI直通特性允许虚拟机完全访问与直接控制物理PCI设备。此机制对任何类型的PCI设备都是通用的,并且可以与网络接口卡(NIC),
图形处理单元(GPU)或可以连接到PCI总线的任何其他设备一起运行,在PCI直通的情况下,整个物理设备只能分配给一个虚拟机,并且不能共享。
各组件的关系如下:

在这里插入图片描述

5. 部署方案

5.1. 示例环境说明

组件 版本 备注
GPU NVIDIA A100
操作系统版本 CentOS Linux release 7.8.2003 (Core)
内核版本 3.10.0-1127.el7.x86_64
OpenStack版本 Train

5.2. 上线步骤

5.2.1. 硬件安装

按照相关指导安装显卡至计算节点
如有问题需要向显卡厂商寻求协助
注:英伟达服务器支持列表:
https://www.nvidia.com/object/vgpu-certified-servers.html
一般情况下,单独划分GPU AZ,如果存在不同型号的GPU,则划分更新的AZ。

5.2.2. GPU计算节点主机配置

5.2.2.1. IOMMU设置
5.2.2.1.1. BIOS设置

在BIOS中enable VT-x, VT-d, Onboard VGA. Onboard VGA 的enable可以避免一些错误的出现,具体参考Not only for miners GPU integration in Nova environment.

5.2.2.1.2. grab设置

编辑文件 /etc/default/grub

如果没有 GRUB_CMDLINE_LINUX_DEFAULT 则编辑 GRUB_CMDLINE_LINUX

对于Intel芯片:GRUB_CMDLINE_LINUX_DEFAULT=“intel_iommu=on”
对于AMD芯片:GRUB_CMDLINE_LINUX_DEFAULT=“iommu=pt

<think>嗯,用户想了解在Packstack中配置GPU直通的方法。首先,我需要回忆Packstack是什么。Packstack是OpenStack的自动化部署工具,通常用于快速搭建多节点云环境。GPU直通通常涉及KVM虚拟化中的PCI设备透传,让虚拟机直接访问物理GPU,绕过宿主机操作系统。 接下来,我得考虑Packstack的配置流程是否需要修改特定文件,比如answer-file.txt。用户可能需要编辑这个文件来启用相关选项。比如,设置CONFIG_NOVA_COMPUTE_CONSOLE=true或者类似的参数,确保计算节点支持PCI设备透传。 然后,宿主机的准备工作。需要确认宿主机支持VT-d/IOMMU,这在BIOS中设置。接着,内核参数需要添加intel_iommu=on或amd_iommu=on,并更新initramfs。然后是隔离GPU设备,使用vfio-pci驱动绑定,防止宿主机占用GPU。 然后是OpenStack层面的配置,比如编辑nova.conf文件,添加pci_passthrough_whitelist参数,指定GPU的厂商和设备ID。这可能需要通过Packstack的answer文件来预设这些配置,或者在部署后手动修改。 创建虚拟机实例时,需要通过Flavor的extra specs来请求PCI设备,然后启动实例时附加该Flavor。验证部分,用户需要登录虚拟机检查GPU是否被识别,可能需要安装驱动。 另外,用户提到的引用中有关于多机多GPU的环境,比如引用[2]提到的24台服务器每台8块A800,可能涉及更复杂的配置,但Packstack通常用于中小规模部署,大规模可能需要其他工具。 潜在的问题包括硬件兼容性、内核参数错误、驱动冲突等。用户可能需要检查dmesg和nova日志来排查问题。 最后,生成相关问题时要涵盖性能优化、多GPU配置、与SR-IOV的区别、验证步骤和常见错误。确保问题对用户后续深入有帮助。</think>### Packstack中GPU直通的配置方法 在OpenStack部署工具Packstack中实现GPU直通(PCI Passthrough),需要以下步骤: #### 1. 宿主机准备 - **启用IOMMU**:在宿主机BIOS中开启VT-d/AMD-Vi功能,并在内核启动参数添加: ```bash GRUB_CMDLINE_LINUX="intel_iommu=on" # Intel平台 GRUB_CMDLINE_LINUX="amd_iommu=on" # AMD平台 ``` 更新后执行`update-grub`并重启[^1]。 - **绑定GPU到vfio-pci驱动**: ```bash echo "options vfio-pci ids=<vendor_id>:<device_id>" > /etc/modprobe.d/vfio.conf update-initramfs -u ``` #### 2. Packstack配置 在answer-file中设置关键参数: ```ini CONFIG_NOVA_COMPUTE_CONSOLE=true CONFIG_NOVA_LIBVIRT_VIRT_TYPE=kvm CONFIG_PROVISION_DEMO=n ``` #### 3. Nova配置调整 部署完成后编辑`/etc/nova/nova.conf`: ```ini [pci] passthrough_whitelist = {"vendor_id":"10de","product_id":"1b80"} ``` #### 4. 验证与使用 创建含PCI设备的Flavor: ```bash openstack flavor set m1.gpu --property "pci_passthrough:alias"="gpu:1" ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值