Users build ‘resources’ that they need. Examples of resources are KVM VM, GPU, Ceph Rados device, VPN, etc. Each resource is comprised of a list of SKUs (Stock Keeping Units) and the quantity of each. Examples of SKUs are GB of RAM, H100 GPU and vCPU. Pricing is associated with SKUs, each SKU having a cost per hour. Billing for a Project is calculated by adding the cost of each SKU and multiplying it by the number of hours it was being consumed. To allow calculation of the cost of a Resource, the BOM (Bill of Materials) table is used to record the historical movement data of SKUs in a Project.
Below is an illustration of the relationships between the various fields in IaaS and how they link to SCM.
KVM Virtualisation is the most important virtualisation in CloudCIX and it can be described as follows:
KVM and Processor Virtualisation: KVM (Kernel-based Virtual Machine) leverages hardware virtualisation capabilities provided by the processor to efficiently virtualise hardware resources and manage virtual machines.
Enhancement by QEMU: QEMU (Quick Emulator) is a user space emulator that works in conjunction with KVM to provide full virtualisation capabilities. QEMU handles emulation of hardware devices and provides the virtualisation backend for KVM, enhancing its functionality.
Libvirt: Libvirt is a toolkit and API for managing virtualisation platforms, including KVM and QEMU. It provides a common interface for interacting with different virtualisation technologies and allows users to control and manage virtualisation resources programmatically.
CLI via virsh: virsh is a command-line interface (CLI) tool provided by Libvirt for managing virtual machines and other virtualisation resources. CloudCIX uses virsh commands as a convenient way to interact with the Libvirt API and perform administrative tasks related to virtualisation.