¿Es razonable utilizar NFS en un servidor web de producción?

Aug 16 2020

¿Se puede utilizar razonablemente NFS en servidores de producción como un medio para conectar un servidor de cómputo a un servidor de almacenamiento, asumiendo que la conexión se realiza a través de una conexión LAN de 1 Gbe o 10 Gbe?

Obviamente, hay algo de sobrecarga de red y NFS parece particularmente más lento con escrituras si tiene habilitado el modo de sincronización. De lo contrario, parece razonablemente liviano y capaz de escalar por lo que puedo decir, pero personalmente tengo poca experiencia con él. ¿Me equivoco?

El problema es que tengo un servidor en este momento que actúa como almacenamiento y servidor web, pero probablemente terminaré necesitando dividir los dos en el futuro, y considerando que algunas solicitudes deben pasar a través de la capa de aplicación web para la autenticación. antes de inicializar la transferencia de archivos, se vuelve un poco complicado con este software. Un montaje de red fs es la opción más simple, simplemente ... no sé si es una buena opción.

También planeo intentar utilizar el almacenamiento en caché local con NFS, lo que debería mejorar un poco el rendimiento, pero no estoy seguro de si eso es suficiente.

En cuanto a las alternativas, solo hay iSCSI que conozco como un competidor real, y la mayoría de la gente parece recomendar NFS sobre cualquiera de los otros menos conocidos.

Respuestas

29 AustinHemmelgarn Aug 17 2020 at 09:04

NFS está bien, salvo que se cumplan otros criterios específicos, a saber:

  • Los sistemas involucrados pueden utilizar NFS de forma nativa. Ventanas no cuenta aquí, que tipo de obras, pero tiene una gran cantidad de peculiaridades y es a menudo un dolor de trabajar con cuando se trata de NFS en un entorno multi-plataforma (y si es simplemente ventanas, uso SMB3, se elimina la mayor parte de los otros problemas con NFS). Tenga en cuenta que en el lado del cliente, esto significa soporte a nivel de kernel, porque una implementación a nivel de usuario tiene que lidiar con los problemas de eficiencia inherentes al uso de algo como FUSE, o tiene que estar vinculada directamente a la aplicación que necesita acceder a la compartir.
  • Ha verificado correctamente cómo el cliente NFS maneja un reinicio del servidor NFS. Esto incluye tanto el sistema operativo en sí (que debería estar bien en la mayoría de los casos) como el software que accederá al recurso compartido. En particular, se necesita especial cuidado en algunas plataformas cliente cuando el software que usa el recurso compartido mantiene los archivos abiertos durante períodos prolongados, ya que no todas las implementaciones de clientes NFS manejan correctamente los reinicios del servidor al volver a montar y revalidar explícitamente los bloqueos y los identificadores de archivos como deberían conduce a todo tipo de problemas para el software del cliente). Tenga en cuenta que debe volver a verificar esto cada vez que se actualice o se reconfigure cualquier parte de la pila.
  • Está dispuesto a configurar la asignación adecuada de ID de usuario / grupo. Esto es grande, porque sin él necesita reflejar las asignaciones de UID / GID entre los sistemas (factible, pero desconfiaría de configurar SSO contra una red interna para un sistema orientado a Internet) o terminará con problemas potencialmente graves implicaciones de seguridad (es decir, lo que ve en un sistema para los permisos no coincide con lo que ve en otros).
  • Está operando a través de un enlace de red seguro o está dispuesto a configurar correctamente la autenticación para el recurso compartido. Sin autenticación, cualquiera en el enlace puede acceder a él (y un cliente malintencionado puede fácilmente eludir los controles básicos de acceso discrecional de UNIX).

Suponiendo que cumpla con todos esos criterios y tenga una red razonablemente rápida, debería estar bien. Además, si puede ejecutar tramas gigantes, hágalo, ya que ayudan mucho para cualquier sistema de archivos de red o almacenamiento de bloques en red.

17 BaronSamedi1958 Aug 16 2020 at 14:34

NFS está absolutamente bien y se prefiere a iSCSI debido al hecho de que NFS es mucho más fácil de administrar, compartir y hacer copias de seguridad.

12 GeraldSchneider Aug 16 2020 at 11:34

Hemos estado usando NFS durante años para conectar nuestra SAN a nuestros servidores VMware ESXi, ejecutando cientos de VM en él. No hay ningun problema.

El cuello de botella es más el sistema de almacenamiento que el protocolo de red.

La conexión de red debe ser lo suficientemente rápida, por supuesto, es decir, Ethernet o fibra de 10 Gb. Ya ni siquiera nos molestamos en tener una red de almacenamiento separada.

6 NISMO1968 Aug 16 2020 at 23:01

iSCSI podría ser un poco más rápido ...

https://www.vmware.com/content/dam/digitalmarketing/vmware/en/pdf/techpaper/storage_protocol_comparison-white-paper.pdf

https://www.hyper-v.io/whos-got-bigger-balls-testing-nfs-vs-iscsi-performance-part-3-test-results/

... pero NFS como cualquier otro redirector de red (SMB3, AFS / AFP, etc.) permite el acceso múltiple concurrente, lo cual es complicado con iSCSI u otros protocolos de bloque.

https://forums.starwindsoftware.com/viewtopic.php?f=5&t=1392