自动化kolla-ansible部署openstack+GPU透传方法

欢迎加QQ群:1026880196 进行交流学习

1. CentOS7.x-8.x系列为虚拟机配置GPU直通

1. 编辑文件vim  /etc/modules, 添加以下内容:
pci_stub
vfio
vfio_iommu_type1
vfio_pci
kvm
kvm_intel 2. 在KVM主机上启用IOMMU #对于Intel芯片:
GRUB_CMDLINE_LINUX_DEFAULT="intel_iommu=on" #对于AMD芯片:
GRUB_CMDLINE_LINUX_DEFAULT="iommu=pt iommu=1" vim /etc/default/grub GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet intel_iommu=on"
GRUB_DISABLE_RECOVERY="true"

3.  重新生成grub
   EFI
   grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg


非EFI
   grub2-mkconfig -o /boot/grub2/grub.cfg

4.  将下列内容加入到blacklist中以避免被宿主机占用,编辑文件
vim /etc/modprobe.d/blacklist.conf
blacklist snd_hda_intel
blacklist amd76x_edac
blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist nvidiafb
blacklist rivatv
blacklist nvidia 5. 查找显卡的Product ID 以及 Vendor ID:
yum install pciutils -y
lspci -nn | grep NVIDIA 如下:
[root@stein-a ~]#
03:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP104GL [Quadro P4000] [10de:1bb1] (rev a1)
03:00.1 Audio device [0403]: NVIDIA Corporation GP104 High Definition Audio Controller [10de:10f0] (rev a1) 6. 编辑
vim /etc/modprobe.d/vfio.conf # create new: for [ids=***], specify [vendor-ID:device-ID]
options vfio-pci ids=10de:1bb1,10de:10f0 7. 写入到系统启动项
echo 'vfio-pci' > /etc/modules-load.d/vfio-pci.conf 8. 重新生成initramfs
mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
dracut -v /boot/initramfs-$(uname -r).img $(uname -r) 9. 重启系统
reboot 10. 验证
lspci -nnk -d 10de:1bb1
dmesg | grep -i vfio [root@stein-a ~]# lspci -nnk -d 10de:1bb1
03:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP104GL [Quadro P4000] [10de:1bb1] (rev a1)
Subsystem: NVIDIA Corporation Device [10de:11a3]
Kernel driver in use: vfio-pci
Kernel modules: nouveau
[root@stein-a ~]# dmesg | grep -i vfio
[ 2.503115] VFIO - User Level meta-driver version: 0.3
[ 2.515645] vfio_pci: add [10de:1bb1[ffff:ffff]] class 0x000000/00000000
[ 2.515752] vfio_pci: add [10de:10f0[ffff:ffff]] class 0x000000/00000000
[root@stein-a ~]#

2. Ubuntu18.04系列为虚拟机配置GPU直通

1. 编辑文件vim  /etc/modules, 添加以下内容:
pci_stub
vfio
vfio_iommu_type1
vfio_pci
kvm
kvm_intel 2. 在KVM主机上启用IOMMU #对于Intel芯片:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash intel_iommu=on" #对于AMD芯片:
GRUB_CMDLINE_LINUX_DEFAULT="iommu=pt iommu=1" vim /etc/default/grub GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash intel_iommu=on"
GRUB_CMDLINE_LINUX=""

3.  重新生成grub
   EFI
   grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg


非EFI 
   grub2-mkconfig -o /boot/grub2/grub.cfg

