Fiabilidad en Virtual Machine Scale Sets
Este artículo contiene información sobre la compatibilidad de zonas de disponibilidadcon virtual Machine Scale Sets.
Nota:
Virtual Machine Scale Sets solo se puede implementar en una región. Si desea implementar máquinas virtuales en varias regiones, consulte Máquinas virtuales: recuperación ante desastres: conmutación por error entre regiones.
Compatibilidad de zonas de disponibilidad
Las zonas de disponibilidad de Azure son al menos tres grupos de centros de datos físicamente independientes dentro de cada región de Azure. Los centros de datos de cada zona están equipados con infraestructura de alimentación, refrigeración y red independientes. En el caso de un error en la zona local, las zonas de disponibilidad están diseñadas de manera que, si se ve afectada una zona, los servicios, la capacidad y la alta disponibilidad regionales serán proporcionadas por las dos zonas restantes.
Estos errores pueden abarcar desde errores de software y hardware hasta eventos como terremotos, inundaciones e incendios. La tolerancia a los errores se logra con la redundancia y el aislamiento lógico de los servicios de Azure. Para más información sobre las zonas de disponibilidad en Azure, consulte Regiones y zonas de disponibilidad.
Los servicios habilitados para zonas de disponibilidad de Azure están diseñados para proporcionar el nivel adecuado de confiabilidad y flexibilidad. Se pueden configurar de dos maneras. Pueden tener redundancia de zona, con una replicación automática entre zonas o ser zonales, con instancias ancladas a una zona específica. También puede combinar ambos enfoques. Para más información sobre la arquitectura zonal frente a la arquitectura con redundancia de zona, consulte Recomendaciones para el uso de zonas de disponibilidad y regiones.
Con Azure Virtual Machine Scale Sets, puede crear y administrar un grupo de máquinas virtuales con equilibrio de carga. El número de máquinas virtuales puede aumentar o disminuir automáticamente según la demanda, o de acuerdo a una programación definida. Los conjuntos de escalado proporcionan una alta disponibilidad a las aplicaciones y le permiten administrar, configurar y actualizar de forma centralizada muchas máquinas virtuales. No hay ningún costo para el propio conjunto de escalado. Solo se paga por cada instancia de máquina virtual creada.
Virtual Machine Scale Sets admite implementaciones zonales y con redundancia de zona dentro de una región:
Implementaciones zonal. Cuando se crea un conjunto de escalado en una sola zona, se controla en qué zona se ejecutan todas las máquinas virtuales de ese conjunto. El conjunto de escalado se administra y se escala automáticamente solo dentro de esa zona.
Implementación con redundancia de zona. Un conjunto de escalado con redundancia de zona permite crear un conjunto de escalado único que abarque varias zonas. De forma predeterminada, a medida que se crean las máquinas virtuales, se equilibran uniformemente entre zonas.
Requisitos previos
Para usar las zonas de disponibilidad, el conjunto de escalado se debe crear en una región de Azure compatible.
Todas las máquinas virtuales, incluso las de instancia única, deben implementarse en un conjunto de escalado mediante el modo de orquestación flexible para garantizar el escalado y la disponibilidad de la aplicación en el futuro.
Contrato de nivel de servicio
Dado que las zonas de disponibilidad son físicamente independientes y proporcionan distintas fuentes de alimentación, red y refrigeración, los contratos de nivel de servicio (SLA) incrementan. Para obtener más información, consulte el contrato de nivel de servicio de Microsoft Online Services.
Creación de un Virtual Machine Scale Set con zonas de disponibilidad habilitadas
Puede crear un conjunto de escalado que use las zonas de disponibilidad con uno de los métodos siguientes:
El proceso para crear un conjunto de escalado que use uuna implementación zonal es igual que el que se detalla en el artículo de introducción. Cuando selecciona una región de Azure compatible, puede crear un conjunto de escalado en una o varias de las zonas disponibles, tal como se muestra en el ejemplo siguiente:
El conjunto de escalado y los recursos de apoyo, como la dirección IP pública y Azure Load Balancer, se crean en la zona única que se especifica.
Compatibilidad con la conmutación por error zonal
Los conjuntos de escalado de máquinas virtuales se crean con cinco dominios de error de forma predeterminada en las regiones de Azure sin zonas. Para las regiones que admiten la implementación de zonas de disponibilidad de Virtual Machine Scale Sets y con esta opción seleccionada, el valor predeterminado del número de dominios de error es 1 para cada una de las zonas. En este caso, FD=1 implica que las instancias de VM que pertenecen al conjunto de escalado se distribuyen entre varios bastidores en función del mejor esfuerzo. Para obtener más información, consulte Elección del número correcto de dominios de error para Virtual Machine Scale Set.
Diseño de baja latencia
Se recomienda configurar Virtual Machine Scale Sets con redundancia de zona. Sin embargo, si la aplicación tiene requisitos estrictos de baja latencia, es posible que tenga que implementar un zonal para las máquinas virtuales de los conjuntos de escalado. Con una implementación de conjuntos de escalado zonales, se recomienda crear varias máquinas virtuales de conjuntos de escalado en más de una zona. Por ejemplo, puede crear una instancia de conjuntos de escalado anclada a la zona 1 y una instancia anclada a la zona 2 o 3. También debe usar un equilibrador de carga u otra lógica de aplicación para dirigir el tráfico a los conjuntos de escalado adecuados durante una interrupción de zona.
Importante
Si optar por no recibir la implementación compatible con la zona, se prescinde de la protección frente al aislamiento de los errores subyacentes. Optar por no recibir la configuración de zona de disponibilidad, esto provoca que la dependencia de los recursos no obedezca a la selección de ubicación y separación de (incluidas las dependencias subyacentes de estos recursos). No se debe esperar que estos recursos sobrevivan a escenarios de zona inactiva. Las soluciones que aprovechan estos recursos deben definir una estrategia de recuperación ante desastres y configurar una recuperación de la solución en otra región.
Técnicas de implementación segura
Para tener más control sobre dónde se implementan las máquinas virtuales, debe implementar máquinas virtuales zonales, en lugar de máquinas virtuales regionales y de conjuntos de escalado. Sin embargo, las máquinas virtuales zonales solo proporcionan aislamiento de zona y no redundancia de zona. Para lograr una redundancia de zona completa con máquinas virtuales zonales, debe haber dos o más máquinas virtuales en distintas zonas.
También se recomienda usar la opción de implementación de propagación máxima para las máquinas virtuales con redundancia de zona. Para más información, consulte las opciones de propagación.
Opciones de propagación
Al implementar un conjunto de escalado en una o varias zonas de disponibilidad, tiene las siguientes opciones de propagación (a partir de la versión de API 2017-12-01):
Propagación máxima (platformFaultDomainCount = 1). La propagación máxima es la opción de implementación recomendada, ya que proporciona la mejor propagación en la mayoría de los casos. Si desea propagar réplicas en distintas unidades de aislamiento de hardware, se recomienda propagarlas en distintas zonas de disponibilidad y emplear la propagación máxima en cada una de ellas.
Con la propagación máxima, el conjunto de escalado propaga las máquinas virtuales en tantos dominios de error como sea posible dentro de cada zona. Esta propagación podría incluir más o menos de cinco dominios de error por zona.
Nota:
Con la propagación máxima, independientemente del número de dominios de error en los que se distribuyan las máquinas virtuales, solo verá un dominio de error en la vista de la instancia de la máquina virtual del conjunto de escalado y en los metadatos de la instancia. La propagación dentro de cada zona es implícita.
Propagación fija estática (platformFaultDomainCount = 5). Con la propagación fija estática, el conjunto de escalado propaga las máquinas virtuales en exactamente cinco dominios de error por zona. Si el conjunto de escalado no encuentra cinco dominios de error distintos por zona para satisfacer la solicitud de asignación, se produce un error en la solicitud.
Propagación alineada con dominios de error de discos administrados (platformFaultDomainCount = 2 o 3) Puede considerar la posibilidad de alinear el número de dominios de error del conjunto de escalado con el número de dominios de error de discos administrados. Esta alineación puede ayudar a evitar la pérdida de cuórum si todo un dominio de error de discos administrados deja de funcionar. El recuento de dominio de error puede establecerse como menor o igual al número de dominios de error de discos administrados disponibles en cada una de las regiones. Para obtener información sobre el número de dominios de error de discos administrados por región, consulte [insertar documento aquí](vínculo aquí).
Equilibrio de zona
En el caso de los conjuntos de escalado implementados en varias zonas (con redundancia de zona), puede elegir el equilibrio de zona de mejor esfuerzo o el equilibrio de zona estricto. Un conjunto de escalado se considera “equilibrado” si cada zona tiene el mismo número de VM (más o menos una máquina virtual) que en todas las otras zonas del conjunto de escalado. Por ejemplo:
Conjunto de escalado | Máquinas virtuales en la zona 1 | Máquinas virtuales en la zona 2 | Máquinas virtuales en la zona 3 | Equilibrio de zona |
---|---|---|---|---|
Conjunto de escalado equilibrado | 2 | 3 | 3 | Este conjunto de escalado se considera equilibrado. Hay solo una zona con un recuento de VM diferente y es solo una menos que las demás zonas. |
Conjunto de escalado desequilibrado | 1 | 3 | 3 | Este conjunto de escalado se considera desequilibrado. La zona 1 tiene 2 VM menos que las zonas 2 y 3. |
Es posible que las máquinas virtuales del conjunto de escalado se creen correctamente, aunque sus extensiones no puedan realizar la implementación. Estas máquinas virtuales con errores de extensión se siguen teniendo en cuenta para determinar si un conjunto de escalado está equilibrado. Por ejemplo, un conjunto de escalado con tres máquinas virtuales en la zona 1, tres en la zona 2 y tres en la zona 3 se considera equilibrado aunque todas las extensiones produzcan un error en la zona 1 y sean correctas en las zonas 2 y 3.
Con la mejor opción de equilibrio de zonas, el conjunto de escalado intenta aumentarse y reducirse horizontalmente, y conserva el equilibrio. Sin embargo, si por alguna razón no es posible el equilibrado (por ejemplo, si una zona deja de funcionar, el conjunto de escalado no puede crear una máquina virtual en esa zona), el conjunto de escalado permite el desequilibrio temporal para realizar correctamente el aumento o la reducción horizontal. Para los posteriores intentos de escalado horizontal, el conjunto de escalado agrega máquinas virtuales a las zonas donde se necesitan más de ellas para conseguir el equilibrio. Análogamente, para los posteriores intentos de reducción horizontal, el conjunto de escalado elimina máquinas virtuales de las zonas donde se necesitan menos para conseguir el equilibrio. Con el equilibrio de zonas estricto, el conjunto de escalado produce un error al intentar el aumento o la reducción horizontal si ello causara desequilibrio.
Para usar el equilibrio de zona de mejor esfuerzo, establezca zoneBalance
en false. El valor zoneBalance
es el predeterminado en la versión del 01-12-2017 de la API. Para usar el equilibrio de zona estricto, establezca zoneBalance
en true.
Soporte técnico para la migración a la zona de disponibilidad
Para obtener información sobre cómo volver a implementar un conjunto de escalado regional en compatibilidad con la zona de disponibilidad, consulte Migración de Virtual Machines y Virtual Machine Scale Sets a compatibilidad con la zona de disponibilidad.
Instrucciones adicionales
Grupos de selección de ubicación
Importante
Los grupos de selección de ubicación solo se aplican a los conjuntos de escalado de máquinas virtuales que se ejecutan en el modo de orquestación Uniforme.
Al implementar un Virtual Machine Scale Set, tiene la opción de realizar la implementación con uno o varios grupos de selección de ubicación por zona de disponibilidad. Para los conjuntos de escalado regional, la opción es tener un único grupo de selección de ubicación en la región o tener varios. Si la propiedad singlePlacementGroup
de un conjunto de escalado se establece en false, el conjunto de escalado puede estar compuesto por varios grupos de selección de ubicación y tiene un intervalo de 0 a 1000 máquinas virtuales. Cuando se establece en el valor predeterminado true, el conjunto de escalado se compone de un solo grupo de selección de ubicación y tiene un intervalo de 0 a 100 máquinas virtuales. Para la mayoría de las cargas de trabajo, se recomiendan varios grupos de selección de ubicación, lo que permite mayor escala. En la versión 2017-12-01 de la API, los conjuntos de escalado de una o varias zonas tienen varios grupos de selección de ubicación de manera predeterminada, pero se cambia de manera predeterminada a un único grupo para los conjuntos de escalado regionales.