libvirt/docs/schemas
Michal Privoznik e1b022890e schemas: Introduce disk type NVMe
There is this class of PCI devices that act like disks: NVMe.
Therefore, they are both PCI devices and disks. While we already
have <hostdev/> (and can assign a NVMe device to a domain
successfully) we don't have disk representation. There are three
problems with PCI assignment in case of a NVMe device:

1) domains with <hostdev/> can't be migrated

2) NVMe device is assigned whole, there's no way to assign only a
   namespace

3) Because hypervisors see <hostdev/> they don't put block layer
   on top of it - users don't get all the fancy features like
   snapshots

NVMe namespaces are way of splitting one continuous NVDIMM memory
into smaller ones, effectively creating smaller NVMe-s (which can
then be partitioned, LVMed, etc.)

Because of all of this the following XML was chosen to model a
NVMe device:

  <disk type='nvme' device='disk'>
    <driver name='qemu' type='raw'/>
    <source type='pci' managed='yes' namespace='1'>
      <address domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
    </source>
    <target dev='vda' bus='virtio'/>
  </disk>

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Cole Robinson <crobinso@redhat.com>
2019-12-17 10:04:43 +01:00
..
basictypes.rng virpci: Allow greater PCI domain value in virPCIDeviceAddressIsValid 2019-08-05 19:42:15 +02:00
capability.rng schema: capabilities: Add 'hap' feature flag 2019-11-13 08:16:04 +01:00
cputypes.rng conf: Introduce memoryBacking/discard 2018-05-14 09:42:20 +02:00
domain.rng conf: set up for per-grammar overrides in schemas 2014-04-15 21:07:59 +02:00
domainbackup.rng backup: Document new XML for backups 2019-12-10 12:41:56 +01:00
domaincaps.rng conf: domaincaps: Add 'backup' feature flag 2019-12-10 12:41:58 +01:00
domaincheckpoint.rng backup: Document new XML for checkpoints 2019-07-26 16:48:58 -05:00
domaincommon.rng schemas: Introduce disk type NVMe 2019-12-17 10:04:43 +01:00
domainsnapshot.rng docs: schemas: Add 'seclabel' for external disk snapshot 2019-06-20 17:08:53 +02:00
interface.rng schema: remove reference to brctl 2018-06-07 16:30:59 +02:00
network.rng network: wire up dnsmasq option xmlns 2019-07-17 17:18:56 -04:00
networkcommon.rng conf: introduce virNetworkPortDefPtr struct and XML support 2019-06-17 15:19:54 +01:00
networkport.rng conf: introduce virNetworkPortDefPtr struct and XML support 2019-06-17 15:19:54 +01:00
nodedev.rng xml: nodedev: make pci capability class element optional 2019-03-22 12:59:56 +03:00
nwfilter_params.rng schemas: add schema for nwfilter binding XML document 2018-06-26 11:22:07 +01:00
nwfilter.rng schemas: add schema for nwfilter binding XML document 2018-06-26 11:22:07 +01:00
nwfilterbinding.rng schemas: add schema for nwfilter binding XML document 2018-06-26 11:22:07 +01:00
secret.rng secret: Add support for usage type vTPM, extend schema and test case 2019-07-26 09:59:27 +01:00
storagecommon.rng storage: optional 'refresh' elemement on pool 2019-03-19 16:46:21 +01:00
storagepool.rng storage: escape ipv6 for ceph mon hosts to librados 2019-06-18 17:14:17 +02:00
storagepoolcaps.rng docs: Add schema for storage pool capabilities 2019-03-06 11:12:48 -05:00
storagevol.rng docs: schemas: Fix missing timestamp inside backingStore 2018-09-11 10:44:26 +02:00