Home VM Tips The differences between KVM and Xen

The differences between KVM and Xen

2021-09-15 | Nick Zhao

Xen has a longer history than KVM. Xen has specific support for UNIX, Linux, and Microsoft Windows, including chipsets, such as arm of X86, IA64 and AMD, Fujitsu, IBM, and sun, as well as x86 / 64 CPU merchants and Intel embedded support. Performance: compared with KVM, Xen has better processing performance, but it is slightly inferior to KVM in disk I / O. cloud manufacturers have switched their virtualization technology from Xen to KVM, and the development trend of KVM in the future can not be underestimated.

KVM

KVM is a lightweight virtualization manager module, which is mainly from the Linux kernel.

It is a fully virtualized solution. Virtualization can be implemented on X86 computers. However, KVM needs the support of virtualization function in CPU and can only run on CPUs with virtualization support, that is, Intel CPU with VT function and AMD CPU with AMD-V function.

Xen is also a virtualization solution under Linux and will soon be incorporated into the kernel. It is implemented by running a kernel that supports Xen functions. This kernel works under the control of Xen and is called domain0. After starting the machine with this kernel, you can use QEMU software on this machine to virtualize multiple systems.

KVM is developed by Qumranet, an Israeli company, and has been put into the Linux kernel by the Linux core organization. The x86 processor it uses needs to include at least one of the hardware-assisted virtualization technologies (intel-vt or AMD-V).

Xen

Xen is an external hypervisor program (Virtual Machine Manager); It can control virtual machines and allocate resources to multiple clients. After KVM is written to the Linux kernel, it is estimated that Xen is difficult to be written to the kernel; On the other hand, KVM is a part of Linux and can use the usual Linux scheduler and memory management. This means that KVM is smaller and easier to use.

In addition, Xen supports both full virtualization and quasi Virtualization (the modified client operating system needs to be modified, and the modified client operating system can have better performance). KVM currently does not support quasi virtualization. The disadvantage of Xen is that if you need to update the version of Xen, you need to recompile the whole kernel. Moreover, if you set it carelessly, the system will not start.

In contrast, KVM is much simpler. It does not need to recompile the kernel or make any changes to the current kernel. It is just a few. Ko modules that can be loaded dynamically. It has a more compact structure and less code. Therefore, the possibility of error is less. And in some ways, the performance is better than Xen.

Comparison

Xen has developed for a relatively long time and should be more mature in theory, but it is limited by Citrix's unknown strategy and its semi virtualization architecture; KVM started relatively late, but it has late development advantages, such as natural support for hardware-assisted virtualization. In the selection of technical route, three principles of selection need to be considered: Firstly, open-source platform is the inevitable trend of the development of the software industry in the future. What needs to be selected is a more open-source platform. Whoever has better openness will choose who; Secondly, architecture. The quality of architecture design determines the difficulty of subsequent development and maintenance, and also determines the quality of performance; Thirdly, performance virtualization is the underlying platform that carries the customer's business system. Without a performance guarantee, there is no possibility of business virtualization. Based on these three selection principles, KVM should be a better platform for virtualization software development. Since Citrix shifted the focus of its virtualization strategy to the desktop, the activity of the Xen open source community has decreased rapidly.

Differences

Xen

KVM

Time of birth

2003

2007

Support company

Citrix, Novell, Oracle, Sun, Ret Hat (RHEL5), and Virtual Iron

RedhatUbuntu, etc.

Supported virtualization technologies

Full virtualization, paravirtualization

Full virtualization

Support architecture

X86, IA64 and arm of AMD, Fujitsu, IBM, sun and other companies, as well as x86 / 64 CPU vendors and Intel embedded support

Virtualized CPU

Support operating system

UNIX, Linux, and Microsoft Windows

UNIX, Linux, and, Microsoft Windows

Dynamic migration

Support

Support

Share on:

Categories: VM Tips