Unterschiede zwischen den Revisionen 3 und 4
Revision 3 vom 2012-09-21 13:56:10
Größe: 11888
Kommentar:
Revision 4 vom 2012-09-21 15:51:58
Größe: 8546
Kommentar:
Gelöschter Text ist auf diese Art markiert. Hinzugefügter Text ist auf diese Art markiert.
Zeile 127: Zeile 127:
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. Gehen wir eine Backup-Server Einrichtung mit 6 Festplatten durch.
Zeile 129: Zeile 129:
  * 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.
  * /dev/sda, /dev/sdb 500 GiB
  * /dev/sdc - /dev/sdf 2 TiB
Zeile 132: Zeile 132:
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. Bei der Installation haben wir /dev/sda1, /dev/sdb1 zu /dev/md0 zusammengefasst. /dev/sda2 und /dev/sdb2 sind Swap-Partition.
Zeile 134: Zeile 134:
'''__Beispiel:__''' D.h. für die Raid-Konfiguration führen wir die folgenden Befehle aus:{{{
# /dev/sda Partitionionierung fortsetzen: restlichen Speicherplatz als /dev/sda3 bereitstellen, Partitionstyp: Linux Raid (fd):
$ fdisk /dev/sda
# /dev/sdb Partitionionierung fortsetzen: restlichen Speicherplatz als /dev/sdb3 bereitstellen, Partitionstyp: Linux Raid (fd):
$ fdisk /dev/sdb
# /dev/sdc partitionionieren: eine primäre Partition sdc1, gesamtes Device, Partitionstyp: Linux Raid (fd):
$ fdisk /dev/sdc
# /dev/sdd partitionionieren: eine primäre Partition sdd1, gesamtes Device, Partitionstyp: Linux Raid (fd):
$ fdisk /dev/sdd
# /dev/sde partitionionieren: eine primäre Partition sde1, gesamtes Device, Partitionstyp: Linux Raid (fd):
$ fdisk /dev/sde
# /dev/sdf partitionionieren: eine primäre Partition sdf1, gesamtes Device, Partitionstyp: Linux Raid (fd):
$ fdisk /dev/sdf
}}}
Zeile 136: Zeile 149:
 * 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 schnellen SAS-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/sda2 /dev/sdb2
$ 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
Jetzt müssen die Partitionstabellen vom Kernel erkannt werden. Für /dev/sda und /dev/sdb wird das ohne Tricks nicht der Fall sein. Am einfachsten ist ein '''Reboot des Backup-Servers''' nach dem Einrichten der Partitionstabellen.

