XEN: Difference between revisions

From Braindump
Jump to navigation Jump to search
No edit summary
 
No edit summary
Line 1: Line 1:
=== XEN Distributions ===
Xen Project (Since 2003, University of Cambridge
Citrix XenServer acquired XenSource in 2007.
XCP (Xen Cloud Platform), Citrix opensource (hypervisor + management) between 2010 and 2013.
XCP-ng in 2018, forked from XCP.
XEN is a kernel, booted by GRUB, which can then boot a Linux kernel as Dom0. The first operating system that can control the XEN kernel and boot other VM's as DomU. The command to control the DomU's can be xe, xm or xl depending on the Xen version.
XEN can use HVM emulated from real devices, which can use the real drivers, but emulate the hardware, or PV paravirtualized drivers that use drivers to talk directly to the XEN backends (e.g. XENQEMU)
Drivers are part of the Paravirtualized Tools for XEN
<nowiki>https://wiki.xenproject.org/wiki/Xen_Networking</nowiki>
<nowiki>https://xenbits.xen.org/docs/unstable/man/xl-network-configuration.5.html</nowiki>
<nowiki>https://xenproject.org/resources/downloads/</nowiki>
<nowiki>https://github.com/xcp-ng/win-pv-drivers/releases</nowiki>
=== Alpine Linux ===
Alpine Linux downloads come with a XEN ISO that can be used, but using a regulare version can also run XEN
https://wiki.alpinelinux.org/wiki/Xen_Dom0
https://wiki.alpinelinux.org/wiki/Xen_Dom0



Revision as of 06:31, 6 September 2025

XEN Distributions

Xen Project (Since 2003, University of Cambridge

Citrix XenServer acquired XenSource in 2007.

XCP (Xen Cloud Platform), Citrix opensource (hypervisor + management) between 2010 and 2013.

XCP-ng in 2018, forked from XCP.


XEN is a kernel, booted by GRUB, which can then boot a Linux kernel as Dom0. The first operating system that can control the XEN kernel and boot other VM's as DomU. The command to control the DomU's can be xe, xm or xl depending on the Xen version.


XEN can use HVM emulated from real devices, which can use the real drivers, but emulate the hardware, or PV paravirtualized drivers that use drivers to talk directly to the XEN backends (e.g. XENQEMU)

Drivers are part of the Paravirtualized Tools for XEN

https://wiki.xenproject.org/wiki/Xen_Networking

https://xenbits.xen.org/docs/unstable/man/xl-network-configuration.5.html

https://xenproject.org/resources/downloads/

https://github.com/xcp-ng/win-pv-drivers/releases

Alpine Linux

Alpine Linux downloads come with a XEN ISO that can be used, but using a regulare version can also run XEN

https://wiki.alpinelinux.org/wiki/Xen_Dom0

setup-xen-dom0
apk add xen-hypervisor
apk add bridge
apk add seabios ovmf
echo "xen-netback" >> /etc/modules
echo "xen-blkback" >> /etc/modules
echo "tun" >> /etc/modules
rc-update add xenconsoled
rc-update add xendomains
rc-update add xenqemu
rc-update add xenstored

Contents of /etc/default/grub

GRUB_CMDLINE_XEN_DEFAULT="dom0_mem=1024M,max:1024M" GRUB_DEFAULT="saved" GRUB_SAVEDEFAULT="true"
grub-mkconfig -o /boot/grub/grub.cfg
grub-set-default "$(grep ^menuentry /boot/grub/grub.cfg | grep Xen | cut -d \' -f 2 | head -1)"

efibootmgr -c -d /dev/sda -p 1 -l /EFI/boot/xen.efi -L "XEN"

efibootmgr -o 2,0,4

https://wiki.xenproject.org/wiki/Xen_EFI

https://wiki.archlinux.org/title/xen


https://xcp-ng.org/docs/architecture.html#api

PCI passthrough was indeed necessary for the software I'm using to pick up all network traffic properly (not bridging through the virtual switch). Doing so requires enabling IOMMU and using the legacy linux bridge backend networking (instead of the default Open vSwitch backend networking).

xl network-list opnsense
Idx BE Mac Addr. handle state evt-ch tx-/rx-ring-ref BE-path 
0 0 00:16:3e:3f:4f:61 0 5 -1 -1/-1 /local/domain/0/backend/vif/11/0

https://xenbits.xen.org/docs/4.15-testing/man/xl-network-configuration.5.html

https://wiki.xenproject.org/wiki/Device_Model_Stub_Domains

type=ioemu
vifspec
model=e1000
rate=10Gb/s
vif = ['bridge=lan,model=e1000,rate=10Gb/s']
device_model_stubdomain_override