Suche Rat – MariaDB-Hosting über ContainerStation

Hallo zusammen…

Ich suche nach Ratschlägen oder Hinweisen von Nutzern, die MariaDB über ContainerStation hosten – entweder direkt als Docker-Image oder indirekt, zum Beispiel indem sie es auf einem ContainerStation-Image wie z.B. Ubuntu Server betreiben.

Aktuell läuft MariaDB nativ auf QTS bei mir – und das funktioniert ausgesprochen gut. Tatsächlich habe ich nur eine Herausforderung: Die aktuellste QTS-Version von MariaDB ist 10.5.8… und ich möchte sie mit BookStack nutzen, das eine etwas neuere Version benötigt.

Ich habe versucht, ein Support-Ticket zu eröffnen, um die QTS-Entwickler nach einer Roadmap für MariaDB auf QTS zu fragen, aber falls es eine gibt, möchten sie diese nicht teilen. Das ist in Ordnung, finde ich, und ich beschwere mich nicht.

Das bedeutet aber, dass mir zwei Optionen bleiben, wenn ich weiterhin von meinem schönen RAID-6 und der zuverlässigen USV profitieren möchte…

ContainerStation listet mehrere MariaDB-Container-Images auf – Dutzende davon. Da ich ContainerStation bisher nur für ein kurzes Experiment mit Zabbix vor ein paar Jahren genutzt habe, bin ich mir nicht sicher, welches Image ich auswählen soll, zumal nur eines in der Liste der angebotenen Pakete ein kleines grünes Fähnchen hat, was wohl bedeutet, dass es das einzige „offizielle“ Image ist. Ich wäre sehr daran interessiert, von jemandem zu lernen, der ein MariaDB-Image über ContainerStation betreibt, wie man das korrekt macht.

Außerdem muss ich unbedingt Backups meiner Datenbanken machen können. Da ich momentan die QTS-Instanz nutze, war das ziemlich einfach einzurichten – ich habe ein einfaches Shell-Skript geschrieben und es nach QNAPs Empfehlung in die QTS-Crontab eingebunden. Soweit ich gelesen habe, sollte ich mit Docket’s exec-Befehl mit MariaDB interagieren können, bin mir aber nicht sicher, wie ich das zeitgesteuert einrichten kann, um z.B. jeden Morgen um 02:30 ein „mysqldump“ auszuführen. Daher würde ich gerne von jemandem lernen, der MariaDB in einem Container betreibt, wie die Eindrücke sind und wie Backups umgesetzt werden.

Die zweite Option wäre, ein vollständiges Betriebssystem-Image zu nutzen. Ich sehe, dass es ein Ubuntu 22.04 LTS-Image von Docker gibt… damit bin ich vertraut und darauf kann ich eine vollständige MariaDB 12.x-Instanz betreiben. Ich sollte per SSH und VNC über die virtuelle IP auf den Ubuntu Server zugreifen können und hätte die Möglichkeit, ein NFS-Share auf dem nativen QTS zu mounten, um auf die MariaDB-Dump-Dateien zuzugreifen und sie auf ein Wechselmedium für die externe Sicherung zu exportieren.

Es fühlt sich so an, als hätte ich ein paar brauchbare Optionen, von denen ich wahrscheinlich beide zum Laufen bringen könnte. Aber im Detail gibt es viele Feinheiten, und ich denke, ich kann mir viel Zeit und Ärger sparen, wenn ich vorher guten Rat einhole, bevor ich eine Lösung aufbaue.

Ich würde sehr gerne von jemandem lernen, der diesen Weg schon gegangen ist.

Vielen Dank im Voraus.

Wenn der Dienst, den Sie verwenden möchten, eine spezifische Anforderung an die MariaDB-Version hat, empfehle ich die Nutzung von Container Station.

Sollten während dieses Prozesses Schwierigkeiten auftreten, eröffnen Sie bitte ein Support-Ticket für uns, und wir können Ihnen Unterstützung anbieten. Vielen Dank!

Danke, Steve, ich schätze deine Antwort.

Nach meinem Beitrag habe ich weiter experimentiert und einige Erfolge erzielt. Ich habe herausgefunden, wie ich den offiziellen „mariadb-latest“-Container direkt in ContainerStation über DockerHub einbinden kann, nachdem ich bestätigt hatte, dass er mir Version 12.0.2 liefert, was die aktuellste stabile Veröffentlichung ist. Bei meinem ersten Versuch hatte ich ein Problem, da ich es versäumt habe, die „Erweiterten“ Optionen während der Containereinrichtung zu nutzen und somit die Möglichkeit verpasst habe, benutzerdefinierte Umgebungsvariablen zu erstellen, die ich für die Übergabe der Initialisierungsparameter an MariaDB setzen muss. Glücklicherweise sind die Fehlermeldungen, die dabei erscheinen, eindeutig und es ist eine triviale Aufgabe, alles zu bereinigen und den Vorgang erneut durchzuführen. Daher wird das, wie du empfohlen hast, meine erste Präferenz sein.

