PowerConnect Cloud Clustering
Overview
PowerConnect Cloud is designed to support clustering to ensure high availability and scalability. A cluster consists of multiple nodes that work together to provide seamless functionality. This document explains how clustering works, focusing on the replication of configuration changes and the coordination of scheduled jobs across the cluster.
Key Components
Hazelcast:
Used for distributed data structures, such as maps and locks.
Ensures that configuration changes made on one node are automatically replicated to all other nodes in the cluster.
Quartz:
Manages scheduled jobs across the cluster.
Ensures that jobs are executed on only one node at a time, avoiding duplication.
How Clustering Works
1. Configuration Replication
Mechanism: Configuration data is stored in a distributed Hazelcast map.
Behavior:
When a configuration change is made on one node, it is automatically propagated to all other nodes in the cluster.
All nodes maintain a consistent view of the configuration.
2. Job Scheduling and Execution
Quartz with Hazelcast:
Quartz uses Hazelcast as the job store, allowing it to coordinate job execution across the cluster.
Jobs are scheduled to run on one node at a time, even though all nodes share the same job definitions.
3. Cluster Membership
Nodes automatically join the cluster when started, provided they have the correct network configuration.
Each node maintains a real-time view of the cluster’s health and membership status.
Example Workflow
Creating an Input:
A user creates an input on Node A.
The input configuration is stored in the Hazelcast distributed map and automatically replicated to Nodes B, C, and others.
Modifying a Configuration:
A user modifies the configuration of an input on Node C.
The change is immediately replicated across all nodes.
Scheduled Job Execution:
The input is scheduled to poll data at regular intervals.
Quartz ensures that only one node (e.g., Node A) runs the job, while other nodes remain on standby.
Benefits of Clustering
High Availability:
If one node goes down, other nodes continue to operate seamlessly.
Consistency:
Configuration data is always consistent across all nodes.
Scalability:
Additional nodes can be added to the cluster to handle increased load.
Diagram of Clustering Workflow
+---------------+ +---------------+ +---------------+
| Node A | | Node B | | Node C |
| | | | | |
| Config Change |<-------->| Hazelcast Map |<-------->| Hazelcast Map |
| Scheduled Job | | | | |
+---------------+ +---------------+ +---------------+
| |
| |
V V
Quartz Scheduler Quartz Scheduler
Best Practices for Clustering
Network Configuration:
Ensure all nodes can communicate over the configured Hazelcast port.
Monitoring:
Monitor the health of each node to ensure cluster stability.
Avoid Manual Synchronization:
Let Hazelcast handle all configuration replication and job coordination.
By leveraging Hazelcast and Quartz, the system provides robust clustering capabilities that ensure seamless operation, even in distributed environments. This architecture allows configuration changes to be replicated automatically and scheduled jobs to run efficiently across the cluster.