Rate This Document
Findability
Accuracy
Completeness
Readability

Architecture

The open-source KVM virtualization solution is designed for offline virtualization scenarios, including single-node, two-node high availability (HA), and multi-node cluster scenarios. It leverages VM migration and HA to ensure service reliability. Typical applications include databases, web servers, and cache servers.

  • Single-Node Scenario Analysis

    In a single-node system, the QEMU-KVM open-source software is deployed on a single server. The Virt-Manager management software and virsh commands are used for out-of-band VM management. Both of them invoke libvirt APIs. The VNC software is used for in-band guest OS management. The local LVM virtual storage pool is used for VM storage. The VM network uses bridges (bridge mode) or physical NICs (host-only mode).

  • Two-Node and Cluster Scenario Analysis

    The configurations of the two-node and cluster scenarios are based on that of the single-node system scenario. The computing virtualization, storage, and network configurations are the same as those of the single-node scenario. The difference is that the HA or live migration technology can be used to ensure cluster robustness in the two-node cluster and cluster scenarios. The following uses the Keepalived+LVS+MySQL two-node primary-secondary architecture as an example. Keepalived provides a floating IP address and periodically checks the health status of servers in the cluster. When a faulty node is detected, a switchover is triggered.

The architecture of the open-source KVM virtualization scenario is divided into three layers. The underlying layer is the Kunpeng server hardware, and the middle layer is the host Linux kernel and the KVM virtualization software. The top layer is the QEMU, which virtualizes I/O devices. Figure 1 shows the detailed system architecture and Table 1 describes the components.

Figure 1 Open-source KVM virtualization architecture
Table 1 Components in the open-source KVM virtualization scenario

Name

Description

KVM

The KVM is a kernel feature of the host Linux OS. It supports simulation of the CPU, memory, and I/O. The KVM is used as the hypervisor and works with QEMU to virtualize KVM VMs.

QEMU

QEMU runs in the user mode on the host as a process. Based on the KVM and kernel features, QEMU simulates hardware such as the CPU, memory, and I/O to support running of the guest OS in a process.

libvirt

The libvirt library provides APIs for Linux virtualization functions. Virtualization management services, such as virt-manager, manage and monitor VMs by using libvirt.

Virtual Machine

A virtual machine (VM) is a server resource that allows users to install Guest OSs including CentOS 7.6, SUSE 15.1, Ubuntu 16.04, and Kylin 7.6. You can run your own applications on the Guest OSs.