OpenVZ isn’t a “real” virtualization solution, where an entire server is virtualized. OpenVZ is also known as a Linux container. The virtual server uses large parts of the Linux host operating system – including its kernel – but provides individual users with environments that are shielded from each other as “virtual servers”.
This is also a limitation: the hardware is accessed directly – without a virtualization layer. This is especially true for the main memory. All guests share the RAM of the host system – but this isn’t reserved when the virtual guest servers are started. In this way, 50 hosts with 1 GB Ram each can be run on a server with 32 GB Ram. As long as the RAM isn’t used, everything is fine – but if all guest systems want to use the RAM provided to them at the same time, it puts a lot of pressure on performance. The host (and thus the vServer) start to swap. Of course, this also affects the performance of the guests.
The normal vServers are deployed with Linux vServers (container virtualization), while KVM is full virtualization. This means that with KVM you really have full access to all hardware related features. Your own kernel, network settings, mount your own ISO’s, VNC console and your own CPU cores that are exclusively available to you. With KVM you can even install non-Linux operating systems. With KVM, we want to further reduce the differences between a virtual server and a dedicated server. KVM servers offer the ability to import and configure your own kernel. Also, the hardware resources booked are allocated to the virtual instance even harder, which allows a much more stable operation.