Saludos amigos, hoy os traigo un post que no he visto mucho sobre ello en otros lugares. Se trata de la posibilidad de usar NFS 4.1 para nuestros Datastores VMware. vSphere soporta NFS 4.1 desde vSphere 6.0 y desde entonces ha mejorado también bastante.
Comparación entre NFS 3 y NFS 4.1 – funcionalidades
Antes de movernos a NFS 4.1, me gustaría explicaros las diferencias entre el protocolo de NFS 3, de toda la vida que casi todos usan, y el nuevo NFS 4.1, vamos allá:
|
Funcionalidad |
NFS versión 3 |
NFS versión 4.1 |
|---|---|---|
|
Mecanismos de seguridad |
AUTH_SYS |
AUTH_SYS and Kerberos (krb5 and krb5i) |
|
Algoritmos de cifrado con Kerberos |
N/A |
AES256-CTS-HMAC-SHA1-96 and AES128-CTS-HMAC-SHA1-96 |
|
Multipathing |
No soportado |
Soportado mediante session trunking |
|
Mecanismos de Locking |
Propriety client-side locking |
Server-side locking |
|
Aceleración de Hardware |
Soportado |
Soportado |
|
Thick virtual disks |
Soportado |
Soportado |
|
IPv6 |
Soportado |
Soportado por AUTH_SYS y Kerberos |
|
Imágenes ISO presentadas como CD-ROMs a las virtual machines |
Soportado |
Soportado |
|
Snapshots de Virtual machine |
Soportado |
Soportado |
|
Virtual machines con virtual disks superiores a 2 TB |
Soportado |
Soportado |
Como vemos las diferencias parecen no muchas, pero hay varias por las cuales NFS 4.1 es una opción mucho más recomendable que NFS 3 y son:
- Multipathing
- Mejorada la autenticación con Kerberos
Quiero saber más sobre Multipathing sobre NFS
Of course you do! Y es aquí donde viene la magia, hasta ahora y usando NFS 3, quedábamos expuestos a nivel de protocolo a la hora de multipathing, esto quiere decir que incluso aunque tuviéramos un entorno redundante de networking hacia nuestro NFS, las sesiones siempre van por un camino, sin contar que el resto de conexiones quedan como failover:
No importa que tengamos todo bien configurado, o el fabricante que tengamos, mientras usemos NFS 3, solamente habrá activo un camino, quedando el resto para mero failover.
Veamos el mismo escenario con NFS 4, en el que VMware vSphere 6 añade un nuevo canal hacía el mismo objetivo, incrementando el ancho de banda y reduciendo la latencia.
Comparación entre NFS 3 y NFS 4.1 – a nivel de vSphere
Antes de ponernos a configurar NFS 4.1 como locos, debido a las mencionadas mejoras, me gustaría detenernos un segundo en las funcionalidades soportadas por VMware sobre NFS 4.1, y que una vez con estos datos en la mano, hagáis las pruebas que creáis oportunas antes de moveros a NFS 4.1 en producción:
|
Funcionalidades vSphere |
NFS versión 3 |
NFS versión 4.1 |
|---|---|---|
|
vMotion y Storage vMotion |
Soportado |
Soportado |
|
High Availability (HA) |
Soportado |
Soportado |
|
Fault Tolerance (FT) |
Soportado |
Soportado |
|
Distributed Resource Scheduler (DRS) |
Soportado |
Soportado |
|
Host Profiles |
Soportado |
Soportado |
|
Storage DRS |
Soportado |
No soportado |
|
Storage I/O Control |
Soportado |
No soportado |
|
Site Recovery Manager |
Soportado |
No soportado |
|
Virtual Volumes |
Soportado |
Soportado |
|
vSphere Replication |
Soportado |
Soportado |
|
vRealize Operations Manager |
Soportado |
Soportado |
Como vemos, hay algunas funcionalidades clave que VMs sobre NFS 4.1 en Hosts ESXi no se pueden realizar, tales como Storage DRS, SRM y Storage I/O Control. Si esto no es un problema muy grande para vosotros, seguir leyendo.
Configurando un Datastore QNAP con NFS 4.1
En otras ocasiones os he contado la maravilla que es tener QNAP para nuestro entorno virtual:
- PRTG: Monitorizando el estado, discos, espacio y mucho más de NAS QNAP
- QNAP: QNAP Q’center para VMware: administrar y monitorizar varios QNAP de manera centralizada
- VMware: Backup de vCenter Server Appliance (VCSA) 6.5
- QNAP: Configuración de Red e iSCSI para entornos VMware vSphere 6.0
- QNAP: Configuración de Red y Servicios NFS para entornos VMware vSphere 6.0
Una de las ventajas que QNAP tiene frente a otros NAS es que ya soporta NFS 4.1 de manera nativa, sin trucos ni teniendo que editar ficheros extra como root en el filesystem, si hablo de Synology que no soporta NFS 4.1 de manera nativa, too bad.
Una de las diferencias vs. un share de NFS 3 es que no tenemos que introducir el típico /share/NOMBREDEUNIDAD, simplemente el NOMBREDEUNIDAD, lo veremos más adelante.
En nuestro panel de control de QNAP, nos iremos hasta Shared Folders para ver, o crear, la unidad NFS a la que queremos conectarnos, en mi caso se llama VM:
Un tema a tener en cuenta es la parte de red, en mi caso tengo el NAS, y los Hosts en dos rangos el 192.168.0.x y el 192.168.100.x, el 100.x solo es para tráfico NAS, con lo que tengo una boca de red con la IP 50 y otra con la 51, con lo mis hosts de ESXi pueden comunicarse con las dos tarjetas de red del NAS simultáneamente:
Ahora que la teoría ya está clara, nos vamos a nuestro HTML5 Client de VMware, y en la parte de Storage creamos uno nuevo:
Seleccionaremos que queremos un Datastore de tipo NFS
Seleccionaremos que sea de tipo NFS 4.1
Seleccionaremos un nombre para el Datastore, la ruta, como os dije ya no hace falta /share/VM por ejemplo aquí, solamente el nombre, y muy importante añadir todas las IP que sirven este NFS, en mi caso varias bocas de red:
Ahora podremos seleccionar autenticación Kerberos, novedad exclusiva de NFS 4.1, o no, en mi caso he marcado no usar Kerberos:
Lo siguiente será conectarlo al host, o hosts que deseemos, en mi caso todos:
Y por último veremos un resumen de la acción:
En tan solo unos segundos ya veremos el nuevo Datastore montado, de tipo NFS 4.1:
Rendimiento de una VM en NFS 3 vs NFS 4.1
Para comprobar, de manera muy rápida sin mucho más detalle, he lanzado un varias herramientas en una misma VM que he alojado primero en NFS 3 y posteriormente en NFS 4.1 para comprobar si hay mejoría, tener en cuenta que no tengo un switch muy decente ni nada más avanzado para lanzar pruebas, pero en un Datacenter bien configurado deberíamos ver incremento de IOPS y descenso de I/O ms.
NFS 3
Resultados de IOMeter con 64K 100%read
Vemos como en nuestro PRTG solo estamos usando una tarjeta de red del QNAP: 
NFS 4.1
Vamos a lanzar los mismos tests, pero contra nuestro NFS 4.1:
Y PRTG usando las dos interfaces, al máximo, casi por igual, ya que es un balanceo:
Conclusión
Podemos ver en este pequeño laboratorio, que he mejorado el acceso de mis ESXi a mi QNAP, los resultados son visibles y yo os recomiendo darle una oportunidad a este gran desconocido, siempre y cuando toda la infraestructura de red y networking esté preparada con su LACP, o Etherchannel, etc.
Links interesantes
Algunos links para acompañar al post:
- https://cormachogan.com/2016/10/18/whats-new-vsphere-6-5-core-storage/
- http://hansdeleenheer.com/vsphere-6-nfs4-1-does-not-include-parallel-striping/
- https://docs.vmware.com/en/VMware-vSphere/6.5/com.vmware.vsphere.storage.doc/GUID-8A929FE4-1207-4CC5-A086-7016D73C328F.html
- https://docs.vmware.com/en/VMware-vSphere/6.5/com.vmware.vsphere.security.doc/GUID-987194A1-E4F8-470D-B28F-3B4DB9B4CCB4.html
- https://forums.servethehome.com/index.php?threads/playing-with-nfs4-1-multipathing-on-synology.12845/






No termino de entender que ventaja puede tener montar un repositorio para VMs en formato NFS (cualquiera de los dos) frente a un formato en LUN VMFS.
Un saludo.
Saludos, todo depende del uso y entorno que tengas, de lo familiarizado que el admin esté con ambas tecnologías, etc. Si tienes un buen entorno, digamos 10GbE, y quieres provisionar todo rápido quizá NFS sea tu solución, ahora con 4.1 con multipathing para evitar ir por un solo switch, con iSCSI tienes todo resuelto pero la puesta en marcha de LUNs, así como luego hacer crecer esas LUNs y mantenerlas puede llevar algo más de tiempo.
Además dependerá si en tu entorno quieres usar esos NFS, en otros shares espero, con otras tecnologías, ya que VMFS es propietario de VMware.
Por lo que creo que solo depende mucho del entorno y las personas que lo administran, de todas maneras el blog era para mostrar la novedad de vSphere 6.x con NFS 4.1 y multipathing, y mostrar el rendimiento vs NFS 3, supongo que podría haber puesto una prueba con iSCSI usando el mismo multipathing para ver rendimiento, quizá lo añada 🙂
Un saludo