halwe schrieb:
Stochern im Nebel, da bin ich inzwischen natürlich zurückhaltender
Warum? Angucken welche Optionen wie gesetzt sind und dann der Reihe nach Änderungen vornehmen, testen und wenn keine Besserung dann wieder auf den Ausgangswert setzen.
Ansonsten kannst natürlich noch NFS anstatt SMB testen, Windows hat einen NFS Client in den optionalen Features.
Da ich nicht mehr im Kopf habe ob du nur von mehreren Endgeräten parallel zugreifst oder nicht wäre ggf. iSCSI noch eine Überlegung wert. Gibt das ein oder andere Paper das iSCSI bei so Tasks wie Directory Listing und dem Umgang mit vielen kleinen Dateien vor NFS und SMB liegt aber der Nachteil ist halt das du es tunlichst vermeiden solltest das iSCSI Laufwerk von mehreren Endgeräten aus parallel zu verwenden bzw. zu beschreiben sonst hast halt Inkonsistenzen.
Ooooooder du siehst endlich ein das deine Anforderungen nach wie vor überzogen und unrealistisch sind.
Du wirst niemals bei einem entfernten Speicher, egal ob SMB, NFS, iSCSI, S3 oder was auch immer, die gleiche Performance erreichen wie bei einem lokalen Dateisystem.
- Lokal: OS greift auf Dateisystem zu, Dateisystem auf Blockdevice. Wenn das Blockdevice dann noch eine NVMe SSD ist geht das noch viel schneller als bei einer Sata SSD.
- Remote dateibasiert: OS greift auf Netzwerkprotokoll zu, Netzwerkprotokoll geht durchs Netzwerk zum NAS/Server, greift dort auf das Dateisystem zu, Dateisystem auf das Blockdevice.
- Remote blockbasiert: OS greift auf Dateisystem zu, Dateisystem auf Netzwerkprotokoll geht durchs Netzwerk zum NAS/Server, greift dort auf das Blockdevice zu.
Egal wie man es dreht und wendet: Jeglicher Remotezugriff ist aufwendiger und komplexer.
halwe schrieb:
Profibereich, wo die Optimierung vom Server-Systemen mit großem Cache und SSD-Einsatz ein großes Thema ist, der Netzwerkzugriff von so einem Protokoll ausbremsen lässt.
Ich arbeite in so einem Bereich. In den allermeisten Fällen werden dort aber nicht mit einzelnen Dateien auf Laufwerken gearbeitet sondern
Überraschung mit Datenbanken, die in der Regel für Lesezugriffe entsprechende Mengen RAM haben. Das können klassische mysql/mariadb/postgresql/mssql DBs sein aus denen sich die jeweiligen Anwendungen (DMS für Bestellungen, Rechnungen, etc oder Bildverwaltungs- & bearbeitungssoftware, WWS und/oder CRM, usw. usf) ihre Informationen holen. Webserver haben ihren statischen Inhalt wie z.B. Bilder in Cachinglösungen wie z.B. Redis, memcached oder Varnish. Vereinfacht gesagt steht da im RAM zu jedem Bild oder Datei wo genau diese liegt oder die Dateien selbst liegen im RAM und regelmäßig wird geprüft ob die Datei im Ram und im eigentlichen Storage noch identisch sind. Ergo entfällt bei jedem Aufruf der Webseite oder Anwendung das aufwendige auflisten der Ordner.
Es muss eben nicht mehr der vergleichsweise lange und lahme Weg zum Storage bemüht werden sondern die (lesenden) Zugriffe können näher beim Anwender oder der Anwendung erledigt werden.
Ein wunderbares Beispiel ist da die Webseite
Have I been pwned. Gehostet irgendwo in der Azure Cloud aber mit Cloudflare als Cache davor. Im August/Semptember 2018 hatte die Seite circa 32,4 Millionen Anfragen. 32,3 wurden aus den weltweiten Servern von Cloudflare bedient die diese Daten in lokalem Speicher oder Datenbanken vorliegen hatte da dies eben in der Regel nur lesende Anfragen sind (
Quelle).
Genau was dort in sehr sehr groß passiert ist vergleichbar mit dem Indexdienst von Windows oder z.B. einer beliebigen Bildverwaltungssoftware wie Lightroom oder Darktable. Es gibt lokal eine Datenbank und sei es nur eine sqlite, in der die relevanten Informationen stehen wie der Speicherort der einzelnen Bilder, Name der Bilder, alle vergebenen Schlagwörter und alle möglichen Metadaten wie Aufnahmedatum und Uhrzeit, welche Kamera und Objektiv etc.pp.
Damit hat man das ganze Thema der Zugriffslatenz vergleichsweise elegant gelöst. Was dann am Ende noch im Bereich Storage übrig bleibt sind Bandbreite und IOPS. Ersteres löst man durch Aufstockung auf 10G und/oder der parallelen Nutzung von Leitungen wie SMBv3 Multichannel oder parallel-NFS ab NFSv4, letzteres durch SSDs sowie beides durch effektivere Zugriffsprotokolle wie dem direkten Zugriff auf Dateien weil man vorher aus zuvor erwähnten Datenbanken und Caches gelernt hat wo genau die Datei liegt anstatt sich durch die Ordner einzeln zu klicken.