server redundancy
Moderator: Support Team
-
- Sr. Member
- Posts: 16
- Joined: 02 Sep 2011, 19:30
server redundancy
hi
I wonder if in your example of multiple server if there is one that supports redundancy! and how to implement such a server
I wonder if in your example of multiple server if there is one that supports redundancy! and how to implement such a server
Last edited by kp85 on 07 Feb 2013, 11:00, edited 1 time in total.
- Support Team
- Hero Member
- Posts: 3078
- Joined: 18 Mar 2011, 15:09
Re:server redundancy
Hello,
Before I can explain how to configure redundancy with the Unified Automation products, I need to explain the OPC UA concepts for redundancy.
OPC UA defines two main modes for server redundancy, non-transparent and transparent. Non-transparent has the sub modes Cold, Warm and Hot.
In the non-transparent case, all servers in the redundant set have their own Server URI and Endpoint URLs. Every server in the redundant set provides a list of the other redundant servers in the set (Server URI) and the sub mode (Cold, Warm or Hot). With this feature a client need to know only one server and can find the other available servers through the information in the server object (Objects -> Server -> ServerRedundancy). The advantage of non-transparent redundancy is that it is easy to support on the server side. The disadvantage is that the client needs to do something to benefit from redundancy. But it would be easy to implement a generic support in the client with the information provided by the server.
In the transparent case, all servers in the redundant set have the same Server URI and Endpoint URLs. The servers are running in a cluster with the same IP-Address. A client cannot connect to a specific server but he can request the list of available server and their status in Objects -> Server -> ServerRedundancy. The advantage of transparent redundancy is that the client needs to know nothing about redundancy to benefit for the redundant servers. The disadvantage is the higher effort on the server side.
The C++ Server SDK from Unified Automation supports both main modes for server redundancy, non-transparent and transparent. For transparent redundancy an additional module is needed that is not part of the standard SDK. It is available on request. The non-transparent configuration can also be used in the UaGateway V1.2.
Non-Transparent redundancy can be configured in the ServerConfig.xml file. See example below. In addition you should configure both servers to register with the Local Discovery Server (LDS) on the other computer. It is possible to configure more than two servers.
Best Regards,
Unified Automation Support Team
Before I can explain how to configure redundancy with the Unified Automation products, I need to explain the OPC UA concepts for redundancy.
OPC UA defines two main modes for server redundancy, non-transparent and transparent. Non-transparent has the sub modes Cold, Warm and Hot.
In the non-transparent case, all servers in the redundant set have their own Server URI and Endpoint URLs. Every server in the redundant set provides a list of the other redundant servers in the set (Server URI) and the sub mode (Cold, Warm or Hot). With this feature a client need to know only one server and can find the other available servers through the information in the server object (Objects -> Server -> ServerRedundancy). The advantage of non-transparent redundancy is that it is easy to support on the server side. The disadvantage is that the client needs to do something to benefit from redundancy. But it would be easy to implement a generic support in the client with the information provided by the server.
In the transparent case, all servers in the redundant set have the same Server URI and Endpoint URLs. The servers are running in a cluster with the same IP-Address. A client cannot connect to a specific server but he can request the list of available server and their status in Objects -> Server -> ServerRedundancy. The advantage of transparent redundancy is that the client needs to know nothing about redundancy to benefit for the redundant servers. The disadvantage is the higher effort on the server side.
The C++ Server SDK from Unified Automation supports both main modes for server redundancy, non-transparent and transparent. For transparent redundancy an additional module is needed that is not part of the standard SDK. It is available on request. The non-transparent configuration can also be used in the UaGateway V1.2.
Non-Transparent redundancy can be configured in the ServerConfig.xml file. See example below. In addition you should configure both servers to register with the Local Discovery Server (LDS) on the other computer. It is possible to configure more than two servers.
Code: Select all
<!--Provides the redundancy settings for the server-->
<RedundancySettings>
<!--Redundancy support options are None, Cold, Warm, Hot and Transparent. Transparent requires special module. -->
<RedundancySupport>Hot</RedundancySupport>
<!--List of server URIs for the servers in the NonTransparent redundant set.-->
<ServerUri>urn:PC1:UnifiedAutomation:RedundancySample</ServerUri>
<ServerUri>urn:PC2:UnifiedAutomation:RedundancySample</ServerUri>
</RedundancySettings>
<!--Discovery configuration
Configuration for registration with discovery server(s)-->
<DiscoveryRegistration>
<!--Interval in milliseconds for registration with discovery server(s) -->
<RegistrationInterval>30000</RegistrationInterval>
<!--List of discovery servers to register with.
If the list is empty, no registration is executed.
Default is opc.tcp://localhost:4840 for the local discovery server.
Additional remote discovery servers can be added-->
<Url>opc.tcp://PC1:4840</Url>
<Url>opc.tcp://PC2:4840</Url>
</DiscoveryRegistration>
<!--Discovery configuration end-->
Unified Automation Support Team
Last edited by Support Team on 07 Feb 2013, 11:00, edited 1 time in total.
Best regards
Unified Automation Support Team
Unified Automation Support Team
-
- Sr. Member
- Posts: 16
- Joined: 02 Sep 2011, 19:30
Re:server redundancy
hi
thank you for the clarification. I want to know if the active server and the redundant server can run on the same computer because I board change the xml file but I board not redundant server.
thank you for the clarification. I want to know if the active server and the redundant server can run on the same computer because I board change the xml file but I board not redundant server.
Last edited by kp85 on 07 Feb 2013, 11:00, edited 1 time in total.
- Support Team
- Hero Member
- Posts: 3078
- Joined: 18 Mar 2011, 15:09
Re:server redundancy
You can run both redundant servers on the same computer.
But they need to have different ports and different Server URIs.
If you use the default ServerConfig.xml file, the Server URI is created from the computer name. You must change the URI in the configuration to be unique for every server e.g. by adding something unique at the end.
Best Regards,
Unified Automation Support Team
But they need to have different ports and different Server URIs.
If you use the default ServerConfig.xml file, the Server URI is created from the computer name. You must change the URI in the configuration to be unique for every server e.g. by adding something unique at the end.
Best Regards,
Unified Automation Support Team
Last edited by Support Team on 07 Feb 2013, 11:00, edited 1 time in total.
Best regards
Unified Automation Support Team
Unified Automation Support Team
-
- Sr. Member
- Posts: 16
- Joined: 02 Sep 2011, 19:30
Re:server redundancy
hi
I board modify the ServerConfig.xml file as you have told me I board but not redundant server and also I would like if you have an example ServerConfig.xml file to show me?
I board modify the ServerConfig.xml file as you have told me I board but not redundant server and also I would like if you have an example ServerConfig.xml file to show me?
Last edited by kp85 on 07 Feb 2013, 11:00, edited 1 time in total.
-
- Sr. Member
- Posts: 16
- Joined: 02 Sep 2011, 19:30
Re:server redundancy
hello I would like to know if you have a sample configuration file for a redundant server on the same machine with two different ports in c + + because I change my configuration XML file but I board not redundant server.
Last edited by kp85 on 07 Feb 2013, 11:00, edited 1 time in total.
- Support Team
- Hero Member
- Posts: 3078
- Joined: 18 Mar 2011, 15:09
Re:server redundancy
Here are sample snippets for the XML configuration.
You need to replace MyPC in all places with your computer name.
Server Instance information (original):
Server Instance information (Server1):
Server Instance information (Server2):
Endpoint configuration (original):
Endpoint configuration (Server 1):
Endpoint configuration (Server 2):
Redundancy settings (same for both servers)
You need to replace MyPC in all places with your computer name.
Server Instance information (original):
Code: Select all
<!--Server instance information defined for the server installation.
[NodeName} can be used as placeholder for the computer name. -->
<ServerUri>urn:[NodeName]:UnifiedAutomation:UaDemoserver</ServerUri>
<ServerName>OpcDemoServer@[NodeName]</ServerName>
<!--Server instance information end-->
Code: Select all
<!--Server instance information defined for the server installation.
[NodeName} can be used as placeholder for the computer name. -->
<ServerUri>urn:MyPC:UnifiedAutomation:UaDemoserver:Server1</ServerUri>
<ServerName>OpcDemoServer_1@MyPC</ServerName>
<!--Server instance information end-->
Code: Select all
<!--Server instance information defined for the server installation.
[NodeName} can be used as placeholder for the computer name. -->
<ServerUri>urn:MyPC:UnifiedAutomation:UaDemoserver:Server2</ServerUri>
<ServerName>OpcDemoServer_2@MyPC</ServerName>
<!--Server instance information end-->
Code: Select all
<UaEndpoint>
<SerializerType>Binary</SerializerType>
<!-- URL of the Endpoint
This URL is used for Discovery and to open the Endpoints in the UA stack if no StackUrl ist configured.
[NodeName] can be used as placeholder for the computer name. -->
<Url>opc.tcp://[NodeName]:4841Url>
Code: Select all
<UaEndpoint>
<SerializerType>Binary</SerializerType>
<!-- URL of the Endpoint
This URL is used for Discovery and to open the Endpoints in the UA stack if no StackUrl ist configured.
[NodeName] can be used as placeholder for the computer name. -->
<Url>opc.tcp://MyPC:50501</Url>
Code: Select all
<UaEndpoint>
<SerializerType>Binary</SerializerType>
<!-- URL of the Endpoint
This URL is used for Discovery and to open the Endpoints in the UA stack if no StackUrl ist configured.
[NodeName] can be used as placeholder for the computer name. -->
<Url>opc.tcp://MyPC:50502</Url>
Code: Select all
<!--Provides the redundancy settings for the server-->
<RedundancySettings>
<!--Redundancy support options are None, Cold, Warm, Hot and Transparent. Transparent requires special module. -->
<RedundancySupport>Hot</RedundancySupport>
<!--List of server URIs for the servers in the NonTransparent redundant set.
<ServerUri>urn:MyPC:UnifiedAutomation:UaDemoserver:Server1</ServerUri>
<ServerUri>urn:MyPC:UnifiedAutomation:UaDemoserver:Server2</ServerUri>-->
</RedundancySettings>
Best regards
Unified Automation Support Team
Unified Automation Support Team
-
- Jr. Member
- Posts: 1
- Joined: 09 Jul 2015, 23:40
Re: server redundancy
I am trying to setup non-transparent redundancy and this is very helpful.
Can anyone shed some lights on what do we need to do on client end?
Any help is greatly appreciated.
Can anyone shed some lights on what do we need to do on client end?
Any help is greatly appreciated.
- Support Team
- Hero Member
- Posts: 3078
- Joined: 18 Mar 2011, 15:09
Re: server redundancy
Hi,
In version 1.03 of OPC UA Part 4 the description of client behavior for the different redundancy modes was enhanced a lot. You can download the specification from the OPC Foundation website also as non-member:
https://opcfoundation.org/developer-too ... -services/
Version 1.03 is a release candidate at the moment but the final release will be available this month.
You can find the details in chapter 6.4.2.4.
Best Regards,
Unified Automation Support Team
In version 1.03 of OPC UA Part 4 the description of client behavior for the different redundancy modes was enhanced a lot. You can download the specification from the OPC Foundation website also as non-member:
https://opcfoundation.org/developer-too ... -services/
Version 1.03 is a release candidate at the moment but the final release will be available this month.
You can find the details in chapter 6.4.2.4.
Best Regards,
Unified Automation Support Team
- Support Team
- Hero Member
- Posts: 3078
- Joined: 18 Mar 2011, 15:09
Re: server redundancy
Hi,
Transparent redundancy requires first of cluster software to be able to run more than one network node with the same IP-address. On Windows, this can be done with the Network Load Balancing (NLB) feature of Windows Server.
In addition, the OPC UA servers in a transparent redundant set need to synchronize all Sessions and Subscriptions created by clients and all related status information between each other. This synchronization is handled by an additional SDK module that is not included in the normal SDK license.
The additional module handles most of the synchronization but there is additional customizing and integration effort necessary to fully support transparent redundancy. Please contact sales@unifiedautomation.com if you are interested in this module and the necessary integration support.
The additional module provides the synchronization functionality that is necessary for NonTransparent redundancy with mode HotPlusMirrored but this option was not requested by a customer yet and is therefore not completed.
Best Regards,
Unified Automation Support Team
Transparent redundancy requires first of cluster software to be able to run more than one network node with the same IP-address. On Windows, this can be done with the Network Load Balancing (NLB) feature of Windows Server.
In addition, the OPC UA servers in a transparent redundant set need to synchronize all Sessions and Subscriptions created by clients and all related status information between each other. This synchronization is handled by an additional SDK module that is not included in the normal SDK license.
The additional module handles most of the synchronization but there is additional customizing and integration effort necessary to fully support transparent redundancy. Please contact sales@unifiedautomation.com if you are interested in this module and the necessary integration support.
The additional module provides the synchronization functionality that is necessary for NonTransparent redundancy with mode HotPlusMirrored but this option was not requested by a customer yet and is therefore not completed.
Best Regards,
Unified Automation Support Team
-
- Full Member
- Posts: 8
- Joined: 20 May 2019, 06:27
Re: server redundancy
Do we have server redundancy for C# package as well?
- baldo
- Hero Member
- Posts: 25
- Joined: 19 Nov 2019, 12:15
Re: server redundancy
Yes, but only Non-transparent redundancy.Do we have server redundancy for C# package as well?
- Support Team
- Hero Member
- Posts: 3078
- Joined: 18 Mar 2011, 15:09
Re: server redundancy
Hello,
yes that is correct, the C# .NET SDK hhas only the option for non-transparent redundancy, which is (sinple spoken) just the announcement of other (alternative) servers and their Endpoints. The client can find this information in server address space, read out, and (in case of failure) connect to the alternative. But all "initiative" (intelligence/logic for failover) has to be implemented on the client side.
yes that is correct, the C# .NET SDK hhas only the option for non-transparent redundancy, which is (sinple spoken) just the announcement of other (alternative) servers and their Endpoints. The client can find this information in server address space, read out, and (in case of failure) connect to the alternative. But all "initiative" (intelligence/logic for failover) has to be implemented on the client side.
Best regards
Unified Automation Support Team
Unified Automation Support Team