1. 18 9月, 2014 1 次提交
    • R
      storage: zfs: implement pool build and delete · b4af4022
      Roman Bogorodskiy 提交于
       - Provide an implementation for buildPool and deletePool operations
         for the ZFS storage backend.
       - Add VIR_STORAGE_POOL_SOURCE_DEVICE flag to ZFS pool poolOptions
         as now we can specify devices to build pool from
       - storagepool.rng: add an optional 'sourceinfodev' to 'sourcezfs' and
         add an optional 'target' to 'poolzfs' entity
       - Add a couple of tests to storagepoolxml2xmltest
      b4af4022
  2. 17 9月, 2014 4 次提交
  3. 16 9月, 2014 3 次提交
    • J
      conf: add backend element to interfaces · af8b4a2e
      Ján Tomko 提交于
      For tuning the network, alternative devices
      for creating tap and vhost devices can be specified via:
      <backend tap='/dev/net/tun' vhost='/dev/net-vhost'/>
      af8b4a2e
    • E
      cputune: allow interleaved xml · 7e8feed4
      Eric Blake 提交于
      I noticed this with the recent iothread pinning code, but the
      problem existed longer than that. The XML validation required
      users to supply <cputune> children in a strict order, even though
      there was no conceptual reason why they can't occur in any order.
      
      docs/ changes best viewed with -w
      
      * docs/schemas/domaincommon.rng (cputune): Add interleave.
      * tests/qemuxml2argvdata/qemuxml2argv-cputune-iothreads.xml: Swap
      up order, copying canonical form...
      * tests/qemuxml2xmloutdata/qemuxml2xmlout-cputune-iothreads.xml:
      ...here.
      * tests/qemuxml2xmltest.c (mymain): Mark the difference.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      7e8feed4
    • J
      domain_conf: Add iothreadpin to cputune · 938fb12f
      John Ferlan 提交于
      https://bugzilla.redhat.com/show_bug.cgi?id=1101574
      
      Add an option 'iothreadpin' to the <cpuset> to allow for setting the
      CPU affinity for each IOThread.
      
      The iothreadspin will mimic the vcpupin with respect to being able to
      assign each iothread to a specific CPU, although iothreads ids start
      at 1 while vcpu ids start at 0. This matches the iothread naming scheme.
      938fb12f
  4. 15 9月, 2014 1 次提交
    • E
      network: check for invalid forward delay time · 3aa05241
      Erik Skultety 提交于
      When spanning tree protocol is allowed in bridge settings, forward delay
      value is set as well (default is 0 if omitted). Until now, there was no
      check for delay value validity. Delay makes sense only as a positive
      numerical value.
      
      Note: However, even if you provide positive  numerical value, brctl
      utility only uses values from range <2,30>, so the number provided can
      be modified (kernel most likely) to fall within this range.
      
      Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1125764
      3aa05241
  5. 12 9月, 2014 1 次提交
  6. 10 9月, 2014 3 次提交
    • M
      qemu: Automatically create NVRAM store · 742b08e3
      Michal Privoznik 提交于
      When using split UEFI image, it may come handy if libvirt manages per
      domain _VARS file automatically. While the _CODE file is RO and can be
      shared among multiple domains, you certainly don't want to do that on
      the _VARS file. This latter one needs to be per domain. So at the
      domain startup process, if it's determined that domain needs _VARS
      file it's copied from this master _VARS file. The location of the
      master file is configurable in qemu.conf.
      
      Temporary, on per domain basis the location of master NVRAM file can
      be overridden by this @template attribute I'm inventing to the
      <nvram/> element. All it does is holding path to the master NVRAM file
      from which local copy is created. If that's the case, the map in
      qemu.conf is not consulted.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      Acked-by: NLaszlo Ersek <lersek@redhat.com>
      742b08e3
    • M
      conf: Extend <loader/> and introduce <nvram/> · 68bf13db
      Michal Privoznik 提交于
      Up to now, users can configure BIOS via the <loader/> element. With
      the upcoming implementation of UEFI this is not enough as BIOS and
      UEFI are conceptually different. For instance, while BIOS is ROM, UEFI
      is programmable flash (although all writes to code section are
      denied). Therefore we need new attribute @type which will
      differentiate the two. Then, new attribute @readonly is introduced to
      reflect the fact that some images are RO.
      
      Moreover, the OVMF (which is going to be used mostly), works in two
      modes:
      1) Code and UEFI variable store is mixed in one file.
      2) Code and UEFI variable store is separated in two files
      
      The latter has advantage of updating the UEFI code without losing the
      configuration. However, in order to represent the latter case we need
      yet another XML element: <nvram/>. Currently, it has no additional
      attributes, it's just a bare element containing path to the variable
      store file.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      Acked-by: NLaszlo Ersek <lersek@redhat.com>
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      68bf13db
    • J
      docs: fix encryption format attribute in example · 10af1f23
      Ján Tomko 提交于
      The correct attribute name is 'format', not 'type'.
      
      https://bugzilla.redhat.com/show_bug.cgi?id=1139910
      10af1f23
  7. 05 9月, 2014 1 次提交
    • E
      maint: tighten curly brace syntax checking · bc7e63d3
      Eric Blake 提交于
      Now that hanging brace offenders have been fixed, we can automate
      the check, and document our style.  Done as a separate commit from
      code changes, to make it easier to just backport code changes, if
      that is ever needed.
      
      * cfg.mk (sc_curly_braces_style): Catch hanging braces.
      * docs/hacking.html.in: Document it.
      * HACKING: Regenerate.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      bc7e63d3
  8. 02 9月, 2014 1 次提交
  9. 29 8月, 2014 2 次提交
    • J
      domain_conf: Add support for iothreads in disk definition · e2523de5
      John Ferlan 提交于
      Add a new disk "driver" attribute "iothread" to be parsed as the thread
      number for the disk to use. In order to more easily facilitate the usage
      and configuration of the iothread, a "zero" for the attribute indicates
      iothreads are not supported for the device and a positive value indicates
      the specific thread to try and use.
      e2523de5
    • J
      domain_conf: Introduce iothreads XML · ee3a9620
      John Ferlan 提交于
      Introduce XML to allowing adding iothreads to the domain. These can be
      used by virtio-blk-pci devices in order to assign a specific thread to
      handle the workload for the device.  The iothreads are the official
      implementation of the virtio-blk Data Plane that's been in tech preview
      for QEMU.
      ee3a9620
  10. 26 8月, 2014 2 次提交
  11. 25 8月, 2014 1 次提交
  12. 22 8月, 2014 3 次提交
  13. 21 8月, 2014 1 次提交
    • M
      hvsupport: Adapt to vbox driver rewrite · cf389258
      Michal Privoznik 提交于
      Since vbox driver rewrite the virDriver structure init moved from
      vbox_tmpl.c into vbox_common.c. However, our hvsupport.pl script
      doesn't count with that. It still parses vbox_tmp.c and looks for
      virDriver structure which is not found there anymore. As a result,
      at hvsupport page is seems like vbox driver doesn't support
      anything.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      cf389258
  14. 20 8月, 2014 1 次提交
  15. 19 8月, 2014 1 次提交
    • J
      docs: nwfilter: add missing dscp attribute · 08567572
      Jianwei Hu 提交于
      Added attribute dscp to below supported protocols table in nwfilter docs.
      IPV4 (ip)
      TCP/UDP/SCTP (tcp/udp/sctp)
      ICMP (icmp)
      IGMP,ESP,AH,UDPLITE,'ALL' (igmp,esp,ah,udplite,all)
      TCP/UDP/SCTP over IPV6 (tcp-ipv6,udp-ipv6,sctp-ipv6)
      ICMPV6 (icmpv6)
      IGMP,ESP,AH,UDPLITE,'ALL' over IPv6 (igmp-ipv6,esp-ipv6,ah-ipv6,udplite-ipv6,all-ipv6)
      
      Here is a simple example:
      [root@localhost ~]# virsh nwfilter-dumpxml myself
      <filter name='myself' chain='root'>
        <uuid>7192ef51-cd50-4f14-ad7b-fa5c69ea19e3</uuid>
        <rule action='accept' direction='in' priority='500'>
          <ip dscp='1'/>
        </rule>
        <rule action='accept' direction='in' priority='500'>
          <tcp dscp='1'/>
        </rule>
        <rule action='accept' direction='in' priority='500'>
          <tcp-ipv6 dscp='2'/>
        </rule>
        <rule action='accept' direction='in' priority='500'>
          <icmp dscp='55'/>
        </rule>
        <rule action='accept' direction='in' priority='500'>
          <icmpv6 dscp='55'/>
        </rule>
        <rule action='accept' direction='in' priority='500'>
          <udp dscp='3'/>
        </rule>
        <rule action='accept' direction='in' priority='500'>
          <udp-ipv6 dscp='4'/>
        </rule>
        <rule action='accept' direction='in' priority='500'>
          <udplite dscp='5'/>
        </rule>
        <rule action='accept' direction='in' priority='500'>
          <udplite-ipv6 dscp='6'/>
        </rule>
        <rule action='accept' direction='in' priority='500'>
          <esp dscp='7'/>
        </rule>
        <rule action='accept' direction='in' priority='500'>
          <esp-ipv6 dscp='8'/>
        </rule>
        <rule action='accept' direction='in' priority='500'>
          <ah dscp='9'/>
        </rule>
        <rule action='accept' direction='in' priority='500'>
          <ah-ipv6 dscp='10'/>
        </rule>
        <rule action='accept' direction='in' priority='500'>
          <sctp dscp='11'/>
        </rule>
        <rule action='accept' direction='in' priority='500'>
          <sctp-ipv6 dscp='55'/>
        </rule>
        <rule action='accept' direction='in' priority='500'>
          <igmp dscp='55'/>
        </rule>
        <rule action='accept' direction='in' priority='500'>
          <all-ipv6 dscp='55'/>
        </rule>
        <rule action='accept' direction='in' priority='500'>
          <all dscp='55'/>
        </rule>
      </filter>
      Signed-off-by: NJán Tomko <jtomko@redhat.com>
      08567572
  16. 14 8月, 2014 2 次提交
    • J
      Maximum vlanid should be 4095 in interface.rng · 2a8fabba
      Jianwei Hu 提交于
      The correct vlanid range is 0~4095.
      
      After merging this patch, we can not validate a interface xml with vlanid >= 4096.
      [root@localhost ~]# cat vlan.xml
      <interface type='vlan' name='eno1.4096'>
         <start mode='onboot'/>
         <protocol family='ipv4'>
          <dhcp/>
         </protocol>
         <vlan tag='4096'>
           <interface name='eno1'/>
         </vlan>
      </interface>
      [root@localhost ~]# virt-xml-validate vlan.xml
      vlan.xml:1: element interface: Relax-NG validity error : Invalid sequence in interleave
      vlan.xml:6: element vlan: Relax-NG validity error : Element interface failed to validate content
      vlan.xml:6: element vlan: Relax-NG validity error : Element vlan failed to validate attributes
      vlan.xml fails to validate
      [root@localhost ~]#
      
      Here is a ip command help on this.
      [root@localhost /]# ip link add link eno1 name eno1.90 type vlan help
      Usage: ... vlan [ protocol VLANPROTO ] id VLANID                [ FLAG-LIST ]
                      [ ingress-qos-map QOS-MAP ] [ egress-qos-map QOS-MAP ]
      
      VLANPROTO: [ 802.1Q / 802.1ad ]
      VLANID := 0-4095
      FLAG-LIST := [ FLAG-LIST ] FLAG
      FLAG := [ reorder_hdr { on | off } ] [ gvrp { on | off } ] [ mvrp { on | off } ]
              [ loose_binding { on | off } ]
      QOS-MAP := [ QOS-MAP ] QOS-MAPPING
      QOS-MAPPING := FROM:TO
      2a8fabba
    • J
      docs: fix missing forward slash · 49cd6815
      Jianwei Hu 提交于
         Should like below:
          <interface type='server'>
            <mac address='52:54:00:22:c9:42'/>
            <source address='192.168.0.1' port='5558'/>
          </interface>
          ...
          <interface type='client'>
            <mac address='52:54:00:8b:c9:51'/>
            <source address='192.168.0.1' port='5558'/>
          </interface>
      49cd6815
  17. 12 8月, 2014 2 次提交
    • R
      storage: ZFS support · 0257d06b
      Roman Bogorodskiy 提交于
      Implement ZFS storage backend driver. Currently supported
      only on FreeBSD because of ZFS limitations on Linux.
      
      Features supported:
      
       - pool-start, pool-stop
       - pool-info
       - vol-list
       - vol-create / vol-delete
      
      Pool definition looks like that:
      
       <pool type='zfs'>
        <name>myzfspool</name>
        <source>
          <name>actualpoolname</name>
        </source>
       </pool>
      
      The 'actualpoolname' value is a name of the pool on the system,
      such as shown by 'zpool list' command. Target makes no sense
      here because volumes path is always /dev/zvol/$poolname/$volname.
      
      User has to create a pool on his own, this driver doesn't
      support pool creation currently.
      
      A volume could be used with Qemu by adding an entry like this:
      
          <disk type='volume' device='disk'>
            <driver name='qemu' type='raw'/>
            <source pool='myzfspool' volume='vol5'/>
            <target dev='hdc' bus='ide'/>
          </disk>
      0257d06b
    • E
      docs: use correct hints per bus type in <disk> examples · 51cb34b3
      Eric Blake 提交于
      Commit 4cf53158 tried to set up unique labels per disk in the
      example, but ended up choosing strings that don't correspond
      to the usual choice of bus types.  Tweak the strings once again.
      
      * docs/formatdomain.html.in: Use preferred names.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      51cb34b3
  18. 08 8月, 2014 3 次提交
    • P
      e260a0e6
    • J
      hostdev: Add iSCSI hostdev XML · 54ac483e
      John Ferlan 提交于
      Introduce a new structure to handle an iSCSI host device based on the
      existing virDomainHostdevSubsysSCSI by adding a "protocol='iscsi'" to
      the <source/> element. The existing scsi_host subsystem RNG was modified
      to read an optional "protocol='adapter'", although it won't be written
      out nor is it documented as an option (by choice).
      
      The new hostdev structure mimics the existing <disk/> element for an
      iSCSI device (network) device. New XML is:
      
        <hostdev mode='subsystem' type='scsi' managed='yes'>
          <source protocol='iscsi' name='iqn.1992-01.com.example'>
            <host name='example.org' port='3260'/>
            <auth username='myname'>
              <secret type='iscsi' usage='mycluster_myname'/>
            </auth>
          </source>
          <address type='drive' controller='0' bus='0' target='2' unit='5'/>
        </hostdev>
      
      The controller element will mimic the existing scsi_host code insomuch
      as when 'lsi' and 'virtio-scsi' are used.
      54ac483e
    • E
      docs: use unique dev names in <disk> examples · 4cf53158
      Eric Blake 提交于
      Jiri Moskovcak reported on IRC that the documentation on valid
      <disk> was confusing because it didn't have unique dev='...'
      entries.
      
      * docs/formatdomain.html.in: Use unique names.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      4cf53158
  19. 05 8月, 2014 1 次提交
  20. 03 8月, 2014 1 次提交
    • D
      Release of libvirt-1.2.7 · 21b59b65
      Daniel Veillard 提交于
      * docs/news.html.in libvirt.spec.in: update for the release
      * po/*.po*: update localizations and regenerate
      21b59b65
  21. 30 7月, 2014 4 次提交
    • R
      docs: bhyve: document recent changes · 221b1828
      Roman Bogorodskiy 提交于
       - mention that one disk and one network limitation
         is no longer current for 1.2.6 and newer
       - add 'cdrom' device to the sample domain XML
      221b1828
    • E
      blockcommit: track job type in xml · 232a31be
      Eric Blake 提交于
      A future patch is going to wire up qemu active block commit jobs;
      but as they have similar events and are canceled/pivoted in the
      same way as block copy jobs, it is easiest to track all bookkeeping
      for the commit job by reusing the <mirror> element.  This patch
      adds domain XML to track which job was responsible for creating a
      mirroring situation, and adds a job='copy' attribute to all
      existing uses of <mirror>.  Along the way, it also massages the
      qemu monitor backend to read the new field in order to generate
      the correct type of libvirt job (even though it requires a
      future patch to actually cause a qemu event that can be reported
      as an active commit).  It also prepares to update persistent XML
      to match changes made to live XML when a copy completes.
      
      * docs/schemas/domaincommon.rng: Enhance schema.
      * docs/formatdomain.html.in: Document it.
      * src/conf/domain_conf.h (_virDomainDiskDef): Add a field.
      * src/conf/domain_conf.c (virDomainBlockJobType): String conversion.
      (virDomainDiskDefParseXML): Parse job type.
      (virDomainDiskDefFormat): Output job type.
      * src/qemu/qemu_process.c (qemuProcessHandleBlockJob): Distinguish
      active from regular commit.
      * src/qemu/qemu_driver.c (qemuDomainBlockCopy): Set job type.
      (qemuDomainBlockPivot, qemuDomainBlockJobImpl): Clean up job type
      on completion.
      * tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-mirror-old.xml:
      Update tests.
      * tests/qemuxml2argvdata/qemuxml2argv-disk-mirror.xml: Likewise.
      * tests/qemuxml2argvdata/qemuxml2argv-disk-active-commit.xml: New
      file.
      * tests/qemuxml2xmltest.c (mymain): Drive new test.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      232a31be
    • C
      docs: fix an incorrect example for memoryBacking · 24c55ee0
      Chen Hanxiao 提交于
      commit 136ad497
      forgot to add an end-tags for hugepages.
      Signed-off-by: NChen Hanxiao <chenhanxiao@cn.fujitsu.com>
      24c55ee0
    • E
      blockcopy: add more XML for state tracking · 9a212d67
      Eric Blake 提交于
      Doing a blockcopy operation across a libvirtd restart is not very
      robust at the moment.  In particular, we are clearing the <mirror>
      element prior to telling qemu to finish the job.  Also, thanks to the
      ability to request async completion, the user can easily regain
      control prior to qemu actually finishing the effort, and they should
      be able to poll the domain XML to see if the job is still going.
      
      A future patch will fix things to actually wait until qemu is done
      before modifying the XML to reflect the job completion.  But since
      qemu issues identical BLOCK_JOB_COMPLETE events regardless of whether
      the job was cancelled (kept the original disk) or completed (pivoted
      to the new disk), we have to track which of the two operations were
      used to end the job.  Furthermore, we'd like to avoid attempts to
      end a job where we are already waiting on an earlier request to qemu
      to end the job.  Likewise, if we miss the qemu event (perhaps because
      it arrived during a libvirtd restart), we still need enough state
      recorded to be able to determine how to modify the domain XML once
      we reconnect to qemu and manually learn whether the job still exists.
      
      Although this patch doesn't actually fix the problem, it is a
      preliminary step that makes it possible to track whether a job
      has already begun steps towards completion.
      
      * src/conf/domain_conf.h (virDomainDiskMirrorState): New enum.
      (_virDomainDiskDef): Convert bool mirroring to new enum.
      * src/conf/domain_conf.c (virDomainDiskDefParseXML)
      (virDomainDiskDefFormat): Handle new values.
      * src/qemu/qemu_process.c (qemuProcessHandleBlockJob): Adjust
      client.
      * src/qemu/qemu_driver.c (qemuDomainBlockPivot)
      (qemuDomainBlockJobImpl): Likewise.
      * docs/schemas/domaincommon.rng (diskMirror): Expose new values.
      * docs/formatdomain.html.in (elementsDisks): Document it.
      * tests/qemuxml2argvdata/qemuxml2argv-disk-mirror.xml: Test it.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      9a212d67
  22. 29 7月, 2014 1 次提交