cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

This product reached the end of support date on March 31, 2021.

High Availability with 2 servers question

junda_oo
Guide

Hi, currently I have 2 Windows Servers hosting Dynatrace Servers (DT6.3) in a high availability setup utilising Veritas clustering. In a nutshell, it's an active-passive setup with a license swap mechanism that allows only 1 active node to access a shared SAN drive at one time. This idea was derived from the other posts in the forums.

However, we are planning to make this system more robust as currently updating the license file requires us to detach one server from the cluster, update its license, copy out the hash file and then repeat for the next node. To eliminate this step, we are making TWO linux-based active-active independent Dynatrace servers controlled by a load balancer (Virtual IP) but users are only able to access one server. My question is, is it possible for both servers (only one would be generating PurePaths) to access the same Veritas CFS directory containing the PurePaths and connecting to the same Performance Warehouse database?

I'm guessing it is technically possible, since while both servers are connected, only one would be generating traffic. However, will that cause any sort of file lock or mutual exclusion problems? Any thoughts? The new system will be built on DT6.5

7 REPLIES 7

florent_duchate
Dynatrace Pro
Dynatrace Pro

Hi

you cannot connect 2 dynatrace servers to the same warehouse. It will cause severe data corruptions and is therefore not supported.

If you want to have both servers up and running, the stand by needs to use its own warehouse or not be connected to any.

Regards

Flo

junda_oo
Guide

Is there any way we can write a script to detach the performance warehouse? I remember seeing something like that on the server rest interface.

Aside from that, it's okay to connect to the same session store?

You want to detach the PWH so the standby server can connect to it? i assume the primary server may be down by that time so there is no need to detach just use the REST api of the standby server to connect to PWH.

gabriel_casella
Dynatrace Pro
Dynatrace Pro

As well as the Performance Warehouse concurrency as Florent said, you will need to have two different licenses, one for each server.

BTW, as you are interested in this, I would ask/suggest you to vote on the RFE that asks support for this topic.

rob_vollum
Dynatrace Pro
Dynatrace Pro

Regarding the manual swap of the license: have you considered the idea of a symbolic link as was mentioned in the other posts you read? The idea is that in the shared SAN storage, you would change the physical license file to be a symlink to some locally mounted disk (for example, to /local-mount/dynatrace/license-file). Each of the two servers would have the identically named directory hierarchy locally, and the physical license file would be the private host-locked license for that server.

As for two "live" servers accessing the session store: I can't answer that one. I don't know if an otherwise dormant server will do any sort of "housekeeping" that would write to (or otherwise change) the session store. For example, would the non-active server still pay attention to the session store quota, and attempt to prune old data when it reached its limit? I think it's likely that it would. So it's probably not a good idea.

Rob

Yeah, we did consider using the symlink previously but the original setup was done on Windows. It's actually one of the reasons why we are moving to Linux for the new setup. However that still does not resolve the complexity of updating the license (i.e. having to cut out the relevant files and failover respectively).

Looking at the configurations, I can have both nodes active with the virtual IP pointing to only the 'live' node while the other has the performance warehouse parameter disconnected, at least in theory based on my research in:

https://community.dynatrace.com/community/pages/vi...

As for the session store, I'm guessing there must be an XML config file that points the server to a specific session store path. If I can change that via a script upon failover, I may be able to point the "non-live" DT server to a blank directory and swap it back during a failover.

junda_oo
Guide

Okay, based on feedback here we have settled on this architecture for now:

1) Two active-active DT server nodes with both sharing the same session store and performance warehouse on a cluster file system. Only one node will be "live" as users will access via a Virtual IP.

2) This allows both servers' licenses to be updated manually by accessing the physical IP

3) To keep both systems in sync, the configurations (minus license files and hashes) are synced either via the Veritas clustering system or via a shell script upon failover from active to passive

4) The passive node will have its performance warehouse detached via server REST interface and the session store disconnected via substituting the server.config.xml entry below:

<directories> <storedsessions path="sessions/stored" />
<temp path="temp" />
<reports path="reports" />
</directories>

Any thoughts or comment on this? I may be overcomplicating this but that's the only way I can think of to eliminate having to manually swap files and hashes everytime a license update is done. Thing is, the customer is running on a managed services model and occasional license updates are required to accommodate to new applications and PoC/PoV activities.