海云捷迅云课堂专题,旨在秉承开源理念,为大家提供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中的应用相关推荐

  1. 【海云捷迅云课堂】云主机驱散说明

    海云捷迅云课堂专题,旨在秉承开源理念,为大家提供OpenStack技术原理与实践经验,该专题文章均由海云捷迅工程师理论与实践相结合总结而成,如大家有其他想要了解的信息,可留言给我们,我们会根据问题酌情 ...

  2. 【海云捷迅云课堂】DPDK技术分享文档

    海云捷迅云课堂专题,旨在秉承开源理念,为大家提供OpenStack技术原理与实践经验,该专题文章均由海云捷迅工程师理论与实践相结合总结而成,如大家有其他想要了解的信息,可留言给我们,我们会根据问题酌情 ...

  3. 【海云捷迅云课堂】分布式存储系统纠删码技术分享

    云课堂专题 海云捷迅云课堂专题,旨在秉承开源理念,为大家提供OpenStack技术原理与实践经验,该专题文章均由海云捷迅工程师理论与实践相结合总结而成,如大家有其他想要了解的信息,可留言给我们,我们会 ...

  4. 化繁为简 海云捷迅为企业提供应用OpenStack新“姿势”

    自2010年10月 OpenStack首个正式版本Austin发布至今,已有近七年的发展历程.相比Cloudstack.OpenNebula等开源技术,OpenStack发展最为迅速,随时间推移渐渐趋 ...

  5. 专访李华:低调的海云捷迅如何优雅做“减法”

    OpenStack刚刚在上周过完了6周岁生日,从最初的炒作到现在的趋于理性,无论是行业领袖还是初创新秀都逐渐抛弃浮躁,脚踏实地让OpenStack真正落地,6年的时光,让OpenStack这个曾经很少 ...

  6. 2018最值得期待:为AI提供基础云平台的海云捷迅

    今天是大年初二,给您拜年! 今年春节不一样,中国云报携手为AI提供基础云平台的海云捷迅给您拜年! 以下是海云捷迅CTO李华的新年寄语 北京海云捷迅科技有限公司(简称AWCloud海云捷迅),国内领先的 ...

  7. 用SaaS的方法做云管理 海云捷迅的创新之法

    [51CTO.com原创稿件]如今,OpenStack已经逐渐开始被企业所接受,将OpenStack部署在企业的生产环境中,但是,OpenStack发展了六年后,我们仍然看到不少OpenStack的失 ...

  8. 海云捷迅的教育云实战经验分享

    在互联网时代,大数据.云计算.移动化.社交网络.物联网等新技术层出不穷,对教育信息化应用也产生了重大影响,大数据学习分析.教育云.HPC.移动教育等应用逐渐成为教育行业的热点. 然而,教育系统对于信息 ...

  9. 百度飞桨Paddle Lite与海云捷迅基于Intel FPGA的自研开发套件完成适配

    点击左上方蓝字关注我们 在技术革新的浪潮下,人工智能在产业升级.改善人类生活等方面发挥着越来越重要的作用.从科研.金融.零售到工业.农业等越来越多的行业与业务场景,无不渗透了人工智能的威力.此外,为人 ...

最新文章

  1. 百练OJ:2388:寻找中位数
  2. 加密 解密常用的算法
  3. 北斗导航 | GPS原理与接收机设计——青冥剑(金码、C/A码、P码)
  4. nodejs里require的调试截屏
  5. python的字符串定界符可以使用_使用Template格式化Python字符串的方法
  6. 什么是PCM综合语音复用设备?
  7. CContextMenuManager上下文菜单管理器以及为菜单添加图标
  8. Linux服务器启动流程详解
  9. c语言代码大全表解释_正点原子Linux第十章C语言版LED灯实验
  10. 阿里巴巴Java开发 之 MySQL规约
  11. 【手写数字识别】基于matlab GUI BP神经网络手写数字识别【含Matlab源码 868期】
  12. 中国电网计算机面试题目,国家电网面试经验
  13. Firefox Focus 9.0 将新增广告拦截插件
  14. 硬件工程师痛苦的BOM整理工作,幸好123BOM工具把我拽出水深火热之的BOM编辑工作,超级好用的研发BOM工具,集BOM编辑、BOM合并、BOM拆分、BOM整理等
  15. Java 替换word文档文字
  16. 计算机网络教程第五版课后答案(第一章)
  17. 服务器p盘cpu占用率低,硬盘问题导致的CPU占用率100%解决实例
  18. Django cache redis 最全介绍
  19. pt100热电阻计算公式C语言,PT100计算公式
  20. 面试过了复试机会大吗-面试通过,参加复试通过的几率有多大

热门文章

  1. RHEL7软件包的管理
  2. 科学家首次拍到西伯利亚雪豹活动迹象(图)
  3. 并发、并行傻傻分不清楚?线程的一生都经历些什么?
  4. 51单片机开发环境配置(使用VScode开发)
  5. 弘辽科技:优化宝贝详情会降权吗?影响降权的因素有哪些?
  6. 虚拟机NAT连接断网解决办法
  7. JMeter入门操作简介
  8. Android系统韦根调试从驱动到应用(二)
  9. IOS企业签名和IOS免签名打包的区别是什么?
  10. 2003邮件服务器维护,Windows 2003邮件服务器配置指南