Diese Frage wurde vorher im Stapelüberlauf gestellt, aber die guten Leute dort haben empfohlen, dass ich die Gemeinschaft hier stattdessen versuche.
Ich recherchiere auf Sparse-Dateien in Bezug auf verschiedene Dateisysteme und versuche, etwas Konkretes zu finden, das besagt, dass Sparse-Dateien von Network File Systems (NFS) oder Server Message Block (SMB) unterstützt werden.
Ich verstehe, dass SMB in Windows weit verbreitet ist und dass nach diesem Eintrag ein SMB-Server Sparse-Dateien unterstützen kann, auch wenn das zugrunde liegende Dateisystem dies nicht tut. Wenn ich jedoch Recht habe, würde das Dateisystem, das keine spärlichen Dateien unterstützt, die 'Löcher' nur mit Nullen füllen, und dies könnte zu einem Leistungsproblem führen.
In Bezug auf NFS konnte ich nichts über die Verwendung von NFS herausfinden, das Sparse-Dateien unterstützt.
Daher sind meine Fragen:
Werden Sparse-Dateien in NFS und SMB unterstützt?
quelle
dd
Liest blockweise ein und ob das zugrunde liegende Dateisystem spärliche Dateien unterstützt oder nicht, Lücken werden vom Betriebssystem in Nullen umgewandelt. Probieren Sie es auf ext4 und Sie werden die gleichen Zahlen sehen.dd
Befehls über eine lokale Sparse-Datei führt zu viel schnelleren Ergebnissen. Ein Beispiel findenroot@hubble:~# truncate -s 1G test.img root@hubble:~# dd if=test.img of=/dev/null bs=1M iflag=direct 1024+0 records in 1024+0 records out 1073741824 bytes (1.1 GB) copied, 0.10478 s, 10.2 GB/s
Sie hier: Wie Sie sehen können, gibt das Lesen einer lokalen Sparse-Datei eine E / A-Geschwindigkeit nördlich von 10 GB / s andu -s
vsls -l
, aber Sie haben Recht, das hilft bei der Übertragung über das Netzwerk nicht. In beiden Fällen wird (wiestrace
noch bestätigt wird)dd
die gesamte Datei gelesen, einschließlich der 'Löcher' als Nullen, wobei der Unterschied nur darin besteht, wo die 'Nullen' ihren Ursprung haben (Server- oder Client-Seite). Beachten Sie jedoch (wie pro meine Antwort) , dass NFS 4.2 nicht vollständig Sparse - Dateien unterstützen.NFS
Ja, NFS 4.2 unterstützt Sparse-Dateien vollständig (siehe dieses kanonische Dokument und diese Präsentation ).
Vor NFS 4.2 unterstützte das NFS-Client / Server-Modell Sparse-Dateien in dem Sinne, dass die API alle POSIX-Dateivorgänge unterstützte. Dies bedeutete, dass beim Schreiben von Sparse-Dateien auf einen Server, der Sparse-Dateien im Backing-Dateisystem unterstützte, eine Sparse-Datei erstellt wurde (anstatt viele Nullen zu speichern). Das Lesen der Datei würde jedoch dazu führen, dass für das spärliche Element viele Nullen übertragen werden. IE ist die Antwort "teilweise".
NFS 4.2 bietet dem Client die Möglichkeit, Lücken in den Dateien zu erkennen, sodass der Server nicht alle diese Nullen übertragen muss. Aus der ID:
Trotz der Tatsache, dass die Spezifikation Dateien mit geringer Dichte unterstützt, könnte ein langsamer Implementierer die Implementierung der Unterstützung für Dateien mit geringer Dichte entweder auf dem Client oder auf dem Server vermeiden.
SMB
Ich weiß weniger über SMB, aber ich glaube, es unterstützt auch Sparse-Dateien, wenn das entsprechende FS-Fähigkeits-Bit gesetzt ist. Sehen Sie hier für weitere Informationen.
quelle