【海云捷迅云课堂】vGPU在OpenStack中的应用
海云捷迅云课堂专题,旨在秉承开源理念,为大家提供OpenStack技术原理与实践经验,该专题文章均由海云捷迅工程师理论与实践相结合总结而成,如大家有其他想要了解的信息,可留言给我们,我们会根据问题酌情回复。
一、什么是GPU
GPU:Graphics Processing Unit,即图像处理单元,是一种专门处理图像运算工作的微处理器。
CPU是由若干核(core)和许多的缓存(cache memory)组成,因此CPU可以并行处理若干线程。相对地,GPU是由几百个核组成,因此可以并发处理数千个线程。尽管GPU的内核数目远远超过CPU,但是它的每个核的处理能力远小于CPU的核,而且不具有现代操作系统的所需要的一些特性,GPU并不合适用于处理普通的计算。它们更多地用于计算消耗性操作,比如视频处理和物理仿真等。
二、虚拟化环境GPU使用方式
在虚拟化环境中,GPU使用目前可以分为以下几类:
■ GPU直通模式,即GPU透传
■ GPU SR-IOV,目前主要是AMD在采用此种方案
■ GPU分片虚拟化,包括Intel GVT-g和NVIDIA GRID vGPU
图片来源于网络
以下是对这些方案的简单介绍:
1.GPU透传:物理GPU直接透传给虚机。
第一种方案,在我们的产品里已经实现,且支持大部分GPU设备。对于Windows镜像,我们建议云主机从UEFI启动。
2.GPU SR-IOV:使用SR-IOV技术,将物理GPU划分成多个VF,每个VF提供给云主机使用。
AMD采用的就是这种方案,目前市场上2款产品S7150和MI25。
3.GPU分片虚拟化
Intel提供GVT-g方案:针对不同的hypervisor,应用于KVM上,叫KVMGT;应用于Xen上,称为XenGT。
NVIDIA GRID vGPU产品系列
以上2个厂家均采用GPU分片虚拟化方案,即基于Linux内核VFIO mediated框架。此方案的kernel部分代码称为mdev模块,由Intel和NVIDIA共同提交到4.10内核,但是CentOS已经backport到3.10.x内核。
分片虚拟化与透传的区别是,分片虚拟化把会影响性能的访问直接透传给虚拟机,把性能无关和功能性的MMIO访问做拦截并在mdev模块内做模拟。
当然,也可以简单的理解为对物理GPU资源的分片划分,如物理GPU的显存大小为16G,如果划分出4个vGPU,那么每个vGPU的显存大小就是4G。
实现GPU分片虚拟化需要满足以下条件:
1.硬件支持:
Intel需要特定的CPU支持,Intel(r) Xeon(r) E3_v4, E3_v5 and E3_v6 with Intel Graphics processor
NVIDIA也需要特定的GPU卡,可参考NVIDIA官方网站
2.内核版本、QEMU版本(v2.0及以上)
3.GPU mdev驱动支持,这部分Intel已经开源,但是NVIDIA不开源,需要通过License来获取。
从AWStack 2.6版本,我们产品支持GPU透传,即将一个物理的GPU设备透传给某一个云主机,独享物理GPU资源。
实现GPU虚拟化,每个云主机拥有一个vGPU设备,在满足客户图像视频处理、机器学习、深度学习等应用场景的同时,做到物理GPU资源共享。
如何在产品中使用NVIDIA vGPU
一、前期准备
1.采购到NVIDIA支持GPU虚拟化的物理GPU卡后,需要在NVIDIA官方网站上注册账号, 并购买License或申请90天的试用版。针对Hypervisor类型可下载不同版本的软件包:
2.安装物理GPU卡,GPU卡对散热要求比较高,如果温度过高会出现掉卡问题。
3.安装NVIDIA vGPU manager之前先禁用操作系统上的Nouveau驱动
1)在安装GPU卡的物理节点上,新建文件
/etc/modprobe.d/nvidia-installer-disable-nouveau.conf
blacklist nouveau
options nouveau modeset=0
2)重新生成ramdisk,并重启物理节点:
# dracut –force
# reboot
3)在安装有物理GPU卡的物理节点上安装vGPU manager软件
# chmod 777 NVIDIA-Linux-x86_64-440.43-vgpu-kvm.run
# ./NVIDIA-Linux-x86_64-440.43-vgpu-kvm.run
4)确认nvidia_vgpu_vfio内核模块已被加载
# lsmod |grep nvidia_vgpu_vfio
5)启动并加载nvidia-vgpu-mgr服务
# systemctl enable nvidia-vgpu-mgr.service
# systemctl start nvidia-vgpu-mgr.service
6)重启物理机器
# reboot
7)确认内核mdev目录是否生成
# ls /sys/class/mdev_bus/
0000:18:00.0 0000:82:00.0
4.搭建NVIDIA License Server
云平台云主机使用vGPU,需要获取License,一般需要在客户环境里搭建License server,可以是单节点,也可以部署两台做HA。
License server安装时,需要将从官网上获取到的License文件,上传到License server上。
云主机需要能访问License server的7070端口,来获取License。
支持在Windows和Linux操作系统上安装License server,具体可以参考文档:
https://docs.nvidia.com/grid/ls/2019.11/grid-license-server-user-guide/index.html
二、用户使用流程:
1.前期准备工作完成后,登录云管平台,同步物理节点GPU信息到云管平台。
2.云管界面,选择物理节点、物理GPU来创建vGPU规格。
3.新建vGPU规格完成后,可以在云主机页面创建云主机,支持2种场景:创建云主机时同时选择vGPU规格或者vGPU设备;或者创建云主机完成后,再绑定vGPU设备。
创建带vGPU的云主机或者云主机绑定vGPU后,可以在物理节点上看到vGPU设备保存在sysfs中,云主机XML文件会生成一个设备和这个关联:
云主机XML:
云主机启动之后,用户需要在云主机内安装从官方网站下载的软件包里的驱动,并配置连接License server。具体可以参考文档:
https://docs.nvidia.com/grid/ls/2019.11/grid-license-server-user-guide/index.html
当然也可以自定义镜像模板,预安装好云主机vGPU驱动以及配置好License server连接。
安装软件包说明:
【海云捷迅云课堂】vGPU在OpenStack中的应用相关推荐
- 【海云捷迅云课堂】云主机驱散说明
海云捷迅云课堂专题,旨在秉承开源理念,为大家提供OpenStack技术原理与实践经验,该专题文章均由海云捷迅工程师理论与实践相结合总结而成,如大家有其他想要了解的信息,可留言给我们,我们会根据问题酌情 ...
- 【海云捷迅云课堂】DPDK技术分享文档
海云捷迅云课堂专题,旨在秉承开源理念,为大家提供OpenStack技术原理与实践经验,该专题文章均由海云捷迅工程师理论与实践相结合总结而成,如大家有其他想要了解的信息,可留言给我们,我们会根据问题酌情 ...
- 【海云捷迅云课堂】分布式存储系统纠删码技术分享
云课堂专题 海云捷迅云课堂专题,旨在秉承开源理念,为大家提供OpenStack技术原理与实践经验,该专题文章均由海云捷迅工程师理论与实践相结合总结而成,如大家有其他想要了解的信息,可留言给我们,我们会 ...
- 化繁为简 海云捷迅为企业提供应用OpenStack新“姿势”
自2010年10月 OpenStack首个正式版本Austin发布至今,已有近七年的发展历程.相比Cloudstack.OpenNebula等开源技术,OpenStack发展最为迅速,随时间推移渐渐趋 ...
- 专访李华:低调的海云捷迅如何优雅做“减法”
OpenStack刚刚在上周过完了6周岁生日,从最初的炒作到现在的趋于理性,无论是行业领袖还是初创新秀都逐渐抛弃浮躁,脚踏实地让OpenStack真正落地,6年的时光,让OpenStack这个曾经很少 ...
- 2018最值得期待:为AI提供基础云平台的海云捷迅
今天是大年初二,给您拜年! 今年春节不一样,中国云报携手为AI提供基础云平台的海云捷迅给您拜年! 以下是海云捷迅CTO李华的新年寄语 北京海云捷迅科技有限公司(简称AWCloud海云捷迅),国内领先的 ...
- 用SaaS的方法做云管理 海云捷迅的创新之法
[51CTO.com原创稿件]如今,OpenStack已经逐渐开始被企业所接受,将OpenStack部署在企业的生产环境中,但是,OpenStack发展了六年后,我们仍然看到不少OpenStack的失 ...
- 海云捷迅的教育云实战经验分享
在互联网时代,大数据.云计算.移动化.社交网络.物联网等新技术层出不穷,对教育信息化应用也产生了重大影响,大数据学习分析.教育云.HPC.移动教育等应用逐渐成为教育行业的热点. 然而,教育系统对于信息 ...
- 百度飞桨Paddle Lite与海云捷迅基于Intel FPGA的自研开发套件完成适配
点击左上方蓝字关注我们 在技术革新的浪潮下,人工智能在产业升级.改善人类生活等方面发挥着越来越重要的作用.从科研.金融.零售到工业.农业等越来越多的行业与业务场景,无不渗透了人工智能的威力.此外,为人 ...
最新文章
- 百练OJ:2388:寻找中位数
- 加密 解密常用的算法
- 北斗导航 | GPS原理与接收机设计——青冥剑(金码、C/A码、P码)
- nodejs里require的调试截屏
- python的字符串定界符可以使用_使用Template格式化Python字符串的方法
- 什么是PCM综合语音复用设备?
- CContextMenuManager上下文菜单管理器以及为菜单添加图标
- Linux服务器启动流程详解
- c语言代码大全表解释_正点原子Linux第十章C语言版LED灯实验
- 阿里巴巴Java开发 之 MySQL规约
- 【手写数字识别】基于matlab GUI BP神经网络手写数字识别【含Matlab源码 868期】
- 中国电网计算机面试题目,国家电网面试经验
- Firefox Focus 9.0 将新增广告拦截插件
- 硬件工程师痛苦的BOM整理工作,幸好123BOM工具把我拽出水深火热之的BOM编辑工作,超级好用的研发BOM工具,集BOM编辑、BOM合并、BOM拆分、BOM整理等
- Java 替换word文档文字
- 计算机网络教程第五版课后答案(第一章)
- 服务器p盘cpu占用率低,硬盘问题导致的CPU占用率100%解决实例
- Django cache redis 最全介绍
- pt100热电阻计算公式C语言,PT100计算公式
- 面试过了复试机会大吗-面试通过,参加复试通过的几率有多大