Compartir vía


Escalar horizontalmente con agrupaciones elásticas

En este artículo se proporcionan instrucciones paso a paso para realizar operaciones de escalado horizontal para el clúster elástico de servidor flexible de Azure Database for PostgreSQL.

Los clústeres elásticos de Azure Database for PostgreSQL proporcionan escalado horizontal agregando más nodos de trabajo al clúster. Al escalar el clúster elástico de PostgreSQL, puede controlar el crecimiento proporcionando a la base de datos más recursos o más nodos para el procesamiento paralelo de consultas. Obtiene todas estas ventajas con un tiempo de inactividad mínimo y la administración de particiones integrada.

Métodos de escalado horizontal

Use uno de varios métodos para agregar nodos de trabajo al clúster elástico, incluidos Azure Portal, la CLI de Azure o la automatización mediante plantillas y API de ARM, en función de las necesidades de flujo de trabajo y automatización. En las secciones siguientes se proporcionan instrucciones paso a paso para el portal y la CLI, y se explica el reequilibrio posterior al escalado.

Mediante Azure Portal:

  1. Abrir el recurso: en Azure Portal, vaya al clúster elástico del servidor flexible de Azure Database for PostgreSQL.

  2. Vaya a Proceso y almacenamiento: en la sección Configuración, seleccione Proceso y almacenamiento. En esta página se muestra la configuración actual de los nodos del clúster.

    Captura de pantalla que muestra la página Información general de un clúster elástico.

  3. Ajustar recuento de nodos: busque el campo Recuento de nodos. Aumente el número a los nodos totales deseados (entre 2 y 20 para la mayoría de los clústeres en disponibilidad general). Por ejemplo, para duplicar un clúster de cuatro nodos a ocho nodos, aumente el control deslizante a 8. Azure aprovisiona nodos de trabajo adicionales para alcanzar este recuento.

    Recorte de pantalla en el que se muestra cómo seleccionar la página Proceso y almacenamiento.

  4. Aplicar cambios: seleccione Guardar. Confirme la operación de escalabilidad horizontal cuando se le solicite. Azure comienza a agregar nodos al clúster. Esta operación se realiza en línea y normalmente no interrumpe las conexiones o consultas existentes. La implementación puede tardar unos minutos. Puede supervisar el progreso en las notificaciones del portal. Una vez completado, el recuento de nodos del clúster refleja el nuevo valor.

Nota:

Debe desencadenar explícitamente el proceso de reequilibrio de particiones para permitir que los datos existentes se redistribuyan en todos los nodos. Esta operación no implica tiempo de inactividad para lecturas y escrituras.

Reequilibrio

Después de agregar nodos al clúster, las nuevas modificaciones de datos o las tablas distribuidas recién agregadas usan todos los nodos disponibles. Las particiones de datos existentes permanecen donde están hasta que se redistribuyen. El reequilibrio en línea garantiza que las lecturas y escrituras de la aplicación continúen con una interrupción mínima mientras se mueven los datos.

Al ampliar horizontalmente tu clúster elástico, el reequilibrio del clúster garantiza que los datos existentes se distribuyan completamente y que la base de datos utilice todos los nodos disponibles. Use la función citus_rebalance_start para iniciar el proceso de reequilibrio. Esta operación distribuye los datos existentes uniformemente entre todos los nodos.

SELECT citus_rebalance_start();

Reequilibrio paralelo

La operación de reequilibrio predeterminada lleva a cabo varios movimientos de particiones en un orden secuencial. En algunos casos, es posible que prefiera reequilibrar más rápido a costa de usar más recursos, como el proceso, la memoria y el ancho de banda de red. En esas situaciones, puede configurar una operación de reequilibrio para realizar muchos movimientos de fragmentos en paralelo.

El parámetro citus.max_background_task_executors_per_node permite que las tareas como el reequilibrio de particiones funcionen en paralelo. Puede aumentar el valor predeterminado (1) como desee para aumentar el paralelismo.

ALTER SYSTEM SET citus.max_background_task_executors_per_node = 2;
SELECT pg_reload_conf();

Además, puede configurar la función citus_rebalance_start para reequilibrar particiones de acuerdo con diferentes estrategias para que coincidan mejor con la carga de trabajo de la base de datos. Ahora que ha agregado ejecutores de tareas en segundo plano adicionales, aquí hay un ejemplo de reequilibrar las particiones mediante trabajadores paralelos:

SELECT citus_rebalance_start(parallel_transfer_colocated_shards := true, parallel_transfer_reference_tables := true);

Consideraciones

Supervisión del clúster después del escalado: compruebe el uso de CPU, el uso de memoria y el consumo de E/S en los gráficos de supervisión de Azure Portal para el clúster elástico. Después de una operación de escalamiento horizontal, compruebe que agregar nodos refleja mejoras en las métricas de rendimiento y tiempos de respuesta, dependiendo de la carga de trabajo. Ajuste aún más si es necesario.

El escalado de un clúster elástico afecta al costo linealmente con los recursos. Agregar nodos multiplica los costos de proceso y almacenamiento por el número de nodos. Por ejemplo, un clúster de cuatro nodos con dos núcleos virtuales cuesta aproximadamente cuatro veces lo que cuesta un solo servidor de dos núcleos virtuales, ya que ejecuta cuatro servidores. Revise siempre el impacto en los precios en el portal. El costo estimado se actualiza en Azure Portal al cambiar la configuración antes de guardar para asegurarse de que cumple el presupuesto.

Alta disponibilidad: Si el clúster tiene habilitada la alta disponibilidad con redundancia de zona, las operaciones de escalado también aprovisionan recursos de respaldo para los nodos nuevos. El servicio de Azure lo controla automáticamente. Espere que la escalabilidad horizontal tarde un poco más, ya que establece réplicas de alta disponibilidad para cada nodo agregado. Las características de proceso y tiempo de inactividad permanecen casi iguales, multiplicadas por los pares principal y en espera.

Réplicas de lectura: si el clúster está configurado para usar réplicas de lectura, debe seguir un orden específico de operaciones al agregar nodos al clúster. En primer lugar, agregue el número de nodos al clúster principal y guarde los cambios. Una vez completado correctamente, aplique el cambio correspondiente en el entorno de réplica de lectura y guarde los cambios. Los nuevos nodos del clúster principal no son aptos para las operaciones del clúster hasta que los entornos de réplica principal y de lectura se actualizan y sincronizan.

Nota:

La capacidad de quitar nodos de un clúster elástico (escalado hacia adentro) aún no está disponible.

Mediante el uso de las técnicas de escalado anteriores, los clústeres elásticos de Azure Database for PostgreSQL proporcionan la flexibilidad de empezar a pequeña y aumentar la base de datos sin problemas a medida que aumenta la demanda. Obtiene la simplicidad de un único punto de conexión con la eficacia de la infraestructura distribuida de Postgres. Siga supervisando la documentación de Azure para conocer las actualizaciones más recientes sobre las características de los clústeres elásticos y los procedimientos recomendados para el escalado.