|
TWiki . Fileserving . AFSChemnitzAfsBackupSuite
|
Chemnitz AFS Backup Suite (CABS)
Informationen und Beschreibungen zu CABS
CABS ist eine Menge von kleinen Werkzeugen, die für die
Datensicherung im Kontext von AFS entwickelt wurden (und noch
entwickelt werden). Es werden weitestgehend die Vorstellungen und Ziele
realsisiert, die im Dokument Überlegungen zur Technologie der Datensicherung im AFS beschrieben sind.
Einzelne Teile der Datensicherung werden als Aktionen bezeichnet. Für jede Aktion gibt es spezielle Programme.
Aktionen sind z.B. das Erstellen von Backup-Volumes, das Erstellen von Readonly-Volumes, das Anfertigen von Dumps, ...
Diese Programme können einzeln gestartet oder durch ein Control-Programm gesteuert werden.
Die Struktur wird in diesem Bild sichtbar:
Die Datensicherung besteht aus zwei Phasen:
- 1. Phase
- Anfertigen der RO- und BK-Volumes (Aktionen: VC, RO, BK - siehe unten)
diese Programme können prinzipiell auf beliebigen Maschinen laufen
- 2. Phase
- Anfertigen von Dumps aus den RO-Volumes (Aktionen: DP - siehe unten)
diese Programme müssen auf Backupservern laufen
- Namen (Scripte, Konfigfiles) beginnen mit dem String "cabs-"
- Optionen
folgende Optionen verstehen alle Programme
| Option | Bedeutung |
| -h | gibt Hilfe-Text aus |
| -v | gibt Versionsnummer aus |
| -d n |
Debug-Level n, je größer die Zahl umso mehr Ausgaben (n==3 liefert z.B.
alle generierten und ausgeführten Kommandos), Ausgaben landen in stderr |
| -n | "do nothing mode": generiert nur Kommandos, führt sie aber nicht aus, Kommandos werden über stdout ausgegeben |
| -f cfg | benutze cfg als Konfigurationsfile (anstelle von cabs-srv-assgmnt.conf) |
- Ausgaben
- im "do nothing mode" (Option -n)
- stdout: Liste der generierten Kommandos (Ausnahme: cabs-bk benutzt
"vos backupsys ... -dryrun", dessen Ausgaben landen auch in stdout)
- stderr: aufgetretene Fehler und Debugging-Ausgaben (falls Option -d ebenfalls angegeben war)
- ohne Option "-n"
- stdout: Ausgaben zur statistischen Auswertung
- stderr: Fortschrittsanzeige, ausgeführte Kommandos (bei Option -d
3) und Fehler (wenn ein Fehler auftritt, wird das ausgeführte Kommando
immer ausgegeben - unabhängig vom Debug-Level), statistische Angaben
für den "menschlichen" Leser
- die Aktions-Programme erwarten (mindestens) ein Argument, i.d.R. den Hostnamen des Backup Servers
- Fileserver sind AFS-Fileserver-Maschinen, die RW-Volumes halten
- Backupserver sind AFS-Fileserver-Maschinen, die ausschließlich
RO-Clones halten und über weitere lokale Disk-Partition verfügen, um
Dumpfiles zu speichern
- wird nur vom Control-Programm "cabs" ausgewertet
- Aufbau:
# OP (Operation):
# VC - Check Vldb (vos addsite, vos remove)
# RO - Build RO-Clones (vos release)
# BK - Build BK-Clones (vos backup)
# DF - Create FullDump (vos dump -time 0)
# D1 - Create IncrDump Lvl 1 (vos dump -time time_of_fulldump)
# D2 - Create IncrDump Lvl 2 (vos dump -time time_of_lvl1dump)
#
# Arg
# arguments for scripts
#
# Schedule (cron like):
# Year: Year or "*"
# Month: Month 1|2|3|4|5|6|7|8|9|10|11|12 or 09-11 or "*"
# Week: Week in Month 1|2|3|4|5 or 2-5 or "*"
# Day: Day in Week 0|1|2|3|4|4|6 or 2-0 or "*" 0 means sunday
# OP Arg Year Month Week Day
- Beispiel:
# Notation im Kommentar Mo/Di bedeutet: Nacht vom Montag zum Dienstag
# wobei angenommen wird, dass cabs nach Mitternacht - also am Dienstag
# läuft - die Angaben hier stehen also in engem Zusammenhang mit der crontab
VC naupiadame * * * 2-0 # Mo/Di...Sa/So
RO naupiadame * * * 2-0 # Mo/Di...Sa/So
BK naupiadame * * * 0 # Sa/So
DF naupiadame * * 1 0 # 1. Sa/So im Monat
D1 naupiadame * * 2-5 0 # 2.-5. Sa/So im Monat
D2 naupiadame * * * 2-6 # Mo/Di...Fr/Sa
- wird ausgewertet von allen Aktions-Programmen (cabs-vc, cabs-ro, ...)
- Aufbau:
# Server/Partition Assignment
# specify which Backup Server is assigned to which File Server
# fileserver/backupserver: hostname
# partition: partition name
# prefix: volume name prefix or "*"
#
# fileserver partition backupserver partition prefix dump partition
- Beispiel:
augeias /vicepb naupiadame /vicepb user /var/dump/dump1
augeias /vicepd naupiadame /vicepd uarchiv /var/dump/dump1
augeias /vicepf naupiadame /vicepf user /var/dump/dump1
augeias /vicepg naupiadame /vicepg user /var/dump/dump1
augeias /viceph naupiadame /viceph user /var/dump/dump1
augeias /vicepi naupiadame /vicepi project /var/dump/dump1
augeias /vicepk naupiadame /vicepk project /var/dump/dump1
augeias /vicepl naupiadame /vicepl project /var/dump/dump1
ankaios /vicepa naupiadame /vicepm user /var/dump/dump1
ankaios /vicepb naupiadame /vicepm user /var/dump/dump1
ankaios /vicepc naupiadame /vicepm user /var/dump/dump1
ankaios /vicepd naupiadame /vicepm project /var/dump/dump1
ankaios /vicepe naupiadame /vicepm project /var/dump/dump1
- steuert die Abarbeitung und organisiert den Aufruf der Aktions-Programme enstprechend Konfigurationsfile cabs.conf
- geeignet für regelmäßige Nutzung via cron
- Intention: es gibt genau einen crontab-Eintrag pro Backup Server, der das gesamte Geschäft steuert
- die Ausgaben (siehe oben) sollten geeignet umgelenkt werden
- diese Namenskonventionen ermöglichen den Verzicht auf eine Metadaten-Basis
- Metadaten im Sinne einer Datensicherung sind:
- Name des gesicherten Volumes
- Datum der letzten Modifikation des Volume-Inhalts
- Dump-Level (zu welchem vorherigen Dump-Level ist ein konkreter Dump zeitlich nachgeordnet - inkrementell)
- der vollständige Pfadname eines Dumpfiles wird gebildet nach diesem Muster:
${DumpRoot}/${Prefix}/${Volume}/${Lvl0RODate)/${Volume}=${LvlJTimeStamp}=${LvlITimeStamp}
- ${DumpRoot}
- Pfadname der Dump-Partition (angegeben in 6. Spalte des Konfig-Files)
- ${Prefix}
- Namensprefix des Volumes
- ${Volume}
- Name des RW-Volumes
- ${Lvl0RODate}
- Datum aus Last-Update-Zeitstempel des RO-Volumes bei Anfertigung des Level 0 Dumps (Full-Dump)
- ${LvlJTimeStamp}
- Last-Update-Zeitstempel des RO-Volumes bei Anfertigung des Levels "J" Dumps
- ${LvlITimeStamp}
- Last-Update-Zeitstempel des RO-Volumes bei Anfertigung des Levels "I" Dumps
- die Zeitstempel haben die syntaktische Form: YYYYMMDD-HHMMSS
- Beispiel:
$ pwd
/var/dump/dump1/user/user.thm/20030406
$ ls -l
-rw------- 1 root root 836651859 Apr 7 21:14 user.thm=20030406-235706=0
-rw------- 1 root root 13984201 Apr 8 08:19 user.thm=20030408-075836=20030406-235706
- das File user.thm=20030406-235706=0
- enthält einen Dump des Volumes user.thm
- 20030406-235706 (${LvlJTimeStamp}): es enthält Daten bis zur Modifikationszeit "06.04.2003 23:57:06 Uhr"
- 0 (${LvlITimeStamp}): es enthält Daten seit dem Zeitpunkt "0" = Level 0 Dump = Full-Dump
- der Dump selbst wurde erzeugt am 07.04.2003 21:14 (Modifikationszeit des Dumpfiles)
- das File user.thm=20030408-075836=20030406-235706
- enthält einen Dump des Volumes user.thm
- 20030408-075836 (${LvlJTimeStamp}): es enthält Daten bis zur Modifikationszeit "08.04.2003 07:58:36 Uhr"
- 20030406-235706 (${LvlITimeStamp}): es enthält Daten seit dem Zeitpunkt "06.04.2003 23:57:06 Uhr"
- der Dump selbst wurde erzeugt am 08.04.2003 08:19 (Modifikationszeit des Dumpfiles)
- es ist ein Level 1 Dump (das ergibt sich aus dem Zurückverfolgen der Zeitstempel in den Dumpfile-Namen)
- cabs-dp kann auf Grund dieser Konvention z.B. ermitteln, dass ein
Level-1-Dump zu erstellen ist, obwohl ein Level-2-Dump angefordert
wurde, der Name des erstellten Dumpfiles wird das dann reflektieren
- nur cabs-vc und cabs-ro regelmäßig einsetzen
- Konfigfile erstellen und anstelle des prefix (5. Spalte) den
vollständigen Namen angeben (ggf. auch mehrere Zeilen mit verschiedenen
Volumenamen)
- cabs-?? mit Option "-f ..." aufrufen
- Scripte zum
- Restore (Phase 1) - Basis "vos convertROtoRW"
- einzelne Volumes
- komplette Partition
- kompletter Server
- Restore (Phase 2) - Basis "vos restore"
- Anzeigen der Dump-Hierarchie (auf welche Stände kann man zurückgreifen und wie kommt man da ran?)
- Anzeigen der Stände eines bestimmten Files (dazu muss man
Inhaltsverzeichnisse der Dumpfiles anfertigen können, Basis: dumptool)
- Extrahieren bestimmter Files aus Dumpfiles (Basis: dumptool)
- Löschen alter Dumpfiles
- Archivieren von Dumpfiles
- Konsistenzprüfungen
- existieren für alle RW-Volumes RO-Clones?
- gibt es RO-Clones, deren RW-Volumes schon gelöscht sind?
- Auswertung statistischer Daten und Aufbereitung für's Web
- Integration in WFM
- Zugriff auf alte Stände (zunächst nur die Online-Versionen)
- Doku für Nutzer
- Verbesserungen/Feature-Request
- Dumpfiles komprimiert ablegen (optional)
- Dumpfiles verschlüsseln (optional)
- "vos dump" stürzt manchmal ab, der Dump ist aber in Ordnung ...
-- ThomasMueller - 08 Apr 2003
Copyright © 1999-2003 by the contributing authors.
All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback.