Articulo de referencia

Sistema de archivos de red

El Sistema de Archivos de Red ( NFS ) es un protocolo de sistema de archivos distribuido desarrollado originalmente por Sun Microsystems (Sun) en 1984, [ 1 ] que permite a un us...

El Sistema de Archivos de Red ( NFS ) es un protocolo de sistema de archivos distribuido desarrollado originalmente por Sun Microsystems (Sun) en 1984, [ 1 ] que permite a un usuario en una computadora cliente acceder a archivos a través de una red informática de forma similar a como se accede al almacenamiento local. NFS, al igual que muchos otros protocolos, se basa en el sistema de Llamada a Procedimiento Remoto de Computación en Red Abierta (ONC RPC). NFS es un estándar abierto de la IETF . Tras la primera versión experimental desarrollada internamente en Sun Microsystems, todas las versiones posteriores del protocolo se definen en una serie de Solicitudes de Comentarios (RFC), lo que permite a cualquier persona implementar el protocolo.

Versiones y variaciones

Sun utilizó la versión  1 únicamente con fines experimentales internos. Cuando el equipo de desarrollo añadió cambios sustanciales a la versión  1 de NFS y la publicó fuera de Sun, decidieron publicar la nueva versión como v2, para poder probar la interoperabilidad entre versiones y la conmutación por error de la versión RPC. [ 2 ] [ 3 ]

NFSv2

La versión  2 del protocolo (definida en RFC 1094 , marzo de 1989) originalmente solo operaba sobre el Protocolo de Datagramas de Usuario (UDP). Sus diseñadores pretendían mantener el lado del servidor sin estado , con el bloqueo (por ejemplo) implementado fuera del protocolo principal. Entre las personas involucradas en la creación de la versión 2 de NFS se encuentran Russel Sandberg , Bob Lyon , Bill Joy , Steve Kleiman y otros. [ 1 ] [ 4 ]  

La interfaz del Sistema de Archivos Virtual permite una implementación modular, reflejada en un protocolo simple. En febrero de 1986, se demostraron implementaciones para sistemas operativos como System V versión  2, DOS y VAX/VMS usando Eunice . [ 4 ]  NFSv2 solo permite leer los primeros 2 GB de un archivo debido a limitaciones de 32 bits .

NFSv3

Versión  3 ( RFC 1813 , junio de 1995) añadió: 

  • Compatibilidad con tamaños de archivo y desplazamientos de 64 bits, para manejar archivos de más de 2  gigabytes (GB);
  • Compatibilidad con escrituras asíncronas en el servidor para mejorar el rendimiento de escritura;
  • Atributos de archivo adicionales en muchas respuestas, para evitar la necesidad de volver a obtenerlos;
  • una operación READDIRPLUS, para obtener identificadores de archivo [ 5 ] y atributos junto con nombres de archivo al escanear un directorio;
  • otras mejoras diversas.

La primera  propuesta de NFS Versión 3 dentro de Sun Microsystems se creó poco después del lanzamiento de NFS Versión  2. La motivación principal fue un intento de mitigar el problema de rendimiento de la operación de escritura síncrona en NFS Versión  2. [ 6 ] Para julio de 1992, la práctica de implementación había resuelto muchas deficiencias de NFS Versión  2, dejando solo la falta de soporte para archivos grandes (tamaños de archivo y desplazamientos de 64 bits) como un problema apremiante. En el momento de la introducción de la Versión  3, el soporte de los proveedores para TCP como protocolo de capa de transporte comenzó a aumentar. Si bien varios proveedores ya habían agregado soporte para NFS Versión  2 con TCP como transporte, Sun Microsystems agregó soporte para TCP como transporte para NFS al mismo tiempo que agregó soporte para la Versión  3. El uso de TCP como transporte hizo que usar NFS sobre una WAN fuera más factible y permitió el uso de tamaños de transferencia de lectura y escritura mayores que el  límite de 8 KB impuesto por el Protocolo de Datagramas de Usuario .

YANFS/WebNFS

YANFS (Yet Another NFS), anteriormente WebNFS, es una extensión de NFSv2 y NFSv3 que permite su funcionamiento detrás de cortafuegos restrictivos sin la complejidad de los protocolos Portmap y MOUNT. YANFS/WebNFS tiene un número de puerto TCP/UDP fijo (2049) y, en lugar de requerir que el cliente se comunique con el servicio RPC MOUNT para determinar el identificador de archivo inicial de cada sistema de archivos, introdujo el concepto de un identificador de archivo público (nulo para NFSv2, de longitud cero para NFSv3) que puede usarse como punto de partida. Ambos cambios se incorporaron posteriormente a NFSv4. El desarrollo de YANFS posterior a WebNFS también ha incluido la integración del lado del servidor.

NFSv4

La versión  4 ( RFC 3010 , diciembre de 2000; revisada en RFC 3530 , abril de 2003 y nuevamente en RFC 7530 , marzo de 2015), influenciada por Andrew File System (AFS) y Server Message Block (SMB), incluye mejoras de rendimiento, exige una seguridad sólida e introduce un protocolo con estado . [ 7 ] [ 8 ] La versión 4 se convirtió en la primera versión desarrollada con el Grupo de Trabajo de Ingeniería de Internet (IETF) después de que Sun Microsystems transfiriera el desarrollo de los protocolos NFS.   

La versión 4.1 de NFS ( RFC 5661 , enero de 2010; revisada en RFC 8881 , agosto de 2020) tiene como objetivo brindar soporte de protocolo para aprovechar las implementaciones de servidores en clúster, incluyendo la capacidad de proporcionar acceso paralelo escalable a archivos distribuidos entre múltiples servidores ( extensión pNFS ). La versión 4.1 incluye el mecanismo de trunking de sesión (también conocido como NFS Multipathing) y está disponible en algunas soluciones empresariales como VMware ESXi .    

La versión 4.2 de NFS ( RFC 7862 ) se publicó en noviembre de 2016 con nuevas características, entre las que se incluyen: clonación y copia del lado del servidor, aviso de E/S de la aplicación, archivos dispersos, reserva de espacio, bloque de datos de la aplicación (ADB), NFS etiquetado con sec_label que admite cualquier sistema de seguridad MAC y dos nuevas operaciones para pNFS (LAYOUTERROR y LAYOUTSTATS).  

Una gran ventaja de NFSv4 sobre sus predecesores es que solo se utiliza un puerto UDP o TCP, el 2049, para ejecutar el servicio, lo que simplifica el uso del protocolo a través de cortafuegos. [ 9 ]

Otras extensiones

WebNFS , una extensión de las versiones  2 y  3, permite que NFS se integre más fácilmente en los navegadores web y que funcione a través de cortafuegos. En 2007, Sun Microsystems publicó como código abierto su implementación de WebNFS del lado del cliente. [ 10 ]

Diversos protocolos de banda lateral se han asociado con NFS. Nota:

  • el protocolo Network Lock Manager (NLM) de asesoramiento de rango de bytes (añadido para admitir las API de bloqueo de archivos de UNIX System V )
  • El protocolo de informes de cuotas remotas (RQUOTAD) permite a los usuarios de NFS ver sus cuotas de almacenamiento de datos en servidores NFS.
  • NFS sobre RDMA, una adaptación de NFS que utiliza acceso directo a memoria remota (RDMA) como transporte [ 11 ] [ 12 ]
  • NFS-Ganesha, un servidor NFS que se ejecuta en el espacio de usuario y admite varios sistemas de archivos como GPFS/Spectrum Scale y CephFS a través de los módulos FSAL (File System Abstraction Layer) correspondientes. El FSAL de CephFS se admite mediante libcephfs [ 13 ].
  • NFS de confianza (TNFS) [ 14 ]

Desarrollo de protocolos

Durante el desarrollo del protocolo ONC (conocido entonces como SunRPC ), solo el Sistema de Computación en Red (NCS) de Apollo ofrecía una funcionalidad comparable. Dos grupos rivales se enfrentaron debido a las diferencias fundamentales entre los dos sistemas de llamadas a procedimientos remotos. Los argumentos se centraron en el método de codificación de datos: la Representación de Datos Externos (XDR) de ONC siempre representaba los enteros en orden big-endian , incluso si ambos extremos de la conexión tenían arquitecturas de máquina little-endian , mientras que el método de NCS intentaba evitar el intercambio de bytes cuando dos extremos compartían un orden de bytes común en sus arquitecturas de máquina. Un grupo industrial llamado Foro de Computación en Red se formó (en marzo de 1987) en un intento (finalmente infructuoso) de conciliar los dos entornos de computación en red.

