GuilleSQL :: Microsoft SQL Server, SSIS, y más !!

Live Migration y Cluster Shared Volume (CSV)


Quizás la incorporación estrella en Windows Server 2008 R2 e Hyper-V, es el Cluster Shared Volume (CSV), uno de los pilares fundamentas en Alta Disponibilidad y Recuperación Rápida ante Desastres en entornos de Virtualización, es decir: Live Migration. De este modo, es posible mover una máquina virtual en ejecución sobre un Host Hyper-V a otro Host Hyper-V sin percepción de pérdida de servicio, y simplificar enormemente la gestión del Almacenamiento compartido, gracias a Hyper-V y Failover Clustering.

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.

 

 




Miembros de
Miembros de GITCA (Global IT Community Association)

Menu de Usuario
  Iniciar Sesión
  Registrarse
  Restablecer Contraseña
  Ventajas de Registrarse

Acerca de
  Contigo desde Oct 2007
  771 usuarios registrados
  86146 pageloads/mes
  Ranking Alexa 498160

Social Networks
Sigue a Portal GuilleSQL en Linkedin !!
Sigue a Portal GuilleSQL en Twitter !!



Archivo

Junio de 2017 (3)
Mayo de 2017 (1)
Marzo de 2017 (3)
Enero de 2017 (4)
Junio de 2016 (1)
Mayo de 2016 (2)
Abril de 2016 (2)
Septiembre de 2015 (2)
Agosto de 2015 (2)
Junio de 2015 (10)
Mayo de 2015 (4)
Abril de 2015 (8)
Marzo de 2015 (11)
Octubre de 2014 (3)
Septiembre de 2014 (7)
Agosto de 2014 (5)
Julio de 2014 (2)
Mayo de 2014 (4)
Abril de 2014 (4)
Marzo de 2014 (4)
Febrero de 2014 (1)
Enero de 2014 (5)
Diciembre de 2013 (8)
Noviembre de 2013 (2)
Octubre de 2013 (7)
Septiembre de 2013 (6)
Agosto de 2013 (1)
Julio de 2013 (6)
Junio de 2013 (11)
Mayo de 2013 (7)
Abril de 2013 (6)
Febrero de 2013 (5)
Enero de 2013 (7)
Diciembre de 2012 (12)
Noviembre de 2012 (13)
Octubre de 2012 (5)
Septiembre de 2012 (3)
Agosto de 2012 (6)
Julio de 2012 (4)
Junio de 2012 (1)
Mayo de 2012 (2)
Abril de 2012 (7)
Marzo de 2012 (16)
Febrero de 2012 (9)
Enero de 2012 (5)
Diciembre de 2011 (10)
Noviembre de 2011 (10)
Octubre de 2011 (4)
Septiembre de 2011 (5)
Agosto de 2011 (2)
Julio de 2011 (2)
Junio de 2011 (4)
Mayo de 2011 (2)
Abril de 2011 (6)
Marzo de 2011 (4)
Febrero de 2011 (10)
Enero de 2011 (5)
Diciembre de 2010 (6)
Noviembre de 2010 (4)
Octubre de 2010 (8)
Septiembre de 2010 (4)
Agosto de 2010 (1)
Julio de 2010 (3)
Mayo de 2010 (5)
Abril de 2010 (6)
Marzo de 2010 (8)
Febrero de 2010 (3)
Enero de 2010 (1)
Diciembre de 2009 (9)
Noviembre de 2009 (14)
Octubre de 2009 (2)
Septiembre de 2009 (8)
Agosto de 2009 (2)
Julio de 2009 (10)
Junio de 2009 (9)
Mayo de 2009 (10)
Abril de 2009 (9)
Marzo de 2009 (3)
Febrero de 2009 (2)
Enero de 2009 (3)
Noviembre de 2008 (2)
Octubre de 2008 (2)
Septiembre de 2008 (2)
Agosto de 2008 (5)
Julio de 2008 (5)
Junio de 2008 (1)
Mayo de 2008 (3)
Abril de 2008 (2)
Marzo de 2008 (2)
Febrero de 2008 (2)
Enero de 2008 (5)
Noviembre de 2007 (2)
Octubre de 2007 (2)






Copyright © 2007 GuilleSQL, todos los derechos reservados.