Esta pregunta se hizo anteriormente en el desbordamiento de la pila, pero las buenas personas allí me recomendaron que pruebe la comunidad aquí.
Estoy investigando archivos dispersos con respecto a varios sistemas de archivos y estoy tratando de encontrar algo concreto que indique que los archivos dispersos son compatibles con Network File Systems (NFS) o Server Message Block (SMB).
Entiendo que SMB se usa ampliamente en Windows y que de acuerdo con esta entrada , un servidor SMB puede admitir archivos dispersos incluso si el sistema de archivos subyacente no lo hace. Sin embargo, si estoy en lo cierto, el sistema de archivos que no admite archivos dispersos simplemente llenaría los 'agujeros' con ceros y esto podría conducir a un problema de rendimiento.
Con respecto a NFS, no he podido averiguar nada sobre el uso de NFS que admite archivos dispersos.
Por lo tanto, mis preguntas son:
¿Se admiten archivos dispersos en NFS y SMB?
fuente
dd
lee en bloque por bloque y si el sistema de archivos subyacente admite archivos dispersos o no, el sistema operativo convierte los agujeros en ceros. Pruébelo en ext4 y verá los mismos números.dd
comando sobre un archivo local disperso dará resultados mucho más rápidos. Vea aquí un ejemplo :,root@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
Como puede ver, leer un archivo local disperso le da una velocidad de E / S al norte de 10 GB / sdu -s
vsls -l
, pero tiene razón, eso no ayuda con la transmisión a través de la red; pero en cualquier caso (comostrace
confirmará)dd
está leyendo todo el archivo, incluidos los 'agujeros' como ceros, la diferencia solo está donde se originan los 'ceros' (servidor o cliente). Sin embargo, tenga en cuenta (según mi respuesta) que NFS 4.2 es totalmente compatible con archivos dispersos.NFS
Sí, NFS 4.2 es totalmente compatible con archivos dispersos (consulte este documento canónico y esta presentación ).
Antes de NFS 4.2, el modelo cliente / servidor NFS soportaba archivos dispersos en el sentido de que la API soportaba todas las operaciones de archivos POSIX. Esto significaba que escribir archivos dispersos en un servidor que admitía archivos dispersos en el sistema de archivos de respaldo resultó en la creación de un archivo disperso (en lugar de almacenar muchos ceros). Pero leer el archivo daría como resultado la transmisión de muchos ceros para el elemento disperso. Es decir, la respuesta es 'parcialmente'.
NFS 4.2 agrega la capacidad para que el cliente 'vea' agujeros en los archivos y, por lo tanto, para que el servidor no tenga que transmitir todos esos ceros. De la identificación:
A pesar de que la especificación admite archivos dispersos, sería posible que un implementador perezoso evite implementar la compatibilidad con archivos dispersos en el cliente o en el servidor.
SMB
Sé menos sobre SMB, pero creo que también admite archivos dispersos, si se establece el bit de capacidad FS relevante. Ver aquí para más información.
fuente