Schneller Support

Auf dem CCWN-Server war die 2te Platte irgendwann diese Woche kaputt gegangen… Den größten Aufwand hat das Komplettbackup des Servers verursacht, läppische 5 Stunden.

Den eigentlichen Austausch der Platte hat Hetzner dann binnen einer halben Stunde erledigt, wobei ein Großteil der Zeit auf mein Greylisting zurückzuführen ist… Da muss man doch echt mal ein Lob aussprechen, sowas nenne ich erstklassigen Support!

Automatische inkrementelle Backups von OpenVZ VE

OpenVZ bietet von sich aus keine Methode um die Virtuellen Maschinen (VE) sinnvoll zu sichern. Allerdings sind die VEs vom Hauptsystem aus gesehen nichts anderes als "normale" Ordner. Sofern man die VE stoppt, kann man auf diesen Dateien auch ohne Probleme ein Backup starten.

Nun will man aber bekannterweise für ein Backup den Server nur kurz oder am Besten überhaupt nicht herunterfahren. Die optimale Lösung mit nicht herunterfahren war mir zu stressig, für das nur kurz herunterfahren war aber schnell die Lösung gefunden: rsync mit dem Parameter --link-dest. So muss ich nur einmal ein volles Backup ziehen und rsync erzeugt bei allen darauffolgenden Backups Hardlinks im Dateisystem und reduziert so ganz nebenbei auch noch den Platzbedarf für die Backups. Trotzdem sieht jeder Backupordner wie ein vollständiges Backup aus.

Um das ganze jede Nacht zu automatisch laufen lassen zu können, habe ich noch eine kleine Schleife um das eigentliche Backup gebaut, die die aktuell laufenden VEs automatisch findet und sichert. Aktuell nicht aktive VEs werden auch nicht gesichert, an ihnen werden ja auch keine Änderungen durchgeführt. Sollte also eine VE dazu kommen, so wird in der darauf folgenden Nacht automatisch ein Full-Backup der VE geschrieben und solange die VE aktiv ist diese auch automatisch inkrementell gesichert.

CODE:
  1. #!/bin/bash
  2.  
  3. DATUM=`date +%F`;
  4. VZ_HOME=/vz/private
  5. BKP_BASE=/backup/virtual
  6. LAST_RUN=`cat $BKP_BASE/lastRun.date`
  7.  
  8. for veid in `ls $VZ_HOME`;
  9.   do
  10.   if [ `vzctl status $veid | awk '{print $5}'` == "running" ]; then
  11.     if [ ! -d $BKP_BASE/$veid ]; then
  12.       mkdir -p $BKP_BASE/$veid;
  13.     fi;
  14.     echo "Backing up VE $veid";
  15.     BKP_PATH="$BKP_BASE/$veid/$DATUM";
  16.     vzctl stop $veid;
  17.     rsync -a --delete --link-dest=$BKP_BASE/$veid $LAST_RUN $VZ_HOME/$veid/  $BKP_BASE/$veid/$DATUM;
  18.     vzctl start $veid;
  19.   fi;
  20. done;
  21. echo $DATUM> $BKP_BASE/lastRun.date

Was noch fehlt ist ein Script, dass die angelegten Daily Backups ausdünnt und so Monthly und Yearly Backups anlegt. Die Ordner der Daily Backups können einfach gelöscht werden, da verlinkte Dateien erst vom Dateisystem verschwinden, wenn der letzte Link gelöscht wurde...

OpenVZ und mounts

Da will man nur nen Ordner von ner anderen Platte in eine virtuelle Maschine mounten und scheitert mit mount --bind kläglich... Und dann ist die die Lösung einfach, dass man anstatt direkt in /vz/private/xxx zu mounten eben in /vz/root/xx mounten muss :wallbash

WebSVN in schön

WebSVN hatte ich mir schon vor einer ganzen Weile einmal für die Arbeit angeschaut. Es bietet einen schnellen Browser für Subversion Repositories und muss, im Gegensatz zu Trac, nur einmal aufgesetzt und gewartet werden...

Auch Syntaxhighlighting, Blames, und Versionsunterschiede kann WebSVN gut und schnell darstellen. Allerdings ist das "normale" Layout leider sehr schlicht und die Unterstützung unter Solaris nur sehr bescheiden weswegen ich WebSVN letztendlich aus den Augen verlor und wir für die meisten Projekte Trac einsetzen...

Nun hat aptgetupdate.de einen Artikel über ein WebSVN-Theme geschrieben, welches zumindest die Hässlichkeit von WebSVN aus dem Wege schafft... Das hat mich an meine Versuche vor 2 Jahren erinnert... Auf dem CCWN-Server läuft ausserdem auch kein Solaris sondern "nur" ein Debian, so konnte ich schwups via apt-get install websvn installieren: Das optische Resultat ist ersteinmal das hier:

websvn_org_start.pngwebsvn_org_code.png

Nachdem ich aber die Hürden der Templateinstallation (elendige halb-absolute Pfade im Dokument) überwunden hatte, erstrahlt das WebSVN nun im neuen Glanze des Calm-Themes von ContactSheet.de :

websvn_neu_start.pngwebsvn_neu_code.png