NetCup SSD vs SAS

Aktuell gibt es bei NetCup wieder Sonderangebote, wie es sie bei NetCup häufiger gibt.
Einerseits kann man zwischen verschiedenen Größenpaketen wählen, als auch zwischen jeweils zwischen einer SSD und einer normalen SAS HDD.
Leider hab ich selbst keine Benchmarks dazu gefunden, beziehungsweise dann nur entweder von unterschiedlichen Servern oder sie waren sich selber nicht ganz sicher ob die Werste so stimmen können.

Also ganz einfach: selber messen. Dazu verwende ich die aktuellen Server (RS 2000) mit und ohne SSD, als auch meinen alten NetCup Server (M SSD v6) der ein Jahr alt ist.

Zuerst mit hdparm, mit und ohne  Cache (-t -T), mit und ohne Kernel Page cache (–direct).

SAS – RS 2000 SAS G7SEa1

 

SSD – RS 2000 SSD G7SEa1

 

old SSD – Root-Server M SSD v6

 

Anschließend messen wir noch mal etwas genauer nach mit fio (Optionen aus dem Netcup-Thread genommen).

SAS – RS 2000 SAS G7SEa1

SSD – RS 2000 SSD G7SEa1

old SSD – Root-Server M SSD v6

 

Vielen Dank an den Besitzer des SSD Servers für die Benchmarks.

Gitlab Docker Backup restore

Ich musste meine Gitlab-Instanz auf einen anderen Server umziehen. Bereits vor dem Umzug habe ich Gitlab in Docker verwendet (sameersbn/gitlab). Dabei bietet dieses Image auch die Möglichkeit automatische Backups zu erstellen die auch aktiviert hatte.

Bei der Wiederherstellung der Daten auf dem neuen Server gab es jedoch ein Problem. Da dieses Image keine der beiden Zusatzsoftwares (PostgreSQL, Redis) integriert hat, habe ich diese separat laufen lassen und über docker-compose zusammengeschaltet. Das Kommando zur Wiederherstellung startet jedoch nur gitlab an sich. Da es im Endeffekt nur einen bereits von Gitlab bereitgestellten Rake-Task aufruft, wollte ich diesen manuell starten.

Gitlab machte dies auch brav und alle Daten wurde übernommen. Sobald jedoch ein Repository aufgerufen wurde konnte er die Daten nicht mehr finden. Nach langer Suche im Dateipfad in dem sich das Repository normalerweise befindet sind mir Symbolic-Links aufgefallen. Docker folgt jedoch in gemounteten Verzeichnissen keinen Links aus Sicherheitsgründen. Die Daten müssen aber außerhalb des Containers liegen, sonst würden sie ja beim nächsten Update verloren gehen.

Das im Image enthaltene Start-Script (Entrypoint) muss also irgendwie die Symlinks umgehen.

Um das Start-Script in docker-compose aufzurufen muss man nur dies nur in der docker-compose.yml Datei angeben. Wichtig ist ebenfalls anzugeben, dass der Container nicht selbständig neu startet, sonst stellt er sich in einer Endlosschleife vom Backup wieder her. Hierbei ist es wichtig den Timestamp des Backups anzugeben welches man wiederherstellen will sowie alle Fragen zu unterdrücken, da man keine Interaktive Eingabe hat und alle Fragen zum Abbruch führen würden.

Nachdem man den Service einmal gestartet hat und alles vom Backup wiederhergestellt wurde kann man ihn wieder Stoppen und das Kommando wieder aus der Konfiguration löschen sowie die Restart-Policy zurücksetzen.

Jetzt sollten wieder alle Daten aus dem Backup in Gitlab vorhanden sein.

 

TL;DR

Docker folgt in Volumes keinen Symlinks. Das im Image enthaltene Entrypoint-Script umgeht die Verwendung von Symlinks.