version 1.181, 2020/11/15 14:37:20
|
version 1.182, 2020/11/15 14:47:55
|
Line 8 systems which operate in an unprivileged
|
Line 8 systems which operate in an unprivileged
|
from the domU systems are forwarded by the Xen hypervisor to the dom0 to be |
from the domU systems are forwarded by the Xen hypervisor to the dom0 to be |
fulfilled. |
fulfilled. |
|
|
Xen supports different styles of guests; see [PV on HVM](https://wiki.xen.org/wiki/PV_on_HVM) and [PVH(v2)](https://wiki.xenproject.org/wiki/PVH_(v2\)_Domu) for upstream documentation. |
This HOWTO presumes a basic familiarity with the Xen system |
|
architecture, with installing NetBSD on amd64 hardware, and with |
|
installing software from pkgsrc. See also the [Xen |
|
website](http://www.xenproject.org/). |
|
|
|
[[!toc]] |
|
|
|
# Overview: Versions of Xen, Styles, NetBSD |
|
|
|
The basic concept of Xen is that the hypervisor (xenkernel) runs on |
|
the hardware, and runs a privileged domain ("dom0") that can access |
|
disks/networking/etc. One then runs additonal unprivileged domains |
|
(each a "domU"), presumably to do something useful. |
|
|
|
This HOWTO addresses how to run a NetBSD dom0 (and hence also build |
|
xen itself). It also addresses how to run domUs in that environment, |
|
and how to deal with having a domU in a Xen environment run by someone |
|
else and/or not running NetBSD. |
|
|
|
## Guest Styles |
|
|
|
Xen supports different styles of guests. |
|
|
[[!table data=""" |
[[!table data=""" |
Style of guest |Supported by NetBSD |
Style of guest |Supported by NetBSD |
Line 21 PVH |current-only (domU, dom0 not yet)
|
Line 42 PVH |current-only (domU, dom0 not yet)
|
In Para-Virtualized (PV) mode, the guest OS does not attempt to access |
In Para-Virtualized (PV) mode, the guest OS does not attempt to access |
hardware directly, but instead makes hypercalls to the hypervisor; PV |
hardware directly, but instead makes hypercalls to the hypervisor; PV |
guests must be specifically coded for Xen. |
guests must be specifically coded for Xen. |
|
See [PV](https://wiki.xen.org/wiki/Paravirtualization_(PV\)). |
|
|
In HVM mode, no guest modification is required; however, hardware |
In HVM mode, no guest modification is required; however, hardware |
support is required, such as VT-x on Intel CPUs and SVM on AMD CPUs. |
support is required, such as VT-x on Intel CPUs and SVM on AMD CPUs. |
Line 28 The dom0 runs qemu to emulate hardware.
|
Line 50 The dom0 runs qemu to emulate hardware.
|
|
|
In PVHVM mode, the guest runs as HVM, but additionally can use PV |
In PVHVM mode, the guest runs as HVM, but additionally can use PV |
drivers for efficiency. |
drivers for efficiency. |
|
See [PV on HVM](https://wiki.xen.org/wiki/PV_on_HVM). |
|
|
There have been two PVH modes: original PVH and PVHv2. Original PVH |
There have been two PVH modes: original PVH and PVHv2. Original PVH |
was based on PV mode and is no longer relevant at all. PVHv2 is |
was based on PV mode and is no longer relevant at all. PVHv2 is |
basically lightweight HVM with PV drivers. A critical feature of it |
basically lightweight HVM with PV drivers. A critical feature of it |
is that qemu is not needed; the hypervisor can do the emulation that |
is that qemu is not needed; the hypervisor can do the emulation that |
is required. Thus, a dom0 can be PVHv2. |
is required. Thus, a dom0 can be PVHv2. |
|
|
The source code uses PVH and config files use pvh; this refers to PVHv2. |
The source code uses PVH and config files use pvh; this refers to PVHv2. |
|
See [PVH(v2)](https://wiki.xenproject.org/wiki/PVH_(v2\)_Domu). |
|
|
|
|
At boot, the dom0 kernel is loaded as a module with Xen as the kernel. |
At system boot, the dom0 kernel is loaded as a module with Xen as the kernel. |
The dom0 can start one or more domUs. (Booting is explained in detail |
The dom0 can start one or more domUs. (Booting is explained in detail |
in the dom0 section.) |
in the dom0 section.) |
|
|
This HOWTO presumes a basic familiarity with the Xen system |
## CPU Architecture |
architecture, with installing NetBSD on i386/amd64 hardware, and with |
|
installing software from pkgsrc. See also the [Xen |
|
website](http://www.xenproject.org/). |
|
|
|
[[!toc]] |
Xen runs on x86_64 hardware (the NetBSD amd64 port). |
|
|
# Versions and Support |
There is a concept of Xen running on ARM, but there are no reports of this working with NetBSD. |
|
|
|
The dom0 system should be amd64. (Instructions for i386PAE dom0 have been removed from the HOWTO.) |
|
|
|
The domU can be i386PAE or amd64. |
|
i386PAE at one point was considered as [faster](https://lists.xen.org/archives/html/xen-devel/2012-07/msg00085.html) than amd64. |
|
|
|
## Xen Versions |
|
|
In NetBSD, Xen is provided in pkgsrc, via matching pairs of packages |
In NetBSD, Xen is provided in pkgsrc, via matching pairs of packages |
xenkernel and xentools. We will refer only to the kernel versions, |
xenkernel and xentools. We will refer only to the kernel versions, |
Line 79 because the hypercall interface has rema
|
Line 107 because the hypercall interface has rema
|
Older Xen had a python-based management tool called xm, now replaced |
Older Xen had a python-based management tool called xm, now replaced |
by xl. |
by xl. |
|
|
## Architecture |
|
|
|
Xen 4.5 and later runs on x86_64 hardware (the NetBSD amd64 port). |
|
There is a concept of Xen running on ARM, but there are no reports of this working with NetBSD. |
|
|
|
The dom0 system should be amd64. (Instructions for i386PAE dom0 have been removed from the HOWTO.) |
|
|
|
The domU can be i386PAE or amd64. |
|
i386PAE at one point was considered as [faster](https://lists.xen.org/archives/html/xen-devel/2012-07/msg00085.html) than amd64. |
|
|
|
# Creating a dom0 |
# Creating a dom0 |
|
|
In order to install a NetBSD as a dom0, one must first install a normal |
In order to install a NetBSD as a dom0, one must first install a normal |