NextcloudPi SD-Karte läuft voll

Hallo!

Ich habe mir nach der Anleitung hier mit einem Raspberry Pi 4b einen Nextcloud Fileserver eingerichtet.

Die SD Karte hat 32 GB und am USB Slot hängt noch ein 256 GB Stick, den ich auch dachte, zur Nutzung für vier Accounts eingerichtet zu haben.

Seit einigen Tagen gibt mir der Server nur noch Internal Server Error aus. Das NC Portal ist noch erreichbar, ebenso kann ich per SSH Befehl über die Linux Shell auf das Gerät zugreifen. Dashboard und sämtliche Clients funktionieren nicht.

Die nextcloud.log ist so voll, dass man den Wald vor lauter Bäumen nicht sieht, aber ich meine, dass es an „zu wenig Disk Space“ liegt. Das verwundert, weil die 256 GB und auch der Platz der von mir zugewiesenen vier Accounts bei weitem nicht ausgereizt ist.

Ich fand nun heraus, dass (dev/?)mmcblk0p2 zu 100% (ca. 30 GB) voll ist und ich vermute, dabei handelt es sich um eine Partition der SD Karte.

Aus mir unerfindlichen Gründen werden scheinbar Dateien anstelle auf den USB-Stick also auf die SD-Karte gespeichert. Womöglich handelt es sich auch um den Papierkorb?

Hat jemand eine Idee, wie ich diese Vermutung überprüfen, wieder Platz auf der SD-Karte freigeben und ein erneutes Volllaufen dieser verhindern kann?

Danke!

Edit: Möglicherweise habe ich das Problem gelöst. Zunächst brachte der Befehl

apt-get clean

gerade so viel Platz frei, dass das Dashboard von selbst (zu meiner Überraschung ganz ohne reboot) wieder zugänglich wurde. Anschließend habe ich dort unter

Dateien->Gelöschte Dateien

alle Häkchen gesetzt und alles endgültig gelöscht.

mmcblk0p2 ist nun von 100% Use auf 19% runter und es scheint alles wieder ordnungsgemäß zu funktionieren.

Ich mache mich nun auf die Suche für die Einstellung des Verzeichnisses für den Papierkorb.

