nova修改libvirt.xml及自定义xml文件修改nova代码支持vhost

来源:互联网 发布:java wait 例子 编辑:程序博客网 时间:2024/05/15 02:09
<interface type='bridge'>
      <mac address='00:1a:4a:4d:63:a0'/>
      <source bridge='sdcos-vmnet'/>
      <model type='virtio'/>
      <filterref filter='vdsm-no-mac-spoofing'/>
      <link state='up'/>
      <bandwidth>
      </bandwidth>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
      <driver name='qemu'/>
    </interface>


    <interface type="bridge">
      <mac address="fa:16:3e:ea:69:50"/>
      <model type="virtio"/>
      <source bridge="qbr3bcc4870-b3"/>
      <target dev="tap3bcc4870-b3"/>
      <driver name='qemu'/> #加上此配置文件,则启动的虚拟机参数中就会有vhost=off
    </interface>

修改nova代码支持:
    def get_config(self, instance, vif, image_meta, inst_type):
        conf = vconfig.LibvirtConfigGuestInterface()
        # Default to letting libvirt / the hypervisor choose the model
        model = None
        driver = None
        # If the user has specified a 'vif_model' against the
        # image then honour that model
        if image_meta:
            vif_model = image_meta.get('properties',
                                       {}).get('hw_vif_model')
            if vif_model is not None:
                model = vif_model
        # Else if the virt type is KVM/QEMU, use virtio according
        # to the global config parameter
        if (model is None and
            CONF.libvirt.virt_type in ('kvm', 'qemu') and
                    CONF.libvirt.use_virtio_for_bridges):
            model = "virtio"
        # Workaround libvirt bug, where it mistakenly
        # enables vhost mode, even for non-KVM guests
        if model == "virtio" and CONF.libvirt.virt_type == "qemu":
            driver = "qemu"

修改为:
if model == "virtio" and CONF.libvirt.virt_type == "qemu":
            driver = "qemu"
driver = "qemu"//增加此句,代表永远为qemu




0 0