Información general sobre NFS

Completado

Hay algunos conceptos clave de NFS que se deben analizar en el contexto de la elección de la solución de almacenamiento de HPC. El principal desafío a la hora de usar NFS es determinar si el entorno de almacenamiento de HPC de destino necesita elementos de configuración, conectividad de red o características de seguridad específicas de una versión concreta de NFS. Si recopila algunos de estos conceptos en los criterios de selección, le ayudará a evaluar las distintas soluciones disponibles. Como mínimo, tener en cuenta estos elementos le ahorrará tiempo al eliminar todo lo que no se ajuste a sus requisitos de NFS.

Consideraciones sobre NFS

Hay dos versiones principales del protocolo NFS: NFSv3 y NFSv4.x (v4.1 y v4.2). El ámbito completo de las diferencias entre estas dos versiones queda excluido de los objetivos de este módulo. Pero hay una serie de problemas relacionados con la autenticación y la autorización que identificamos aquí. No hace falta que entremos en la historia de los dos protocolos ni en por qué hay dos. Es suficiente saber que muchos usuarios siguen ejecutando NFSv3 en sus entornos.

Comencemos con consideraciones específicas del uso de NFSv3.

NFSv3 y los grupos

NFSv3 es un protocolo simple de sistema de archivos que pasa solicitudes de API a clientes y servidores NFS. Antes hemos mencionado que un UID representa a un usuario y que los usuarios tienen una asociación de GID de grupo principal. También se ha mencionado que un usuario puede estar asociado a un número mayor de grupos. Para los propósitos de NFS, estas asignaciones de grupo se conocen como grupos auxiliares. La información de UID y GID se pasa con las solicitudes, que el servidor NFS usará para determinar el nivel de acceso adecuado.

NFSv3 tiene un límite en el número total de valores de GID que pasa. NFSv3 admite que se pasen únicamente 16 grupos auxiliares para cualquier UID determinado. Si usa más de 16 asignaciones de grupos de formas significativas (como la administración de acceso específica), podría verse afectado por esta limitación. Los proveedores de NAS como NetApp han agregado una extensión al protocolo NFS que admite la comunicación de todas las asignaciones de grupos. Esta extensión se conoce como compatibilidad con los grupos extendidos. Si va a evaluar el almacenamiento de HPC y usa un gran número de asignaciones de GID, deberá comprobar si la solución propuesta es compatible con esta funcionalidad.

NFSv3 y la seguridad de red

NFSv3 también está limitado en términos de seguridad. En realidad NFSv3 no tiene muchas características de seguridad. Por ejemplo, no admite el cifrado de datos ni la autenticación Kerberos. Los principales mecanismos disponibles en un entorno de NFSv3 implican el uso de directivas y reglas de exportación para limitar el acceso de nivel de red al servidor NFS. Una exportación es el mecanismo que un servidor NFS usa para exponer un directorio concreto a los clientes. Se configuran reglas de exportación para permitir o denegar a los clientes en función de su dirección de red IP. Puede definir entradas de host en una regla de exportación (por ejemplo, 1.1.1.1) o redes (por ejemplo, 1.1.1.0/24) y permitir o denegar el acceso a la exportación. Las reglas de exportación se recopilan en una directiva de exportación, que está asociada a una exportación concreta en el servidor NFS.

NFSv3 y los puertos de red

Un desafío con NFSv3 es que no usa un puerto TCP estándar para todas las comunicaciones. Esta flexibilidad con respecto a los puertos hace que permitir el acceso de NFSv3 mediante una WAN, dado que aunque hay puertos estándar (111 para RPC y 2049 para NFS), otros puertos para montar la exportación se asignan de forma aleatoria.

Las redes de NFSv3 en Azure se convierten en un desafío solo si necesita acceso más allá de la red virtual y necesita una configuración de seguridad que bloquee los puertos TCP. Pero elegir una solución que proporcione la configuración de la directiva de exportación le ayudará a bloquear directamente la solución NFS, con independencia de lo que se haya configurado en el perímetro de la red.

Aplicación de squash

Diagrama que muestra el tráfico de NFS cliente en la raíz al que se ha aplicado squash en 65534.

La aplicación de squash se refiere a la capacidad del servidor NFS de forzar el uso de un UID específico para acceder a archivos o carpetas. Por ejemplo, un administrador puede querer controlar qué UID se usa para una carpeta exportada concreta. Los entornos de servidor NFS de Linux admiten la capacidad de aplicar squash al acceso raíz a un UID que no sea raíz. Los productos de NAS admiten la aplicación de squash específica en función de la dirección o red de cliente entrante, y el valor UID. Uno de los usos clave de la aplicación de squash es garantizar el acceso no raíz en conexiones remotas.

