microsoft/openvmm

Public

mirrored fromhttps://github.com/microsoft/openvmmAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
3e50139f3a7af6d51247a8f74701fbfd6ad83e03

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

Guide/src/reference/architecture/openhcl.md

84lines · modecode

1# OpenHCL Architecture
2
3**Prerequisites:**
4
5- [Getting Started: OpenHCL](../../user_guide/openhcl.md).
6- [Architecture: OpenVMM Architecture](./openvmm.md).
7
8* * *
9
10> This page is under construction
11
12## Overview
13
14The following diagram offers a brief, high-level overview of the OpenHCL
15Architecture.
16
17![OpenHCL High Level Overview](./_images/openhcl.png)
18
19## VTLs
20
21OpenHCL currently relies on Hyper-V's implementation of [Virtual Trust Levels]
22(VTLs) to implement the security boundaries necessary for running OpenVMM as a
23paravisor.
24
25VTLs can be backed by:
26
27- Hardware-based [TEEs], like Intel [TDX] and AMD [SEV-SNP]
28- Software-based constructs, like Hyper-V [VSM]
29
30OpenHCL runs within VTL2[^sk], and provides virtualization services to a Guest OS
31running in VTL0.
32
33## OpenHCL Linux
34
35By building on-top of Linux, OpenHCL is able to leverage the extensive Linux
36software and development ecosystem, and avoid re-implementing various components
37like core OS primitives, device drivers, and software libraries. As a result:
38OpenHCL provides a familiar and productive environment for developers.
39
40The OpenHCL Linux Kernel uses a minimal kernel configuration, designed to host a
41single specialized build of OpenVMM in userspace.
42
43In debug configurations, userspace may include additional facilities (such as an
44interactive shell, additional perf and debugging tools, etc). Release
45configurations use a lean, minimal userspace, consisting entirely of OpenHCL
46components.
47
48* * *
49
50## Scenario: Azure Boost Storage/Networking Translation
51
52Traditionally, Azure VMs have used Hyper-V VMBus-based synthetic networking and
53synthetic storage for I/O. Azure Boost introduces hardware accelerated storage
54and networking. It exposes different interfaces to guest VMs for networking and
55storage. Specifically, it exposes a new proprietary [Microsoft Azure Network
56Adapter] (MANA) and an NVMe interface for storage.
57
58OpenHCL is able to provide a compatibility layer for I/O virtualization on
59Azure Boost enabled systems.
60
61Specifically, OpenHCL exposes Hyper-V VMBus-based synthetic networking and
62synthetic storage for I/O to the guest OS in a VM. OpenHCL then maps those
63synthetic storage and networking interfaces to the hardware accelerated
64interfaces provided by Azure Boost.
65
66The following diagram shows a high level overview of how synthetic networking is
67supported in OpenHCL over Microsoft Azure Network Adapter (MANA)
68
69<img src="./_images/openhcl-synthetic-nw.png" height="400" width="600"> <br>
70
71The following diagram shows a high level overview of how accelerated networking
72is supported in OpenHCL over MANA
73
74<img src="./_images/openhcl-accelnet.png" height="400" width="600"> <br> <br>
75
76[^sk]: Why not VTL1? Windows already uses VTL1 in order to host the [Secure Kernel].
77
78[VSM]: https://learn.microsoft.com/en-us/virtualization/hyper-v-on-windows/tlfs/vsm
79[Virtual Trust Levels]: https://learn.microsoft.com/en-us/virtualization/hyper-v-on-windows/tlfs/vsm
80[TDX]: https://www.intel.com/content/www/us/en/developer/tools/trust-domain-extensions/overview.html
81[SEV-SNP]: https://www.amd.com/content/dam/amd/en/documents/epyc-business-docs/white-papers/SEV-SNP-strengthening-vm-isolation-with-integrity-protection-and-more.pdf
82[TEEs]: https://en.wikipedia.org/wiki/Trusted_execution_environment
83[Secure Kernel]: https://www.microsoft.com/en-us/security/blog/2020/07/08/introducing-kernel-data-protection-a-new-platform-security-technology-for-preventing-data-corruption/
84[Microsoft Azure Network Adapter]: https://learn.microsoft.com/en-us/azure/virtual-network/accelerated-networking-mana-overview
85