Redundancy Monitor - 23
Description
The purpose of this driver is to perform an election process which decides which Qinsy system is the primary system for data output.
Each output system can be configured to enable/disable its output based on redundancy. Output drivers that have been configured as such will only output data if they are on the system that is 'Primary'.
Typical use for this driver is on a larger vessel whereby there are multiple Qinsy computers that are part of the same network and only one computer should output data to external systems. Each Qinsy computer needs to have the driver running and correctly configured. The driver will make sure that there is only one primary Qinsy computer and this primary system can be the only system to output data.
Note
TCP based drivers will allow/establish a connection if they are not the 'Primary' system, but will not send data on this link.
In case of systems that do not allow multiple open connections, this may cause a problem.
Driver Information
Driver | Redundancy Monitor | Interface Type | UDP | Driver Class Type | |
---|---|---|---|---|---|
UTC Driver | No | Input / Output | Input and Output | Executable | DrvRedundancyUdpUi.exe |
Related Systems |
| ||||
Related Pages |
Interfacing Notes
In order to be able to perform the election each Qinsy system should be running a copy of this driver. Once the drivers are running they should be configured with information necessary to communicate with the other Qinsy systems. Once this is done the drivers will start sending heartbeat messages to each other on a regular basis. The heartbeat messages contain the Qinsy system priority list mentioned above. Apart from the heartbeat messages at a fixed interval the driver will also send a heartbeat message in case the user decides to change the Qinsy system priority list. A heartbeat message is also sent at driver start-up.
Primary System Election Algorithm
The primary system election algorithm uses the following rules:
- If the age of the most recently received heartbeat message is equal to or lower than the entered heartbeat time-out value the system is considered to be ‘Online’. If the age is above the set value the system is considered to be ‘Offline'.
- At start-up the status of each Qinsy system is initialized at ‘Unknown’ and the reception times of the last heartbeat messages are set to the current time.
- As long as no other Qinsy systems have a status ‘Offline’ or ‘Online’ the outcome of the election process is set to ‘Unknown’.
- The Qinsy system highest in the priority list with the status ‘Online’ is designated as the ‘Primary’ system. All other systems are designated as ‘Backup’ systems.
- If a configuration message with a more recent time tag is received by the driver it will replace the current configuration. This will allow a configuration change in one instance of the driver to propagate to the other drivers.
- Whenever a Qinsy system becomes Primary and the "On former Primary reconnect" setting has been set to "Current Primary stays Primary", the new Primary elevates its own priority to the highest priority.
This way, it ensures that it will remain Primary when the former Primary returns. If the setting is set to "Former Primary becomes Primary again", the priority will not be changed.
Time Synchronisation
All these rules depend on a common time reference for each Qinsy system.
This may be accomplished through:
- Central network time reference (i.e. domain controller)
- Time Synchronization System (formerly known as PPS system) to each Qinsy system.
- PPS and Time Message
- Time Message Only @ 1Hz (ZDA / UTC / RMC / GGA)
- NTP
Database Setup
Add a driver of the type Miscellaneous to the setup and use the driver 'Redundancy Monitor'. Normally, the IP address can be left at the default value of '0.0.0.0' (a broadcast on the current network). When specifically required, a specific broadcast domain (e.g. 192.168.255.128) can be entered. In this case, the user has to make sure that the broadcast address matches the network's network mask.
Enter an (arbitrary) port number and make sure that the same port number is used on all Qinsy systems.
Slot name
Make sure to add a Generic observation in the driver and use the slot number "Redundancy".
Setup of output drivers that can use Redundancy monitor functionality
The output drivers that can make use of the Redundancy functionality show this option on the first page of the setup wizard.
The option can be Enabled/Disabled or set to Redundancy. This setting can also still be changed online.
- Enabled: data will always be outputted on this computer
- Disabled: data will not be outputted on this computer
- Redundancy based: data will be outputted by the primary computer
Online
Online settings
In order to allow the election process to be performed a preferred Qinsy system priority list needs to be set up. Make sure that all Qinsy instances are added to the list by entering the IP address of the network interface on which it can be reached. This is including the one on which Qinsy is running.
Once the Qinsy instances have been defined it might be necessary to tune the heartbeat message interval or heartbeat message time-out.
The settings dialog can also be used to determine the redundancy behavior when a 'former primary' comes back online.
Observe a situation with two Qinsy instances, of which system 1 has the highest priority for the two possible methods:
Network status Instance 1 | Network status Instance 2 | Primary "Current Primary stays Primary" | Primary "Former Primary becomes Primary again" |
---|---|---|---|
Online | Online | Instance 1 | Instance 1 |
Offline | Online | Instance 2 | Instance 2 |
Online | Online | Instance 2 | Instance 1 |
Presentation of Status Information
In order to allow the user to monitor the outcome of the election process and the availability of each Qinsy system the user interface contains a list of each detected/configured Qinsy system and its status information. The list is according to the order in which the specific Qinsy system will become the primary system if all Qinsy systems above the specific system are no longer detected on the network. Below you will find a screen design for the user interface:
The outcome of the election process is displayed in the ‘Status’ field. This field can have the following values:
Value | Description |
---|---|
Unknown | The election algorithm was unable to determine which system should be designated as the primary system. |
Primary | The election algorithm has designated this system as the primary system. |
Backup | The election algorithm has designated another system as the primary system. |
The information about each known Qinsy Instance is displayed in the Qinsy Instances grid control.
This grid control contains the following information about each of the Qinsy instances:
Column | Description |
---|---|
IP Address | IP address of network interface on which Qinsy instance may be reached. |
Status | Status on Qinsy instance. Possible value may be found in table below. |
Age | Age in seconds since last heartbeat message was received. |
‘Unknown’ | If no heartbeat messages have been received since startup of driver. |
Status | Description |
---|---|
Online | System is considered to be online because age of last heartbeat message is lower than heartbeat message time-out setting. |
Offline | System is considered to be offline because age of last heartbeat message is greater than heartbeat message time-out setting or no heartbeat message has been received at all since start-up of driver. |
Time Synchronisation
The rules mentioned under Interfacing Notes depend on a common time reference for each Qinsy system.
This may be accomplished through:
- Central network time reference (i.e. domain controller)
- Time Synchronization System (formerly known as PPS system) to each Qinsy system.
- PPS and Time Message
- Time Message Only @ 1Hz (ZDA / UTC / RMC / GGA)
- NTP
Generic display/output
The observation for the redundancy monitor can also be selected in the Generic Layout editor.
The value that is shown corresponds with the order so Primary will have the value 1.
Online
The Controller has Output driver settings which can be found under the Settings menu.
The dialog shows which output drivers are available and if they make use of the redundancy option or not.
In the dialog is also visible if the Redundancy Monitor driver is active or not and if the system is primary or backup.