Data collected by Discovery on Linux KVM

Discovery identifies and classifies information about Linux KVM.

For new Jakarta instances, Discovery uses patterns by default to find several types of devices, operating systems, and applications. See New patterns for the Jakarta release for more information.

How KVM Discovery works

Discovery identifies Linux kernel-based virtual machines (KVM) when the process classifier detects libvirtd running on a Linux server. The classification triggers the creation of a cmdb_ci_kvm record, and launches the SSHCommand probes to explore the Linux server with virsh, lbvert utility, and virtual machine configuration data.

Discovery creates a cmdb_ci_kvm_instance record for each virtual machine on the server, and then matches the cmdb_ci_kvm_instance record to a corresponding cmdb_ci_computer record using the MAC addresses of installed network adapters.

Tables used by Discovery on Linux KVM

Discovery uses the following tables to store configuration records for kernel-based virtual machines.
Table 1. Tables used by Discovery on Linux KVM
Table name Extends Description Source
cmdb_ci_kvm cmdb_ci_vm A hypervisor that manages kernel-based virtual machines (KVMs) Process classifier detects libvirtd running on Linux servers
cmdb_ci_kvm_vm_instance cmdb_ci_vm_instance A virtual machine instance on this hypervisor virsh list -all and dumpxml command
cmdb_ci_kvm_object cmdb_ci_vm_object An object connected to a virtual machine instance <network>, <storage pool>, and <storage volume> elements from the dumpxml command
cmdb_kvm_device N/A A device connected to a virtual machine instance <devices> element from the dumpxml command

Data Collected by Discovery on Linux KVM

Discovery finds the following information for kernel-based virtual machines.

Table 2. Data collected by Discovery on Linux KVM
Label Table name Field name Source
Linux Host cmdb_ci_kvm linux_host Reference to the cmdb_ci_linux_server that is running this virtual machine
Details cmdb_ci_kvm details_xml dumpxml
Object ID cmdb_ci_kvm_vm_instance object_id virsh dumpxml
State cmdb_ci_kvm_vm_instance state virsh list -all
CPUs cmdb_ci_kvm_vm_instance cpus virsh dumpxml
Memory cmdb_ci_kvm_vm_instance memory virsh dumpxml
Disks cmdb_ci_kvm_vm_instance disks virsh dumpxml
Disks size cmdb_ci_kvm_vm_instance disks_size virsh domblkinfo
Network adapters cmdb_ci_kvm_vm_instance nics virsh dumpxml
Name cmdb_ci_kvm_vm_instance name virsh dumpxml
Short description cmdb_ci_kvm_vm_instance short_description virsh desc
Details cmdb_ci_kvm_object details_xml XML element from dumpxml
KVM instance cmdb_kvm_device kvm_instance Reference to cmdb_ci_kvm_instance
Device cmdb_kvm_device device disk, controller, interface, etc.
Type cmdb_kvm_device type depends on device
Details cmdb_kvm_device details_xml XML element from dumpxml

KVM Relationships

Discovery collects the following relationship data.

Table 3. Data collected by Discovery on KVM Relationship
Relationship Parent table Child table
Registered On::Has Registered KVM [cmdb_ci_kvm] KVM Virtual Machine Instance [cmdb_ci_kvm_vm_instance]
Provided By::Provides KVM [cmdb_ci_kvm] Network [cmdb_ci_kvm_network]
Defines resource for::Gets resources from KVM [cmdb_ci_kvm] Storage Pool [cmdb_ci_kvm_storage_pool]
Connected By::Connects KVM Virtual Machine Instance [cmdb_ci_kvm_vm_instance] Network [cmdb_ci_kvm_network]
Instantiated By::Instantiates KVM Virtual Machine Instance [cmdb_ci_kvm_vm_instance] Computer [cmdb_ci_computer]
Virtualized By::Virtualizes Computer [cmdb_ci_computer] KVM [cmdb_ci_kvm]
Provides storage for::Stored on Storage Pool [cmdb_ci_kvm_storage_pool] KVM Virtual Machine Instance [cmdb_ci_kvm_vm_instance]