Speicher für Nextcloud clever erweitern

„`html

Es ist schon ein merkwürdiges Gefühl, wenn die Nextcloud-Instanz plötzlich mitteilt, dass der Speicher knapp wird. Man hat doch alles schön eingerichtet, die Benutzer angelegt, die Synchronisation läuft – und dann diese Meldung. Dabei war die Festplatte doch eben noch groß genug. Aber Nextcloud ist nunmal kein statisches Archiv. Sie lebt, wächst, sammelt Versionen, speichert Chats, Kalenderdaten und natürlich all die Dateien, die die Kollegen fröhlich hochladen. Und irgendwann ist die Platte voll.

Was also tun? Einfach eine größere Festplatte einbauen? Oder gleich auf einen externen Speicher ausweichen? Die Frage nach dem Speicherplatz begleitet jede Nextcloud-Installation, ob privat auf einem Raspberry Pi oder im professionellen Rechenzentrum. Dabei zeigt sich: Die richtige Strategie hängt nicht nur von der Größe ab, sondern auch von der Performance, der Ausfallsicherheit und nicht zuletzt vom Budget. Ein spannendes Thema, das tiefer geht als nur „mehr Gigabyte kaufen“.

Nextcloud Speicher erweitern – warum das Thema nicht trivial ist

Nextcloud ist mehr als ein Dateimanager. Es ist eine Plattform für Kollaboration, Kommunikation und Workflow-Automation. Jede dieser Funktionen frisst Speicher. Die Versionsverwaltung legt mehrere Kopien einer Datei an, das integrierte Talk speichert Mediennachrichten, und die Datenbank quillt über mit Metadaten. Der Speicherbedarf wächst nicht linear, sondern oft exponentiell – vor allem wenn Teams mit großen CAD-Dateien, Videos oder Log-Daten arbeiten.

Ein interessanter Aspekt: Viele Admins unterschätzen den Overhead. Eine 10-GB-Videodatei kann durch Versionierung und Teilen auf 50 GB anwachsen, ohne dass die Nutzer etwas davon merken. Nextcloud komprimiert zwar, aber wer einmal das „Versions“-Menü geöffnet hat, weiß, wie schnell der Platz schwindet.

Hinzu kommt das Thema Datenhaltung. In Unternehmen gelten oft Compliance-Vorgaben: Daten müssen an bestimmten Orten bleiben, dürfen nicht ins Ausland wandern oder müssen nach bestimmten Fristen gelöscht werden. Das beeinflusst die Speicherarchitektur massiv. Ein simpler USB-Stick als Erweiterung ist da schnell raus – sowohl aus Performance- als auch aus Sicherheitsgründen.

Die Grundlagen: Wo liegen die Daten eigentlich?

Bevor man den Speicher erweitert, sollte man verstehen, wie Nextcloud Daten ablegt. Standardmäßig liegt alles im Verzeichnis data unterhalb der Nextcloud-Installation. Dort finden sich die Benutzerordner, Metadaten (wie Tags, Kommentare) und die Datenbank. Streng genommen ist die Datenbank der eigentliche Flaschenhals, aber das ist ein eigenes Thema.

Das data-Verzeichnis ist der Primary Storage. Wächst er über die Grenzen der Partition, ist der einfachste Weg: eine neue, größere Festplatte einbauen, das Verzeichnis umziehen, symlinken. Klingt simpel, ist es aber nicht immer, denn Nextcloud speichert relative Pfade. Wer die Daten verschiebt, muss die Konfiguration in config.php anpassen. Und wenn die Datenbank noch auf derselben Platte liegt, wird es knifflig.

Eine elegantere Methode ist die Nutzung des External Storage unterstützung. Nextcloud bietet von Haus aus die Möglichkeit, beliebige Speicherorte einzubinden: lokale Ordner, NFS-Freigaben, SMB- oder WebDAV-Freigaben, sogar Amazon S3-kompatible Objektspeicher. Das eröffnet ungeahnte Flexibilität, stellt aber auch Anforderungen an die Konfiguration.

Variante 1: Lokalen Speicher erweitern – der Klassiker

Wer nur den internen Speicher aufbohren will, hat heute mehrere Optionen. Günstig: eine SATA-SSD oder HDD nachrüsten. Für Server mit Hot-Swap-Fächern ist das Routine. Die Nextcloud-Daten einfach per rsync auf die neue Platte kopieren, den alten Pfad ersetzen oder als zweiten Mount einbinden. Aber Achtung: Nextcloud legt die Benutzerordner nicht alle unter einem Pfad ab – es gibt eine Ordnerstruktur mit zufälligen Dateinamen. Ein manuelles Verschieben kann zu Fehlern führen, wenn man nicht die richtigen Rechte setzt.

Besser: das occ-Kommando nutzen. Mit occ files:scan lässt sich der Dateibaum neu einlesen. Aber für den eigentlichen Umzug der Daten auf eine neue Partition reicht ein simples Kopieren oft nicht – die Dateirechte müssen stimmen (www-data oder der Webserver-Benutzer). Wer hier schlampig arbeitet, bekommt später Zugriffsfehler.

Ein Tipp aus der Praxis: Vor dem Umzug die Datenbank backupen (mysqldump oder pg_dump) und die Nextcloud in den Wartungsmodus versetzen (occ maintenance:mode --on). Dann die Daten kopieren, die config.php anpassen (Schlüssel 'datadirectory') und den Modus wieder ausschalten. Das ist der sichere Weg. Aber er ist aufwändig und erfordert eine Downtime.

Für viele Admins ist das in Ordnung, solange die Umgebung klein ist. Doch ab einer gewissen Größe wird man um externe Speicherlösungen nicht herumkommen – schon allein, um die Daten von der Systemplatte zu trennen. Denn Nextcloud wächst, die Systemplatte bleibt gleich. Und ein Ausfall der Systemplatte wäre fatal, wenn da auch die Daten liegen.

Variante 2: Network Attached Storage (NAS) – der schlaue Weg für Teams

Statt die Platte im Server zu füllen, kann man Nextcloud anweisen, seine Daten auf einem NAS zu speichern. Das bietet mehrere Vorteile: Das NAS lässt sich unabhängig skalieren, man kann RAID-Level wählen, es gibt oft Snapshots und das Backup wird extern gehalten. Nextcloud unterstützt NFS und SMB direkt – entweder via Mount auf Betriebssystemebene oder über die External Storage App.

Praktisch ist die Einbindung per NFS. Linux-Server hängen eine NFS-Freigabe ein, und Nextcloud legt dort das data-Verzeichnis ab. Wichtig: Die Latenz des Netzwerks spielt eine Rolle. NFS über Gigabit-Ethernet reicht meist für kleine Teams, aber bei vielen parallelen Zugriffen kann die Performance einbrechen. Abhilfe schafft ein schnelleres Netz (10 GE) oder ein dedizierter Speicherbus (z.B. InfiniBand).

SMB eignet sich eher für Windows-Umgebungen, ist aber in der Regel etwas träger. Beide Protokolle unterstützen keine echten Lock-Mechanismen für verteilte Dateisysteme – das kann bei Nextcloud zu Inkonsistenzen führen, wenn mehrere Instanzen auf denselben Speicher zugreifen. Deshalb gilt: Ein NAS als Primary Storage für eine einzelne Nextcloud-Instanz ist okay, aber nicht für einen Cluster.

Ein interessanter Fallstrick: Die External Storage App in Nextcloud erlaubt es, bestimmte Benutzer oder Gruppen auf externe Speicher zu leiten. Das ist prima, um z.B. große Mediendateien auf ein NAS auszulagern, während die schnellen SSD-Ordner für Office-Dokumente bleiben. Nur muss man die Performance im Auge behalten – und die Tatsache, dass die App nicht für jede Datei den vollen Index hat. Suchfunktionen werden dann langsam.

Variante 3: Objekspeicher – die moderne Wahl (und meine persönliche Empfehlung)

Objekt speicher, insbesondere S3-kompatible Lösungen, haben in den letzten Jahren stark an Bedeutung gewonnen. Nextcloud unterstützt S3 als Primary Storage seit Version 20 nativ. Das bedeutet: Alle Dateien der Benutzer landen nicht mehr im lokalen Dateisystem, sondern direkt in einem S3-Bucket. Das ist ein Paradigmenwechsel. Denn Objektspeicher sind horizontal skalierbar, bieten integrierte Redundanz und kommen oft mit Lifecycle-Richtlinien (z.B. alte Versionen automatisch löschen).

Anbieter wie MinIO, Ceph oder Scaleway bieten S3-kompatible Speicher an, die auf eigener Hardware laufen. Oder man nutzt die großen Cloud-Dienste: Amazon S3, Google Cloud Storage, Wasabi, Backblaze B2. Letztere sind günstig, aber man verliert die Kontrolle über die Daten – für manche Unternehmen ein No-Go. Der Kompromiss: eine eigene MinIO-Instanz im Netzwerk, die S3-Endpunkte bereitstellt. Das ist heute meine bevorzugte Lösung.

Die Einrichtung in Nextcloud: In der config.php ein Array für 'objectstore' eintragen, mit Zugangsdaten, Bucket-Name und Endpunkt. Nextcloud kümmert sich um den Rest. Die Datenbank speichert weiterhin Metadaten, aber die eigentlichen Dateien liegen im S3-Bucket. Das hat einen großen Vorteil: Die Performance des Dateisystems wird entkoppelt. Selbst wenn der S3-Speicher mit HDDs arbeitet, kann Nextcloud durch Caching (Redis, APCu) die Antwortzeiten akzeptabel halten.

Aber Vorsicht: S3 als Primary Storage hat eine Tücke. Nextcloud erwartet, dass der Objektspeicher „idempotent“ ist – also dass die gleiche Datei beim mehrfachen Hochladen nur einmal gespeichert wird. Das ist bei S3 der Fall. Allerdings kann es bei parallelen Schreibvorgängen zu Konflikten kommen, wenn zwei Benutzer dieselbe Datei bearbeiten. Nextcloud löst das durch Locking, aber das setzt voraus, dass der Objektspeicher Locking unterstützt. Nicht jeder S3-Anbieter tut das. MinIO und Ceph bieten es, die großen Public Clouds teilweise auch. Man sollte vorher testen.

Ein weiterer Punkt: Kosten. S3-Speicher ist in der Regel günstig pro GB, aber der Traffic kann teuer werden, besonders wenn viele Benutzer remote darauf zugreifen. Ein CDN oder ein lokaler Cache kann helfen. Für Teams, die viel mit großen Dateien arbeiten (CAD, Video), lohnt sich die Rechnung: S3-Speicher plus lokaler SSD-Cache ist oft preiswerter als ein teures SAN.

Technische Umsetzung: Schritte zur Speichererweiterung mit S3

Ich nehme an, Sie haben sich für S3 als Primary Storage entschieden. Der Weg dahin ist nicht trivial, aber dokumentiert. Die offizielle Nextcloud-Dokumentation beschreibt das Vorgehen. Hier eine Kurzfassung aus der Praxis:

1. Entscheiden Sie, ob Sie einen bestehenden Nextcloud umziehen oder eine neue Instanz aufsetzen. Ein nachträglicher Umzug von lokalem Speicher auf S3 ist möglich, aber aufwändig. Sie müssen alle Daten aus dem alten data-Verzeichnis kopieren und in den S3-Bucket laden – aber die Dateinamen sind nicht einfach die Originalnamen, sondern gehashte IDs. Das geht am besten mit dem occ-Befehl occ s3:map-bucket oder einem Skript. Ich empfehle, von Grund auf neu zu beginnen, wenn die Instanz noch klein ist.

2. Richten Sie den S3-Dienst ein. Für MinIO: Container starten, Bucket anlegen, Zugangsschlüssel erstellen. Dann in der config.php:

'objectstore' => [
    'class' => '\\OC\\Files\\ObjectStore\\S3',
    'arguments' => [
        'bucket' => 'nextcloud',
        'region' => 'us-east-1',  // egal bei MinIO
        'key'    => 'YOUR_KEY',
        'secret' => 'YOUR_SECRET',
        'hostname' => 'minio.example.com',
        'port'   => 9000,
        'use_ssl' => true,  // oder false, je nach Setup
    ],
],

Wichtig: Bei MinIO muss use_path_style auf true gesetzt werden, weil MinIO den alten S3-Pfad-Stil verwendet. Bei AWS S3 ist das anders. Die Einstellungen finden Sie in der Nextcloud-Doku unter „Object Storage Support“.

3. Testen Sie den Zugriff. Legen Sie eine Testdatei an, prüfen Sie, ob sie im Bucket erscheint. Ein occ files:scan --all kann helfen, Inkonsistenzen zu erkennen. Bei Fehlern: Log-Datei lesen (nextcloud.log). Die häufigsten Probleme: falsche Endpunkt-Konfiguration, fehlende SSL-Zertifikate oder Ports nicht erreichbar.

4. Caching nicht vergessen. S3 ist vergleichsweise langsam bei vielen kleinen Dateien. Ein Redis-Server als File Locking und Transactional File Locking verbessert die Performance. Auch die Verwendung von APCu für den lokalen Cache ist empfehlenswert.

5. Backup-Strategie anpassen. S3-Buckets sind nicht automatisch backupsicher. Zwar haben sie Redundanz (z.B. Cross-Region-Replication), aber versehentliches Löschen oder ein Ransomware-Angriff können dennoch Schaden anrichten. Nutzen Sie Bucket-Versioning und regelmäßige Snapshots (z.B. mit MinIO Object Retention). Auch die Datenbank muss weiterhin gebackupt werden – sie enthält die Metadaten und ohne sie ist der S3-Bucket ein unstrukturierter Datenhaufen.

Global Scale: Nextcloud als verteiltes System

Wer wirklich massiv skalieren muss – mehrere Standorte, Tausende Nutzer – der kommt an Nextcloud Global Scale vorbei. Das ist ein Konzept, bei dem die Nextcloud-Instanz in mehrere Cluster aufgeteilt wird, die jeweils einen eigenen S3-Bucket und eine eigene Datenbank haben. Die Benutzer werden auf die Cluster verteilt, können aber untereinander Dateien teilen. Der Speicher wird dabei über die Buckets hinweg verteilt.

Global Scale ist komplex. Es erfordert einen zentralen Lookup-Server (Global Site Selector) und eine Synchronisation der Metadaten zwischen den Clustern. Aber es ermöglicht eine praktisch unbegrenzte Skalierung. Für die meisten Unternehmen ist das aber überdimensioniert. Interessant ist, dass Nextcloud auf diese Weise Speicher aus verschiedenen Quellen kombinieren kann – ein Cluster nutzt MinIO, ein anderer wasabi, ein dritter einen lokalen NFS. Das ist technisch möglich, aber verwaltungstechnisch anspruchsvoll.

Performance und Cache: Der Flaschenhals sitzt woanders

Wenn der Speicher erweitert ist, stellt sich schnell die Frage: Warum ist Nextcloud trotzdem langsam? Oft liegt es nicht an der Platte, sondern an der Datenbank. Die Indizes wachsen, die Queries werden komplexer. Ein MySQL oder MariaDB mit guter Konfiguration (InnoDB Buffer Pool, Query Cache) ist Pflicht. Bei vielen Dateien hilft das Umstellen auf PostgreSQL, das bei grossen Metadatenmengen oft besser skaliert.

Ein weiterer Tipp: Verwaltung von Dateien mit dem occ-Befehl: occ files:cleanup löscht verwaiste Einträge. Auch die occ preview:generate für Vorschaubilder sollte man nicht unterschätzen – diese generieren Unmengen an temporären Dateien auf der Platte. Wer Speicher sparen will, kann Vorschaubilder auf 256×256 Pixel limitieren oder ganz abschalten.

Nicht zuletzt: Der Arbeitsspeicher. Nextcloud selbst ist PHP-basiert und braucht ausreichend RAM für den Redis-Cache, APCu und die Datenbank. Wer bei einer Nextcloud-Instanz mit 50 Benutzern nur 2 GB RAM hat, wird sich über Performance-Beschwerden wundern. Der Speicher kann noch so schnell sein – wenn die CPU und der RAM drosseln, bringt das nichts.

Backup und Ausfallsicherheit: Was passiert bei Speicherverlust?

Die größte Sorge beim Thema Speichererweiterung ist der Datenverlust. Ein RAID schützt vor Plattenausfall, aber nicht vor einem versehentlichen Löschen oder einem Ransomware-Angriff. Nextcloud bietet ein Tool zur Ransomware-Erkennung, aber es ist nicht perfekt. Ein externes Backup (3-2-1-Regel) ist unverzichtbar.

Bei lokalen Speichern: Rsync auf einen anderen Server, Snapshots auf NAS, oder ein Backup-Plugin wie „files_backup“ (gibt es von Drittanbietern). Bei S3 als Primary Storage: Zusätzlich zum S3-eigenen Backup kann man die Datenbank regelmäßig dumpen und in einem anderen Bucket speichern. Achtung: Die S3-Dateien haben keine lesbaren Namen – ein Backup des gesamten Buckets ohne Datenbank ist nutzlos.

Ich habe in der Praxis erlebt, dass ein Admin den S3-Bucket aus Versehen geleert hat. Die Wiederherstellung dauerte Tage, weil die Datenbank noch da war, aber die Dateien im Bucket fehlten. Erst mit Versioning und einem Point-in-Time-Restore war es möglich. Das zeigt: Speichererweiterung ohne Backup-Strategie ist fahrlässig.

Kostenfalle: Wann lohnt sich Eigenbau, wann die Cloud?

Die Kosten für Speicher sind ein Dauerthema. Viele Unternehmen setzen auf lokale Storage-Systeme, weil sie die monatlichen Cloud-Kosten scheuen. Aber die Rechnung ist komplex. Ein eigenes NAS mit RAID 5 und 4 TB kostet einmalig vielleicht 500 Euro, plus Strom und Wartung. Ein S3-Dienst wie Wasabi verlangt etwa 6 Euro pro TB im Monat (ohne Traffic). Bei 4 TB sind das 24 Euro monatlich – nach drei Jahren also 864 Euro. Plus Traffic, der bei Wasabi inklusive ist.

Dafür spart man sich die Administration der Hardware, den Ersatz bei Defekten und das Backup-Management. Nicht zu unterschätzen ist auch die Zeit, die für das Einrichten und Troubleshooting benötigt wird. Für ein kleines Team mit Budget ist die Cloud-Lösung oft günstiger. Für Unternehmen mit hohen Datenmengen (>50 TB) kann der Eigenbau mit MinIO und günstigen HDDs rentabler sein. Hier muss jeder selbst rechnen.

Ein interessanter Aspekt: Nextcloud selbst ist kostenlos, die Apps ebenfalls. Aber der Betrieb – Speicher, Server, Wartung – kostet Geld. Wer sparen will, sollte die Speichererweiterung nicht als einmalige Aktion betrachten, sondern als fortlaufenden Prozess. Nextcloud wächst, und mit ihr die Kosten. Ein Kostenplan mit jährlicher Überprüfung ist empfehlenswert.

Zukunftsperspektiven: Speicher ist mehr als reine Kapazität

Nextcloud arbeitet daran, den Speicher intelligenter zu verwalten. Mit Version 27 kam das File Access Control, das den Zugriff auf bestimmte Speicherorte regelt. KI-Features wie „Recognize“ (Gesichtserkennung, Objekterkennung) generieren Metadaten, die zusätzlichen Speicherplatz benötigen. Die Frage nach dem Speicher wird also nicht weniger, sondern komplexer.

Ein Trend: Die Trennung von Compute und Storage. Nextcloud als reine Applikation, die auf einen zentralen Objektspeicher zugreift – das ist das Modell, das sich durchsetzen wird. Für Admins bedeutet das: weniger Kopfzerbrechen um RAID, Plattenausfälle und Performance-Tuning, mehr Fokus auf Skalierung und Sicherheit. Die Speichererweiterung wird dann zu einer Konfigurationsänderung im Dashboard, statt zum physischen Einbau einer Platte.

Bis es so weit ist, bleibt die manuelle Erweiterung eine Kernaufgabe. Aber mit den richtigen Werkzeugen – External Storage, S3 Primary, NAS-Anbindung – ist sie gut zu bewältigen. Wichtig ist, sich vorher klar zu machen, welche Anforderungen an Performance, Ausfallsicherheit und Kosten bestehen. Daran scheitern die meisten Projekte. Nicht an der Technik, sondern an der fehlenden Planung.

Wer also vor der nächsten Speichererweiterung steht: nehmen Sie sich die Zeit, die verschiedenen Optionen zu vergleichen. Der Artikel hat gezeigt, dass es viele Wege gibt – aber nicht jeder ist für Ihre Umgebung der richtige. Und vergessen Sie nicht: Nextcloud ist ein lebendiges System. Der Speicher wird wieder voll werden. Aber das ist ja auch ein gutes Zeichen – es wird genutzt.

„`