wiki:Datenmigration
Diese Seiten sind nicht offizieller Teil des Supportangebots des Landesmedienzentrums. Für Informationen und Programme auf diesen Seiten wird kein Support gewährt, jede Nutzung erfolgt auf eigene Gefahr. Tickets und Dokumentation dienen ausschließlich der Weiterentwicklung und dem Test von neuen Softwarepaketen.

Support für die paedML® Linux erhalten Sie ausschließlich beim Landesmedienzentrum Baden-Württemberg.

Datenmigration

Das Paket linuxmuster-migration stellt eine Sammlung von Shellskripten zur Verfügung, die es ermöglichen, sämtliche System- und Benutzerdaten zwischen paedML/openML-Systemen zu übertragen.

Features

Migration

  • der kompletten IPCop- und Serverkonfiguration inklusive Zertifikate, Samba-SID und LINBO-Images.
  • sämtlicher Postgresql- und MySQL-Datenbanken inklusive Benutzerkonfiguration.
  • aller Benutzerdaten inklusive Passwörter.
  • zusätzlich aus Fremdquellen installierter Softwarepakete.
  • auf aktuellere Version (aktuell: Quellsystem paedML/openML 4.0.6, Zielsystem 5.0.3ff).

Vorgehensweise

  1. Zunächst installiert man auf dem Quellsystem (mind. Version 4.0.6) das Paket linuxmuster-migration und erstellt dann ein Backup der zu migrierenden Daten in ein Verzeichnis auf einer lokal angeschlossenen Festplatte oder einem NFS-Share.
  2. Danach setzt man das Zielsystem (IPCop und Server) mit einer aktuellen Installations-CD neu auf. Hardware und Partitionierung können von derjenigen des Quellsystems abweichen.
  3. Schließlich installiert man auf dem Zielsystem ebenfalls das linuxmuster-migration-Paket, stellt dann das Sicherungsverzeichnis aus Schritt 1 per lokaler Festplatte oder NFS-Share auf dem Server bereit und spielt die Daten aus der Sicherung wieder zurück.

Installation

Ist das  paedml51-updates-Repository in /etc/apt/sources.list.d/paedml51.list eingetragen, erfolgt die Installation wie gewohnt über das Debian-Paketsystem:

# aptitude install linuxmuster-migration

Alternativ kann das Paket auch aus dem  paedml51-updates-Repository heruntergeladen und manuell installiert werden:

# dpkg -i linuxmuster-migration_x.x.x-x_all.deb

Konfiguration

Die Standardeinstellungen für Backup und Restore sind im Verzeichnis /usr/share/linuxmuster/migration in den Dateien defaults.conf, include.conf und exclude.conf abgelegt. Diese Dateien dürfen nicht geändert werden.

Eigene Einstellungen bzgl. zusätzlich zu sichernden bzw. vom Backup auszuschließenden Dateien und Verzeichnissen trägt man in die entsprechenden Konfigurationsdateien unter /etc/linuxmuster/migration ein. Diese Dateien werden beim Backup mitgesichert und beim Restore auf dem Zielsystem ausgewertet.

Eigene Dateien und Verzeichnisse einbeziehen

Soll zum Beispiel die Schulhomepage, die unter /var/www/homepage abgelegt ist, ebenfalls gesichert und auf dem Zielsystem wieder hergestellt werden, so trägt man den Pfad einfach in die Datei /etc/linuxmuster/migration/include.conf ein:

# $Id: include.conf 1143 2011-10-14 09:36:28Z tschmitt $
#
# Contains files and folders included in backup, user part:
#
# - one per line,
# - wildcards are permitted,
# - non existent files are ignored,
# - use only absolute pathnames.
#
# Example:
# Uncomment the following lines and change it to your needs if you want to backup
# your homepage files.
#
#/var/www/index.html

/var/www/homepage

Dabei ist zu beachten, dass pro Zeile nur ein Eintrag erlaubt ist. Außerdem müssen immer absolute Pfade angegeben werden.  Wildcards sind erlaubt.

Dateien und Verzeichnisse ausschließen

Auszuschließende Dateien und Verzeichnisse trägt man in die Konfigurationsdatei /etc/linuxmuster/migration/exclude.conf ein. Soll zum Beispiel das schulweite Tauschverzeichnis von der Migration ausgeschlossen werden, trägt man den entsprechenden Pfad ein:

# $Id: exclude.conf 1150 2011-10-15 09:40:59Z tschmitt $
#
# Contains files and folders excluded from backup, user part:
#
# - one per line,
# - wildcards are permitted,
# - non existent files are ignored.
#
# Examples:
#
#*.mp3

/home/share/school/*

Es können per Wildcard bestimmte Dateimuster ausgeschlossen werden (z. Bsp. *.mp3). In der Standardeinstellung wird das komplette Home-Verzeichnis ohne Ausnahme gesichert und wieder hergestellt.

Restore-Kontrolle und Setup-Änderungen

Über die Konfigurationsdatei custom.conf kann das Verhalten beim Restore gesteuert werden. Außerdem können vom Quellsystem abweichende Setup-Variablen definiert werden (Netzwerk-IP-Bereich, Server- und Domainnamen etc.). Passen Sie die Datei im Backup-Ordner vor dem Restore auf dem Zielsystem ggf. an, indem Sie das Kommentarzeichen vor der entsprechenden Variablen entfernen und den Wert ändern:

# $Id: custom.conf 1143 2011-10-14 09:36:28Z tschmitt $
#
# Note: custom.conf values are only evaluated during restore.
#


# 1. Variables to control the restauration behaviour

# Reboot the server at the end of the restore process?
# 1 means yes reboot, 0 means no.
# Default is 0.
#
#REBOOT=0|1

# Activate LINBO torrent during migration?
# 1 means yes activate torrent, 0 means no do not activate torrent.
# Default is 0.
#
#TORRENT=0|1


# 2. Setup variables

# If you want to configure the target machine different from the source machine,
# change following values to your needs.

# internal network ip range
# valid values are: 16-31 32-47 48-63 64-79 80-95 96-111 112-127 128-143 144-159
# 160-175 176-191 192-207 208-223 224-239
#
#INTERNSUBRANGE=16-31

# school name
#
#SCHOOLNAME=Musterschule

# location
#
#LOCATION=Musterstadt

# country
#
#COUNTRY=DE

# state
#
#STATE=BW

# workgroup (samba domain)
#
#WORKGROUP=SCHULE

# servername
#
#SERVERNAME=server

# domainname
#
#DOMAINNAME=paedml-linux.lokal

# smtp relay
#
#SMTPRELAY=mbox.belwue.de
  • REBOOT=1 startet den Server nach Durchlauf des Migrationsskripts automatisch neu.
  • TORRENT=1 aktiviert das LINBO-Torrentsystem (sinnvoll bei Upgrade von Version 4.0.6).
  • INTERNSUBRANGE legt den IP-Bereich für das interne Netz fest. Falls Sie auf dem Zielsystem eine andere Netzwerkadresse verwenden wollen, passen Sie diesen Wert an.

Alle Variablen sind in der Datei kommentiert. Beachten Sie, dass wenn Sie die Werte für SCHOOLNAME, LOCATION, COUNTRY, STATE, SERVERNAME und/oder DOMAINNAME ändern neue Server-Zertifikate erstellt werden.

Anwendung

Backup

Die Sicherung der Migrationsdaten wird über das Shell-Skript linuxmuster-migration-backup realisiert:

server ~ # linuxmuster-migration-backup -h

Usage: linuxmuster-migration-backup <options>

Options:

 -c <config dir>  Path to config directory (optional).
                  Default is /etc/linuxmuster/migration.
 -d <target dir>  Path to target directory (must exist, mandatory).
 -h               Show this help.
  • Das Zielverzeichnis für die Sicherung muss mit dem Parameter -d zwingend angegeben werden. Das Verzeichnis muss existieren und kann auf einem NFS-Share liegen, das jedoch gemountet sein muss. Für die Sicherung auf eine lokal angeschlossene Platte ist ein Linux-Dateisystem des Typs ext2, ext3, reiserfs oder xfs Voraussetzung.
  • Das Skript verwendet rsync zur Dateisicherung, sodass bei einer weiteren Sicherung in dasselbe Verzeichnis nur noch die in der Zwischenzeit geänderten Daten übertragen werden.
  • Bevor die Sicherung startet wird geprüft, ob auf dem Zielmedium ausreichend Platz vorhanden ist. Ist das nicht der Fall, wird die Verarbeitung abgebrochen.
  • Mit dem Parameter -c kann ein alternatives Konfigurationsverzeichnis angegeben werden. Dann sucht das Skript in diesem Verzeichnis nach den Konfigurationsdateien include.conf und exclude.conf.
  • Zu Beginn des Backups werden einige Dienste heruntergefahren (siehe Variable SERVICES in /usr/share/linuxmuster/migration/defaults.conf), damit während der Verarbeitung keine Dateien verändert werden können.
  • Die Sicherung kann problemlos auch remote in einer SSH-Konsole gestartet werden.
  • Die Ausgaben des Skripts werden in die Datei /var/log/linuxmuster/migration-backup.log geloggt. Nach Abschluss des Backups wird die Logdatei in das Backupverzeichnis kopiert.

Beispiel:

linuxmuster-migration-backup -d /media/backup/migration

Restore

Für die Datenmigration auf dem Zielsystem ist das Shell-Skript linuxmuster-migration-restore zuständig:

server ~ # linuxmuster-migration-restore -h

Usage: linuxmuster-migration-restore <options>

Options:

 -c <config dir>     Path to directory with config files (optional).
                     Per default we look in source dir for them.
 -d <source dir>     Path to source directory (mandatory,
                     where the restore files live).
 -i <password>       Firewall root password (optional). If not given you
                     will be asked for it.
 -t <temp dir>       Path to directory where the restore files are
                     temporarily stored in case the source dir is on a
                     nfs share (optional, must exist).
 -h                  Show this help.
  • Das Quellverzeichnis mit den Migrationsdaten muss mit dem Parameter -d zwingend angegeben werden.
  • Der Parameter -c ermöglicht die Verwendung eines alternativen Konfigurationsverzeichnisses. Dann sucht das Skript dort nach den Konfigurationsdateien custom.conf, include.conf und exclude.conf. Per Standard werden die Dateien im Quellverzeichnis verwendet.
  • Mit der Option -i kann das Root-Passwort der Firewall (IPCop) übergeben werden. Gibt man es nicht auf der Kommandozeile an, wird danach gefragt.
  • Liegt das Quellverzeichnis auf einem NFS-Share, kann mit der Option -t ein lokales Verzeichnis angegeben werden, in das die Migrationsdaten aus dem Quellverzeichnis kopiert werden. Das ist notwendig, da während des Restores das Netzwerk neu gestartet wird und damit die Verbindung zum Share verloren ginge. Gibt man kein lokales Verzeichnis an, sucht das Skript nach genügend freiem Platz im Wurzelverzeichnis, dann unter /var/tmp und /home. Die Verarbeitung wird abgebrochen, falls nicht genügend Speicherplatz gefunden wird. Im anderen Fall wird ein temporäres Verzeichnis migration.tmp angelegt, das nach Abschluss der Verarbeitung wieder gelöscht wird.
  • Die Ausgaben des Skripts werden in die Datei /var/log/linuxmuster/migration-restore.log geloggt.
  • Die Remote-Ausführung des Restore-Skripts per SSH-Konsole ist nicht zu empfehlen, da wie schon erwähnt das Netzwerk neu gestartet wird. Ist der Zugriff nur per SSH möglich, muss das Skript in einer Screen-Session gestartet werden, damit es komplett durchlaufen kann.
  • Abschließend muss der Server neu gestartet werden.

Links

  • #550: ipcop-root-PW darf keine Sonderzeichen enthalten.