虚拟机视频设备介绍

2019-05-07  本文已影响0人  lzp1234

前言

2019年5月编写,因涉及到各个版本,所以在此着重提一下。
video负责虚拟机的视频输出(也用VGA标识)。

qemu、kvm、libvirt 这几个名词,免费混淆,简单介绍一下:
  1. 当硬件支持虚拟化时,可在nova配置中指定 virt_type = kvm ,意义为cpu、内存虚拟化通过kvm提供,其它由qemu提供。若硬件不支持虚拟化,则此属性配置为qemu。qemu可以通过软件完全模拟所需的硬件。
  2. 目前kvm项目已经整合进qemu项目中,联合使用时为qemu提供cpu、内存虚拟化功能。
  3. libvirt是一个中间件,实现虚拟机的技术有几种,通过libvirt统一了使用方式。openstack默认通过调用libvirt控制虚拟机。

由于libvirt进行了一些封装操作,因此qemu支持的类型并不能代表libvirt支持的类型,只能有一定的参考意义。
首先介绍qemu支持的类型,再介绍libvirt支持的类型,最后介绍openstack可使用的类型(openstack默认调用libvirt)

环境

操作系统:centos7
openstack版本:queens
qemu版本:2.10
libvirt版本:3.9.0

基础介绍

通过虚拟机的xml文件可以看到video配置项。

找到xml文件(第一种方式):

如果虚拟机处于启动的状态可通过此方式查看。

  1. 查询虚拟机在kvm中的名称:
openstack server show <虚拟机id>

其中 OS-EXT-SRV-ATTR:instance_name 属性值就是虚拟机在kvm中的名称。

  1. 到虚拟机所在物理节点的 /run/libvirt/qemu/ 目录下,根据刚刚查到的kvm虚拟机名称可以找到对应的xml文件。
找到xml文件(第二种方式):

虚拟机未运行也可查看。

  1. 查询虚拟机在kvm中的名称:
openstack server show <虚拟机id>

其中 OS-EXT-SRV-ATTR:instance_name 属性值就是虚拟机在kvm中的名称。

  1. 到虚拟机所在物理节点,使用kvm命令查看xml:
virsh dumpxml <kvm虚拟机名称>

qemu支持的video类型

qemu最新版已经支持 cirrus,std,qxl,vmware,virtio,none 。

cirrus

qemu2.2之前默认使用的video类型。
不能支持高清显示并且色彩采用24位。总之,要被淘汰的一种类型。

std

qemu2.2之后默认使用的video类型。
无需虚拟机安装额外的驱动,可支持到 2560 x 1600 分辨率。

qxl

2D场景下,一般与spice搭配使用。
注意虚拟机使用此种类型时,虚拟机需要装额外的驱动程序,否则使用体验很糟糕。
默认配置可支持到 2560x1440 分辨率。通过提高内存使用量可以提供更高的分辨率。

vmware

比 cirros、std表现要更好,但是需要虚拟机安装额外的驱动。

virtio

适用于3D场景。

none

一般不用,等于没有视频设备。无法使用vnc等访问虚拟机。

libvirt支持的video类型

vga, cirrus, vmvga, xen, vbox, qxl(since 0.8.6), virtio(since 1.3.0), gop(since 3.2.0), or none(since 4.6.0)
libvirt兼容多个虚拟机具体实现工具,因此在video设备上对某些类型进行了重命名。这里着重讨论使用qemu驱动。

vga

参考qemu中的 std。

cirrus

kvm虚拟机默认video类型。
参考qemu中的 cirrus。

vmvga

参考qemu中的 vmware

xen

不常用,暂时未找到相关资料

vbox

不常用,暂时未找到相关资料

qxl

参考qemu中的 qxl

virtio

参考qemu中的 virtio

gop
  1. gop是什么:
    UEFI驱动程序启用图形输出协议(GOP)以支持OS前阶段的图形控制台输出.GOP的最终目标是取代传统VGA BIOS并消除VGA硬件功能
  2. 更偏向未来的一种技术,有兴趣的可自行了解
none

参考qemu中的 none

openstack可使用的video类型

cirrus, vga, vmvga, xen, or qxl

cirrus

参考qemu中的 cirrus。

vga

参考qemu中的 std。

vmvga

参考qemu中的 vmware

xen

不常用,暂时未找到相关资料

qxl

参考qemu中的 qxl。

扩展介绍

如何调整虚拟机使用的视频设备

虚拟机得video类型在镜像中定义。
命令参考:

openstack image set  --property hw_video_model='vga'

还支持更多得选项,比如video内存配置。注意某些类型需要虚拟机安装驱动配合使用。详情参考最后得 openstack镜像配置参考

虚拟机支持多个视频设备吗

支持,通关xml中的head区分

参考

  1. qemu参考:
    https://wiki.archlinux.org/index.php/QEMU
  2. libvirt参考:
    https://libvirt.org/formatdomain.html
  3. openstack镜像配置参考(s版本。q、r、s版一致):
    https://docs.openstack.org/glance/queens/admin/useful-image-properties.html#image-property-keys-and-values
  4. openstack分辨率参考:
    https://docs.openstack.org/newton/config-reference/compute/config-options.html
上一篇 下一篇

猜你喜欢

热点阅读