Los entornos de virtualización básicamente soportan tres tipos de tecnologías de almacenamiento:
En este artículo nos vamos a centar en la tecnología NAS y en partícular en NFS. La utilización de NFS en un entorno virtualizado presenta ventajas de coste y complejidad para los administradores IT. Por el contrario, NFS da un rendimiento inferior a tecnologías tipo SAN y no soporta multi-pathing.
El principal beneficio es el coste. Tener un sistema de almacenamiento compartido es casi obligatorio en una infraestructura de virtualización si se desea aprovecharse de alguna de sus características avanzadas como la alta disponibilidad o la migración entre hosts en caliente (vMotion en VMware).
El coste de implementar una solución en Fiber-Channel es normalmente más elevado que una solución NAS. Ésta utiliza componentes de red comunes como tarjetas de red, cables de red o switches en vez de adaptadores, cables de fibra y switches FC que habitualmente tienen un precio elevado.
Otro beneficio es la complejidad. Implementar una solución NAS es normalmente más sencillo que una solución SAN y no suele ser necesario disponer de la ayuda de un administrador especializado en almacenamiento.
NFS no soporta el arranque de sistemas, por lo tanto si deseas que tus Hosts arranquen de una solución de red centralizada no podrás hacerlo utilizando NFS.
NFS utiliza un software cliente para poder acceder a los sistemas de ficheros en red. Éste está compilado a nivel hypervisor en vez de a nivel de adaptador hardware. Por lo tanto, se produce una sobrecarga de CPU cuando se comunica el hypervisor con el servidor NFS que puede afectar al rendimiento de las máquinas virtuales. En este sentido es primordial tener la suficiente capacidad de procesamiento (CPU) para evitar que llegue a ser el cuello de botella de nuestra infraestructura.
Por último, una solución NAS no soporta multi-pathing. Este tipo de solución, soportada en iSCSI o FC, se utiliza para balancear la carga y tener tolerancia a fallos. Con NFS, únicamente una sesión TCP está abierta con el almacenamiento, lo cual limita el rendimiento global. Este hecho puede ser resuelto parcialmente utilizado tarjetas 10 Gigabit Ethernet (GbE) o utilizando múltiples almacenamientos de un tamaño menor. En cuanto a la tolerancia a fallos, la única solución es utilizar múltiples NICs a nivel de virtual switch.
Como ya hemos comentado, es vital tener los suficientes recursos en CPU para evitar que llegue a ser el cuello de botella de nuestra solución. Esto puede ser resuelto de manera más o menos simple asegurándose de que no se sobrecargan las CPUs virtuales con un número elevado de máquinas virtuales.
La arquitectura de red es otro aspecto a tener en cuenta. NFS es altamente dependiente de la “salud” de nuestra red y de su utilización. Por lo tanto, es básico aislar el tráfico NFS del resto utilizando tarjetas de red (NIC) físicas dedicadas que no sean compartidas por ninguna máquina virtual. Del mismo modo, a nivel de switch se debe aislar la comunicación entre los Hosts y servidores NFS creando VLANs dedicadas.
La utilización de NICs de 1 GB suele ser adecuada en la mayoría de los casos, pero si queremos obtener un rendimiento superior podemos utilizar tarjetas de 10 GbE.
Por último, el tipo de almacenamiento NFS que utilicemos es vital y debe adaptarse a nuestra demanda de E/S (I/O). Por lo tanto, por ejemplo no tiene sentido utilizar un viejo servidor Linux como servidor NFS. En general, cuanto más dinero invirtamos en una solución NFS, mayor rendimiento obtendremos. Es fundamental que la solución adquirida se adapte a las necesidades de nuestra infraestructura de virtualización.