En 1987, Sun y AT&T anunciaron que desarrollarían conjuntamente la versión 4 del sistema UNIX V de AT&T. [ 15 ] Esto provocó que muchos de los otros licenciatarios de UNIX System de AT&T se preocuparan de que esto pusiera a Sun en una posición ventajosa, y finalmente llevó a que Digital Equipment, HP, IBM y otros formaran la Open Software Foundation (OSF) en 1988. Irónicamente, Sun y AT&T habían competido anteriormente por el NFS de Sun frente al Remote File System (RFS) de AT&T, y la rápida adopción de NFS sobre RFS por parte de Digital Equipment, HP, IBM y muchos otros proveedores de computadoras inclinó a la mayoría de los usuarios a favor de NFS. La interoperabilidad de NFS se vio favorecida por eventos llamados "Connectathons" que comenzaron en 1986 y que permitieron pruebas neutrales de implementaciones entre sí. [ 16 ] OSF adoptó el Entorno de Computación Distribuida (DCE) y el Sistema de Archivos Distribuidos DCE (DFS) sobre Sun/ONC RPC y NFS. DFS usó DCE como RPC, y DFS derivó del Sistema de Archivos Andrew (AFS); DCE mismo derivó de un conjunto de tecnologías, incluyendo NCS de Apollo y Kerberos .

década de 1990

Sun Microsystems y la Internet Society (ISOC) llegaron a un acuerdo para ceder el control de cambios de ONC RPC, de modo que el organismo de estándares de ingeniería de ISOC, el Grupo de Trabajo de Ingeniería de Internet (IETF), pudiera publicar documentos de estándares (RFC) relacionados con los protocolos ONC RPC y extender ONC RPC. OSF intentó convertir DCE RPC en un estándar del IETF, pero finalmente se mostró reacia a renunciar al control de cambios. Posteriormente, el IETF optó por extender ONC RPC añadiendo una nueva variante de autenticación basada en la Interfaz de Programación de Aplicaciones de Servicios de Seguridad Genéricos (GSSAPI), RPCSEC GSS , para cumplir con los requisitos del IETF de que los estándares de protocolo tengan una seguridad adecuada.

Posteriormente, Sun e ISOC llegaron a un acuerdo similar para otorgar a ISOC el control sobre los cambios en NFS, aunque redactaron el contrato cuidadosamente para excluir las versiones 2 y 3 de NFS. En cambio, ISOC obtuvo el derecho a agregar nuevas versiones al protocolo NFS, lo que llevó a la IETF a especificar la versión 4 de NFS en 2003.

década de 2000

Para el siglo XXI, ni DFS ni AFS habían alcanzado un éxito comercial significativo en comparación con SMB o NFS. IBM, que anteriormente había adquirido a Transarc , el principal proveedor comercial de DFS y AFS, donó la mayor parte del código fuente de AFS a la comunidad de software libre en el año 2000. El proyecto OpenAFS sigue activo. A principios de 2005, IBM anunció el cese de las ventas de AFS y DFS.

En enero de 2010, Panasas propuso NFSv4.1 basado en su tecnología Parallel NFS (pNFS), afirmando mejorar la capacidad de paralelismo en el acceso a datos [ 17 ] . El protocolo NFSv4.1 define un método para separar los metadatos del sistema de archivos de la ubicación de los datos de los archivos; va más allá de la simple separación nombre/datos al distribuir los datos entre un conjunto de servidores de datos. Esto difiere del servidor NFS tradicional, que mantiene los nombres de los archivos y sus datos bajo un único servidor. Algunos productos son servidores NFS multinodo, pero la participación del cliente en la separación de metadatos y datos es limitada.

El servidor pNFS NFSv4.1 es un conjunto de recursos o componentes del servidor; se supone que estos están controlados por el servidor de metadatos.

El cliente pNFS sigue accediendo a un único servidor de metadatos para la navegación o interacción con el espacio de nombres; al transferir datos desde y hacia el servidor, puede interactuar directamente con el conjunto de servidores de datos que pertenecen a la colección de servidores pNFS. El cliente NFSv4.1 puede configurarse para participar directamente en la localización exacta de los datos de archivo y evitar la interacción exclusiva con un único servidor NFS al transferir datos.

Además de pNFS, NFSv4.1 proporciona:

Plataformas

NFS está disponible en:

Comparación del rendimiento de NFS SPECsfs2008, a fecha de 22 de noviembre de 2013.

Véase también

