Multi-server system🔗
To ensure scalability and fault tolerance of multiserver video surveillance systems, as well as to minimize service data exchange over the network and reduce collisions associated with server synchronization, Eocortex uses a Main server architecture. A description of this architecture can be found below.
Note
The Main server architecture was first introduced in Eocortex version 2.2. Previously, all servers in a multi-server system had equal rights which could lead to significant performance degradation and collisions.
In a multiserver system, only one server is the Main server. The rest of the servers in the multiserver system are called Secondary servers and interact with the Main server to update settings. Since the settings are synchronized by the Secondary servers making queries to the Main server and not vice versa, the Main server must be accessible to all servers in a multiserver system.
Warning
All servers in a multiserver system must have Eocortex installed of the same version by major and minor version numbers.
The version number of the Eocortex has three parts: M.N.R; M: major version, N: minor version, R: release number.
Main server
The main server stores and allows to edit the following data:
General system settings: data regarding servers, cameras, users etc.;
Data regarding licenses of each server;
Information about the most recent connection of each Secondary server to the main server;
Site plans.
Note
The information about the most recent connections of the Secondary server to the Main is used, in particular, for diagnostics: if the Secondary server has not connected to the Main within the last 2 minutes, then its status will be changed accordingly.
Also, the functions of the main server include checking the authorization of each incoming queries from system users, including those from external applications.
Secondary server
The Secondary server stores and allows you to modify its own single-server configuration, which contains the settings of this server and cameras bound to it, as well as a number of other parameters, including the location (address: port) of the main server. Also, the Secondary server stores a copy of the general settings obtained from the Main server, in case the main server fails.
Every few seconds the Secondary server connects to the Main server for synchronization purposes. The interval between connections is determined automatically and ranges from 5 to 15 seconds. In addition, the connection to the Main server occurs immediately after changes are made to the settings of the Secondary server.
The following tasks are performed within the scope of synchronization (moreover, some of the tasks are not performed during each synchronization session, but only when certain events occur or certain conditions are met):
The main server receives the information regarding the operability of the Secondary server;
The Secondary server performs time synchronization with the main server;
The main server receives information regarding the modification of settings and about licenses of the main server;
The Secondary server receives from the main server the information regarding the necessity to launch or stop the backup or channel replication processes coming from other servers;
The Secondary server downloads a copy of the general settings from the main server.
In addition to synchronization requests, the Secondary server redirects requests from client applications to the Main server, if necessary.
Fail safety
To ensure that the main server does not become a common point of failure, a mechanism of transferring a copy of the general system settings to each Secondary server has been implemented. Below is the list of events and conditions for the general settings to be automatically downloaded by the Secondary servers:
Once every 12 hours;
Upon the launch of the Secondary server;
When the number of servers in the system has changed;
When the number of channels in the system has changed;
When the system users have changed;
Upon the change of binding of cameras to the servers;
When the bindings of replication or backup bindings have changed.
Thus, in the event of a failure of the main server, any of the remaining servers in the system can be designated as the main server.
Adding other servers and multiserver systems
Note
The following terms are introduced for the purposes of this document:
Current system is a multiserver system or a system consisting of a single server connected to the Eocortex Configurator application at the given moment.
External system is a multiserver system or a system consisting of a single server that is being connected to the current system.
Note
To connect an external system, it is required to connect only one of the external system servers to the current system — after connecting, the Eocortex Configurator application will send information to the other servers of the external system that the main server of the current system becomes their main server. In other words, when a server of another system joins the current system, all servers on that external system will join the current system.
Warning
In the process of connecting an external system, the Eocortex Configurator application must have access to all servers of this system in order to inform them of the new address of the main server.
In case the Eocortex Configurator application does not have access to any server of the external system at the time of connecting, such server will attempt to automatically receive information about the change of address of the main server from the server that was the main server in the external system.
If the operation of obtaining a new address of the main server by an unavailable server automatically did not lead to the connection of this server to the current system (for example, if the main server of the external system was unavailable), it is necessary to make direct connection to this server using the Eocortex Configurator application, subsequently changing the address of the main server on the server (specifying the address of the main server of the current system).
The following happens when an external system is connected:
All the servers of the external system will be added to the current system.
On the former main server of the external system, all the general settings of the external system will be deleted, including users and the associated permissions. Further, to connect to the former servers of the external system, the authorization system of the current system will be used.
All the cameras and folders of the external system will be added to the current one. In this case, the camera settings and the distribution of cameras among servers will be preserved.
All site plans, archive bookmark categories, screen profiles and profile switching lists will be added to the current system from the external one.
If the Eocortex Configurator application is connected to the servers of the external system at the time of connecting, then, depending on whether the username and password of the current and external systems for this session match or not, the client application will either automatically restart or remain idle until the user restarts it under the correct username and password.
Warning
Each server has its unique identifier ServerID. When copying Eocortex Server with existing settings, this identifier will be the same. If you try to add such a server to the system, an error about the existence of the server in the system will be displayed. In this case, before adding a copy of the server to the system, delete all of its configuration files except for the licence.lic file and then configure the server again. The configuration files are located in the C:/ProgramData/EocortexServerConfigs folder.
To transfer camera settings to the added server, exporting and importing their configurations can be used.
Warning
To connect servers together in a multi-server system, the following license parameters must be the same:
Active Directory
Video Wall
Archive duplication
Archive decimation after the preset period of time
Monitoring of system status
Prior PTZ
Displaying alarm events on plans
Episode archive
Long-term database
Division of rights for different levels of administration
Internal operators chat
REST API
Disconnections of servers
The following terms are introduced for the purposes of this document:
Current system is a multiserver system to which the Eocortex Configurator application is connected at the moment of disconnection.
Disconnected system is a system with a single server that is disconnected from the current system.
Warning
The Main server cannot be disconnected from a multiserver system. If such need arises, it is required to designate another server in the system as the Main one before disconnecting.
The following happens when a server is disconnected from the system:
The disconnected server is removed from the general settings of the current system. This means that all the cameras for which the disconnected server was the primary one, as well as all replication and backup bindings associated with the disconnected server will be removed from the general settings and site plans.
The disconnected server becomes the main server of the single-server system.
General settings for the single server system are created on the disconnected server. At the same time, all cameras for which this server was the main one at the time of disconnection are preserved. However, all replication and backup bindings are removed from the settings, as well as all cameras for which this server has been designated as a replication or backup server. If the server was a replication one before disconnection, after disconnection it becomes a basic server.
The disconnected system retains all users of the current system with their assigned permissions.
The disconnected system retains all site plans, archive bookmark categories, screen profiles, and profile switch lists. At the same time, all cameras that remain in the current system will be removed from the site plans.
The archive of replicated and backup cameras will remain on the disconnected server, and it will be possible to view it using the Local monitoring and backup archive utility. This archive will be deleted as the disk space is filled with the current archive from the cameras remaining on the disconnected server. In this case, if the disconnected server is re-connected to the current system, the archive of replicated and backup cameras will become available for viewing in the Eocortex Client application.
If the Eocortex Client application is connected to the servers at the time of disconnection, it will continue to operate and will be automatically restarted only if the system is modified in such a way that the parameters of the current display, user rights, settings of currently displayed channels and a number of other settings are affected.
As a result, two systems with the same set of users and their rights, as well as site plans, categories of archived bookmarks, screen profiles and profile switching lists will be available after the server’s disconnection.
Interaction of client applications with servers
Eocortex client applications include Eocortex Client, Eocortex Web Client and mobile client applications.
To work in a multiserver system, the users of client applications do not need to know the address of the main server and connect specifically to it — it will be sufficient to connect to any of the servers in the system. In this case, if the user connects to a Secondary server that does not have access to the Main server, the client application will only have access to those cameras that are bound to that server.