Nach dem Reboot richten wir die Raid-1 Devices ein:{{{
# Die Raid Level-1 Devices erstellen
$ mdadm --create /dev/md1 -l1 -n2 /dev/sda3 /dev/sdb3
$ mdadm --create /dev/md2 -l1 -n2 /dev/sdc1 /dev/sdd1
$ mdadm --create /dev/md3 -l1 -n2 /dev/sde1 /dev/sdf1
Zeile 149: Zeile 157:
 * 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){{{

Jetzt markieren wir die einzelnen Raid Device als physische Volumes für unse Backup Storage (LVM):{{{
Zeile 154: Zeile 161:
$ [...]
# 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
$ pvcreate /dev/md3
Zeile 168: Zeile 164:
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
Diese physischen Volumes werden nun zu einer LVM Volume Group zusammen gefasst:{{{
$ vgcreate vg_backup /dev/md{1,2,3}
Zeile 176: Zeile 168:
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
Und in dieser Volume Group {{{vg_backup}}} wird jetzt ein einziges Logical Volume erstellt:{{{
$ lvcreate vg_backup -n srv+backup -l 100%FREE
Zeile 191: Zeile 172:
=== 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 ist für das Backbone-Netz ({{{172.16.0.0/24}}} vorgesehen.

 * 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.

'''__Beispiel__''': (Datei: {{{/etc/network/interfaces}}} auf {{{virt-man-01}}}){{{
auto lo
iface lo inet loopback

# backbone interface
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

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
}}}
Diese logische Volume wird nun als letztes mit dem xfs Dateisystem formatiert:{{{
mkfs.xfs /dev/vg_backup/srv+backup
Zeile 226: Zeile 176:
Nach der Neukonfiguration die Schnittstellen muss das Netzwerk (bzw. zum Testen der korrekten Funktion beim System-Boot: der Server) neu gestartet werden. === Datensicherung (dirvish) einrichten ===
Zeile 228: Zeile 178:
=== Virtuelle Maschinen einrichten ===

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.

 * Den User {{{locadm}}} der Gruppe {{{libvirt}}} hinzufügen.{{{
$ sudo adduser locadm libvirt
}}}
 * Grafisch am Virtualisierungs-Server als {{{locadm}}} anmelden.
 * Den "Virtual Machine Manager" starten.

 * 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.)

In ''Virtual Machine Manager'' können jetzt virtuelle Maschinen angelegt werden (genaue Beschreibung auf den Seiten, die die einzelnen VMs beschreiben).
Die Datensicherung übernimmt das Perl-Tool [[dirvish|http://www.dirvish.org/]].

Installationshinweise: Backup-Server

Der Backup-Server wird +/- als letzte Komponente dem Schul-Setup hinzugefügt. Der Backup-Server steht häufig im Schulnetz, er wird an das Backbone-Netz der Schule angeschlossen, so wie die Virtualisierungs-Server, die Switches und andere Komponenten, die aus dem Debian Edu Netz nicht erreichbar sein sollen.

Der Backup-Server verbindet sich via VPN mit dem Gateway des Schulnetzes und kann so auf die virtuellen Maschinen im Schulnetz (also auch auf den Hauptserver TJENER) zugreifen. Der Zugriff über VPN ist bzgl. der Geschwindigkeit nicht optimal. Aber: ein Zugriff via VPN erlaubt eine sehr flexible Wahl des Aufstellungsort für den Backup-Server. Und: der Backup-Server ist nicht teil des pädagogischen Netzwerks, sondern liegt topologisch außerhalb (Schutz der gesicherten Daten).

Vorbereitungen

Die zu sichernden System sollten bereits installiert sein, erst dann ist die Einrichtung des Backup-Servers sinnvoll. Bei der Wahl der Festplattenkonfiguration hat es sich bewährt, für das Betriebssystem Festplatten zu verwenden, die kleiner 2 TiB groß sind (so dass eine DOS Partitionstabelle verwendet werden kann). Für die Backup-Festplatten kommen große und langsame (wenig Temperatur entwickelnde) Festplatten zum Einsatz.

Beispielsetup:

  • 2x 500 GiB als Festplatten 1 + 2, davon werden ca. 30 Gib für das Betriebssystem verwendet, der Rest kann in den Backup-Pool (LVM) miteinfließen
  • 4x 2 TiB als Backup-Storage
  • immer zwei Festplatten werden partitionsweise als Raid 1 Device zusammen gehängt
  • über alle Festplattenpartitionen, die zur Datensicherung gehören wird ein Logisches Volume gespannt

Basisinstallation

Auf dem Backup-Server wird ein minimales Debian System installiert (das jew. Debian stable).

Installation starten

  • Ein startfähiges Medium mit Debian GNU/Linux stable (CD-ROM oder USB Stick) erstellen.

  • Vom erstellten Medium die für den Backup-Server vorgesehene Hardware 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: backup-01

  • 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 (nur die ,,kleinen" Festplatten konfigurieren)
    • 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 abwählen, SSH-Server zusätzlich auswählen

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.

  2. Als root das Programm sudo installieren.

    $ su -c "apt-get install sudo"
  3. 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"
  4. 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
  5. Den Benutzer locadm seine sudo-Rechte wahrnehmen lassen:

    $ newgrp sudo
  6. Nachinstallation von Software:

    $ sudo apt-get install mc vim
  7. Nach der Installation vim als Editor in den Debian "Alternatives" festlegen.

    sudo update-alternatives --config editor
  8. Das Programm Midnight Commander starten (Kommando: mc):

    • F9 drücken
    • Optionen -> Konfiguration: [x] Internen Editor benutzen

    • Optionen -> Einstellungen speichern

    • F10: Midnight Commander beenden
  9. 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

Aktualisierung gezielter Pakete via Debian squeeze-backports und ITZkS-Repository

Das IT-Zukunft Schule Paket-Repository zu den APT Quellen hinzugefügt:

{{{
$ 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 itzks-systems-backup

Festplattenpartitionierung (im Detail)

Gehen wir eine Backup-Server Einrichtung mit 6 Festplatten durch.

  • /dev/sda, /dev/sdb 500 GiB
  • /dev/sdc - /dev/sdf 2 TiB

Bei der Installation haben wir /dev/sda1, /dev/sdb1 zu /dev/md0 zusammengefasst. /dev/sda2 und /dev/sdb2 sind Swap-Partition.

D.h. für die Raid-Konfiguration führen wir die folgenden Befehle aus:

# /dev/sda Partitionionierung fortsetzen: restlichen Speicherplatz als /dev/sda3 bereitstellen, Partitionstyp: Linux Raid (fd):
$ fdisk /dev/sda
# /dev/sdb Partitionionierung fortsetzen: restlichen Speicherplatz als /dev/sdb3 bereitstellen, Partitionstyp: Linux Raid (fd):
$ fdisk /dev/sdb
# /dev/sdc partitionionieren: eine primäre Partition sdc1, gesamtes Device, Partitionstyp: Linux Raid (fd):
$ fdisk /dev/sdc
# /dev/sdd partitionionieren: eine primäre Partition sdd1, gesamtes Device, Partitionstyp: Linux Raid (fd):
$ fdisk /dev/sdd
# /dev/sde partitionionieren: eine primäre Partition sde1, gesamtes Device, Partitionstyp: Linux Raid (fd):
$ fdisk /dev/sde
# /dev/sdf partitionionieren: eine primäre Partition sdf1, gesamtes Device, Partitionstyp: Linux Raid (fd):
$ fdisk /dev/sdf

Jetzt müssen die Partitionstabellen vom Kernel erkannt werden. Für /dev/sda und /dev/sdb wird das ohne Tricks nicht der Fall sein. Am einfachsten ist ein Reboot des Backup-Servers nach dem Einrichten der Partitionstabellen.

Nach dem Reboot richten wir die Raid-1 Devices ein:

# Die Raid Level-1 Devices erstellen
$ mdadm --create /dev/md1 -l1 -n2 /dev/sda3 /dev/sdb3
$ mdadm --create /dev/md2 -l1 -n2 /dev/sdc1 /dev/sdd1
$ mdadm --create /dev/md3 -l1 -n2 /dev/sde1 /dev/sdf1

Jetzt markieren wir die einzelnen Raid Device als physische Volumes für unse Backup Storage (LVM):

$ pvcreate /dev/md1
$ pvcreate /dev/md2
$ pvcreate /dev/md3

Diese physischen Volumes werden nun zu einer LVM Volume Group zusammen gefasst:

$ vgcreate vg_backup /dev/md{1,2,3}

Und in dieser Volume Group vg_backup wird jetzt ein einziges Logical Volume erstellt:

$ lvcreate vg_backup -n srv+backup -l 100%FREE

Diese logische Volume wird nun als letztes mit dem xfs Dateisystem formatiert:

IT-Zukunft Schule: Technik/Installation/BackupServer (zuletzt geändert am 2012-09-21 16:04:38 durch MikeGabriel)