导读
随着虚拟电子货币挖矿( Bitcoin )、机器学习、动画渲染等需求日益增长,GPU实例逐渐作为一种新型标准服务在公有云或私有云环境中被更多用户使用。
澳大利亚悉尼当地时间11月6号上午9点,第16届OpenStack峰会在悉尼国际会议中心盛大开幕,来自全球52个国家2300余名与会者,将就以OpenStack为核心的开放基础架构相关技术和商业实践展开为期三天的讨论,本文为第二天的讨论内容之一。
11月7日上午,来自 OVH 的工程师分享了他们在专用服务器和公有云上集成 GPU 实例的经验。目前, OVH 提供的公有云服务有超过19万个运行在 Nova 上的实例,向用户提供了超过 100PB 的 Swift 对象存储和 1PB 基于 Ceph 的分布式存储空间。
由于 GPU 和 CPU 的设计架构不同,1颗 GPU 可拥有超过3000个内核,因此相比于只有几十核的 CPU 来说在计算密集型和大量并行计算处理的场景中采用 GPU 能够显著提升系统性能。
接着, OVH 团队分享了他们在 OpenStack 上为虚机集成 GPU 的历程,他们首先选择了相对老款但是比较成熟的 GTX970 Nvidia GPU 进行集成,系统运行良好。当把 GPU 升级到 GTX 10x0 系列后出遇到了一些问题,针对这些问题介绍了相应的的解决办法。
BIOS、VFIO 配置
配置 PCI Passthrough
通过 Libvirt/Nova 补丁集成新的功能,如 CPU pining,kvm_hidden 标志和 OVMF 支持。
以下为分享中对配置的具体介绍,在 BIOS 配置时特别要注意要开启 Onboard VGA ,如果不开启可能会导致 GPU 使用问题。
在较新的 Ubuntu 版本中支持 UEFI 启动虚机,需要相应地在 Glance 中为镜像打上 hw_firmware_type=uefi的 TAG 。
在 Nova 配置文件中设置 PCI Passthrough 使 GPU 可以用于虚机环境。
通过在 Nova 配置文件中添加 “kvm_hidden” : ”True” 隐藏 Hypervisor 的Signature 以此来关闭 Paravirtualization (半虚拟化)功能,在 QEMU 2.1 中已支持此参数。
最后还分享了架构方面的优化经验,同时建议在1个物理 GPU 上分配2个 vGPU以获得最高性价比。
本次分享为希望在基于 OpenStack 环境的虚机上使用 GPU 资源的用户提供了非常好的借鉴。
EaysStack目前落地了多个高性能计算云,主要以采用 Ironic 部署物理机的方式为用户提供 GPU 资源。在私有云场景下,相比上述使用 Vgpu 资源的方式使用物理机能够部署更加简化部署和运维。