Seafile/NGINX auf Raspi als NAS Webinterface
lima-city → Forum → Heim-PC → Betriebssysteme
aggregation
code
datei
datenverkehr
datum
festplatte
frage
http
karte
kaufen
log
ordner
paar
performance
port
record
server
switch
url
windows
-
Hallo liebes Lima-Forum,
ich habe mir vor ein paar Tagen ein NAS mit 2x4TB gekauft um dort Backups etc. drauf zu speichern. Da es billiger war die Festplatten mit einem billig NAS zukaufen, als die Festplatten einzeln zukaufen, sind die Features dem entsprechen mickrig und das Webinterface nicht wirklich schön oder funktional. Daher habe ich bei der NAS den Remotezugriff und den FTP Server abgeschaltet. Es ist jetzt nur noch ein SMB-Server im lokalen Netz mit Passwortschutz aktiviert.
Da ich hier zuhause noch einen Pi2 über hatte, wollte ich auf dem ein Webinterface mit mehr Funktionen aufsetzen und den Pi die Dateien über SMB auf das NAS schreiben lassen.
Dafür habe ich auf dem Pi einen Seafile-Server installiert, damit dieser den Datenverkehr nur verschlüsselt sendet ist der Seafile-Server im FastCGI Modus und Nginx empfängt den Traffic von außen. Für das Zertifikat ist Let’s encrypt installiert.
Damit der Pi2 bei Problemen E-Mails verschicken kann habe ich postfix installiert und es so eingestellt, dass es über meinen gmail Account die E-Mails an mich sendet.
Weiterhin prüft clamAV einmal täglich den cloud Ordner auf Viren und fail2ban ist so eingestellt das es nach 3 Fehllogins beim Seafile-Server den Zugang sperrt.
Da der Pi2 nur eine 8GB SD-Karte hat, musste ich den nginx temp Ordner mit auf die SMB Freigabe packen (/var/lib/nginx ist jetzt nur ein Sym-Link von /media/cloud/tmp/nginx).
Das klappt auch alles wunderbar, allerdings… und da kommen wir endlich zu meinem Problem, ist es so dass der Upload über Seafile immer konstant bei ca. 2,8-3 Mbit/s liegt, allerdings dauert es ca. 5 Minuten bis ein Download der größer als ca. 100MB ist überhaupt startet und dann downloadet der Browser auch nur mit einer Geschwindigkeit von 53kbit/s und bricht des Öfteren auch einfach ab.
Jetzt ist meine Frage woran kann das liegen, dass der Upload vollkommen Problemlos läuft, der Download allerdings fast unmöglich ist, das Webinterface ist ebenfalls etwas träge, aber es reagiert wenigstens merklich.
Nachfolgend sind meine verschiedenen Configs:
NGINX - seahub sites-available: http://pastebin.com/yt3u470h
NGINX - ssl.conf: http://pastebin.com/2r6chAVC
nginx.conf: http://pastebin.com/2LQeXtAr
seafile.conf: http://pastebin.com/8RvGcyAK
Seafile – ccnet.conf: http://pastebin.com/MGUxFch6
Seafile – seahub_settings.py: http://pastebin.com/452Wr6xZ
Fstab (smb mount): http://pastebin.com/pNZwv01c
NGINX – seahub.access.log: http://pastebin.com/XnT5avJA (es gibt kein error.log? :/)
Seafile – ccnet.log: http://pastebin.com/WquBqj45
Seafile – controller.log: http://pastebin.com/0F23yEa8 (die anderen Logs von Seafile sind leer)
MfG
Cpk2011
Edit: Mir ist gerade aufgefallen das bei einem Download, nginx die Datei vom Seafile-Server erst in einen anderen Ordner /var/lib/nginx/proxy/2/00 kopiert und erst nach dem die Datei vollständig kopiert ist an den Browser aushändigt. Kann man nginx nicht so einstellen, dass es die Datei direkt vom Seafile-Server zum Browser streamt, ohne das er die Datei erst noch in sein eigenes Verzeichnis kopiert?
Beitrag zuletzt geändert: 21.7.2016 15:11:07 von computerkurs2011 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
ich denke du hast mind. 1 Flaschenhals und zwar langsame Festplatten, kannst du dein NAS nicht mit einer SSD aufrüsten? 2. möglicher Flaschenhals ist deine Netzwerkverbindung vom NAS zum Pi. Wie hoch ist den hier der Durchsatz?
-
Hallo autobert,
das aufrüsten mit einer SSD wird wohl schwer. Wie soll ich 8TB als SSD für einen annehmbaren Preis kaufen?
Der Pi ist mit dem Netzlaufwerk über einen Gigabit Switch verbunden. Die NAS unterstützt 1000 Mbit/s der Pi nur 100 Mbit/s.
Hier einmal ein paar Werte zum Durchsatz....
Pi --> SMB (schreiben):
******@raspberrpi:~ $ dd if=/dev/zero of=/media/cloud/tempfile bs=1M count=1024 conv=fdatasync,notrunc 1024+0 records in 1024+0 records out 1073741824 bytes (1.1 GB) copied, 99.1199 s, 10.8 MB/s
SMB --> Pi (lesen):
******@raspberrpi:~ $ echo 3 | sudo tee /proc/sys/vm/drop_caches 3 ******@raspberrpi:~ $ dd if=/media/cloud/tempfile of=/dev/null bs=1M count=1024 1024+0 records in 1024+0 records out 1073741824 bytes (1.1 GB) copied, 94.3646 s, 11.4 MB/s
Windows <--> SMB (CrystalDiskMark):
https://picload.org/image/rraipdpo/nas_rw.png
Auf dem Bild steht, dass die Festplatte nur 4TB groß ist, dass kommt, weil das NAS im RAID 1 betrieben wird.
Nun hat mein PC auch einen 1000 Mbit/s LAN Anschluss, aber kann das beim Pi wirklich daran liegen, dass der Zugriff zu langsam ist?
Gibt es ein anderes Protokoll als SMB mit dem ich schneller aufs NAS zugreifen kann? FTP SSL/TLS?
Beim download und upload ist es so, dass die Datei zu erst von nginx auf das NAS in einen Temp Ordner geschrieben wird, dann schreibt Seafile vom NAS Temp Ordner in seinen Ordner aufs NAS, bzw umgekehrt beim download.
Daher meine Frage ob es möglich ist, dass nginx dirket die Seafile Datei streamt ohne sie vorher in den Temp Ordner zuschreiben, dann dann ja gleichzeitig immer von der NAS gelesen und geschrieben wird beim upload und download.
Oder sollte ich in den pi eine 64GB SD Karte einlegen und dann den nginx temp Ordner zurück auf die SD Karte legen? Dann würde beim NAS immer nur gelesen oder geschrieben werden. Aber auch nur mit ca. 10 Mbit/s, was im Vergleich zu den Windows Werten nichts ist.
MfG
cpk2011 -
computerkurs2011 schrieb:
ich dachte an eine bezahlbare Größe (200-400 GB) für den Temp Ordner. Wobei wenn ich mittlerweile sehe der 2. Flaschenhals (100 MBit/s Ntzwerkanschluß) wirkt sich so stark aus, das auch eine SSD keine deutliche Besserung bringen kann. Und andere Protokolle werden ja über das gleiche Medium (in TCP/IP gekapselten Päckchen) übertragen, also auch keine Besserung zu erwarten. Die Idee dem Pi 64 GB für Temp zur Verfügung zu stellen klingt noch am erfolgsversprechendsten.
das aufrüsten mit einer SSD wird wohl schwer. Wie soll ich 8TB als SSD für einen annehmbaren Preis kaufen? -
Wäre ein umstieg vom pi auf den Banana Pi 2 (https://www.conrad.de/de/banana-pi-2-1-gb-ohne-betriebssystem-1317452.html) eine Option, da der 1000 Mbit/s unterstützt. Würde das merklich den Datenverkehr verbesser?
Und eine Möglichkeit nginx direkt die Daten vom Seafile-Server streamen zu lassen gibt es nicht? So dass er nicht erst in den Temp Ordner schreibt.
MfG
cpk2011
P.s. schreibe das alte img gerade auf die 64GB SD-Karte, mal gucken ob es was bringt. -
computerkurs2011 schrieb:
Faktor 10 würde ich schon merklich nennen.
Wäre ein umstieg vom pi auf den Banana Pi 2 (https://www.conrad.de/de/banana-pi-2-1-gb-ohne-betriebssystem-1317452.html) eine Option, da der 1000 Mbit/s unterstützt. Würde das merklich den Datenverkehr verbesser? -
Hallo autobert,
ich habe jetzt folgende Überlegung, da die Geschwindigkeit nicht merklich gestiegen ist auf der 64GB SD-Karte.
Ich kaufe mir ein Banana Pi M3: hier
Schließe dort eine SSD: hier
an. Dann sollte nginx die Daten schneller in den Temp Ordner schieben können, da 1000Mbit/s Leitung und eine SSD mit hohen Lese-/Schreibwerten. Nach dem die Datei vom langsamen NAS mit den von Windows gemessenen 57Mbit/s auf die SSD geschrieben wurden, kann diese ja theoretisch die Daten mit 500Mbit/s lesen und "ausliefern".
Soweit in der Theorie, würde man nun in der Praxis einen deutlichen Unterschied merken können oder ist dass, das Geld nicht wert?
Und noch etwas... ich konnte zur SSD leider keine Angabe über die Voltage finden. Kommt jede 2,5" SSD mit 5V aus? (Das Banana Pi bietet über den SATAIII Stromanschluss nur 5V an)
MfG
cpk2011
Beitrag zuletzt geändert: 21.7.2016 19:03:09 von computerkurs2011 -
computerkurs2011 schrieb:
Spar dir das Geld. 1min Google zu »Banana Pi M3 Network Performance« liefert:
Ich kaufe mir ein Banana Pi M3: hier
Schließe dort eine SSD: hier
an. Dann sollte nginx die Daten schneller in den Temp Ordner schieben können, da 1000Mbit/s Leitung und eine SSD mit hohen Lese-/Schreibwerten. Nach dem die Datei vom langsamen NAS mit den von Windows gemessenen 57Mbit/s auf die SSD geschrieben wurden, kann diese ja theoretisch die Daten mit 500Mbit/s lesen und "ausliefern".When I used longer test periods (-t 120) then the "Client --> BPi-M3" performance increased up to the theoretical limit: 940 Mbits/s. Then a second iperf thread jumped in, both utilising a single CPU core fully. And that's the problem: Networking is CPU bound, a single client-server connection will not exceed 500-600 Mbits/sec as it was the case when I started with A20 based boards 2 years ago. Since all we have now with the A83T is an outdated 3.4.39 kernel and since I/O bandwidth on the M3 is so low, I stopped here since it's way too boring to try to improve network throughput and also useless (disk access is so slow that it simply doesn't matter when Ethernet is limited to half of the theoretical GBit Ethernet speed... at least for me ;) )
Und etwas später:And obviously the M3's 'SATA port' is the worst choice to connect a disk to. Any dirt-cheap external USB enclosure will perform better.
Bei dem SATA-Port geht es um Transferraten von 15-30MB/s. Erwarte dir da also auch nicht allzu viel.
Ich persönlich hätte ja in ein richtiges NAS investiert, selbst wenn es 300€ kostet zahlt sich das allein wegen der Performance locker aus (wenn es der Switch kann, kann man in der Preisklasse oft auch per LACP mehrere Links bündeln, um eine höhere Übertragungsrate zu erzielen). Wenn du basteln willst, dann kannst du es natürlich auch mit Bananen und Pis versuchen. Ich würde mir dann aber wohl eher einen größeren ODROID holen, der SATA kann und tatsächlich den 1Gbps-Netzwerklink auslasten kann. Abgesehen davon bekomme ich hier (mit einem richtigen NAS) selbst mit ganz normalen HDDs (7k2 RPM) eine Übertragungsrate von >1Gbps hin, eine SSD ist dafür also überhaupt nicht nötig.
Bedenke auch, dass jegliche Art von Kryptographie (z.B. https, aber auch bei ssh) auf einem Raspi die CPU stark auslastet und dadurch die Übertragungsrate durchaus merkbar einbrechen kann.
Warum legst du bei einem NAS überhaupt so viel Wert auf das Web-Interface? Warum reicht dir CIFS für den Datentransfer nicht? Das kann man immerhin, im Gegensatz zu einem Web-Interface, auf jedem wichtigen Betriebssystem (Linux, Windows, …) direkt mounten und nutzen. Und offenbar ist das ja auch schnell.
Und eventuell ist für dich ja auch ein Blick in diesen Thread nicht ganz verkehrt: *klick*
Beitrag zuletzt geändert: 22.7.2016 8:03:53 von hackyourlife -
Hallo hackyourlife,
du hast Recht, ich habe mir die Berichte zum SATA Port durchgelesen. Das Geld wäre einfach in den Sand gesetzt, wenn der SATA Port nicht mal annähernd die SSD ausreizen könnte.
hackyourlife schrieb:
Ich persönlich hätte ja in ein richtiges NAS investiert, selbst wenn es 300? kostet zahlt sich das allein wegen der Performance locker aus (wenn es der Switch kann, kann man in der Preisklasse oft auch per LACP mehrere Links bündeln, um eine höhere Übertragungsrate zu erzielen).
Wie bereits erwähnt war es billiger das "schlechte" NAS mit WD-RED Festplatten verbaut zu kaufen, anstatt die Festplatten einzeln zu kaufen.
Ich hab mir jetzt ein paar NAS angeguckt und fand das Synology Diskstation DS215+ NAS System ganz ansprechen. Wenn ich das richtig verstehe, dann hat das NAS auch einen extra Chip für Verschlüsselungen.
Soweit ich das sehe, sollte diese NAS für den Heimgebrauch, also Backups und streamen auf den TV, doch vollkommen ausreichen. Oder nicht?
MfG
cpk2011
-
computerkurs2011 schrieb:
Ja, dafür reicht es ziemlich sicher. Die Frage, die du dir allerdings stellen solltest: willst du wirklich ein DS215+ kaufen, wenn es schon dessen Nachfolger (DS216+) gibt? Ich würde mir an deiner Stelle eher das oder das ansehen, abhängig davon, ob der Switch LACP kann (und ob du das brauchst) und ob du es je per Expansionseinheit erweitern willst (= weitere Festplatten per Gehäuse anhängen). Siehe Vergleich.
Ich hab mir jetzt ein paar NAS angeguckt und fand das Synology Diskstation DS215+ NAS System ganz ansprechen. Wenn ich das richtig verstehe, dann hat das NAS auch einen extra Chip für Verschlüsselungen.
Soweit ich das sehe, sollte diese NAS für den Heimgebrauch, also Backups und streamen auf den TV, doch vollkommen ausreichen. Oder nicht? -
Hallo hackyourlife,
ich möchte die NAS hauptsächlich zum sichern meiner Film-/Musik-/Bildersammlungen nutzen. Ebenso um zentral auf meine Dokumente zuzugreifen. Dabei sind die Dokumente allerdings als einziges Verschlüsselt und natürlich der Datenverkehr, der über das Internet geht. Da das DS215+ auch ein Hardwaremodul zu Verschlüsslung hat, sehe ich da keinen Nachteil zur DS216+II. Allerdings hat die DS216+II natürlich eine Intel 64-bit CPU, wobei die DS215+ nur eine ARM CPU hat.
Daher jetzt mal eine einfache Nachfrage... brauche ich die stärkere CPU von Intel, wenn ich einfach nur Backups machen möchte, vllt noch einen VPN einschalte und einen Git Server installiere? Ganz vielleicht probiere ich mal einen eigenen Mailserver, obwohl mir das auf dem Pi schon zu viel Aufwand war und ich mit dem vom Lima eigentlich ganz zufrieden bin.
Ansonsten soll die NAS schnelle Übertragungen garantieren, wenn bspw. mein PC und mein MacBook ein Backup machen und ich nebenbei auf einem dritten Gerät ein Film gucke oder Musik streame.
Daher dachte ich, dass die Link Aggregation von der DS215+ besser wären als die DS216+II ohne Link Aggregation. Ich glaube zwar nicht, dass mein Switch das unterstützt, aber ich habe gelesen, dass die DS215+ virtuelle Link Aggregation können soll ohne dabei große Einbußen zur Hardware Link Aggregation zu haben.
Einen Webserver will ich nicht auf der NAS laufen lassen, dafür habe ich Lima und FastComet. Daher die letztendliche Frage, brauche ich für meine Anforderungen wirklich die Stärkere Intel CPU oder wäre es besser die DS215+ zu nehmen, die dann (so wie ich das verstanden habe) die Daten besser an mehrere Geräte verteilen kann. Gerade auch weil ich den Git Server installieren will und daher mehrere Leute an einem Projekt über diesen Git Server arbeiten werden.
MfG
cpk2011 -
computerkurs2011 schrieb:
Ich habe nur deshalb darauf hingewisen, da die DS215+ nicht einmal mehr vom Hersteller als aktuelles Produkt, sondern nur noch im Support-Bereich gelistet ist, und das Nachfolgermodell schon existiert. Soll heißen: könnte für Updates ein Nachteil sein, jetzt noch das ältere Modell zu besorgen.
Daher jetzt mal eine einfache Nachfrage... brauche ich die stärkere CPU von Intel, wenn ich einfach nur Backups machen möchte, vllt noch einen VPN einschalte und einen Git Server installiere? Ganz vielleicht probiere ich mal einen eigenen Mailserver, obwohl mir das auf dem Pi schon zu viel Aufwand war und ich mit dem vom Lima eigentlich ganz zufrieden bin.
ARM vs Intel: bei Intel wird Kryptographie per Befehlssatz beschleunigt, und der wichtigste Vorteil ist, dass du auch teils virtualisieren kannst usw. Jedenfalls macht es einen Unterschied im zur Verfügung stehenden Softwareangebot, ob du ARM oder Intel hast, speziell beim Thema Virtualisierung, falls du virtuelle Maschinen auf dem NAS ausführen willst, was eventuell für Gitlab o.ä. interessant sein könnte.
Link Aggregation: keine Ahnung wie gut das ohne HW-Unterstützung des Switches funktioniert, jedenfalls ist das erst interessant, wenn du mehr als ~110MB/s Übertragungsgeschwindigkeit brauchst. Und dann müssen das die Festplatten auch noch hergeben, wenn gleichzeitig unterschiedliche Geräte unterschiedliche Daten lesen. Ob du also wirklich von Link Aggregation profitierst ist die Frage. Wirklich profitieren würdest du jedenfalls, wenn auch dein Rechner mit mehr als einem Link angebunden ist, und du große Dateien überträgst. Ob der Switch das unterstützt: wenn es ein »dummer [Desktop-]Switch« ist ziemlich sicher nicht. Schau einfach im Datenblatt des Switches nach, ob dort etwas von LACP oder 802.3ad steht.
Bei Link Aggregation geht es übrigens nicht darum, Daten »besser an mehrere Geräte zu verteilen«, sondern einen virtuellen Link zu erzeugen, der beispielsweise 2x1Gbps zu 1x2Gbps kombiniert (grob gesagt).
Wegen Git: mach dir da keine allzu großen Sorgen, das hat normalerweise extrem niedrige Anforderungen an die Übertragungsgeschwindigkeit. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage