When managing a cluster node, you may need to perform various operations with your server (e.g. install software) or synchronize system data. Synchronizers can be used to complete this task.
What is a synchronizer
- A synchronizer is an internal object of the control panel that performs various operations when needed and informs about results.
- Each synchronizer corresponds to specific data of the control panel or action with a cluster node, altogether called synchronizer type
- Data desynchronization is registered for a cluster node by assigning a synchronizer of a certain type
- In case desynchronization is registered, a new state of a cluster node is specified for each synchronizer
- Each synchronizer has a synchronization order priority for the cluster node
- Statuses of the cluster nodes are changed only based on synchronizer results
How it works
Data desynchronization can be registered while executing requests to the control panel (e.g. while adding a cluster node desynchronization for all types is registered). The cluster node's state is changed into the one corresponding to the synchronizer.
Periodically the control panel checks a list of desynchronizations for each cluster node and starts data synchronization, described by the synchronizer. Synchronization of one data type only can run for each cluster node in a given period of time. The synchronizer start time is set by priority.
When only desynchronizations for which the node's status is set to "Ready", are left, the node's status is changed into "Ready" and this cluster node can be used for processing user queries.
You can also check the list of all registered synchronizers using MySQL request to ISPmanager database:
select * from node2sync join syncactions on node2sync.syncactions=syncactions.id;
If a synchronizer doesn't complete for a long time, there are probably errors occurring by data synchronizing. These errors can be found in the ispmgr.log (/usr/local/mgr5/var/ispmgr.log).
If a synchronizer is hanging, you can force its completion with a command:
/usr/local/mgr5/sbin/mgrctl -m ispmgr nodesync