背景
ZStack所聚焦的IaaS,作为云计算里的底座基石,能够更好的实现物理资源隔离,以及服务器等硬件资源的统一管理,为上层大数据、深度学习Tensorflow等业务提供了稳定可靠的基础环境。
近年来,云计算发展探索出了有别于传统虚拟化、更贴近于业务的PaaS型服务,该类型依赖于docker实现,如K8S等典型的容器云,可以直接从镜像商店下载封装好业务软件的镜像,更加快捷地实现业务部署。
此外,GPU场景也是客户业务的典型场景,相比于CPU的运算特点,在数据分析、深度学习有着明显的优势。
ZStack是如何与容器结合,以IaaS+PaaS的组合拳,为上层业务提供支撑的呢?本篇文章带大家了解一下,如何在ZStack 上部署 centos7.6 虚拟机,在虚拟机里部署docker,以及如何使用nvidia-docker实现在容器里调用GPU的业务场景。
环境
虚机系统:Centos 7.6
虚机内核:Linux 172-18-47-133 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
docker版本:docker-ce 19.03
nvidia-docker版本:nvidia-docker-1.0.11.x86_64
显卡:RTX6000
Cuda版本:10.1
显卡驱动:418
如下图所示:
Part 01
显卡驱动安装
1、下载对应版本的CUDA,并以此安装驱动。CUDA已经紧密结合了NVIDIA,以下驱动在centos、ubuntu上面均可执行,并自带绝大部分NVIDIA型号的显卡驱动,实用性非常强。
wget http://plan.zstack.io/storage/iso/nvidia/cuda_10.1.168_418.67_linux.run
chmod+x http://plan.zstack.io/storage/iso/nvidia/cuda_10.1.168_418.67_linux.run
GPU透传给虚拟机的操作步骤,详见在zstack.io官网可搜索到的《GPU实践手册》。
特别提醒:平台CPU模式一定要设置成passthrough!否则后续无法正常调用GPU做任何操作。
2、安装驱动,会自动禁止使用默认显卡驱动。特殊情况如需手动禁用,可使用如下操作:
echo “blacklist nouveau” >>/usr/lib/modprobe.d/dist-blacklist.conf
echo “options nouveau modeset=0” >>/usr/lib/modprobe.d/dist-blacklist.conf
mv /boot/initramfs- ( u