鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

如何在oVirt创建虚拟机时自定义属性

问题现象描述

创建新的虚拟机时想要自定义属性qemu:commandline,但是自定义的属性不在关键字列表内。是否有办法解决此问题。

关键过程、根本原因分析

由于oVirt虚拟机的XML配置不支持手动修改,针对多样的虚拟机配置,oVirt提供了自定义属性的功能来支持这些配置。官方内置的自定义属性中没有qemu:commandline,但是提供了vdsm-hook-qemucmdline扩展包支持,需要自行安装配置。

结论、解决方案及效果

  • vdsm-hook-qemucmdline目前只支持添加qemu:arg子标签,如果想支持qemucmdline其他属性标签,可以自行修改“/usr/libexec/vdsm/hooks/before_vm_start/50_qemucmdline”脚本文件和自定义属性配置。
  • 如果要支持其他自定义属性,可以参考官方文档,自行创建添加自定义属性和hook脚本。
  1. 安装扩展包。
    1
    yum install vdsm-hook-qemucmdline.noarch
    
  2. 添加自定义属性配置。
    1
    engine-config -s "UserDefinedVMProperties=qemu_cmdline=^.*$" --cver=4.4
    
  3. 重启ovirt-engine服务。
    1
    service ovirt-engine restart
    

使用示例如下所示。

  1. 打开oVirt Web管理页面,在“编辑虚拟机”的“自定义属性”中选择“qemu_cmdline”,填写如下格式:
    ["-chardev","socket,path=/tmp/vm_sock0,server=on,wait=off,id=vm_sock","-device","virtio-serial","-device","virtserialport,chardev=vm_sock,name=serialport0"]

  2. 虚拟机创建完并启动后,使用virsh dumpxml命令查看虚拟机配置,可以看到添加的qemu_cmdline效果如下:
    <qemu:commandline>
      <qemu:arg value='-chardev'/>
      <qemu:arg value='socket,path=/tmp/vm_sock0,server=on,wait=off,id=vm_sock'/>
      <qemu:arg value='-device'/>
      <qemu:arg value='virtio-serial'/>
      <qemu:arg value='-device'/>
      <qemu:arg value='virtserialport,chardev=vm_sock,name=serialport0'/>
    </qemu:commandline>