mirror of
				https://github.com/kata-containers/kata-containers.git
				synced 2025-11-03 19:15:58 +00:00 
			
		
		
		
	Removed all TOCs now that GitHub auto-generates them. Also updated the documentation requirements doc removing the requirement to add a TOC. Fixes: #2022. Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
		
			
				
	
	
		
			63 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
# Hypervisors
 | 
						|
 | 
						|
## Introduction
 | 
						|
 | 
						|
Kata Containers supports multiple hypervisors. This document provides a very
 | 
						|
high level overview of the available hypervisors, giving suggestions as to
 | 
						|
which hypervisors you may wish to investigate further.
 | 
						|
 | 
						|
> **Note:**
 | 
						|
>
 | 
						|
> This document is not prescriptive or authoritative:
 | 
						|
>
 | 
						|
> - It is up to you to decide which hypervisors may be most appropriate for
 | 
						|
>   your use-case.
 | 
						|
> - Refer to the official documentation for each hypervisor for further details.
 | 
						|
 | 
						|
## Types
 | 
						|
 | 
						|
Since each hypervisor offers different features and options, Kata Containers
 | 
						|
provides a separate
 | 
						|
[configuration file](/src/runtime/README.md#configuration)
 | 
						|
for each. The configuration files contain comments explaining which options
 | 
						|
are available, their default values and how each setting can be used.
 | 
						|
 | 
						|
> **Note:**
 | 
						|
>
 | 
						|
> The simplest way to switch between hypervisors is to create a symbolic link
 | 
						|
> to the appropriate hypervisor-specific configuration file.
 | 
						|
 | 
						|
| Hypervisor | Written in | Architectures | Type | Configuration file |
 | 
						|
|-|-|-|-|-|
 | 
						|
[ACRN] | C | `x86_64` | Type 1 (bare metal) | `configuration-acrn.toml` |
 | 
						|
[Cloud Hypervisor] | rust | `aarch64`, `x86_64` | Type 2 ([KVM]) | `configuration-clh.toml` |
 | 
						|
[Firecracker] | rust | `aarch64`, `x86_64` | Type 2 ([KVM]) | `configuration-fc.toml` |
 | 
						|
[QEMU] | C | all | Type 2 ([KVM]) | `configuration-qemu.toml` |
 | 
						|
 | 
						|
## Determine currently configured hypervisor
 | 
						|
 | 
						|
```bash
 | 
						|
$ kata-runtime kata-env | awk -v RS= '/\[Hypervisor\]/' | grep Path
 | 
						|
```
 | 
						|
 | 
						|
## Choose a Hypervisor
 | 
						|
 | 
						|
The table below provides a brief summary of some of the differences between
 | 
						|
the hypervisors:
 | 
						|
 | 
						|
 | 
						|
| Hypervisor | Summary | Features | Limitations | Container Creation speed | Memory density | Use cases | Comment |
 | 
						|
|-|-|-|-|-|-|-|-|
 | 
						|
[ACRN] | Safety critical and real-time workloads | | | excellent | excellent | Embedded and IOT systems | For advanced users |
 | 
						|
[Cloud Hypervisor] | Low latency, small memory footprint, small attack surface | Minimal | | excellent | excellent | High performance modern cloud workloads | |
 | 
						|
[Firecracker] | Very slimline | Extremely minimal | Doesn't support all device types | excellent | excellent | Serverless / FaaS | |
 | 
						|
[QEMU] | Lots of features | Lots | | good | good | Good option for most users | | All users |
 | 
						|
 | 
						|
For further details, see the [Virtualization in Kata Containers](design/virtualization.md) document and the official documentation for each hypervisor.
 | 
						|
 | 
						|
[ACRN]: https://projectacrn.org
 | 
						|
[Cloud Hypervisor]: https://github.com/cloud-hypervisor/cloud-hypervisor
 | 
						|
[Firecracker]: https://github.com/firecracker-microvm/firecracker
 | 
						|
[KVM]: https://en.wikipedia.org/wiki/Kernel-based_Virtual_Machine
 | 
						|
[QEMU]: http://www.qemu-project.org
 |