Revamp LTSP: Doku zu Installation und Konfiguration
Einleitung
Nach mehreren bereits gestarteten Versuchen haben wir, Ende 2014, erneut intern entschieden unser stark ausgelastetes LTSP[1] System neu aufzusetzen.
Auch mit einer leistungsfähigeren Hardware.
Der LTSP Server soll innerhalb einer Xen[2] basierten virtuellen Maschine laufen. Dies bietet verschiedene Vorteile. Zum Beispiel können einzelne Dienste oder Anwendungen auf weitere virtuelle Maschinen ausgelagert werden.
"Images" können auch einfach gespeichert (Snapshots) oder verschoben werden, selbst auf einen physisch anderen Xen Server usw. usf..
Das Fundament dazu bilden RAID[3] + LVM[4].
Einsatzrahmen
- ca. 20 Büro Arbeitsplätze mit Standardanwendungen
- Umgebung für Softwareentwicklung (separate VM)
- evtl. weitere
Hardware
Dell Poweredge 2950 (nachfolgend PE2950
genannt)
- 2 x Intel(R) Xeon(R) CPU E5310 @ 1.60GHz (Quad Core)
- 20GB RAM (max. 32GB)
- 2x300GB SAS
Umsetzung Teil 1: Einrichtung des Xen Servers
Voreinstellungen
Vorzugsweise möchten wir ein Software RAID verwenden.
Bemerkung: Ein Software RAID bietet den Vorteil, dass es "maschinenunabhängig" ist. Das Software RAID wird im OS konfiguriert. (--> Wie genau, z.B. wo werden diese Informationen gespeichert ?)
Beim PE2950
wird jedoch, wenn der RAID Controller ausgeschaltet ist, keine der Festplatten erkannt.
Aus diesem Grund haben wir, gemäss Workaround[5], im RAID Controller BIOS (Ctrl+R), für die beiden Festplatten jeweils ein RAID0 eingestellt.
Grundinstallation
Wir haben uns für Debian Jessie entschieden. Jessie ist zwar im Moment noch testing befindet sich aber bereits im freeze und wird demnächst stable werden. Auch da dies ja unser eigener/interner LTSP wird. Für eine externe/Kunden-/Produktivmaschine sollte eigentlich immer stable gewählt werden.
Für die Installation verwenden wir das Installations-Image: firmware-jessie-DI-b2-amd64-netinst.iso[6]
Wir verwenden eine CD da booten von USB-Stick, trotz Auswahl im Boot-Screen (F11) nicht funktioniert.
Netzwerkkarten Erkennung
Aufgrund von proprietärer Firmware funktioniert die interne Broadcom Karte, während der Installation nicht.
Das Problem ist bekannt. Siehe: https://wiki.debian.org/InstallingDebianOn/Dell/PowerEdge2950/lenny
Leider funktioniert auch das Nachladen gemäss Debian Wiki[7] nicht. Auch die spezielle non-free Firmware CD Version sowie der Versuch die Firmware manuell zu laden haben nicht funktioniert.
Daher haben wir für die Installation (ev. auch für später ?) eine Intel PCIE Gigabit Ethernet Karte eingebaut. Mit dieser funktioniert die Netzwerkkarten Erkennung problemlos.
Partitionierung
Ein RAID1 für die beiden Festplatten erstellt (md0).
Bemerkung: Um einen allfälligen Ersatz der Festplatte durch ein anderes Modell zu gewährleisten, ist es von Vorteil etwas Platz frei zu lassen. Wir haben deshalb die Grösse auf 98% festgelegt.
LVM Volume Group für das RAID erstellt (pingu-vg).
LVM Logical Volumes:
Name | Grösse | Mountpunkt | Verwendung |
---|---|---|---|
pingu-lv-dom0 | 5GB | / | Xen Grundsystems root (dom0) |
pingu-lv-dom0-swap | 2GB | (swap) | Xen Grundsystem swap |
Als Dateisystem, für die root
Partition, haben wir ext4
gewählt.
Installation
"base" System mit ssh (ohne graphische Oberfläche) gewählt.
Hostname: pingu
Benutzer:
- root
- revamp
Nachinstallation
Pakete:
firmware-bnx2
Treiber für die internen Netzwerkkarten
Jetzt funktionieren diese.lm-sensors
Hardware Monitor/Temperaturanzeigesudo
[8] Authentifizierungsprogramm
Benutzer revamp zur Gruppe sudo hinzugefügt.# gpasswd -a revamp sudo
htop
,iotop
Prozess/IO-Monitor
First Boot
Bemerkung: Debian Jessie verwendet systemd ![9]
Die Einheit lvm2-activation-early schlägt beim booten fehl.
Unit lvm2-activation-early [Failed]
Durch Google Suche stellt sich heraus, das Problem ist bekannt. Es handelt sich um einen Bug in systemd/Debian (v208)[10]. Soll in systemd 215 behoben sein.
Grundkonfiguration
Netzwerk
Grundeinstellungen eingetragen.
/etc/network/interfaces:
[...] iface eth0 inet manual auto xenbr0 iface xenbr0 inet dhcp bridge_ports eth0 [...]
Vorläufig verwenden wir DHCP. Für Xen, Bridge eingetragen.
Achtung: Wenn weitere interfaces (z.B. eth1, eth2) eingetragen werden, ohne das diese am Netzwerk angeschlossen sind. Führt dies zu einem langen Delay während des Boot, oder beim Start von networking.service.
Grub
Anzeigen der Meldungen beim Boot.quiet
Kernel Parameter entfernt. /etc/defaults/grub:
GRUB_CMDLINE_LINUX_DEFAULT=""
Kernel Parameter für den Xen Kernel eintragen. RAM und Anzahl CPU's festlegen für die dom0.
GRUB_CMDLINE_XEN="dom0_mem=1024M dom0_max_vcpus=1 dom0_vcpu_pin"
Xen-Server (Hypervisor) Einrichtung
Installation
Pakete installiert:
xen-linux-system
Xen Metapackagexen-tools
optionale (distributionsspezifische-->?) Tools zur automatischen PV Guest creation
Hauptkonfiguration
RAM und Anzahl CPU's festlegen für die dom0.[11]
Ballooning (dynamische Anpassung des RAM) ausschalten.
Bemerkung: Solange die dom0 vorallem/nur als Xen Hypervisor eingesetzt wird, kann das Ballooning deaktiviert werden.
/etc/xen/xend-config.sxp:
(dom0-min-mem 1024) (enable-dom0-ballooning no) (dom0-cpus 1)
Xen als default Bootoption in grub festlegen.[12]
Bemerkung: Der Xen Hypervisor bootet mit einem eigenen Kernel.
# dpkg-divert --divert /etc/grub.d/08_linux_xen --rename /etc/grub.d/20_linux_xen
Umsetzung Teil 2: Virtuelle Maschinen
Bemerkung: Unter Xen werden virtuelle Maschinen auch als "paravirtualised guest", kurz "PV Guests" bezeichnet.[13]
LTSP Server
Partitionierung
Name | Grösse | Mountpunkt | Verwendung |
---|---|---|---|
xen-ltsp-root | 25GB | / | LTSP Server root |
xen-ltsp-home | 100GB | /home | LTSP Server home* |
xen-ltsp-swap | 5GB | (swap) | LTSP Server swap |
xen-ltsp-var | 5GB | /var | LTSP Server var |
*) Grosszügig, für 50 Benutzer gerechnet, wären das 2GB pro Benutzer. In der späteren LTSP Systemkonfiguration sollte das dann auch wirklich begrenzt werden (Stichwort: "Quotas").
Bemerkung: Um ein allfälliges Auffüllen der root
Partition durch logfiles zu verhindern macht es Sinn var
als separate Partition einzurichten. systemd
böte allenfalls Möglichkeiten dies zu handhaben --> ?.
Kreation
Damit die Partitionen, beim erstellen der virtuellen Maschine mittels xen-tools
, entsprechend erstellt werden, müssen diese in der Konfiguration eingetragen werden.
/etc/xen-tools/partitions.d/pingu-ltsp:
[root] size=20G type=ext4 mountpoint=/ options=sync,errors=remount-ro [swap] size=5G type=swap [home] size=100G type=ext4 mountpoint=/home options=nodev,nosuid [var] size=5G type=ext4 mountpoint=/var options=defaults
Virtuelle Maschine erstellen (mittels xen-tools).
# xen-create-image --hostname=xen-ltsp --memory=8gb --vcpus=4 \ --dhcp \ --lvm=pingu-vg \ --dist=jessie \ --apt_proxy=http://192.168.50.14:3142 \ --partitions=/etc/xen-tools/partitions.d/pingu-ltsp \ --pygrub
Netzwerk / Bridge
Netzwerk Interfaces (virtuell) in der Konfig eintragen.
/etc/xen/xen-ltsp.cfg:
# Networking # dhcp = 'dhcp' vif = [ 'mac=00:16:3E:E3:92:1C,bridge=xenbr0','mac=00:16:3E:E3:92:1D,bridge=xenbr1' ]
Domain Management
Domains werden unter Xen mit dem Befehl xl
gesteuert.
Bsp.:
# xl create /etc/xen/pingu-ltsp.cfg
Startet die Domain pingu-ltsp (als root auszuführen).
xl
gibt eine Liste aller möglichen Unterbefehle aus.
Innerhalb der virtuellen Domain kann nun die Konfiguration normal weitergeführt werden, so wie wenn es sich um eine physische Maschine handeln würde.
- ↑ LTSP Webseite: http://www.ltsp.org/
- ↑ Xen Webseite: http://www.xenproject.org/
- ↑ Siehe z.B.: http://de.wikipedia.org/wiki/RAID
- ↑ Siehe z.B.: http://de.wikipedia.org/wiki/Logical_Volume_Manager
- ↑ Workaround siehe z.B.: http://en.community.dell.com/techcenter/virtualization/f/4472/t/19525078
Gefunden über Google Suche "dell poweredge 2950 disable hardware raid". - ↑ Downloadverzeichnis: http://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/jessie_di_beta_2/amd64/iso-cd/
- ↑ Siehe: https://www.debian.org/releases/lenny/arm/ch06s04.html.en
- ↑
- ↑ Siehe: http://www.freedesktop.org/wiki/Software/systemd/
- ↑ Siehe: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=751392
- ↑ Obwohl dies bereits durch Kernel Parameter angegeben wurde, muss dies hier nochmals eingetragen werden.
- ↑ Gemäss: https://wiki.debian.org/Xen#Prioritise_Booting_Xen_Over_Native
- ↑ Für eine detailliertere Beschreibung siehe: http://wiki.xenproject.org/wiki/Paravirtualization_(PV)