Si tiene pensado replicar el sistema de archivos en Azure y espera este mismo comportamiento, tenga en cuenta que no todas las soluciones admiten la aplicación de squash de la misma manera.

NFSv3 y el cifrado

NFSv3 no admite el cifrado de datos. Se ha diseñado originalmente para su uso dentro de un entorno empresarial de confianza. La solución de cifrado de red debe cifrar el tráfico que sale de la red de confianza.

NFSv3 y el bloqueo de archivos

El bloqueo hace referencia a la capacidad de un cliente para evitar que otros actualicen un archivo concreto o una sección específica de un archivo. NFSv3 no tiene su propio mecanismo de bloqueo. Los servicios de red denominados Network Lock Manager (NLM) y Network Status Monitor (NSM) realizan el bloqueo que sí existe. Estos servidores se ejecutan en clientes y servicios, y administran toda la interacción de bloqueo. Se ejecutan fuera del servicio NFS y generan su propio tráfico de protocolo de red. Estos bloqueos no son obligatorios. Se conocen como bloqueos de aviso. Se realiza el seguimiento de estos bloqueos, pero no se aplican. Se espera que las aplicaciones controlen los problemas de contención y bloqueo.

NFSv4.x

NFSv4.x presenta algunas mejoras importantes para NFS. Nos centraremos en las principales mejoras.

NFSv4 y Kerberos

NFSv4 presentó compatibilidad total con el uso de Kerberos para la autenticación de usuarios y el cifrado de todo el tráfico de NFS. Se intentó integrar Kerberos con NFSv3, pero debido al uso de NLM/NSM y otros protocolos externos solo se cifran las cargas de datos.

A menos que se bloqueen explícitamente mediante directivas de exportación, todos los accesos en NFSv3 son de confianza. Con Kerberos, ahora puede realizar la autenticación en función de máquinas de confianza.

Se admite el cifrado de todo el tráfico de NFS. Puede cifrar todo el tráfico desde el cliente NFS al servidor NFS (no solo en segmentos de red concretos).

Para usar la autenticación y el cifrado a través de Kerberos, debe implementar un entorno de Kerberos.

Una consideración clave es que no todos los servicios compatibles con NFSv4 admiten Kerberos. Sin Kerberos, puede seguir usando otras características de NFSv4, pero no podrá autenticar ni cifrar los datos. A la hora de elegir la solución, asegúrese de comprobar si necesita esta funcionalidad y si las opciones admiten Kerberos.

NFSv4 y los puertos de red

Una ventaja de NFSv4 con respecto a NFSv3 es que NFSv4 usa un solo puerto TCP (2049) para todo el tráfico. Si tiene un entorno de NFSv4 en una red virtual de Azure o se encuentra en el centro de datos, es más fácil proporcionar acceso entre los firewalls al admitir NFSv4.

NFSv4 y las ACL

Imagine que tiene un archivo o una carpeta, y quiere ofrecer acceso de lectura o escritura al grupo 1, acceso de solo lectura al grupo 2 y acceso a datos anexados a una cuenta de equipo concreta. Los permisos de NFSv3 (bits de modo) no pueden cumplir estos requisitos porque los permisos de v3 no tienen el nivel de granularidad requerido.

NFSv4 presenta las listas de control de acceso (ACL). A cada archivo o carpeta se le puede aplicar una ACL. Cada ACL consta de una o varias entradas de control de acceso (ACE). Este enfoque es familiar para los administradores de NTFS de Windows, ya que NTFS sigue el mismo modelo.

Si en el entorno se usan ACL de NFSv4, tendrá que determinar qué solución de almacenamiento satisface mejor este requisito.

Resumen

Se ha mostrado una parte mínima de las consideraciones sobre el protocolo NFS. Los elementos que se describen aquí representan los factores clave que se deben tener en cuenta al elegir la solución de almacenamiento.

Tendrá que evaluar el entorno actual y los requisitos de seguridad, red y administración de grupos para determinar la solución de almacenamiento adecuada.

En esta tabla se proporciona una comparación a partir de la explicación anterior:

Capacidad NFSv3 NFSv4
Permisos de archivo o carpeta Bits de modo Bits de modo y/o ACL
Cifrado Ninguno Kerberos
Puertos de red TCP o UDP, se necesita asignador de puertos Puerto TCP 2049
Bloqueo de archivos NLM de aviso Compatibilidad con el bloqueo activo

Comprobación de conocimientos

1.

Si tiene que proteger archivos o carpetas en función de un conjunto de grupos y usuarios, puede considerar la posibilidad de usar:

2.

Si la aplicación necesita un bloqueo de archivos aplicado en el nivel del sistema operativo, debería usar: