Schlagwort-Archive: vps

Docker statt vServer – Wie ich 770GB verloren habe

bitconnect

Ich habe vServer gemietet. Das ist eine tolle Sache. Dort kann ich tun und lassen was mir beliebt. Doch nicht für jeden Anwendungsfall muss gleich ein vServer her. Denn es gibt inzwischen Docker, dort entfällt eine Menge overhead, den so ein vServer mit sich bringt.

Ich habe ja den ein oder anderen Server und auch ein paar vServer. Damit ich vor Datenverlusten geweiht bin, habe ich einen Server dafür gemietet, sich um Backups zu kümmern. Die Anforderungen an diesen Backup-Server: Massiv Speicherplatz, möglichst günstig. Und so endete es in einem Server der mit 100Mbit Anbindung nicht der schnellste, aber mit 2x2TB (bewusst ohne RAID) viel Speicher hatte und günstig war. Da ich für Kunden ebenfalls Server sichern wollte habe ich mich vor über einem Jahr auf diesem Server dazu entschieden, zwei vServer aufzusetzen. Beide lediglich mit Backuppc ausgestattet. Und jeder vServer hatte seine eigene Festplatte. So konnte ich den Speicherbedarf gut regeln. Ich behaupte nicht dass dies die einzige Lösung ist/war aber es ging schnell und funktionierte.

Nun hat eine Festplatte defekte Sektoren bekommen und musste getauscht werden. Ich habe also den betroffenen vServer gestoppt und seine VDI auf einen anderen Server übertragen, was bei 770GB und der schwachen Anbindung etwa 30 Stunden dauerte. Dann wurde die Festplatte getauscht und ich habe die VDI wieder zurückgespielt (also nochmal etwa 30 Stunden). Resultat: Der vServer ließ sich nicht mehr booten. Die Datei ist beschädigt gewesen, sicherlich folgend aus den kaputten Festplattensektoren. Demnach: 770GB Datenmüll. Es ist nicht dramatisch, es handelte sich lediglich um ein Backup anderer Daten, die ja weiterhin auf ihrem Server lagen und funktionierten.

Ich hatte schon länger darüber nachgedacht, die zwei vServer zu deaktivieren und hier Docker in den Einsatz zu nehmen um beide Backuppc-Instanzen zu betreiben und auf die zwei verschiedenen Festplatten zu schreiben. Ich hatte nur nie einen Anlass dazu. Nun hatte ich bedarf und habe mich rangesetzt.

Fazit: Es läuft prima. Doch was ist jetzt der Unterschied?

Docker vs. Virtualisierung

Ich möchte darauf hinweisen, dass ich kein Virtualisierungs-Profi bin. Ebenso bin ich auch kein Docker-Profi. Ich habe konkrete Anwendungsfälle und benutzte dann eine passende Technik. Sobald es läuft und ich die Situation als „stabil“ einschätze, bin ich zufrieden.

Für mich gibt es zwischen Docker und Virtualisierung in dem obigen Beispiel einen gravierenden Unterschied: Durch das defekte VDI-File, habe ich nun 770GB Daten verloren. Mit Docker hätte ich sicherlich auch Daten verloren, aber eben nur jene, die in den entsprechenden Sektoren gespeichert wurden. Es ist davon auszugehen, dass ein Großteil der Daten erhalten geblieben wäre.

Ein weiterer Punkt ist das Thema Sicherheit: Ich habe natürlich quasi nie die vServer aktualisiert. Auch den Host nicht. Ich hatte einfach schiss, dass dann vbox nicht mehr startet oder irgendwas auf den vServern nicht mehr läuft. Demnach hatte ich einen Host und zwei vServer die potenziell angreifbar wären oder um die ich mich hätte potenziell kümmern müssen.

Nun mit Docker habe ich nur noch den Host. Die Container haben keine Möglichkeit den Host anzugreifen und die Container sind von außen lediglich über einen einzigen Port erreichbar. Mit jedem Update von Backuppc wird ein neues Image bereitgestellt, welches wiederum auf einem aktualisierten Linux-Image beruht und somit werden „Systemupdates“ implizit mit dem aktualisieren des Images eingespielt. Den Host werde ich fortan aktualisieren, ich betreibe einige Docker-Hosts und habe bisher noch nie erlebt, dass es zu einem Problem innerhalb eines Docker-Container kam, dadurch dass ich den Host aktualisiert hätte…

Einfache Wartung: Ich habe ein Script geschrieben welches beide Docker-Instanzen gleichzeitig verwaltet. Ich gebe in dem Script das Basis-Image und einige weitere Parameter an. Und dann kann ich mein Script aufruren und ein Update ausführen, die Container stoppen / starten oder in die Logs schauen. Alle Aktionen werden dann auf beiden Containern ausgeführt. Das ist praktisch und spart Zeit.