Schau Dir mal mit dem Befehl „lsblk“ an, ob der USB-Stick präzise so gemounted ist, wie er soll.
Es gibt Fälle, wo der Stick nicht in das erwünschte Datenverzeichnis (z.B. /media/USB-stick-von-hannes/") gemounted wird und alles Datenschreiben, von dem Du denkst, es landet auf dem Stick (weil Du z.B. in „/media/USB-stick-von-hannes/ncdata“ schreiben läßt) einfach in einem Verzeichnis (ohne Mount) namens „/media/USB-stick-von-hannes/ncdata“ auf der SD-Karte landen, während der USB-Stick z.B. unter „/media/usbdrive“ gemounted wurde.
Das kann tückisch sein, weil man es nicht überall so leicht erkennt.
Und wenn in dem Mount-Verzeichnis erstmal „richtige“ Dateien rumliegen mounted da nix mehr.

1 „Gefällt mir“

Außerdem kannst Du mit ncdu oder dem folgenden Befehl kucken, welche (zehn) Ordner den meisten Platz einnehmen und so vielleicht darauf schließen, was den hohen Speicherplatzverbrauch verursacht:

du -Sh * | sort -rh | head -n10
1 „Gefällt mir“

Ich nutze tatsächlich gerne
ncdu -x
für so etwas. Du musst mit dem rootverzeichnis anfangen, dann werden dir die Verzeichnisse der Größe nach gezeigt, mit den Pfeiltasten gehst du auf das Verzeichnis, dass dich interessiert und mit Enter wechselst du dann darein.
df -h
zeigt dir auch an, was wieviel belegt ist. Das wäre bei so einer Problematik natürlich für mich der erste Einstieg.
Interessant wäre wahrscheinlich auch die fstab, die die gemounteten Laufwerke anzeigt.
cat /etc/fstab

1 „Gefällt mir“

Erstmal vielen lieben Dank für die ganzen nützlichen Tipps. Ich bin die mal durch gegangen:

lsblk zeigt mir den USB Stick als sda bzw. sda1 an. Bei Mountpoints steht nichts. Passt das so?

Die SD Karte wird wie vermutet als mmcblk0 bezeichnet, mit einer Bootpartition und einer anderen, größeren Partition (die durch den NC - Papierkorb voll gelaufen ist). Beide haben Mountpoints zu /boot/firmware bzw. /var/log.HDD

Der „du -Sh - Befehl“ sagt mir, dass die Dateien der Nutzer allesamt in Ordnern mit dem Pfad /opt/ncdata/data gespeichert sind. Ob diese nun tatsächlich auf dem Stick oder der SD liegen, vermag ich so nicht zu erkennen.

Das ncdu Kommando kann mein System nicht finden. Liegt es vielleicht daran, dass ich eine Arch Distribution verwende?

Der Befehl df -h zeigt mir, dass mmcblk02 wieder deutlich größer geworden ist, ohne dass der NC - Papierkorb erneut befüllt worden wäre. Zusammen mit der Info des lsblk Befehls, dass keine Mountpoints für den USB Stick gesetzt sind, fürchte ich, dass tatsächlich die SD - Karte für die Dateiablage aller Nutzer benutzt wird.

cat /etc/fstab

spuckt folgendes aus:

UUID=XXXX(eine längere Adresse) / ext4 defaults,noatime,commit=120,errors=remount-ro 0 1
UUID=XXXX (eine kürzere Adresse) /boot/firmare vfat defaults 0 2
tmpfs /tmp tmpfs default, nosuid 0 0

Ich verstehe das zwar nicht ganz, vermute aber, dass es sich hierbei um die zwei Partitionen der SD-Karte handelt und der Stick, wie bereits befürchtet, tatsächlich nicht gemountet bzw. verwendet wird. Ich dachte allerdings, ich hätte das richtig eingerichtet.

Zusätzlich habe ich die Information gefunden, dass NCpi angeblich den Papierkorb tatsächlich auf die SD Karte schreibt, weshalb einige dazu raten, den Papierkorb komplett auszuschalten (als admin ncp per NC - Dashboard), um direkt unwiederbringlich zu löschen, oder zumindest eine Zeile in die config.php einzufügen, die das automatische Leeren des Papierkorbs nach einer Zeit x ausführt.

Letzteres habe ich nun gemacht, fürchte aber, dass ich trotzdem bald wieder Probleme bekommen werde, da womöglich der USB - Stick wirklich nicht bedient wird.

Hat jemand eine Idee, wie ich das überprüfen kann, den USB-Stick nötigenfalls entsprechend mounte und wie ich anschließend die Dateien aller Nutzer möglichst problemlos von der SD Karte zum hoffentlich dann funktionierenden USB-Stick umziehen kann, ohne nochmal komplett von vorne anfangen zu müssen?

Danke!

Edit:

Andererseits: Gehe ich im Dashboard auf die Dateien meines Kontos, zeigt er mir die Nutzung von „901,8 MB von 100 GB“ an. Das ist der Wert, den ich mir von 256 GB des Sticks zugewiesen habe. Da die SD Karte ja nur 32 GB fasst, müsste NCpi ja doch den Stick auf dem Schirm haben. Es sei denn, dass keine Fehlermeldung vorgesehen ist, wenn man bei der Einrichtung die maximale Speicherkapazität des betreffenden Mediums überschreiten sollte..

Edit 2:

Laut NCpi Panel sollte der USB Stick automatisch unter /media gemountet werden (was er aber ja möglicherweise nicht tut).

Es existieren allerdings Verzeichnisse dort, z.B. /media/USBdrive/Cloudstorage/nextcloud

Dieser Ordner ist mit lauter „oc_…“ - Dateien befüllt.

Die config.php verweist in der Zeile

datadirectory => '/opt/ncdata/data

allerdings offensichtlich nicht dorthin.

Hatte auch das Problem, dass die Ruth-Partition volllief …
Grund bei mir war, dass nach der Installation resize2fs nicht ordentlich beendet wurde

Was sagt bei dir:
systemctl status resize2fs_once.service
?

M.E. nein.
Der Stick ist dann nicht gemounted z.B. unter „/media/usbstick/“. Etwas in der Art sollte da aber stehen. Ein nicht gemounterter Stick ist wertlos für Dich.
Die Daten ballert er Dir nach Deinen Ausführungen zu schliessen munter nach „/opt/ncdata“ lokal auf die SD-Karte.

Oh Mann, Leute!

Nochmals vielen Dank, aber so langsam habe ich die Nase voll. Und entschuldigt bitte meine ganzen Anfängerfragen.

Im Zuge meiner Tüfteleien habe ich mit

sudo apt-get update && sudo apt-get dist-upgrade -y

ein Update durchgeführt.

Nach erneutem Login per SSH erschien die Nachricht, dass wegen des Kernel-Updates ein Reboot erforderlich sei.

Danach ging gar nichts mehr. Der Pi wird vom Router nicht mehr eingebunden und ist somit nicht mehr erreichbar. Per HDMI kann ich keinen Monitor anschließen, weil ich kein Kabel mit einem kleinen HDMI Stecker habe. Auf die SD-Karte habe ich noch Zugriff per PC.

Besteht noch Hoffnung für den Pi und meine ursprüngliche Einrichtung von Nextcloud?

Hoffnung besteht immer, ich würde aber wahrscheinlich zu einer Neuinstallation tendieren, das geht einfach schneller.
Ein paar Worte der Kritik
Wenn der Raspi ncdu nicht findet, dann muss das installiert werden
sudo apt install ncdu
Wenn du noch nicht lange mit Linux unterwegs bist, dann zeig df -h doch einfach und zeige bitte nicht deine Interpretationen der Ausgabe.
Wenn man dich bittet, die fstab zu zeigen, dann zeige sie doch einfach. Verstümmel solche Ausgaben nicht, sonder zeige sie in aller ihrer Pracht. Einfach mit der Maus den Text kopieren und hier einfügen.
Bei einem Kernelupdate kann es sein, dass der WLANtreiber nicht mehr funktioniert. Ich würde so einen Raspi, der auch noch sicher und stabil im Netz laufen soll, auf jeden Fall mit dem Ethernetkabel anschliessen.

2 „Gefällt mir“

Danke, die Kritik ist sicher berechtigt.

Der Raspi war tatsächlich per Ethernetkabel mit dem Router verbunden, also kann es m.E. nicht am WLan-Treiber liegen.

Auffällig auch, dass kurz vor dem letzten Reboot die Versionsangabe 1.55.4 von NCpi zu sehen war, obwohl es auf GitHub weiterhin nur bis 1.55.3 geht. Vielleicht hat es mir eine instabile Nightly draufgezogen?

Jedenfalls düse ich erstmal heute zum Saturn und hoffe, dass die mir einen entsprechenden HDMI-Adapter verkaufen können. Vielleicht bekomme ich ja direkten Zugriff und kann so noch was retten.

Verstehe ich das richtig, dass durch das erneute Flashen der SD-Karte mit dem 1.55.3er Image auch der Kernel wieder dahin zurückgesetzt wird?

NCP 1.55.4 ist aktuell und funktioniert grundsätzlich.

Es gibt aber eben bugs in NCP bzgl. des Verschiebn des Datenverzeichnisses und dem Mounten dabei.

Das behebt man manuell direkt nach einer frischen Installation.

Und von einem Distro-Upgrade würde ich immer die Finger lassen, wenn ich kein Full-Backup habe.

Sicher, dass du genügend Speicher frei hattest für das Update?

Du solltest dir überlegen, die Karte raus zu schmeissen und das System lieber auf einen zweiten USB-Stick, besser eine externe Festplatte zu transferieren. Die Karten halten nicht lange, es sei denn, du machst das was.
Der USB-Stick oder die externe SSD sind jedoch auch deutlich schneller. Du musst nur in raspi-config einstellen, von wo er booten soll.

Aaaaalso:

Ich habe alles nochmal neu aufgesetzt. Am Monitor angeschlossen war nur der Regenbogenschirm zu sehen. Ein erneutes Flashen der SD-Karte setzte alles auf 0 zurück.

Diesmal habe ich gleich in der php.ini die Maximale Filesize und post_max_size auf 5 G erhöht, sowie das memory_limit auf 1024 gesetzt. Output_buffering = 0 und die maximale Anzahl an Dateien, die in einem Job bearbeitet werden können ist nun 200.

Mittlerweile habe ich auch einen Mounteintrag für den USB-Stick und der "du Sh - Befehl " sagt mir, dass meine Dateien auch tatsächlich dort landen.

Vielen Dank für die vielen nützlichen Tipps. Als nächstes werde ich mich darum kümmern zu lernen, wie man Backups nach der Neuinstallation wieder draufzieht. Musste alles nochmal machen, inklusive Letsencrypt - Zertifikat usw..

SD-Karte und USB-Stick sind meistens keine guten Speichermedien. Besser du steigst auf eine SSD um.

1 „Gefällt mir“