1 |
|
---|
2 | CloudHv is a port of OVMF for the Cloud Hypervisor project.
|
---|
3 |
|
---|
4 | The Cloud Hypervisor project
|
---|
5 | ----------------------------
|
---|
6 |
|
---|
7 | Cloud Hypervisor is a Virtual Machine Monitor that runs on top of KVM. The
|
---|
8 | project focuses on exclusively running modern, cloud workloads, on top of a
|
---|
9 | limited set of hardware architectures and platforms. Cloud workloads refers to
|
---|
10 | those that are usually run by customers inside a cloud provider. This means
|
---|
11 | modern operating systems with most I/O handled by paravirtualised devices
|
---|
12 | (i.e. virtio), no requirement for legacy devices, and 64-bit CPUs.
|
---|
13 |
|
---|
14 | https://github.com/cloud-hypervisor/cloud-hypervisor
|
---|
15 |
|
---|
16 | Design
|
---|
17 | ------
|
---|
18 |
|
---|
19 | Based on Cloud Hypervisor's motto to reduce the emulation as much as possible,
|
---|
20 | the project logically decided to support the PVH boot specification as the only
|
---|
21 | way of booting virtual machines. That includes both direct kernel boot and OVMF
|
---|
22 | firmware which must be generated as PVH ELF binaries.
|
---|
23 | PVH allows information like location of ACPI tables and location of guest RAM
|
---|
24 | ranges to be shared without the need of an extra emulated device like a CMOS.
|
---|
25 |
|
---|
26 | Features
|
---|
27 | --------
|
---|
28 |
|
---|
29 | * Serial console
|
---|
30 | * EFI shell
|
---|
31 | * virtio-pci
|
---|
32 |
|
---|
33 | Build
|
---|
34 | -----
|
---|
35 |
|
---|
36 | The way to build the CloudHv target is as follows:
|
---|
37 |
|
---|
38 | OvmfPkg/build.sh -p OvmfPkg/CloudHv/CloudHvX64.dsc -a X64 -b DEBUG
|
---|
39 |
|
---|
40 | Usage
|
---|
41 | -----
|
---|
42 |
|
---|
43 | Assuming Cloud Hypervisor is already built, one can start a virtual machine as
|
---|
44 | follows:
|
---|
45 |
|
---|
46 | ./cloud-hypervisor \
|
---|
47 | --cpus boot=1 \
|
---|
48 | --memory size=1G \
|
---|
49 | --kernel Build/CloudHvX64/DEBUG_GCC5/FV/CLOUDHV.fd \
|
---|
50 | --disk path=/path/to/disk.raw
|
---|
51 |
|
---|
52 | Releases
|
---|
53 | --------
|
---|
54 |
|
---|
55 | In edk2-stable202202, CloudHv is generated as data-only binary.
|
---|
56 | Starting with edk2-stable202205, CloudHv is generated as a PVH ELF binary to
|
---|
57 | reduce the amount of emulation needed from Cloud Hypervisor.
|
---|
58 | For TDX, things are handled differently and PVH is not used, which is why the
|
---|
59 | firmware is always generated as a data-only binary.
|
---|
60 |
|
---|
61 | +-------------------+----------------+
|
---|
62 | | | CloudHv |
|
---|
63 | +-------------------+----------------+
|
---|
64 | | edk2-stable202202 | Data binary |
|
---|
65 | +-------------------+----------------+
|
---|
66 | | edk2-stable202205 | PVH ELF binary |
|
---|
67 | +-------------------+----------------+
|
---|