Antes de nada, aclarar: Cluster Shared Volume (CSV) y Live Migration son tecnologías independientes, que pueden cumplimentarse y trabajar juntas. CSV es muy recomendable (aunque no es requerido) para poder utilizar Live Migration. Dicho esto, empezamos.
Introducción a Cluster Shared Volume (CSV)
Quizás la principal novedad en Windows Server 2008 R2 en el contexto de Almacenamiento, Hyper-V, y Failover Clustering, es Cluster Shared Volume (CSV), disponible en las ediciones Enterprise y Datacenter, así como en Microsoft Hyper-V Server 2008 R2 (de descarga gratuita). CSV permite el acceso de múltiples servidores a una misma LUN (Logical Unit Number) de un almacenamiento SAN compartido, frente al acceso tradicional, en el cual, o un nodo del Cluster u otro, es el que hospeda y accede a la LUN compartida (sin embargo, con CSV, todos los nodos del Cluster pueden acceder simultáneamente a la misma LUN: unos pueden estar escribiendo, otros leyendo, etc.).
Cluster Shared Volume (CSV) ha sido inicialmente diseñado para su utilización sólo y exclusivamente por Hyper-V, y no está soportado por otras aplicaciones mientras Microsoft no especifique lo contrario. Podemos verlo como una característica del Windows Server Failover Clustering (WSFC) en Windows Server 2008 R2.
Cluster Shared Volume (CSV) permite la migración rápida de Máquinas Virtuales entre diferentes nodos de un Cluster (Live Migration) y facilita la gestión del almacenamiento. Antes de la introducción de Cluster Shared Volume (CSV), una Máquina Virtual configurada en Alta Disponibilidad, requería de su propia o propias LUNs, de tal modo, que pueda balancearse dicha Máquina Virtual (y sus correspondientes LUNs) sin impactar en el resto de Máquinas Virtuales. Es decir, si tuviésemos en una única LUN cinco Máquinas Virtuales, sólo podríamos balacear (mover a otro Host) las cinco Máquinas Virtuales, o ninguna. Por ello se decía que la LUN era la unidad mínima de Failover. Esto además implicaba que cuantas más Máquinas Virtuales tuviésemos en Alta Disponibilidad, más LUNs necesitaríamos presentar a los Host de Hyper-V. Así de triste eran las cosas, hasta la aparición de Cluster Shared Volume (CSV).
CSV proporciona un espacio de nombres consistente para todos los Nodos del Cluster, de tal modo que los volúmenes CSV son representados como subdirectorios por debajo de la carpeta %SystemDrive%\ClusterStorage. Es decir, un disco configurado como CSV, no aparecerá en el Explorador de Windows con una letra de unidad, sino como una subcarpeta por debajo de %SystemDrive%\ClusterStorage. Tampoco se pueden utilizar como puntos de montaje. Esto implica, que es requisito que todos los Nodos del Cluster tengan configurado el Disco de inicio (Boot) con la misma letra de unidad, para que en todos se mantenga el mismos espacio de nombres.
Debe tenerse en cuenta, que no es posible crear Discos Virtuales de tipo Pass-Throught sobre un disco CSV, debiendo utilizarse para tal menester, discos compartidos que no estén configurados como CSV. Esto es evidente: o compartimos el Disco (CSV), o no lo compartimos (Passthrought).
CSV realiza el acceso al almacenamiento de forma diferente: un Nodo cualquiera del Cluster es designado como el Nodo Coordinador (Coordinator Node), de tal modo, que cuando una aplicación necesita escribir en el disco CSV, dicha aplicación solicita permiso al Nodo Coordinador (Coordinator Node), el cuál actúa como un árbitro. Esto se hace a través de la red, pero ¿Cómo?
Cluster Shared Volume (CSV), requiere de comunicación entre los Nodos del Cluster a través de una interfaz de red que incluya el Client for Microsoft Networks, y también el File and Printer Sharing for Microsoft Networks. Esto es debido a que la comunicación de red correspondiente al tráfico de CSV, utiliza SMB. Así, si utilizamos la red de HeartBeat del Cluster para la comunicación CSV (lo cual, es la configuración por defecto), entonces en dichas tarjetas de red no es suficiente con incluir sólo el protocolo TCP/IP (como se hacía a la antigua usanza, o al menos, esta ha sido una de mis manías), sino que además, deberemos tener seleccionados los componentes comentados, insisto: el Client for Microsoft Networks, y el File and Printer Sharing for Microsoft Networks. Si no hacemos esto, nos encontraremos con el siguiente síntoma o problema en el CSV: en el nodo que sea propietario actual del disco CSV podremos ver la subcarpeta correspondiente al disco CSV (ej: C:\ClusterStorage\Volume1), mientras que en el Nodo que no es propietario del disco CSV (suponiendo un Cluster de dos Nodos) no veremos la subcarpeta del disco CSV por debajo de ClusterStorage (sólo veremos C:\ClusterStorage, sin la subcarpeta correspondiente a dicho disco CSV). Tenemos que ver lo mismo en los dos Nodos.
Otro tema relativo a los Cluster Shared Volume (CSV) es la Redirección de I/O en Discos CSV, que se trata de una tecnología, que permite a un Nodo que pierda el acceso físico a sus ficheros a través la correspondiente HBA (ej: pérdida de un camino de Fibra), poder continuar realizado sus lecturas y escrituras, en vez de directamente a través de su HBA, a través de la red (utilizando SMB por la red asignada al CSV), para que el Nodo Coordinador del disco CSV ejecute dichas operaciones de lectura y escritura.
Si resultase necesario, es posible extender el tamaño de un Disco CSV, para lo cual, primero será necesario extender la correspondiente LUN en el sistema de Almacenamiento compartido de turno (la cabina que fuere), y seguidamente, extender el volumen desde el Nodo que posea el disco CSV (el Nodo que actúe como Coordinador).
Diferencia entre Quick Migration y Live Migration
Quick Migration fue una tecnología introducida en Windows Server 2008 (sin R2), a través de la cual, era posible mover una Máquina Virtual de un Host a otro (dentro de un Failover Cluster). Para ello, se guardaba (Save) el estado de la Máquina Virtual, se movía dicha máquina (bueno, se cambiaba el Host que tenía la posesión de las LUN correspondientes, es decir, se movía el Grupo de Recursos del Cluster), y se restauraba (Start) la Máquina Virtual en el Host destino. Esta tecnología implicaba una pequeña pérdida de servicio, pero en cualquier caso, permitía mover una Máquina Virtual de un Host a otro.
Quick Migration está disponible tanto en Windows Server 2008 como en Windows Server 2008 R2.
Live Migration es una tecnología introducida en Windows Server 2008 R2, a través de la cual, también es posible mover una Máquina Virtual de un Host a otro (dentro de un Failover Cluster). Sin embargo, Live Migration pre-copia la memoria de la Máquina Virtual (working set) que se está moviendo/migrando de un Host a otro, con el objetivo de minimizar al máximo el tiempo estricto de transferencia de la Máquina Virtual. De este modo, Live Migration minimiza el tiempo de pérdida de servicio a un periodo inferior al tiempo de timeout de TCP, lo que permite que en muchos casos los usuarios no experimenten ninguna pérdida de servicio. Todo esto se realiza de forma transparente para la Máquina Virtual.
Live Migration utiliza una conexión de red entre los Hosts del Cluster para el envío del tráfico propio del Live Migration (es decir, el contenido de páginas de memoria de la Máquina Virtual), siendo recomendado una conexión dedicada de Gigabit o superior. También es recomendable utilizar Cluster Shared Volume junto con Live Migration. A poder ser, una tarjeta de red dedicada a Live Migration y otra dedicada a tráfico Cluster Shared Volume (CSV).
Escenarios apropiados para Live Migration
A continuación se comentan algunos escenarios apropiados para la utilización de Live Migration, por poner alguno de los muchos ejemplos posibles:
- Realización de labores de mantenimiento en los Hosts. Con Live Migration, podemos mover las Máquinas Virtuales en ejecución en un Host, a otros Hosts, con el objetivo de liberar de carga al Host original, y así poder proceder a realizar sobre el mismo las tareas de mantenimiento necesarias (ej: parcheos, intervenciones Hardware, etc.), incluso sin necesidad de realizarlo fuera de horario. Además, el hecho de poder automatizar este tipo de tareas a través de WMI y PowerShell, facilita aún más la realización de dichas tareas de mantenimiento (es posible utilizar Virtual Machine Manager 2008 R2 para que nos genere Scripts de ejemplo que podamos utilizar fácilmente).
- Dynamic DataCenter y Green IT. Con Live Migration, es posible mover las Máquinas Virtuales en función de sus demandas de uso (ej: en función de la demanda según la franja horaria), con el fin de acomodarlas en aquellos Hosts que dispongan de suficientes recursos para satisfacer sus necesidades. Incluso es posible tener Máquinas Virtuales detenidas y Hosts físicos detenidos (con el correspondiente ahorra de energía y refrigeración), que sólo se arranquen cuando se produzcan necesidades picos de CPU, memoria, etc.
Introducción a la Configuración de Live Migration y Cluster Shared Volume (CSV)
A continuación se incluye un esbozo de los pasos de configuración de Live Migration y Cluster Shared Volume (CSV):
- Configurar el servidor, el Almacenamiento compartido (sea Fiber Channel o Almacenamiento iSCSI), y la red. En un entorno de laboratorio, puede utilizarse Windows Storage Server 2008 y Microsoft iSCSI Target para el almacenamiento compartido.
- Instalar el Role de Hyper-V. Configurar el Switch (Trunking, VLAN Tagging, etc.) y configurar la Redes Virtuales.
- Instalar la característica (Feature) de Failover Clustering en cada Nodo.
- Validar la configuración del Cluster (Validate a Configuration Wizard). Sólo estaremos bajo Soporte de Microsoft, si pasamos la ejecución del Validate a Configuration Wizard. Si no estamos utilizando un Almacenamiento compartido, los test correspondientes al Almacenamiento pueden generar algún Warning, lo cual sería aceptable. Otra cosa, sería encontrarnos con errores (estos habría que solucionarlos).
- Crear el Cluster. Configurar el Quorum (si utilizamos Quorum basado en un File Share, deberemos conceder permisos a la CNO, esto es, a la cuenta de equipo correspondiente al Cluster).
- Habilitar Cluster Shared Volume (CSV), y añadir discos al Cluster Shared Volume (CSV).
- Comprobar el Cluster Shared Volume (CSV) en todos los Nodos del Cluster. Comprobar el contenido de la carpeta %SystemDrive%\ClusterStorage en todos los Nodos del Cluster (deben contener las mismas subcarpetas en todos los Nodos, una para cada disco CSV). Probar a cambiar el Propietario del disco o discos CSV utilizados. Comprobar la configuración de red de Cluster Shared Volume desde Windows PowerShell (Import-Module FailoverClusters; Get-ClusterNetwork | fl *). Quizás pueda ser necesario revisarse el artículo de TechNet Designating a Preferred Network for Cluster Shared Volumes Communication.
- Crear las Máquinas Virtuales. Configurar las Máquinas Virtuales en Alta Disponibilidad (Highly Available) y seleccionar las redes disponibles para utilizar por el tráfico de Live Migration, desde el Failover Cluster Manager.
- Comprobar el funcionamiento de Live Migration y de Quick Migration. Puede realizarse un Live Migration de una Máquina Virtual, tanto desde el Failover Cluster Manager como a través de PowerShell.
A continuación se incluyen una serie de artículos que describen la instalación y configuración de un Cluster de Hyper-V sobre Windows Server 2008 R2, incluyendo la configuración de CSV y Live Migration:
Algunos enlaces de interés
Para acabar, quería incluir varios enlaces de interés, para quienes deseen profundizar más en estos temas.
Como siempre, espero que la lectura resulte de interés.