4.  将下列内容加入到blacklist中以避免被宿主机占用,编辑文件
vim /etc/modprobe.d/blacklist.conf
blacklist snd_hda_intel
blacklist amd76x_edac
blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist nvidiafb
blacklist rivatv
blacklist nvidia 5. 查找显卡的Product ID 以及 Vendor ID:
apt install pciutils -y
lspci -nn | grep NVIDIA 如下:
[root@stein-a ~]# lspci -nn | grep NVIDIA
03:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP104GL [Quadro P4000] [10de:1bb1] (rev a1)
03:00.1 Audio device [0403]: NVIDIA Corporation GP104 High Definition Audio Controller [10de:10f0] (rev a1) 6. 编辑
vim /etc/modprobe.d/vfio.conf # create new: for [ids=***], specify [vendor-ID:device-ID]
options vfio-pci ids=10de:1bb1,10de:10f0 7. 写入到系统启动项
echo 'vfio-pci' > /etc/modules-load.d/vfio-pci.conf 8. 重新生成initramfs
dracut -v /boot/initramfs-$(uname -r).img $(uname -r) 9. 重启系统
reboot 10. 验证
lspci -nnk -d 10de:1bb1
dmesg | grep -i vfio root@kvm:~# lspci -nnk -d 10de:1bb1
dmesg | grep -i vfio
03:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP104GL [Quadro P4000] [10de:1bb1] (rev a1)
Subsystem: NVIDIA Corporation GP104GL [Quadro P4000] [10de:11a3]
Kernel driver in use: vfio-pci
Kernel modules: nvidiafb, nouveau
root@kvm:~# dmesg | grep -i vfio
[ 3.838714] VFIO - User Level meta-driver version: 0.3
[ 3.846238] vfio-pci 0000:03:00.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=io+mem:owns=none
[ 3.866370] vfio_pci: add [10de:1bb1[ffffffff:ffffffff]] class 0x000000/00000000
[ 3.886375] vfio_pci: add [10de:10f0[ffffffff:ffffffff]] class 0x000000/00000000

3. CentOS7.x系列 安装显卡驱动

1.  查看是否含有英伟达显卡
lspci | grep -i NVIDIA #下面说明有1块英伟达的显卡
[root@train-all ~]# lspci | grep -i NVIDIA
04:00.0 VGA compatible controller: NVIDIA Corporation GP104GL [Quadro P4000] (rev a1)
04:00.1 Audio device: NVIDIA Corporation GP104 High Definition Audio Controller (rev a1)
[root@train-all ~]# 2. 添加ELRepo源
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org 3. 安装ELRepo
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm 4. 安装nvidia-detect
yum install nvidia-detect -y 5. 运行nvidia-detect
nvidia-detect -v 6. 查找驱动程序
yum search kmod-nvidia 7. 安装驱动程序
yum install kmod-nvidia.x86_64 -y 8. 查看禁用Nouveau
lsmod | grep nouveau
#若没有输出 则说明禁用成功,否则执行下面的命令 9. 在/etc/modprobe.d/blacklist-nouveau.conf中创建一个文件,其内容如下:
vi /etc/modprobe.d/blacklist-nouveau.conf 添加
blacklist nouveau
options nouveau modeset=0 10. 重新生成内核initramfs
dracut --force 11. 重启系统
reboot 12. 测试
nvidia-smi

自动化kolla-ansible部署openstack+GPU透传方法的更多相关文章

  1. openstack PCI透传(GPU)

    描述 kolla-ansible部署openstack的GPU透传方法 一.gpu物理服务器配置 在gpu服务器上主启用IOMMU 确认内核⽀支持iommu $ cat /proc/cmdline | ...

  2. 使用Ansible部署openstack平台

    使用Ansible部署openstack平台 本周没啥博客水了,就放个云计算的作业上来吧(偷个懒) 案例描述 1.了解高可用OpenStack平台架构 2.了解Ansible部署工具的使用 3.使用A ...

  3. kolla-ansible-----快速部署openstack

    基本环境 操作系统:CentOS Linux release 7.5.1804 (Core) 内核版本:3.10.0-862.el7.x86_64 docker版本:1.13.1 1.禁用宿主机的 L ...

  4. 比Ansible更吊的自动化运维工具,自动化统一安装部署_自动化部署udeploy 1.0

    新增功能: 2015-03-11 除pass(备份与更新)与start(启动服务)外,实现一切自动化. 注:pass与start设为业务类,由于各类业务不同,所以无法实现自动化.同类业务除外,如更新的 ...

  5. 比Ansible更吊的自动化运维工具,自动化统一安装部署自动化部署udeploy 1.0 版本发布

    新增功能: 逻辑与业务分离,完美实现逻辑与业务分离,业务实现统一shell脚本开发,由框架统一调用. 并发多线程部署,不管多少台服务器,多少个服务,同时发起线程进行更新.部署.启动. 提高list规则 ...

  6. OpenStack(四)——使用Kolla部署OpenStack多节点云

    (1).实验环境 主机名 IP地址 角色 内存 网卡 CPU 磁盘 OpenStack-con 192.168.128.110 controller(控制) 8G 桥接网卡ens32和ens33 4核 ...

  7. kolla部署openstack多节点高可用并对接ceph后端存储(17)

    部署节点执行: 安装基础包和docker yum install python-devel libffi-devel gcc openssl-devel git python-pip -y 升级一下 ...

  8. 001.Ansible部署RHCS存储集群

    一 前期准备 1.1 前置条件 至少有三个不同的主机运行monitor (MON)节点: 至少三个直接存储(非外部SAN硬件)的OSD节点主: 至少两个不同的manager (MGR)节点: 如果使用 ...

  9. 使用ansible部署CDH 5.15.1大数据集群

    使用ansible离线部署CDH 5.15.1大数据集群 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在此之前,我之前分享过使用shell自定义脚本部署大数据集群,不管是部署CD ...

随机推荐

  1. Gateway网关

    前提要在注册中心把网关和服务都进行注册 通俗来说,网关就是指在客户端和服务端的一面墙,这面墙有请求转发,负载均衡,权限控制,跨域,熔断降级,限流保护等功能. 客户端发送请求,请求先通过网关,网关根据特 ...

  2. Spark + GraphX + Pregel

    Spark+GraphX图 Q:什么是图?图的应用场景 A:图是由顶点集合(vertex)及顶点间的关系集合(边edge)组成的一种网状数据结构,表示为二元组:Gragh=(V,E),V\E分别是顶点 ...

  3. 搭建Elasticsearch可视化界面 Kibana

    前言 每一个版本的es都有一个对应的Kibana版本,建议和es相同版本,官网地址: 点击进入下载地址 步骤 1.解压 tar -zxvf kibana-7.2.0-linux-x86_64 2.修改 ...

  4. super_curd组件技术点总结

    1.基于包的导入的方式实现单例模式 # test1.py class AdminSite(object): def __init__(self): self.registry = {} self.ap ...

  5. C# 应用 - 多线程 3) Task.Factory

    1. 与 Task.Run() 的区别: 先看一下源码: public class Task : IThreadPoolWorkItem, IAsyncResult, IDisposable { pu ...

  6. Java流程控制:用户交互Scanner

    java.util.Scanner工具类获取用户输入语法:Scanner scanner = new Scanner(System.in);通过Scanner类的next()与nextLine()方法 ...

  7. android底部导航栏小结

    android自带的有TabHost,但好像无法满足要求, 本文只记录使用 TabLayout + Fragment  和 android 自带的 BottomNavigationView + Fra ...

  8. 单链表及基本操作(C语言)

    #include <stdio.h> #include <stdlib.h> /** * 含头节点单链表定义及基本操作 */ //基本操作函数用到的状态码 #define TR ...

  9. 从零开始编写一个BitTorrent下载器

    从零开始编写一个BitTorrent下载器 BT协议 简介 BT协议Bit Torrent(BT)是一种通信协议,又是一种应用程序,广泛用于对等网络通信(P2P).曾经风靡一时,由于它引起了巨大的流量 ...

  10. 20个最有用的Python数据科学库

    核心库与统计 1. NumPy(提交:17911,贡献者:641) 一般我们会将科学领域的库作为清单打头,NumPy 是该领域的主要软件库之一.它旨在处理大型的多维数组和矩阵,并提供了很多高级的数学函 ...