Opciones de escalamiento para DWS con una arquitectura de almacenamiento y cómputo acoplados
La escalabilidad es una característica crítica para los servicios en la nube. Se refiere a la capacidad de los servicios en la nube para aumentar o disminuir los recursos de cómputo y almacenamiento para satisfacer la demanda cambiante, logrando un equilibrio entre el rendimiento y el costo.
Por lo general, una arquitectura distribuida ofrece los siguientes tipos de escalabilidad:
- Escalamiento horizontal (scale-out)
Con un escalado horizontal, se agregan más nodos a un sistema existente para aumentar las capacidades de almacenamiento y cómputo. Para DWS, esto significa expandir el tamaño del clúster. Para garantizar una utilización adecuada de los recursos, asegúrese de que los dispositivos de hardware que agregue utilicen las mismas especificaciones que los que ya están en el clúster.
- Reducción horizontal (scale-in)
La reducción horizontal es lo opuesto al escalamiento horizontal. Con una reducción horizontal, se eliminan nodos de un sistema existente para disminuir las capacidades de almacenamiento y cómputo y, de este modo, aumentar la utilización de los recursos. DWS se despliega por anillo de seguridad, lo que significa que los clústeres de DWS también se escalan hacia adentro o hacia afuera por anillo de seguridad. Hablaremos sobre los anillos de seguridad con más detalle en una sección posterior.
- Escalamiento vertical (scale-up)
Con un escalamiento vertical, se agregan más CPU, memoria, discos o NIC a los servidores existentes para aumentar las capacidades correspondientes. En algunos casos, el hardware de menor capacidad se reemplaza por uno de mayor capacidad. Esto también se conoce como actualización de hardware, que a veces puede implicar una actualización del sistema operativo.
- Reducción vertical (scale-down)
La reducción vertical es lo opuesto al escalamiento vertical. Con una reducción vertical, el hardware de un sistema existente se reduce para adaptarse a la demanda.
DWS ofrece varias capacidades de escalamiento automático. Puede ajustar los recursos de almacenamiento y computación modificando las configuraciones de hardware (como discos, memoria, CPU y NIC) o escalando nodos distribuidos. Además, puede escalar horizonta o verticalmente el clúster y ajustar su topología.
Análisis detallado de la topología de un clúster de DWS
Para comprender completamente la escalabilidad de DWS, es necesario comprender la topología típica de un clúster de DWS. La siguiente figura muestra una estructura simplificada de despliegue de ECS+EVS de DWS.
- Los ECS proporcionan recursos de computación, incluidas CPU y memoria. Las instancias de base de datos de DWS (como CN y DN) se despliegan en ECS.
- EVS proporciona recursos de almacenamiento. Un disco EVS se conecta a cada DN.
- Todos los ECS de un clúster de DWS están dentro de la misma VPC para garantizar conexiones de alta velocidad entre ellos.
- Todas las instancias de base de datos desplegadas en ECS forman un clúster de base de datos de procesamiento masivo y distribuido (MPPDB) para proporcionar capacidades de análisis y procesamiento de datos en su totalidad.
Una vez que haya observado la topología típica de un clúster de DWS, podrá comprender mejor las características de escalabilidad de DWS. En la actualidad, DWS ofrece las siguientes opciones de escalamiento: escalamiento de disco, cambio de variante de nodo, escalamiento horizontal de clúster, reducción horizontal de clúster, cambio de tamaño de clúster y adición o eliminación de CN, como se muestra en la siguiente figura:
Escalamiento de disco
- Con el escalamiento de disco, se cambia el tamaño de todos los discos EVS conectados a todos los ECS de un clúster. Esta opción se puede utilizar para escalar rápidamente la capacidad del disco.
- La capacidad del disco solo se puede escalar hacia arriba, no hacia abajo.
- El escalamiento de disco es una operación ligera que normalmente se puede completar en 5 a 10 minutos. No implica la migración de datos ni el reinicio de servicios, por lo que no causa interrupciones. Sin embargo, se recomienda realizar esta operación durante horas de menor actividad.
- Para la arquitectura de almacenamiento y cómputo acoplados de DWS, las especificaciones de disco EVS admiten el escalamiento de disco. La versión del clúster debe ser 8.1.1.203 o posterior.
- Para obtener más información, consulte la sección Escalamiento de disco.
Cambio de variante de nodo
- Esta operación cambia las variantes de todos los nodos de un clúster. Se puede utilizar para cambiar rápidamente los recursos de CPU y memoria.
- Una variante es una plantilla de recursos preestablecida de una combinación de un número específico de vCPU y memoria. Por ejemplo, la variante dwsx.16xlarge incluye 64 vCPU y 512 GB de memoria.
- El cambio de variante de nodo es una operación ligera que normalmente se puede completar en 5 a 10 minutos. No involucra la migración de datos, pero los servicios se deberán reiniciar una vez, lo que causará una interrupción del servicio de unos minutos. Se recomienda realizar esta operación durante horas de menor actividad.
- Para la arquitectura de almacenamiento y cómputo acoplados de DWS, las especificaciones de EVS admiten el escalamiento de especificaciones. La versión del clúster debe ser 8.1.1.300 o posterior.
- Para obtener más información, consulte Cambio de variante de nodo.
Escalamiento horizontal de un clúster
El escalamiento horizontal de clústeres es un escenario típico de escalamiento horizontal para MPPDB, donde se agregan nodos homogéneos a un clúster existente para aumentar la capacidad. DWS 2.0 utiliza almacenamiento y cómputo acoplados, por lo que un escalamiento horizontal de clústeres expande las capacidades de cómputo y almacenamiento.
Para equilibrar la carga y lograr un rendimiento óptimo, la replicación de metadatos y la redistribución de datos se realizan durante un escalamiento horizontal de clústeres. Por lo tanto, el tiempo necesario para completar un escalamiento horizontal de clústeres está positivamente correlacionado con la cantidad de objetos de base de datos, así como con el tamaño de los datos. Para garantizar la confiabilidad, se agregan automáticamente nuevos nodos a los anillos de seguridad. Por eso, se deben agregar al menos tres nodos para una operación de escalamiento horizontal.
Las versiones 8.1.1 y posteriores admiten escalamiento horizontal en línea. Durante un escalamiento horizontal en línea, DWS no se reinicia y puede continuar presentando servicios. Durante la redistribución de datos, puede realizar operaciones de inserción, actualización y eliminación en las tablas, pero las actualizaciones de datos pueden estar bloqueadas durante un corto período de tiempo. La redistribución consume grandes cantidades de recursos de CPU y E/S, lo que afecta significativamente el rendimiento del trabajo. Por lo tanto, se recomienda realizar la redistribución cuando se detienen los servicios o durante períodos de carga ligera. Se recomienda un enfoque por fases para el escalamiento horizontal del clúster: realice la redistribución de alta concurrencia durante los períodos de carga ligera, y detenga la redistribución o realice una redistribución de baja concurrencia durante los períodos de carga pesada.
El escalamiento horizontal de clústeres se puede realizar por fases o en modo de un solo clic.
Un enfoque por fases separa una operación de escalamiento horizontal en tres fases: agregar ECS, agregar nodos y redistribuir datos. Puede programar las tareas de escalamiento horizontal de una manera que minimice el riesgo de interrupción del servicio.
Por otro lado, un escalamiento horizontal de un solo clic es más conveniente para los usuarios.
| Enfoque | Características | Impacto |
|---|---|---|
| Escalamiento horizontal por fases | Una operación de escalamiento horizontal se divide en tres fases: agregar ECS, agregar nodos y redistribuir datos. Puede programar cada fase para los momentos más apropiados y realizarlas por separado. | El riesgo de interrupción del servicio se puede minimizar. |
| Escalamiento horizontal de un solo clic | Durante un escalamiento horizontal de un solo clic, la adición de ECS, la adición de nodos y la redistribución de datos se realizan automáticamente. | Es más conveniente para los usuarios. |
Anillo de seguridad de clústeres de DWS
Un anillo de seguridad es el conjunto mínimo de nodos necesarios para el despliegue horizontal de los DN de múltiples réplicas. El escalamiento horizontal y la reducción horizontal de clústeres se realizan mediante el anillo de seguridad. La idea principal detrás de los anillos de seguridad es el aislamiento de fallas. Cualquier falla que ocurra dentro de un anillo de seguridad permanece dentro de ese anillo.
DWS utiliza una arquitectura principal-en espera-secundaria, por lo que el número mínimo de nodos en un anillo de seguridad es 3. Cuando ocurre una falla dentro de un anillo, no tiene impacto en los nodos fuera de ese anillo. El alcance del impacto se minimiza (3 nodos), y el impacto en cada nodo de ese anillo defectuoso es 1/(N-1), es decir, 1/2. En escenarios extremos, todo el clúster es un anillo de seguridad. Si ocurre una falla dentro de este anillo, el alcance del impacto es el más grande (todo el clúster), pero el impacto en cada nodo del anillo es el más pequeño, es decir, 1/(N-1).
Una práctica común es formar un Anillo N+1 donde cada nodo distribuye uniformemente sus N réplicas a los N nodos restantes en el mismo anillo. Cuando ocurre una falla en el anillo, el alcance del impacto en todo el clúster es de N+1 nodos, y el impacto en cada nodo del anillo es de 1/N.
Reducción horizontal en un clúster
- La reducción horizontal de clústeres también es un escenario típico de escalamiento horizontal para MPPDB, donde se eliminan algunos de los nodos de un clúster existente para reducir la capacidad. Una reducción horizontal de clúster reduce las capacidades de cómputo y almacenamiento.
- Cada clúster de DWS está compuesto físicamente por múltiples ECS. Para mejorar la confiabilidad, un número determinado de ECS (típicamente tres) forman un anillo de seguridad lógico, por lo que cada clúster de DWS consta de un número de anillos de seguridad. Una reducción horizontal de clúster se realiza por anillo de seguridad. En primer lugar, se eliminan los anillos de seguridad ubicados al final del clúster.
- Una reducción horizontal de clúster implica la migración de datos. Los datos de los nodos eliminados deben redistribuirse a los nodos restantes. Esto significa que el tiempo necesario para completar una reducción horizontal de clúster está positivamente correlacionado con la cantidad de objetos de base de datos, así como con el tamaño de los datos.
- La arquitectura de almacenamiento y cómputo acoplados de DWS admite la reducción horizontal de clústeres. Las versiones 8.1.1.300 y posteriores admiten reducción horizontal en línea. Durante ua reducción horizontal en línea, DWS no se reinicia y puede continuar presentando servicios. Durante la redistribución de datos, puede realizar operaciones de inserción, actualización y eliminación en las tablas, pero las actualizaciones de datos pueden estar bloqueadas durante un corto período de tiempo. La redistribución consume grandes cantidades de recursos de CPU y E/S, lo que afecta significativamente el rendimiento del trabajo. Por lo tanto, se recomienda realizar la redistribución cuando se detienen los servicios o durante períodos de carga ligera.
Adición o eliminación de CN
- La adición o eliminación de nodos coordinadores (CN) es otra forma de escalar clústeres en DWS.
- Los CN son un componente importante de DWS. Proporciona interfaces a aplicaciones externas, optimiza los planes de ejecución globales, distribuye los planes de ejecución a los nodos de datos (DN) y resume los resultados de cada nodo en un solo conjunto de resultados.
- Las capacidades de CN determinan la capacidad de gestión de concurrencia de todo el clúster. Al agregar más CN, aumenta la capacidad de gestión de concurrencia del clúster.
- Los CN utilizan una arquitectura multiactiva. Para garantizar la consistencia de los datos, si los datos de algunos CN están dañados, los servicios DDL se bloquearán. Para restaurar rápidamente los servicios DDL, puede eliminar los CN defectuosos.
- DWS admite la adición o eliminación de CN en la versión 8.1.1 y versiones posteriores.
- Cuando se agrega un CN, los metadatos deben sincronizarse. El tiempo que se tarda en agregar un CN depende del tamaño de los metadatos. En la versión 8.1.3, los CN se pueden agregar y eliminar en línea. Durante la adición de CN, DWS no reinicia y puede continuar proporcionando servicios. Los servicios DDL se bloquearán durante un corto período de tiempo (sin reportar errores). No se ven afectados otros servicios.
Cambio de tamaño de un clúster
- El cambio de tamaño de clústeres permite realizar el escalamiento horizontal y vertical al mismo tiempo, incluidos el escalamiento horizontal y la reducción horizontal de clúster, así como el escalamiento vertical y la reducción vertical. La topología del clúster también se puede ajustar.
- El cambio de tamaño de clústeres se basa en múltiples grupos de nodos y en la redistribución de datos. Durante el cambio de tamaño de clústeres, se crea un clúster nuevo en función de los nuevos requerimientos de recursos y la planificación del clúster. Luego, los datos se redistribuyen entre el clúster anterior y el nuevo. Una vez completada la migración de datos, los servicios se migran al clúster nuevo y, después de eso, se libera el clúster anterior.
- El cambio de tamaño de clústeres implica la migración de datos. Los datos de los nodos del clúster anterior deben redistribuirse a los nodos del clúster nuevo, con los datos aún disponibles en el clúster anterior. El tiempo que se tarda en cambiar el tamaño de un clúster está positivamente correlacionado con la cantidad de objetos de base de datos, así como con el tamaño de los datos.
- DWS admite el cambio de tamaño de clústeres, pero los agentes deben actualizarse a la versión 8.2.0.2. Actualmente, durante el cambio de tamaño del clúster, el clúster anterior solo puede admitir servicios de solo lectura. Las capacidades de servicio en línea se pueden esperar más adelante.
- Para obtener más detalles, consulte Cambio de todas las especificaciones.
Comparación de diferentes opciones de escalamiento
La tabla siguiente compara diferentes opciones de escalamiento para DWS.
| Opción | Objeto escalado | Alcance | Impacto | Producto |
|---|---|---|---|---|
| Escalamiento de disco | Capacidad del disco | Discos EVS conectados a todos los ECS de un clúster | Se puede completar en 5 a 10 minutos. No es necesario reiniciar los servicios, por lo que este proceso no tiene ningún impacto en ellos. Debe realizarse durante horas de menor actividad. | Versión del clúster: 8.1.1.203 o posterior |
| Cambio de variante de nodo | Capacidad de cómputo | La variante (núcleos de CPU y tamaño de memoria) de todos los ECS de un clúster | Se puede completar en 5 a 10 minutos. Los servicios se deberán reiniciar una vez, lo que causará una interrupción del servicio de unos minutos. Debe realizarse durante horas de menor actividad. | Versión del clúster: 8.1.1.300 o posterior |
| Escalamiento horizontal de clústeres | Capacidades de disco y cómputo | Adición de ECS homogéneos en una arquitectura distribuida | Se admite escalamiento horizontal en línea. Durante un escalamiento horizontal en línea, DWS no se reinicia y puede continuar presentando servicios. La duración está positivamente correlacionada con la cantidad de objetos de base de datos, así como con el tamaño de los datos. | Versión del clúster: todas las versiones. Se admite escalamiento horizontal en línea desde la versión 8.1.1. |
| Reducción horizontal de clúster | Capacidades de disco y cómputo | Eliminación de algunos de los ECS en una arquitectura distribuida | Se admite reducción horizontal en línea. Durante una reducción horizontal en línea, DWS no se reinicia y puede continuar presentando servicios. La duración está positivamente correlacionada con la cantidad de objetos de base de datos, así como con el tamaño de los datos. | Versión del clúster: 8.1.1.300 |
| Redimensionamiento de clúster | Capacidades de disco y cómputo, y topología de clúster | Uso de una nueva variante de ECS (nuevas especificaciones de hardware) y una nueva topología de clúster para crear un nuevo clúster, y redistribución de datos entre los clústeres anteriores y nuevos | La duración está positivamente correlacionada con la cantidad de objetos de base de datos, así como con el tamaño de los datos. Los servicios de solo lectura se pueden proporcionar durante el redimensionamiento del clúster. | Versión del clúster: Agent 8.2.0.2 o posterior |
| Adición o eliminación de CN | Instancias de CN | Adición de CN para mejorar la simultaneidad o eliminación de CN defectuosos para restaurar rápidamente los servicios DDL | Se admite la adición y eliminación de CN en línea. Durante la adición de CN, DWS no reinicia y puede continuar proporcionando servicios. | Versión del clúster: 8.1.1 (Se admite la adición y eliminación de CN en línea en 8.1.3 y versiones posteriores). |
Escenarios de aplicación para diferentes opciones de escalamiento
Tabla 3 describe cuándo usar cada opción de escalamiento.
| Categoría | Problema a resolver | Opción de escalamiento recomendada | Impacto en los servicios | Duración estimada |
|---|---|---|---|---|
| Almacenamiento | Espacio de almacenamiento insuficiente. Las capacidades de CPU, memoria y E/S de disco son suficientes. | Aumente la capacidad del disco. | Los servicios en línea se pueden mantener. | No es necesario migrar datos. Se puede completar en 5 a 10 minutos. |
| Espacio de almacenamiento excesivo, que debe reducirse para disminuir los costos. Las capacidades de CPU, memoria y E/S de disco son suficientes. | Cree un clúster con menor capacidad de disco (pero sin cambios), y migre los datos al nuevo clúster mediante una conmutación de DR. | Los datos se vuelven de solo lectura durante la conmutación de DR, que típicamente toma menos de 30 minutos. | La duración está positivamente correlacionada con el tamaño de los datos. | |
| Cómputo | Capacidad de CPU o memoria insuficiente | Utilice una variante de ECS más grande. | El clúster debe reiniciarse una vez. | No es necesario migrar datos. Se puede completar en 5 a 10 minutos. |
| E/S de disco insuficiente | Cree un clúster con menor capacidad de disco (pero sin cambios), y migre los datos al nuevo clúster mediante una conmutación de DR. | Los datos se vuelven de solo lectura durante la conmutación de DR, que típicamente toma menos de 30 minutos. | La duración está positivamente correlacionada con el tamaño de los datos. | |
| Cómputo y almacenamiento distribuidos | Capacidades distribuidas insuficientes debido a nodos insuficientes | Escale horizontal el clúster. | Los servicios en línea se pueden mantener (impactados parcialmente). | Se necesita migrar datos. La duración está positivamente correlacionada con los tamaños de los metadatos y los datos de servicio. |
| Demasiados nodos, lo que genera un alto costo | Reduzca horizontalmente el clúster. | Los servicios en línea se pueden mantener (impactados parcialmente). | Se necesita migrar datos. La duración está positivamente correlacionada con el tamaño de los datos de servicio. | |
| Topología del clúster | Cambie tanto la topología del clúster como la variante del nodo (el número de DN cambia). | Cambie el tamaño del clúster. | Servicios de solo lectura | Se necesita migrar datos. La duración está positivamente correlacionada con los tamaños de los metadatos y los datos de servicio. |
| Cambie tanto la topología del clúster como la variante del nodo (el número de DN permanece igual). | Migración de datos para la recuperación ante desastres del clúster. | Los servicios en línea se pueden mantener (impactados parcialmente). | Se necesita migrar datos. La duración está positivamente correlacionada con el tamaño de los datos de servicio. | |
| Soporte de concurrencia insuficiente | Agregue CN. | Los servicios en línea se pueden mantener (impactados parcialmente). | Se necesita migrar datos. La duración está positivamente correlacionada con el tamaño de los metadatos. |