Größe: 12900
Kommentar:
|
Größe: 5869
Kommentar:
|
Gelöschter Text ist auf diese Art markiert. | Hinzugefügter Text ist auf diese Art markiert. |
Zeile 5: | Zeile 5: |
Die Kerninfrastruktur im Projekt IT Zukunft-Schule™ besteht aus mindestens einem zentralen Server, auf dem die Infrastrukturverwaltung und -steuerung des Schulnetzwerks installiert wird. Auf diesem zentralen Server kommt [[Technik/Virtualisierung|Virtualisierung]] zum Einsatz. Bevor also mit der Installation der Server-Kompenenten für das Pädagogische Schulnetz begonnen werden kann, muss als erste Ebene die Software für Server-Virtualisierung auf dem zentralen Server installiert werden. In der Virtualisierungsumgebung werden dann die Komponenten des Debian Edu / Skolelinux Netzwerks installiert. Für große Schulen kommen mehrere Virtualisierungs-Server zum Einsatz und die Dienste des Debian Edu / Skolelinux Netzwerks werden dann auf mehrere physikalische Maschinen verteilt. |
|
Zeile 13: | Zeile 7: |
Vor der Basisinstallation des ersten Virtualisierungs-Servers muss die [[Technik/Installation/InternetUplink|Internet-Anbindung]] der Schule entsprechend der IT-Zukunft Schule™ [[Technik/Infrastruktur|Netzwerktopologie]] eingerichtet werden. Desweiteren muss eine Backbone-Switch für das Backbone-Netz bereit stehen, welche mit dem Backbone-VLAN des Internet-Routers verbunden ist. | Durchführen der [[Technik/Installation/VirtServer/BasisJessie|Basisinstallation]]. |
Zeile 15: | Zeile 9: |
Im Backbone-Netz ist standardmäßig ein DHCP-Server aktiv (auf Router für die Internet-Anbindung), so dass angeschlossene Systeme (neue aufzusetzende Server, Notebooks von System-Admins, etc.) sofort Zugriff auf das Internet bekommen können. === Basisinstallation === Der Virtualisierungs-Server stellt den virtuellen Maschinen Teile der Hardware standardisiert zur Verfügung. Der folgende Abschnitt beschreibt eine allgemeine Installation des ersten/zentralen Virtualiserungs-Servers. Die Details der Installation unterscheiden sich dabei je nach Hardware-Ausstattung des Servers und Nutzungsszenario (Größe der Schule, etc.). In den entsprechenden Textpassagen werden Beispielwerte angegeben, die an die Gegebenheiten der jeweiligen Schule individuell angepasst werden. === Installation starten === * Ein startfähiges Medium mit [[ http://www.debian.org/CD/http-ftp/|Debian GNU/Linux stable]] (CD-ROM oder USB Stick) erstellen. Um Verwechslungen vorzubeugen: An dieser Stelle verwenden wir noch nicht Debian Edu / Skolelinux, das kommt erst bei der Installation der virtuellen Maschinen zum Einsatz. * Vom erstellten Medium den Virtualisierungs-Server booten. * Die folgende Antworten in den angezeigten Menüs auswählen: ''Install'', ''German'', ''Deutschland'' und ''Deutsch'' * Die Netzwerkschnittstelle mit Zugang zum Internet angeben (in Klammern markiert durch die Bezeichnung ''Copper''). Der Server sollte so verkabelt sein, dass {{{eth0}}} für das Backbone-Netzwerk genutzt wird. === Rechnernamen und erste Benutzer anlegen === * Rechnername: {{{virt-man-01}}} (weitere Virtualisierungs-Server werden durchnummerier: {{{virt-man-02}}}, {{{virt-man-03}}}, etc.) * domain: {{{backbone}}} * Passwort für den Benutzer: {{{root}}} eintragen. ''Wichtig!!! Passwort notieren!!!'' * Vor- und Zuname für neuen/ersten Benutzer: {{{Local Administrator}}} * Benutzername für lokalen Administrator: {{{locadm}}} * Passwort für den lokalen Administrator eintragen und bestätigen. ''WICHTIG!!! Passwort notieren!!!'' * Im nachfolgenden Dialog des Debian Installers werden die Festplatten partitioniert. * Partitionierungs-Methode: manuell * root-Dateisystem: 20Gb, als Software RAID-1 (/dev/md0) konfigurieren * Swap-Space: Arbeitsspeicher +2Gb auf alle schnellen Platten gleichmäßig verteilen * optional: Arbeitsspeicher +2Gb auf die zwei langsamen Platten gleichmäßig verteilen * Raid-Device (/dev/md0) als ext3-Dateisystem formatieren, Einhängepunkt: ,,/" * Software-Installationsprofil ({{{tasksel}}}): grafische Oberfläche: LXDE und zusätzlich SSH-Server auswählen FixMe: Wenn der Server nach der Installation nicht bootet, sollte nach einem {{{grub-install /dev/sdX}}}, {{{grub-install /dev/sdY}}} UND {{{grub-install /dev/md0}}} sowie einem anschließenden {{{update-grub}}} alles funktionieren. === Grundeinrichtung === 1. Nachdem die Grundinstallation abgeschlossen ist als {{{locadm}}} einloggen. 1. Den User {{{locadm}}} in die Gruppe {{{sudo}}} eintragen. Eingabe mit {{{root}}}-Kennwort bestätigen. __Danach:__ ausloggen und wieder als {{{locadm}}} einloggen. {{{ $ su -c "adduser locadm sudo" }}} 1. Der Posix-Gruppe {{{sudo}}} den Aufruf des Kommandos {{{sudo}}} ohne Eingabe des Passworts erlauben:{{{ locadm@virt-man-01:~# su -c "diff -u /etc/sudoers.orig /etc/sudoers" --- /etc/sudoers.orig 2012-07-27 12:43:30.000000000 +0200 +++ /etc/sudoers 2012-07-27 12:42:07.000000000 +0200 @@ -19,6 +19,6 @@ # Allow members of group sudo to execute any command # (Note that later entries override this, so you might need to move # it further down) -%sudo ALL=(ALL) ALL +%sudo ALL=(ALL) NOPASSWD: ALL # #includedir /etc/sudoers.d }}} 1. Den Benutzer {{{locadm}}} seine {{{sudo}}}-Rechte wahrnehmen lassen:{{{ $ newgrp sudo }}} 1. Nachinstallation von Software:{{{ $ sudo apt-get install sysvinit-core mc vim }}} 1. Server Neustart durchführen 1. Nach der Installation {{{vim}}} als Editor in den Debian "Alternatives" festlegen.{{{ sudo update-alternatives --config editor }}} 1. Das Programm Midnight Commander starten (Kommando: {{{mc}}}): * F9 drücken * Optionen -> Konfiguration: [x] Internen Editor benutzen * Optionen -> Einstellungen speichern * F10: Midnight Commander beenden 1. Den Midnight Commander Editor (Kommando: {{{mcedit}}}) starten: * F9 drücken * Menüpunkt: ''Optionen -> Allgemein'' * "Backspace durch Tabs" auswählen * "Tabs mit Leerzeichen auffüllen" auswählen * "Return rückt automatisch ein" abwählen * F10: Editor beenden 1. In {{{/etc/apt/sources.list}}} für alle Varianten {{{contrib}}} und {{{non-free}}} hinzufügen. 1. GDM-Konfiguration (Greeter) so anpassen, dass der Anmelde-Bildschirm den Hostnamen anzeigt:{{{ locadm@virt-man-01:/etc/gdm$ diff -u gdm.conf.orig gdm.conf --- gdm.conf.orig +++ gdm.conf @@ -62,6 +62,9 @@ [greeter] +DefaultWelcome=false +Welcome=%n + [chooser] [debug] }}} === Aktualisierung gezielter Pakete via Debian squeeze-backports und ITZkS-Repository === Zwei zusätzliche APT-Quellen werden hinzugefügt:{{{ $ editor /etc/apt/sources.list.d/backports.list """ deb http://ftp.de.debian.org/debian-backports squeeze-backports main contrib non-free """ }}}{{{ $ editor /etc/apt/sources.list.d/itzks.list """ deb http://packages.it-zukunft-schule.de/debian squeeze main deb http://packages.it-zukunft-schule.de/debian squeeze-backports main """ $ apt-get update && apt-get install itzks-keyring && apt-get update }}} Aus diesen Quellen werden die folgenden Pakete installiert:{{{ $ apt-get install -t squeeze-backports itzks-systems-virtman linux-image-3.2.0-0.bpo.4-amd64 linux-headers-3.2.0-0.bpo.4-amd64 }}} |
|
Zeile 141: | Zeile 12: |
Im ersten/zentralen Virtualisierungs-Server werden schnelle SAS-Festplatten (geringe Kapazität, schneller Zugriff, teuer) und langsamere SATA-Festplatten (größere Kapazität, langsamerer Zugriff als bei SAS-Platten, kostengünstiger) eingebaut. * Die schnellen SAS-Festplatten werden für die Benutzerverzeichnisse von Lehrer/innen und Schüler/innen und für die Ablage der Boot-Images der Diskless-Workstations verwendet. * Auf den nicht ganz so performanten SATA-Festplatten liegen die Betriebssysteme der Server sowie Daten deren Zugriff nicht geschwindigkeitskritisch ist. |
Im allen Virtualisierungs-Servern werden schnelle SAS-Festplatten eingebaut. |
Zeile 153: | Zeile 21: |
* Swap-Partitionen: Größe des Arbeitsspeichers plus 2GByte auf alle schnellen SAS-Festplatten verteilt | * Swap-Partitionen: Größe des Arbeitsspeichers plus 2GByte auf alle Festplatten verteilt. |
Zeile 155: | Zeile 23: |
$ mdadm --create /dev/md1 -l1 -n2 /dev/sda2 /dev/sdb2 | $ mdadm --create /dev/md1 -l1 -n2 /dev/sda3 /dev/sdb3 |
Zeile 163: | Zeile 31: |
* LVM Volume Groups anlegen: * Volume Group {{{vm-slow-vg}}} beinhaltet alle Level-1 RAIDs der langsameren Festplatten (SATA) * Volume Group {{{vm-fast-vg}}} beinhaltet alle Level-1 RAIDs der schnellen Festplatten (SAS){{{ |
* LVM Volume Group {{{ganeti_vg}}} für Ganeti anlegen:{{{ |
Zeile 169: | Zeile 35: |
# alle RAID-1 Devices der SATA-Festplatten zu einer Volume Group zusammenführen $ vgcreate vm-slow-vg /dev/md<A1> /dev/md<A2> [...] # alle RAID-1 Devices der SAS-Festplatten zu einer Volume Group zusammenführen $ vgcreate vm-fast-vg /dev/md<B1> /dev/md<B2> [...] }}} * LVM Volumes anlegen: * Logical Volumes für virtuelle Maschinen anlegen. Namenskonvention für LVs: {{{<host-fqdn>_sd{a,b,c,d,...}}}}{{{ $ lvcreate vm-slow-vg -n tjener.intern_sda -L 400G $ lvcreate vm-fast-vg -n tjener.intern_sdb -L 400G $ lvcreate vm-slow-vg -n disklserver.intern_sda -L 40G $ lvcreate vm-fast-vg -n disklserver.intern_sdb -L 80G }}} FixMe: LTSP-Server ergänzen? === X2Go Installation === Die folgende X2Go-Paketquelle in {{{/etc/apt/sources.list.d/x2go.list}}} anlegen:{{{ deb http://packages.x2go.org/debian squeeze main }}} Installation von X2Go: 1. Paketquellen neu einlesen{{{ $ sudo apt-get update }}} 1. Paket {{{x2go-keyring}}} installieren und Paketquellen neu einlesen.{{{ $ sudo apt-get install x2go-keyring && sudo apt-get update }}} 1. Pakete installieren: {{{x2goserver}}} und {{{x2golxdebindings}}}{{{ $ sudo apt-get install x2goserver x2golxdebindings }}} 1. Den User {{{locadm}}} der Gruppe {{{fuse}}} hinzufügen (um ''X2Go local folder sharing'' zu aktivieren).{{{ $ sudo adduser locadm fuse |
# alle RAID-1 Devices zu einer Volume Group zusammenführen $ vgcreate ganeti_vg /dev/md1 /dev/md2 [...] |
Zeile 211: | Zeile 45: |
* Die erste Schnittstelle ist für das Backbone-Netz ({{{172.16.0.0/24}}} vorgesehen. | * Die erste Schnittstelle stellt das Subnetz für die Schulinfrastruktur bereit ({{{10.0.0.0/8}}}). Diese Schnittstelle wird über eine Netzwerk-Bridge an die virtuellen Maschinen übergeben. |
Zeile 213: | Zeile 47: |
* Die zweite Schnittstelle stellt das Subnetz für die Schulinfrastruktur bereit ({{{10.0.0.0/8}}}). Diese Schnittstelle wird über eine Netzwerk-Bridge an die virtuellen Maschinen übergeben. | * Die zweite Schnittstelle ist für das Backbone-Netz ({{{172.16.0.0/24}}} vorgesehen. |
Zeile 219: | Zeile 53: |
auto eth0 iface eth0 inet manual auto br0 iface br0 inet manual bridge_fd 0 bridge_hello 2 bridge_maxage 12 bridge_stop off bridge_ports eth0 |
|
Zeile 220: | Zeile 65: |
auto eth0 iface eth0 inet static address 172.16.0.1 netmask 255.255.255.0 broadcast 172.16.0.255 gateway 172.16.0.253 |
|
Zeile 237: | Zeile 75: |
address 172.16.0.1 netmask 255.255.255.0 broadcast 172.16.0.255 gateway 172.16.0.253 |
|
Zeile 240: | Zeile 82: |
Nach der Neukonfiguration die Schnittstellen muss das Netzwerk (bzw. zum Testen der korrekten Funktion beim System-Boot: der Server) neu gestartet werden. | Nach der Neukonfiguration der Schnittstellen muss das Netzwerk (bzw. zum Testen der korrekten Funktion beim System-Boot: der Server) neu gestartet werden. |
Zeile 242: | Zeile 84: |
=== Virtuelle Maschinen einrichten === | === Ganeti einrichten === |
Zeile 244: | Zeile 86: |
Das Programm ''Virtual Machine Manager'' dient der Verwaltung und Steuerung der virtuellen Maschinen. In ihm werden die virtuellen Festplatten konfiguriert, und Arbeitsspeicher sowie Prozessorkerne den virtuellen Maschinen zugeteilt. | Ganiti unterstützt Virtualisierung verteilt über mehrere Virtualisierungsserver. Einer dieser Virtualisierungsserver muss Master-Status im Ganeti-Cluster haben. Auf unseren Schulsystemen ist dies Standardmäßig der Virt-Man-01. Ganeti ist aber so eingerichtet, das theoretisch jeder andere Knoten (in Ganeti heißen Virtualisierungsserver Knoten) Master-Status erlangen kann. Der Master bekommt den host-Namen {{{ganeti-cluster.intern}}}. |
Zeile 246: | Zeile 88: |
* Den User {{{locadm}}} der Gruppe {{{libvirt}}} hinzufügen.{{{ $ sudo adduser locadm libvirt |
==== Vorbereitungen ==== Anpassen von {{{/etc/hosts}}}: * auf allen Virtualiesierungsserver müssen in /etc/hosts alle Virtualisierungsserver eingetragen sein, Beispiel:{{{ 172.16.0.1 virt-man-01.backbone virt-man-01 172.16.0.2 virt-man-02.backbone virt-man-02 [...] |
Zeile 249: | Zeile 95: |
* Grafisch am Virtualisierungs-Server als {{{locadm}}} anmelden. * Den "Virtual Machine Manager" starten. |
* zusätzlich muss auf allen Virtualisierungsservern der Hostname des Ganetimasters in /etc/hosts eingetragen werden, Beispiel:{{{ 172.16.0.240 ganeti-cluster.backbone ganeti-cluster |
Zeile 252: | Zeile 98: |
* Mit der rechten Maustaste localhost auswählen, dann Details auswählen. Mit ''Speicher hinzufügen'' folgende virtuelle Festplatten anlegen: * vm-fast-vg (LVM Volume Group, s.o.) * vm-slow-vg (LVM Volume Group, s.o.) |
* {{{/root/.ssh}}} muss angelegt sein: {{{mkdir /root/.ssh}}} |
Zeile 256: | Zeile 100: |
In ''Virtual Machine Manager'' können jetzt virtuelle Maschinen angelegt werden (genaue Beschreibung auf den Seiten, die die einzelnen VMs beschreiben). | ==== Ganeti Cluster initializieren ==== {{{ $ gnt-cluster init \ --master-netdev eth1 \ --vg-name ganeti_vg \ --enabled-hypervisors kvm \ --nic-parameters link=br0 \ --hypervisor-parameters kvm:initrd_path=,kernel_path= \ --enabled-disk-templates=plain ganeti-cluster.backbone }}} Ganeti erzeugt eine ssh-key-pair in {{{/root/.ssh}}} und hinterlegt dessen public-key in {{{/root/.ssh/.authorized_key}}}, welche auf die anderen Virtualisierungsserver kopiert werden muss. Nun können die anderen Virtualisierungsserver den Cluster hinzugefügt werden:{{{ $ gnt-node add virt-man-<xx> }}} Für die Virtuellen Maschinen des DebianEdu-Netzwerkes stellen wir innerhalb von Ganeti ein Netzwerk bereit: {{{ $ gnt-network add --network=10.0.0.0/16 --gateway=10.0.0.1 DebianEdu $ gnt-network connect -N mode=bridged,link=br0 DebianEdu }}} Um die GanetiMgr Instanz (Webfrontend für Ganeti) stellen wir auch das Backbone-Netzwerk innerhalb von Ganeti bereicht.{{{ $ gnt-network add --network=172.16.0.0/24 --gateway=172.16.0.253 Backbone $ gnt-network connect -N mode=bridged,link=br1 Backbone }}} ==== Installation von Tjener vorbereiten ==== Nun kann mit der [[https://wiki.it-zukunft-schule.de/Technik/Installation/VM/HauptServerTjener/Jessie|Installation des Hauptservers]] fortgefahren werden. ==== Installation von GanetiMgr ==== Das Web Management Tool GanetiMgr kann DAS-NETZWERKTEAM beauftragt werden. Die Installation ist so spezifisch und zeitlichen Änderungen unterworfen, dass eine öffentlich Dokumentation meist immer veraltet oder ungenau ist. |
Installationshinweise: Virtualisierungs-Server
Inhaltsverzeichnis
Vorbereitungen
Durchführen der Basisinstallation.
Festplattenpartitionierung (im Detail)
Im allen Virtualisierungs-Servern werden schnelle SAS-Festplatten eingebaut.
Die Einteilung der Festplatten fällt von Schule zu Schule unterschiedlich aus. Sie ist abhängig von der Zahl und Größe der Festplatten, sowie der Größe des eingebauten Arbeitsspeichers.
Beispiel:
- Jeder Virtualisierungs-Server enthält eine gerade Anzahl von Festplatten, für Festplatten-Spiegelung wird in den meisten Fällen der RAID-Level-1 verwendet
- RAID-Systemen werden stets mit der Software-Lösung im Linux-Kernel realisiert (sog. /dev/md-Devices)
- SATA-Festplatte 1 und 2 werden 20 GByte als Raid (Level 1, Plattenspiegelung) für Betriebssystem des Virtualisierungs-Server reserviert
- Swap-Partitionen: Größe des Arbeitsspeichers plus 2GByte auf alle Festplatten verteilt.
Raid-Basis für LVM Volumes: jeweils zwei gleichgroße Partitionen auf baugleichen Festplatten zu RAID-Devices vom Level-1 zusammenfügen
$ mdadm --create /dev/md1 -l1 -n2 /dev/sda3 /dev/sdb3 $ mdadm --create /dev/md2 -l1 -n2 /dev/sdc2 /dev/sdd2 # weitere RAID-1 Devices einrichten... $ [...] # alle RAID-1 Devices nach Neustart verfügbar machen... $ /usr/share/mdadm/mkconf > /etc/mdadm/mdadm.conf $ dpkg-reconfigure mdadm
LVM Volume Group ganeti_vg für Ganeti anlegen:
$ pvcreate /dev/md1 $ pvcreate /dev/md2 $ [...] # alle RAID-1 Devices zu einer Volume Group zusammenführen $ vgcreate ganeti_vg /dev/md1 /dev/md2 [...]
Netzwerk einrichten
Bislang wurde für die beschriebenen Installationsschritte eine vom DHCP-Server des Internet/DSL-Routers vergebene IP-Adresse für den zu installierenden Virtualisierungs-Server verwendet. Im nächsten Schritt wird nun eine feste IP-Adresse für die Backbone-Netzwerkschnittstelle festgelegt und auch die Schnittstelle für das Pädagogische Netzwerk (Debian Edu / Skolelinux Netzwerk) vorbereitet.
Der zentrale Virtualisierungs-Server besitzt typischerweise zwei Netzwerkschnittstellen.
Die erste Schnittstelle stellt das Subnetz für die Schulinfrastruktur bereit (10.0.0.0/8). Diese Schnittstelle wird über eine Netzwerk-Bridge an die virtuellen Maschinen übergeben.
Die zweite Schnittstelle ist für das Backbone-Netz (172.16.0.0/24 vorgesehen.
Beispiel: (Datei: /etc/network/interfaces auf virt-man-01)
auto lo iface lo inet loopback auto eth0 iface eth0 inet manual auto br0 iface br0 inet manual bridge_fd 0 bridge_hello 2 bridge_maxage 12 bridge_stop off bridge_ports eth0 # backbone interface auto eth1 iface eth1 inet manual auto br1 iface br1 inet manual bridge_fd 0 bridge_hello 2 bridge_maxage 12 bridge_stop off bridge_ports eth1 address 172.16.0.1 netmask 255.255.255.0 broadcast 172.16.0.255 gateway 172.16.0.253
Nach der Neukonfiguration der Schnittstellen muss das Netzwerk (bzw. zum Testen der korrekten Funktion beim System-Boot: der Server) neu gestartet werden.
Ganeti einrichten
Ganiti unterstützt Virtualisierung verteilt über mehrere Virtualisierungsserver. Einer dieser Virtualisierungsserver muss Master-Status im Ganeti-Cluster haben. Auf unseren Schulsystemen ist dies Standardmäßig der Virt-Man-01. Ganeti ist aber so eingerichtet, das theoretisch jeder andere Knoten (in Ganeti heißen Virtualisierungsserver Knoten) Master-Status erlangen kann. Der Master bekommt den host-Namen ganeti-cluster.intern.
Vorbereitungen
Anpassen von /etc/hosts:
auf allen Virtualiesierungsserver müssen in /etc/hosts alle Virtualisierungsserver eingetragen sein, Beispiel:
172.16.0.1 virt-man-01.backbone virt-man-01 172.16.0.2 virt-man-02.backbone virt-man-02 [...]
zusätzlich muss auf allen Virtualisierungsservern der Hostname des Ganetimasters in /etc/hosts eingetragen werden, Beispiel:
172.16.0.240 ganeti-cluster.backbone ganeti-cluster * {{{/root/.ssh
muss angelegt sein: mkdir /root/.ssh
Ganeti Cluster initializieren
$ gnt-cluster init \ --master-netdev eth1 \ --vg-name ganeti_vg \ --enabled-hypervisors kvm \ --nic-parameters link=br0 \ --hypervisor-parameters kvm:initrd_path=,kernel_path= \ --enabled-disk-templates=plain ganeti-cluster.backbone
Ganeti erzeugt eine ssh-key-pair in /root/.ssh und hinterlegt dessen public-key in /root/.ssh/.authorized_key, welche auf die anderen Virtualisierungsserver kopiert werden muss.
Nun können die anderen Virtualisierungsserver den Cluster hinzugefügt werden:
$ gnt-node add virt-man-<xx>
Für die Virtuellen Maschinen des DebianEdu-Netzwerkes stellen wir innerhalb von Ganeti ein Netzwerk bereit:
$ gnt-network add --network=10.0.0.0/16 --gateway=10.0.0.1 DebianEdu $ gnt-network connect -N mode=bridged,link=br0 DebianEdu
Um die GanetiMgr Instanz (Webfrontend für Ganeti) stellen wir auch das Backbone-Netzwerk innerhalb von Ganeti bereicht.
$ gnt-network add --network=172.16.0.0/24 --gateway=172.16.0.253 Backbone $ gnt-network connect -N mode=bridged,link=br1 Backbone
Installation von Tjener vorbereiten
Nun kann mit der Installation des Hauptservers fortgefahren werden.
Installation von GanetiMgr
Das Web Management Tool GanetiMgr kann DAS-NETZWERKTEAM beauftragt werden. Die Installation ist so spezifisch und zeitlichen Änderungen unterworfen, dass eine öffentlich Dokumentation meist immer veraltet oder ungenau ist.