@yavdr fans
Da das Thema Homeserver Virtualisierung hier regelmäßig auftaucht und die gängigen und beliebten Lösung vSphere Hypervisor (früher ESXi) und Proxmox 2.x nur mit spezifischer Hardware DVB Karten an Clients durchreichen, habe ich mich an Xen erinnert. Xen ist ein beliebig komplexe und schwierig zu bedienende Alternative zu VMWare & QEMU/KVM, wofür ich sie offen gestanden eigentlich nicht mag. Aber Xen wurde im Ursprung genau dafür entwickelt beliebige Hardware an Clients durchzureichen, zu einer Zeit als noch keiner über VT-d oder IOMMU gesprochen hat.
Nun bin ich ja von Haus aus Ubuntu lastig und wollte vermeiden, eine Lösung zu skizzieren die auf einem alten Kernel der Version 2.6.32 basiert und aktuelle SandyBridge HW schlicht zu warm arbeiten läßt. Alle Xen affinen Distros wie RedHat, Fedora, SuSE, Debian und auch Appliances wie XCP (xen.org) basieren auf dieser betagten Kernelversion. Nach einiger Suche bin ich über diese Meldung gestolpert: XCP in Ubuntu Server 12.04 LTS: "apt-get install xcp-xapi"
Dazu muß man wissen, früher hatte Ubuntu Sever eine andere Kernelversion, als die Desktopversion, das ist bei Ubuntu 12.04 nicht mehr so. Es gibt zwar ein virtualles Paket "linux-image-server", das zieht aber den gleiche Paket "linux-image-3.2.0-xx-generic" mit, wie das virtuelle Paket "linux-image-generic". Kurzum, yaVDR0.5* das auf Precise basiert, beinhaltet Xen/XCP-XAPI ...
Nun zu den Spielregeln dieses Threads, ich hoffe der Titel sagt schon viel dazu aus:
- Dies ist kein fertiges HowTo, sondern der Versuch mal zu skizzieren was prinzipiell möglich ist.
- Der Thread ist nichts für Anfänger und Weicheier, das Thema setzt ein gehöriges Maß an IT und Linux Kenntnissen vorraus.
- Nicht auszuschließen, das wir am Ende dieses Threads zu eine Noob tauglichen Lösung kommen, in einem Jahr oder so ...
- Ich weiß auch nicht alles, ich schreibe im Prinzip nach bestem Wissen und Gewissen das nieder, was ich in den letzten 24h aufgesaugt habe.
- Für die Administration per XenCenter u.ä. muß der "root" User bei Ubuntu freigeschalten werden.
- Wer seine yaVDR 0.5 Installation als Xen Hypervisor benutzt, begibt sich weit ausserhalb des Supports durch das yaVDR Teams!
Was sind die Vorteile:
- Dieser Weg von Xen/XCB-XAPI basierend auf Ubuntu 12.04, also Ubuntu Server, Ubuntu Desktop und auch yaVDR, ermöglicht die gewohnte Systemaktualisierung über die bekannte Repositories.
- Ubuntu LTS 12.04 hat wird vom Ubuntu Team 5 Jahre lang unterstützt
- Da yaVDR den Hypervisor gibt, wäre eine PCI/PCIe Virtualisierung nicht mehr nötig, da die DVB Karten direkt im Hypervisor (Dom0) zur Verfügung stehen.
Was ist nötig:
- Ein frische yaVDR 0.5 Installation auf dem Server, das ganze LVM basiert, Beispiel 1TB:
=> Bei der Installation manuelles Partitionieren auswählen
=> (Bei EFI Installationen eine EFI Partition à 200MB)
=> Eine Boot Partition mit 256MB, Filesystem: ext3, Mount: "/boot"
=> Der Rest der Platte als LVM Partition
=> Eine Volume Gruppe "yavdr"
=> Ein LV "root" mit 8GB, Filesystem: ext4, Mount: "/"
=> Ein LV "swap" mit 2/4/8GB je nach System, Filesystem: Swap
=> Ein LV "iso" mit 64GB, Filesystem: ext4, Mount: "/srv/xen/iso_import"
=> (Ein LV "video" mit 500GB, Filesystem: ext4/xfs, Mount: /srv/vdr/video00) wenn gewünscht ...
=> Ein LV "pool" mit 400GB, kein Filesystem, kein Mount, da landen später die Xen-Clients drauf. - Der yaVDR Installation folgen und nach Beendigung per WFE das Frontend auf Headless Server umstellen und die letzten Updates reinziehen
- Nun XCB-XAPI anhand dieser Anleitung installieren: Step by step guide to setting up Xen and XAPI (XenAPI) on Ubuntu 12.04 and managing it with Citrix XenCenter
=> Achtung: Alle Änderungen an der grub-Konfiguration müssen bei yaVDR Basis per Template gepflegt werden! - Wenn Xen/XCB läuft, das ISO Repo definieren, wie z.B. hier beschrieben, wie man den Storage-Pool für Clients definiert, steht im oberen HowTo.
- Wie das dann fertig im XenCenter aussehen könnte, zeigt der angehängte Screenshot.
=> Maschine: Biostar Mainboard mit AMD785 Chipsatz, Athlon II X2 240, 2x2GB, 3Ware 9500S-4LP mit nur einer WD10EADS als RAID Device, hatte nicht mehr übrig ...
Auf wenn man im Prinzip keine PCIe Karte mehr durchreichen müßte, hab ich dennoch mal das Thema "erforscht", Dokumenation gibt es, aber sehr uneinheitlich. Was habe ich bis jetzt, meine "L4M DVB-S2 V6.2" wird vom Hypervisor als "seized" gekennzeichnet, was wohl bedeutet, ich könnte sie an einen Client durchreichen:
#/> lspci
...
01:05.1 Audio device: Advanced Micro Devices [AMD] nee ATI RS880 HDMI Audio [Radeon HD 4200 Series]
02:00.0 Multimedia controller: Digital Devices GmbH Octopus LE DVB adapter
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 03)
04:05.0 RAID bus controller: 3ware Inc 9xxx-series SATA-RAID
#/> cat /etc/default/grub
...
GRUB_CMDLINE_LINUX="xen-pciback.permissive xen-pciback.hide=(02:00.0) reassign_resources"
...
#/> dmesg|grep pciback
[ 8.356697] pciback 0000:02:00.0: seizing device
[ 8.356786] pciback 0000:02:00.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18
[ 8.356793] pciback 0000:02:00.0: PCI INT A disabled
[ 8.359096] xen-pciback: backend is passthrough
Was steht noch aus:
- Die Beendigung der Ubuntu Installation aus dem Screenshot, hab leider keine Tastatur in der Console vom XenCenter. Ist vmtl. nur eine Kleinigkeit, aber auch die muß man lösen
- Gucken ob ich die DVB Karte durchreichen kann, wenn die Installation fertig ist
- Testinstallation "Windows Server 2012 Essentials", damit da mal ein wenig Last auf die Installation kommt und ich das eh für meine Win-Clients irgendwann einsetzten möchte
- Testinstallation auf meinem eigentlichen Server mit Intel SandyBridge HW ...
So, nun bin ich gespannt ob sich da jemand dran wagt, was von Euch dazu kommt und es irgendwann tatsächlich für einen Noob freundlicheren Weg reicht ...
Beschreibung für Ubuntu 20.04: https://www.opensdev.com/2020/07/20/Xen_Setup.html
Regards
fnu