Jump to content

Storage der Nutzerdaten bei Gebrauch von Nextcloud Docker - auf der Suche nach Tips von erfahrenen Nutzern


Recommended Posts

Guten Abend,

Ich habe inzwischen einige Erfahrungen gemacht mit einer urspünglich nur als Test gedachten Nextcloud Installation mittels Docker auf meinem Unraid Server. Es geht hier jetzt nicht um den Docker, sondern um ein möglichst effizientes System zum Speichern der Nutzerdaten.

 

In meine damals aufgesetzten Testinstallation (die auch heute noch so existiert) hatte ich den Folder der Nutzerdaten ausserhalb des appdata Folders auf dem Array installiert. Ich dachte mir damals, ja wenn jemand 1GB Video hochlädt, dann wird der (damals knapp bemessene) Cache sehr schnell voll sein und es können beim Family-server ja möglicherweise auch viele Daten anfallen.

Ausserdem wollte ich den Appdata Folder der Nextcloud nicht so "grenzenlos aufblähen", da mir nicht klar war, wie ich schnell und effizient Backups der Nutzerdaten und der Appdata der Nextcloud machen sollte...

 

Inzwischen ist mir aber auch klar, dass es die Nextcloud sehr verlangsamt, wenn beim hochladen der Daten die Files direkt auf das Array geschrieben werden müssen, weil der Data folder eben auf dem Array ist und nicht auf dem Cache, wo die appdata von dem Nextcloud Docker sich befindet.

 

Ich habe nur ein kleines Array von einer Platte und einer Parity

ausserdem 2x NVME als BTRFS mirror
 

Das uploaden sollte dann doch auf die NVMEs passieren, aber es sollte dann eben übertragen werden zur Sicherung auf das Array (parity).  Wie realisiere ich das am besten auf einfache Weise ?

Wie habt Ihr es gelöst um einerseits die NVMEs als schnellen Schreibcache in der Nextcloud zu nutzen und andererseits das Array als Massenspeicher ? Würde mir die Nextcloud app "external Storage" bei der realisierung helfen?

 

Danke für Hinweise, wie ich mich weiter schlau machen kann...

 

Hintergrund: In unserem lokalen Hobbyclub gibt es einige besondere Projekte, wo die Mitglieder viel miteinander kommunizieren mûssen um die Projekte zu realisieren. Es geht dann um ca 10-15 Personen, die mit verschiedensten Dokumenten und auch Meetings nach und nach zum Ziel kommen müssen. Ich dachte mir meine Nextcloud als Plattform im Hobbyclub anzubieten - online meetings sparen viel Zeit mit abendlichen Meetings irgendwo und man kann schnell in Kontakt mit anderen kommen.

Sind 10-15 Leute die intensiv zusammenarbeiten für meine einfache Installation auf Dockerbasis zu hoch gegriffen.

Natürlich muss ich ein vernünftiges Speicherkonzept finden, einerseits Schnelligkeit andererseits Sicherheit im Array (externe Backups selbstverständlich)

 

Fûr Tips und Hinweise bin ich dankbar.

Link to comment

Hallo, 

 

das Problem hatte ich anfangs auch.

 

Mittlerweile „gute“ Performance habe ich aus zwei Ansätzen bekommen.

 

Array-Aufbau:

Ich nutze meine HDDs (2x16TB) ausschließlich für Backup und Daten die nicht häufig verwendet werden.

 

Einen SSD Data-Pool aus 4x2TB (RAIDz1) unter ZFS. Das hat Vorteile beim Stromverbrauch. ZFS bietet den Vorteil, dass du Snapshots erstellen kannst. Und du kannst eine einfache Backupstrategie aufbauen. Auf dem Pool liegen die Daten von: Immich (90k Fotos & Videos), Nextcloud, Paperless, SMB shares, etc

 

Einen NVME Pool für Appdata:

Auf dem Pool laufen dann alle Docker und VMs.

 

Nextcloud-Aufbau:

Ich nutze Nextcloud auf postgreSQL v12 in Kombination mit Redis. Außerdem habe ich Nextcloud „abgespeckt“ und alle nicht benötigten Apps gelöscht..

 

Über Cloudflare Tunnel und 2FA (Two Factor Authentification) ist Nextcloud erreichbar. 


Das System läuft auf einem AliExpress N305 Board bei 13-16W.
 

Ich hoffe, das gibt dir ein paar Ideen.

 

IMG_1427.jpeg

Edited by BernhardBerlin
Link to comment

Hallo,

 

Damit die Nextcloud flott läuft halte ich sowohl das appadata Verzeichnis als auch das User Daten Verzeichnis rein auf dem Cache.

Ich selber nutze keinen Mirror, sondern Single Drive, und sichere jeden Abend meinen kompletten Cache auf das Array.

Dafür nutze ich das Backup Script von Mgutt hier aus dem Forum. Damit werden platzsparende inkrementelle Backups angelegt. Einmal die Woche geht dann noch eine Sicherung des Arrays auf eine externe Festplatte. 

Ich würde dir auch empfehlen kein BTRFS Mirror zu nehmen, da hier schon viele Probleme mit BTRFS hatten mich eingeschlossen. Ja es gibt auch genug die seid Jahren problemlos dir arbeiten, doch wenn es zum Glücksspiel wird ist es eben nichts für einen produktiveinsatz.

Wenn Mirror dann lieber auf ZFS umstellen. Nur bitte dann nicht alleinig auf Snapshots setzen bei der Backup-Strategie. Snapshots sind gut für die Versionierung aber nicht fürs Backup. Genau wie RAID kein Backup ist ist es auch bei Snapshots.

Nur "richtige" Kopien zählen, wenn es um Backups geht. Das nur am Rande erwähnt.

Ich würde wenn ZFS aber auf Stripe setzen somit größeren Cache erhalten und tägliches Backup aufs Array. Im Falle eines Ausfalls ist die Downtime die Länge die es braucht eine neue Platte zu besorgen und das Backup zurück zu spielen.

Im privaten Bereich halte ich das für die sinnvollere Variante.

Link to comment

Vielen Dank für die Antworten bisher... das zeigt schonmal 2 Ansätze

@Archonw Ich nehme an, Du nutzt als Cache dann wohl xfs als Filesystem ? Denn ich hatte irgendwo gelesen, dass Marc's (mgutt) script nicht für ZFS gedacht ist. Bei ZFS wäre ja dann snapshot und replication mit einem Scipt wie spaceinvader das nutzt sinnvoller. Wenn ich das umsetzen würde ist muss ich auch die Ziel-Datenträger auf ZFS laufen lassen...

Ich wollte ZFS aber erstmal ausklammern, bis die Unraid Vers 7 stabil läuft und vor allem auch offiziell released ist.

 

Die Zwischenlösung ist dann wohl:

Den Nextcloud Data share, der sich bisher auf dem Array befindet rüberkopieren auf den Cache - Docker mapping entsprechend anpassen und dann die Backupstrategie so anpassen, dass der gesamte CacheDrive jede Nacht auf das Array gesichert wird.

Link to comment

Ich bin auch noch nicht von ZFS überzeugt. Auch weil ich derzeit nur mit 16GB unterwegs bin und ZFS RAM intensiver ist.

Meine Platten laufen alle, sowohl Cache als auch Array, mit XFS. 

Um deinen Data Share von Array auf den Cache zu bekommen musst du deine Share Einstellungen anpassen. Aus Cache only bzw Primary auf Cache und den Mover auf Array-Cahe stellen. Dann einmal den Nextcloud Docker und die Datenbank aus und den Mover starten. Wenn der durch ist kann wieder alles gestartet werden.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...