Als ich damit nicht weiterkam, habe ich mich VirtualizationStation zugewandt und es dort versucht. Das fand ich etwas schwieriger – hauptsächlich wegen meines mangelnden Verständnisses und weil die offizielle QNAP-Dokumentation etwas veraltet wirkt – aber gestern Abend habe ich es geschafft, eine VM mit dem neuesten Linux Mint ISO einzurichten, das ich für diese Aufgabe heruntergeladen habe [Mint nutze ich als Desktop, daher bin ich damit ein wenig vertrauter]. Das lief alles gut – ich habe den grafischen „Mint Installer“-Desktop über Virtualization Station in meinem Browser zum Laufen gebracht, aber dann bin ich auf das unvermeidliche Problem gestoßen, dass die aktuellste von Mint angebotene MariaDB-Version nur ein paar Minor-Versionen neuer ist als das, was ich nativ auf QTS habe.

Das ist natürlich kein unüberwindbares Hindernis – ich kann einfach die offiziellen MariaDB-Repos zu meiner sources.list hinzufügen und mit apt die benötigte Version herunterladen.

In beiden Fällen habe ich das, was ich als „quick and dirty“ bezeichnen würde, gemacht – zum Beispiel muss ich der DB-Instanz unabhängig von der Lösung wirklich eine statische IP-Adresse zuweisen [das habe ich schon einmal gemacht, als ich mit Zabbix experimentiert habe, aber das ist buchstäblich Jahre her – ich muss nur wieder herausfinden, wie ich das damals gemacht habe]. Ich muss auch herausfinden, wie ich Dinge wie das Planen von DB-Backups erledige. Wenn ich den VirtualizationStation-Weg gehe, ist das einfach – ich nutze einfach den nativen cron meines gehosteten OS und mache weiter… Wenn ich ContainerStation nutze, verwende ich ebenfalls cron, aber stattdessen den nativen QTS-cron und interagiere mit der MariaDB-Kommandozeile vermutlich über den „docker exec“-Befehl… und natürlich muss ich dann auch herausfinden, wie ich meinen öffentlichen NAS-Share anspreche, damit die Ausgabe eines „mysqldump“-Befehls auf das NAS-Dateisystem geschrieben werden kann, wo 1) sie den RAID6-Schutz behält; und 2) ich sie in meine HBS3-Backup-Zeitpläne einbinden kann.

Ich denke also, ich bin „auf dem richtigen Weg“. Da du ContainerStation empfohlen hast, werde ich mich zunächst darauf konzentrieren, aber ich war sehr interessiert und zufrieden mit dem, was ich von „VirtualisationStation“ gesehen habe, und ich denke, das ist einen Blick wert – vielleicht für dieses, auf jeden Fall für andere Projekte.

Und ich mache mir Notizen währenddessen, sodass ich am Ende eine Anleitung veröffentlichen kann.

Danke

Clive

Hallo Clive,

Es freut mich sehr zu hören, dass du eine Richtung gefunden hast!

Wenn es dir nichts ausmacht, würden wir uns sehr freuen, wenn du die Ergebnisse deiner Tests und Recherchen hier in der Community teilen würdest. Sicherlich würde das anderen helfen, die nach ähnlichen Anwendungen suchen. Vielen Dank!

Hallo Steve,

nur zur Info: Heute Abend habe ich erfolgreich die Installation von MariaDB 12.0.2 [die aktuellste stabile Version] über ContainerStation abgeschlossen. Ich konnte einen lokalen „Non-Root“-Benutzer hinzufügen und mir über dieses Konto die Möglichkeit geben, remote auf den Server zuzugreifen. Anschließend habe ich einfach eine zweite Server-Konfiguration zu meiner lokalen „PHPMyAdmin“-Installation [läuft auf einem Raspberry Pi, nicht auf meinem QNAP NAS] hinzugefügt und konnte erfolgreich eine Verbindung herstellen, eine Datenbank erstellen, eine Tabelle hinzufügen usw.

Ich habe noch ein wenig zu tun – insbesondere die wichtigste Sache… nämlich zunächst zu bestätigen, dass ich ein sqldump einer aktiven Datenbank durchführen kann, zweitens zu bestätigen, dass ich diese Ausgabe in einen Ordner auf dem NAS senden kann, der sich im Verzeichnisbaum meines primären „Public“-Shares befindet… und schließlich, dass ich diesen Befehl dann mit der crontab-Funktion des 672 integrieren kann, sodass ich die Backup-Planung automatisieren und mit meinem HBS3-Backup-Setup integrieren kann.

Die gute Nachricht ist, dass das alles eigentlich sehr einfach ist, sobald man ein paar kleine „Stolperfallen“ kennt.

Ich melde mich mit einer umfassenden Dokumentation, sobald ich die letzten Kleinigkeiten geklärt habe.

1 „Gefällt mir“

Hallo Steve,

wie versprochen melde ich mich zurück, um die Ergebnisse meiner Tests zu teilen. Ich habe eine ziemlich ausführliche Anleitung geschrieben und sie in einem neuen Thread veröffentlicht – insgesamt sind es 12 Beiträge – und du findest sie hier:

Wenn ich mit neuer Technologie arbeite und neue Lösungen entwickle, mache ich mir in der Regel sehr sorgfältige Notizen. Diesen Detailgrad habe ich auch in dieser Anleitung beibehalten. Ich würde mich sehr über deine Rückmeldung und dein Feedback freuen. Sag mir gerne Bescheid, falls etwas bearbeitet werden muss.

Vielen Dank.

1 „Gefällt mir“

Danke fürs Teilen!

Ich bin sicher, diese Informationen werden anderen in der Community, die vor ähnlichen Problemen stehen, sehr hilfreich sein. Vielen Dank!