Serveranforderungen für NextCloud

Im Moment läuft NextCloud an unserer Schule auf einem Server, auf dem auch so ziemlich alles andere läuft (z.B. die Rechnerverwaltung usw.)
Problem an der Geschichte ist, dass es dadurch zu Engpässen in der Leistung kommen kann - zumal durch Corona die Nutzung von Clouddiensten doch etwas forciert wird.

Die Frage wäre jetzt, wie wir die Hardware für einen Server in unserer Schule auslegen. Als Hintergrund: Wir müssen Accounts und Daten für ungefähr 2,000 Personen speichern. Zum überwältigenden Teil werden diese Daten aber nur Bilder und Office-Dokumente sein. Allerdings würden die Kollegen auch gerne kollaborative Tools nutzen, die als Plugin für Nextcloud existieren.

Daher jetzt die Frage, wie wir CPU, RAM und sonstige Hardware dimensionieren sollten. Es werden allerdings auch nicht alle User gleichzeitig Zugriff nehmen - aber mehrere Klassen gleichzeitig sind denkbar.

Hallo @Johannes_Hass

Zur Zeit ist AMD Ryzen der Preis/Leistung beste Prozessor am besten mit 32GB - 64GB RAM - das dürfte so die Luxusversion sein :slight_smile: aber RAM schadet wirklich nicht, denn je nachdem wieviele Concurrent User du erwartest, müsste der Webserver eine ganze Reihe Offene Verbindungen bereitstellen müssen, der PHP-Cacheservice auch entsprechend dimensioniert sein und die Datenbank ist ja auch schneller wenn sie mehr Ressourcen haben muss.
Die Disks sind eine Ansichts- und Geldfrage, da würde ich für System und DB eine SSD (NVME PCIe) bevorzugen, während die Daten auch auf einem Disk-HD RAID1 laufen können.
Auf jeden Fall das Datenlaufwerk auf einem eigenen RAID Laufwerk!
Bei ca. 2000 User und einer Quota von ca. 12GB kommen dann schon ein paar Tera zusammen, was für das Datenlaufwerk dann schon eine rechte Hausnummer wäre.
Das Netzwerk muss nicht unbedingt Loadbalanced sein, kann aber auch einen zusätzlichen Boost bedeuten, vor allem wenn man Desktop Client und WebGUI auf verschiedene Ausgänge legen kann.

Hoffe das hilft mal als Pi-mal-Handgelenk Rechnung

2 Likes

Jo, danke, das gibt mir so eine ungefähre Stoßrichtung.

Vielleicht solltest du auch noch die unterschiedlichen Ablagemöglichkeiten von Dateien beachten.

1.) direkter Nextcloud-Ordner auf dem Server/separate Platte (natürlich außerhalb Webserver-Root)
2.) externe Speicher per Local (wahrscheinlich nicht relevant)
https://docs.nextcloud.com/server/18/admin_manual/configuration_files/external_storage/local.html
3.) externer Speicher per SMB/CIFS (falls Fileserver vorhanden)
https://docs.nextcloud.com/server/18/admin_manual/configuration_files/external_storage/smb.html

Sollte 3.) relevant sein, so würde ich wohl den Speicherplatz unter Nextcloud je Anwender stark minimieren und nur für den tatsächlichen Austausch vorsehen. Weitere Möglichkeiten würde ich an dieser Stelle (serverseitig) nicht in meine Überlegung einbeziehen.

und bitte Backup und Ausfallsicherheit (und Monitoring?) nicht vergessen: was machst du, wenn (worst case) der Server auf einmal kaputt ist und einfach nicht mehr angeht?
CIFS würde ich als Netzwerkdateisystem (besonders mit einem proprietären Server) überhaupt nicht emfehlen: es ist nicht nur schlecht, fehleranfällig und langsam, oft wird vom Hersteller der proprietären Software auch ohne Ankündigung etwas verändert, und Dinge funktionieren überraschend nicht mehr (“Windoze Update”).
VIEL ERFOLG!

Wichtig ist auch die Optimierung von z.B. Apache2 (http2.0) und php-fpm.
Hier kann man mit Optimierung Speed rausholen !!!
SSD finde ich jetzt nicht so wichtig.
Lieber eine schnelle SATA und dafür mehr RAM.
Wenn Linux auf dem PC laufen soll, dann benötigt man nicht sooo viel RAM.

ich mach mal wieder werbung für schnelles aufsetzen.

falls hier konfig experten mitlesen: merge request sind willkommen. wenn jemand vorschläge zur verbesserung der config hat, kann er sich gerne an der weiterentwicklung beteiligen. :wink:

Wichtig erscheint mir auch der Zweck der Nextcloud. Ist es eher eine Austauschplattform oder ist es gleichzeitig das “Netzwerklaufwerk”. Ich kenne aus dem Internet Beschreibungen von Schulen und Universitäten, die eindeutig schreiben, dass die Nextcloud NICHT gesichert wird. Der Anwender muss all seine Daten auch woanders aufbewahren. Das kann sowohl der eigene PC als auch ein Netzwerklaufwerk sein. Andere Schulen und Universitäten kombinieren hingegen Netzwerklaufwerk mit Nextcloud und backupen die Daten wie normale Netzwerklaufwerke.
Das sollte man eindeutig festlegen und auch entsprechend kommunizieren.

1 Like

Aha, man kann einen großen Ordner als Netzlaufwerk betreiben (smb) und den selben in der Nextcloud für bestimmte User freigeben.

Geht es auch, dass Dateien pro User auf dem Netzlaufwerk liegen (private Dateien) auf die die User auch per Nextcloud zugreifen können?

Detailliertere Frage hier, würde mich freuen wenn jmd.was dazu sagen kann: Setup for local network (LAN): client yes or no?

Ich sehe hier mindestens drei Möglichkeiten:
a.) Pfad für SMB und Nextcloud sind identisch
-> wahrscheinlich problematisch aufgrund der Linux-Benutzer (SMB-Benutzer vs. Webserver-Benutzer)
b.) Verwendung von “Local” in Nextcloud (evtl. auch problematisch aufgrund Linux-Benutzer
c.) Verwendung von “smb” in Nextcloud

Vielleicht solltest du alle drei Varianten auf einen Testsystem ausprobieren

Hierzu würdest du die Möglichkeit “smb” verwenden.

https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/external_storage_configuration_gui.html