Anzahl Container auf einem NAS

  • Hallo,

    Auf meinem NAS TS-451D2 läuft in einem Container Paperless-ngx. Nun wollte ich Immich zur Bilderverwaltung nutzen, lese aber das Immich auch in einem Container läuft.


    Das Thema Container ist für mich noch vollkommen neu, deshalb meine Frage(n):


    Wieviele Container können auf dem TS-451D2 mit 32GB Arbeitsspeicher gleichzeitig aktiv sein?


    Welches NAS würdet ihr mir bei einem Update/Neukauf empfehlen, wenn man zwei und mehr Container in Betrieb hat?

  • Du kannst seeehr viele Container erstellen und nutzen, also einfach mal ausprobieren.

    Ich nutze auf einem TS-253pro mit 8GB RAM (ähnliche Generation wie deins, aber 4 Cores) z.Z. 7 Container (MariaDB, PHP-MyAdmin, Jellyfin, Baikal, BubbleUPnP, Kodi-Headless und ein Subversion-Server), ebenso auf einer TS-253E mit 16GB. RAM ist kein Thema, selbst auf der 253pro mit 8GB sind weniger als 4GB für Container in Verwendung. Wenn du allerdings richtig fette Container planst, kannst das natürlich anders ausfallen.


    Wie hoch die Auslastung das schlussendlich ist, hängt vom Nutzungsschema der Container ab. Wesentlich ist natürlich was die Container-App tut und wie viele Container diese wirklich parallel aktiv genutzt werden. Je nach Container kann sich eine SSD lohnen, denn teilweise werden sehr viele Dateien erzeugt und gelesen und das ist halt auf einer HDD nicht gerade schnell. Auf meiner TS-253E liegen die Container auf einem M.2 SSD-RAID und im Vergleich zur 253pro mit HDD-only ist die Schwuppdizität schon deutlich erkennbar (die CPU ist allerdings auf mehr als 4 mal so schnell).

  • Ich hab ein TS-673A mit 6Containern am Laufen. Da merke ich von der Auslastung bisher überhaupt nix.

    Immich habe ich auch drauf (übrigens ein top Programm. wenn man es mit Qmagie vergleicht um Welten besser) da kann es angebracht sein dies auf SSD kaufen zu lassen wegen der Datenbank und den Thumbnails. Das erste Einlesen wenn keine GPU vorhanden ist, kann auch etwas dauern und dabei kann dein Nas in die Knie gehen. Aber das ist ja eine einmalige Sache

  • Danke für eure Erklärungen. Allerdings kann ich mein NAS von der Leistung her nicht zu euren (TS-253pro, TS-253E und TS673A) einordnen (wer ist Leistungsstärker)


    Was bringt es überhaupt für ein Vorteil wenn man MariaDB oder PHP-myadmin in einem Container laufen läßt. Zumal es doch MariaDB als App für QNap gibt.


    Ich hatte es so verstanden das die jede Applikation gekapselt von den anderen Anwendungen ist. Aber dann könnte ich doch MariaDB nur in dem einen Container verwenden.


    Oder verstehe ich das alles falsch, ich hatte einen Container immer als eine Art Virtuelle Maschine verstanden?

  • Ein Container ist keine vollständige Virtuelle Maschine sondern es wird die über eine definierte Schnittstelle der Kernel des Host-Betriebssystems verwendet (deshalb werden auch deutlich weniger Resourcen benötigt). Er ist ist aber durchaus erstmal getrennt vom Host-System, man kann (und muss meistens) Verzeichnisse spezifizieren, wo der Container die Benutzerdaten finden kann bzw. wo er Konfigurationsdateien ablegen soll (die sogenannten Volumes).


    Container können durchaus miteinander kommunizieren, wenn man dies in der Container-Definition so festlegt. Standardmässig laufen sie in einer NAT-gekapselten Netzwerkumgebung, aber man verschiedenen Container explizit verbinden oder den Container direkt ins Host-Netzwerk integrieren (sieht dann so aus als lief eine normale App auf dem NAS). Letzteres ist z.B. für viele Medienserver notwendig.


    Eine Übersicht wie Container prinzipiell funktionieren gibt es z.B. auch bei QNAP: https://www.qnap.com/de-de/software/container-station


    Achja, je nach Container-Anwendung kann eine vorhandenen GPU hilfreich sein (z.B. fürs HW-Transcoding von Medien), die dein TS-451D2 aber ja hat.

    Für x86-CPUs gibt es meist mehr Auswahl an Containern als für ARM-CPUs.

    Einmal editiert, zuletzt von warpcam ()

  • Ok, so langsam wird mir einiges klar, aber welchen Vorteil bringt es z.B. MariaDB in einen Container anstatt direkt auf dem Betriebssytem laufen zu lassen.


    Oder andersrum gefragt, könnte man auch Paperless-ngx auch direkt auf einem QNAP laufen lassen und was wären dann für Nchteile zu erwarten?


    Nachtrag: Ok, die Vorteile habe ich gerade gelesen, aber verstehen…

  • aber welchen Vorteil bringt es z.B. MariaDB in einen Container anstatt direkt auf dem Betriebssytem laufen zu lassen

    Der größte Vorteil ist, dass man selber festlegen kann, wo die Daten der Datenbank gespeichert werden. Das ist vor allem fürs Backup und die Recovery ein entscheidender Vorteil. Man kann die Datenverzeichnisse der Container z.B. direkt ins HBS-Backup aufnehmen, was ansonsten nur sehr umständlich mit der nativen App zu erreichen ist.


    Früher habe ich mühsam mit SQL-Dumps rumhantieren müssen, um die Datenbanken zu sichern (ich nutze auch Kodi über MariaDB). Das fällt alles weg, es sei denn, man will von auf eine andere Datenbank wechseln.


    Weitere Vorteile sind:

    • Jemand muss die App aktualisieren und das ist meist nicht der Anbieter selbst. Deshalb hinken viele Apps dem aktuellen Stand hinterher. Für viele Apps gibt es direkt vom Anbieter aber einen Container (man sollte immer genau hinschauen, wer den Container anbietet!) und damit kann man immer auf dem aktuellen Stand aktualisieren, wenn man will und Zeit hat. Das kann auch aus Sicherheitsaspekten sehr hilfreich sein.
    • Update und Desaster-Recovery ist einfach, vor allem wenn man sich Schablonen für Docker-Compose erstellt hat. Man kann den Container einfach fix neu erstellen, ohne Daten zu verlieren, denn die liegen normalerweise ausserhalb. Ich habe letztens beim Umzug auf das TS-253E einfach die Volumes per HBS restauriert und die Container neu erstellt und alle liefen direkt wieder so, als ob nix gewesen wäre.
    • Erhöhte Sicherheit beim Datenzugriff, denn worauf die Container zugreifen dürfen, bestimmt man selbst. Bei einer installierten App kann diese auf das gesamte NAS zugreifen, auch auf Systemdateien, denn nahezu alle nativen Apps laufen als Administrator. Selbst wenn man einer App traut, kann es trotzdem auch Fehler geben, die potentiell im Systembereich des NAS Probleme machen könnten. Das kann mit Containern nicht passieren, denn diese sehen nur ihre eigene Umgebung plus die Verzeichnisse, die man ihnen als Volumes sichtbar macht.

    könnte man auch Paperless-ngx auch direkt auf einem QNAP laufen lassen

    Wenn niemand eine native App für Qnaps erstellt, dann nicht.

  • warpcam , danke für deine Ausführungen.


    Ich habe mir gerade in Youtube die Videos von Heise zum Thema „Warum Container? Einführung in Docker Tutorial 1-6“ angesehen. Ich glaube ich habe das Prinzip nun verstanden.


    Dann könnte ich auf dem QNAP auch mehr als eine MariaDB Datenbank auf einem QnAP laufen lassen?

  • Dann könnte ich auf dem QNAP auch mehr als eine MariaDB Datenbank auf einem QnAP laufen lassen?

    Ja. Aber dann mit den Netzwerkport-Zuordnungen für den Zugriff aufpassen, dass diese verschieden sind. Das ging auch mit den nativen QNAP-Versionen 5 und 10 schon, beide konnten parallel laufen. Aber als Container kann man da freier wählen.


    Aber wozu braucht man mehrere MariaDB-Instanzen? Ein Server kann doch auch viele Datenbanken handhaben. Eine Anwendung könnte sein, wenn man Clients hat, die nur mit einer bestimmten MariaDB-Version sauber funktionieren.

  • Aber wozu braucht man mehrere MariaDB-Instanzen?

    Ich denke da zum Beispiel an QuMagie/Immich.


    Dann wollte ich Lokal eine Piwigo Datenbnk laufen lassen.


    Und ob Paperless-ngx oder Plex aud Datenbanken zugreifen weiß ich im Moment nicht.

    Aber war ja auch nur eine Idee.

  • Ich kann nur empfehlen, sich zuerst den Portainer Container zu installieren.

    Dann hat man ein von Qnap unabhängiges Verwaltungstool für weitere Container.

    Zu Portainer gibt es auch deutlich mehr Anleitungen/Videos.


    Ich habe Immich dort per Yaml Stack installiert. Der Stack bringt eine eigene Datenbank mit und besteht aus insgesamt 4 Containern.


    Die Speicherorte der Bilder und Videos trägt man einfach als Volumes in die Yaml Vorlage ein.


    Tschau

    Uwe

  • Ich kann nur empfehlen, sich zuerst den Portainer Container zu installieren.

    Hast du mal einen Link wo ich Portainer runter laden kann, oder bekomme ich den bei hub.docker.com?