Referencias

  1. 1 2 Russel Sandberg; David Goldberg; Steve Kleiman; Dan Walsh; Bob Lyon (11–14 de junio de 1985). Diseño e implementación del sistema de archivos de red Sun (PDF) . Conferencia de verano de la Asociación Usenix. Portland, Oregón, EE. UU. CiteSeerX 10.1.1.14.473 . 
  2. NFS Ilustrado (2000) por Brent Callaghan – ISBN 0-201-32570-5
  3. 1 2 "Servicios TCP/IP de HP para la administración de OpenVMS" . h41379.www4.hpe.com . HP. Archivado del original el 24 de septiembre de 2016. Recuperado el 24 de septiembre de 2016 .
  4. 1 2 Russel Sandberg. "El sistema de archivos de red Sun: diseño, implementación y experiencia" (PDF) . Informe técnico . Sun Microsystems. Archivado (PDF) del original el 26 de noviembre de 2013. Recuperado el 4 de agosto de 2013 .
  5. Arpaci-Dusseau, Remzi; Arpaci-Dusseau, Andrea (marzo de 2015). Sistemas operativos: tres piezas fáciles (PDF) (9.ª ed.). Libros Arpaci-Dusseau. pág. 5. Archivado (PDF) del original el 3 de abril de 2019. Recuperado el 8 de noviembre de 2017 .  
  6. Brian Pawlowski; Chet Juszczak; Peter Staubach; Carl Smith; Diane Lebel; David Hitz (1994). " Diseño e implementación de la versión 3 de NFS" . USENIX . Archivado del original el 24 de noviembre de 2015. Consultado el 23 de noviembre de 2015 . 
  7. "NFS Versión 4" . USENIX . 14 de abril de 2005. Archivado del original el 28 de julio de 2011. Consultado el 19 de diciembre de 2008 .
  8. Brian Pawlowski; Spencer Shepler; Carl Beame; Brent Callaghan; Michael Eisler; David Noveck; David Robinson; Robert Thurlow (2000). "El protocolo NFS versión 4" (PDF) . SANE . Archivado del original (PDF) el 2 de febrero de 2025. 
  9. Justin Parisi; Elliott Ecton (junio de 2023). NFS en NetApp ONTAP, guía de mejores prácticas e implementación (PDF) (Informe técnico). NetApp.
  10. "yanfs" . Github.com .
  11. Tom Talpey (28 de febrero de 2006). "Actualización sobre la implementación de NFS/RDMA" (PDF) . Network Appliance, Inc. Archivado del original (PDF) el 12 de mayo de 2011.
  12. Brent Callaghan (28 de enero de 2002). "NFS sobre RDMA" (PDF) . Sun Microsystems. Archivado (PDF) del original el 12 de mayo de 2011. Recuperado el 6 de septiembre de 2010 .
  13. Singh, Karan (2016). "4: Trabajando con el sistema de archivos Ceph". Ceph Cookbook . Birmingham: Packt Publishing Ltd. pág. 110. ISBN  978-1-78439-736-4. Consultado el 21/03/2017 . NFS-Ganesha es un servidor NFS que se ejecuta en el espacio de usuario y admite la capa de abstracción del sistema de archivos (FSAL) de CephFS mediante libcephfs.
  14. Glover, Fred (28 de mayo de 1994). "Una especificación de extensiones del protocolo NFS de confianza (TNFS)" . datatracker.ietf.org .
  15. Carole Patton (26 de octubre de 1987). "AT&T licenciará el chip SPARC de Sun Microsystems" . InfoWorld . pág. 37. Consultado el 16 de julio de 2019 . 
  16. "¿Qué es Connectathon?" . Sitio web original de Connectathon.Org . Archivado del original el 28 de enero de 1999.
  17. "pNFS" . Panasas . Archivado del original el 7 de agosto de 2013. Recuperado el 4 de agosto de 2013 .
  18. "Servidores y ordenadores compartidos a los que puedes conectarte en Mac" . Soporte técnico de Apple . Consultado el 7 de agosto de 2025 .
  19. "Configurar el uso compartido de archivos en Mac" . Soporte técnico de Apple . Consultado el 7 de agosto de 2025 .
  20. "NetDrive para OS/2" . arcanoae.com . Archivado del original el 3 de noviembre de 2015. Consultado el 22 de septiembre de 2020 .
  21. Dziepak, Paweł (15 de marzo de 2013). "El cliente NFSv4 finalmente se fusionó" . Blog de Paweł Dziepak . Haiku, Inc.
  22. "Soporte del sistema de archivos de red OS/400" (PDF) . IBM . Consultado el 23 de mayo de 2024 .
  23. "Introducción a los servicios de Microsoft Windows para UNIX 3.5" . technet.microsoft.com . Microsoft. 5 de diciembre de 2007. Archivado del original el 18 de junio de 2018. Consultado el 24 de septiembre de 2016 .
  24. "Otro software de SUN Microsystems" . www.computinghistory.org.uk . El Centro de Historia de la Computación . Consultado el 24 de septiembre de 2016 .
  25. "NFS Gateway para NetWare 6.5" . www.novell.com . Novell . Consultado el 24 de septiembre de 2016 .
  26. "Complemento NTFS para NetDrive" . ecsoft2.org . Archivado del original el 22 de febrero de 2016. Consultado el 22 de septiembre de 2020 .
  27. "Programas relacionados con redes" . cp15.org .
  • RFC :
    • RFC 1014 – XDR: Estándar de representación de datos externos (obsoleto por RFC 1832) 
    • RFC 1094 – Especificación del protocolo NFS versión 2 
    • RFC 1790 – Acuerdo de control de cambios de Sun/ISOC ONC RPC 
    • RFC 1813 – Especificación del protocolo NFS versión 3 
    • RFC 1832 – XDR: Estándar de representación de datos externos (obsoleto por RFC 4506) 
    • RFC 2054 – Especificación del cliente WebNFS 
    • RFC 2055 – Especificación del servidor WebNFS 
    • RFC 2203 – Especificación RPCSEC_GSS 
    • RFC 2224 – Especificación del esquema de URL de NFS 
    • RFC 2339 – Acuerdo de control de cambios de Sun/ISOC NFS 
    • RFC 3010 – Especificación del protocolo NFS versión 4 (obsoleta por RFC 3530) 
    • RFC 3530 – Especificación del protocolo NFS versión 4 (obsoleta por RFC 7530 y RFC 7531) 
    • RFC 4506 – XDR: Estándar de representación de datos externos 
    • RFC 5403 – RPCSEC_GSS Versión 2 
    • RFC 5531 – RPC: Especificación del protocolo de llamada a procedimiento remoto, versión 2 
    • RFC 5661 – Especificación del protocolo NFS versión 4.1 (obsoleta por RFC 8881) 
    • RFC 5662 – Descripción del protocolo XDR de la versión 4.1 de NFS 
    • RFC 5663 – NFS paralelo - Especificación de diseño de bloques/volúmenes 
    • RFC 5664 – NFS paralelo - Especificación de operaciones basadas en objetos 
    • RFC 5665 – Consideraciones de IANA para los identificadores de red de llamadas a procedimientos remotos (RPC) y los formatos de direcciones universales 
    • RFC 5666 – Transporte de acceso directo a memoria remota para llamada a procedimiento remoto 
    • RFC 5667 – Ubicación directa de datos NFS 
    • RFC 7530 – Especificación del protocolo NFS versión 4 
    • RFC 7531 – Descripción del protocolo XDR de la versión 4 de NFS 
    • RFC 7862 – Especificación del protocolo NFS versión 4.2 
    • RFC 7863 – Descripción del protocolo XDR de la versión 4.2 de NFS 
    • RFC 8154 – Especificación de diseño SCSI para NFS paralelo 
    • RFC 8166 – Transporte de acceso directo a memoria remota para llamadas a procedimientos remotos, versión 1 (actualizado por RFC 8797) 
    • RFC 8267 – Enlace de capa superior NFS a RPC sobre RDMA Versión 1 
    • RFC 8275 – Extensión del atributo Umask para NFS versión 4.2 
    • RFC 8276 – Extensión Xattrs para NFSv4 
    • RFC 8434 – NFS paralelo - Especificación de diseño de archivos flexible 
    • RFC 8797 – Acceso remoto directo a memoria - Administrador de conexiones (RDMA-CM) Datos privados para RPC sobre RDMA Versión 1 
    • RFC 8881 – Especificación del protocolo NFS versión 4.1 
    • RFC 9289 – Hacia el cifrado de llamadas a procedimientos remotos por defecto 
    • RFC 9562 – Identificadores Universalmente Únicos (UUID) 
  • Normas técnicas del Grupo Abierto:
    • Protocolos de interconexión: XNFS, versión 3W – Especificación de Open Group de NFS2, NFS3 y protocolos de banda lateral MNT, NSM y NLM para el bloqueo de archivos que no están cubiertos por los documentos RFC.
    • Protocolos para la interoperabilidad de X/Open PC: (PC)NFS – Especificación de Open Group de NFS2 y protocolos de banda lateral MNT, NLM y PCNFSD que no están cubiertos por los documentos RFC.
  • Diversos recursos:
    • Implementación del Sistema de Archivos de Red (NFS) 2.0
    • IETF: Carta del Sistema de Archivos de Red Versión 4 (nfsv4)
    • Descripción general, preguntas frecuentes y documentos de instrucciones para Linux NFS.
    • Funcionamiento de NFS explicado con diagramas de secuencia. Archivado el 22/09/2020 en Wayback Machine.
  • Reseña del artículo "Por qué NFS es un desastre" del Simposio Linux de 2006, por Mike Eisler, 27 de octubre de 2006.