I personally would not use a floating hostname, my advise is to use fixed hostnames with a pseudoclient construction. This can be done by setting up:
- At lease 4 servers (win2019 and non-domain joined is preferred):
- Active commserve, example:
- Hostname: server1.dns.suffix
- Passive commserve
- Hostname: server2.dns.suffix
- Webserver
- Hostname: server3.dns.suffix
- Media Agent with diskspace for disklibrary
- Hostname: server4.dns.suffix
- Install the active commserve with the failover package, do not install the webserver package
- For the commserve (instance001) use:
- A generic commserve client name such as “commserve”
- Hostname: server1.dns.suffix
A generic commserve client name is preferred because in case of an fail over your commserve client name will not change at any time, only the hostname will.
So if you install with for example with differentiating client names in mind, such as active-cs and passive-cs and a fail over occurs you will possibly have a commserve client name for server A whilst the commserve is active on server B which can be confusing.
- For the Fail Over instance (instance002) use:
- A specific client name such as “server1-lifesync”
- Hostname: server1.dns.suffix
- Configure the basics, a media agent (server4.dns.suffix) and a storage pool so you will have the dependencies in place:
- DR storage policy, and
- A disktarget to backup your lifesync sql data
- Install the passive commserve with the failover package, do not install the webserver package
- For the commserve (instance001) use:
- The same generic commserve client name as before: “commserve”.
- Hostname: server2.dns.suffix
- For the Fail Over instance (instance002) use:
- A specific client name such as “server2-lifesync”
- Hostname: server2.dns.suffix
- Activate the livesync config via the java gui → control panel → CommServe LiveSync
Apply the default settings.
- Install the webserver:
- Give a client name, “server3” or ”server3.dns.suffix” or ”webserver”, whatever you prefer.
- Hostname: server3.dns.suffix
With this setup, your clients will connect to the proxy instances (instance002 installations) and will be redirected to the active commserve at all times without:
- Ever have to change a dns record, and
- Have a generic commserve client name, as this now functions like a cluster resource and does not need a server specific name to confuse people as described earlier, and
- Works rocksolid, and
- Will prevent issues regarding broken user sessions to the webserver, if you install the webserver on the commserve you will have this issue.
In order to use this setup there are additional changes to be made on registry and SQL level to make this work. These changes will allow SQL communication between the webserver and commserver to be performed via the commvault tunnel by using a third party port mapping. is it worth the hassle? Spoiler alert yes it is never had problems this way. This solution has been tested extensively and discussed with cv support & development.
If your interested let me know so I can provide the needed registry/sql steps (need to translate them).
Hi @Anand K
Great writeup by @Jos Meijer! thank you for taking the time to respond here!
I don’t have much to add to that at this time, but let us know if you have any questions!
I personally would not use a floating hostname, my advise is to use fixed hostnames with a pseudoclient construction. This can be done by setting up:
- At lease 4 servers (win2019 and non-domain joined is preferred):
- Active commserve, example:
- Hostname: server1.dns.suffix
- Passive commserve
- Hostname: server2.dns.suffix
- Webserver
- Hostname: server3.dns.suffix
- Media Agent with diskspace for disklibrary
- Hostname: server4.dns.suffix
- Install the active commserve with the failover package, do not install the webserver package
- For the commserve (instance001) use:
- A generic commserve client name such as “commserve”
- Hostname: server1.dns.suffix
A generic commserve client name is preferred because in case of an fail over your commserve client name will not change at any time, only the hostname will.
So if you install with for example with differentiating client names in mind, such as active-cs and passive-cs and a fail over occurs you will possibly have a commserve client name for server A whilst the commserve is active on server B which can be confusing.
- For the Fail Over instance (instance002) use:
- A specific client name such as “server1-lifesync”
- Hostname: server1.dns.suffix
- Configure the basics, a media agent (server4.dns.suffix) and a storage pool so you will have the dependencies in place:
- DR storage policy, and
- A disktarget to backup your lifesync sql data
- Install the passive commserve with the failover package, do not install the webserver package
- For the commserve (instance001) use:
- The same generic commserve client name as before: “commserve”.
- Hostname: server2.dns.suffix
- For the Fail Over instance (instance002) use:
- A specific client name such as “server2-lifesync”
- Hostname: server2.dns.suffix
- Activate the livesync config via the java gui → control panel → CommServe LiveSync
Apply the default settings.
- Install the webserver:
- Give a client name, “server3” or ”server3.dns.suffix” or ”webserver”, whatever you prefer.
- Hostname: server3.dns.suffix
With this setup, your clients will connect to the proxy instances (instance002 installations) and will be redirected to the active commserve at all times without:
- Ever have to change a dns record, and
- Have a generic commserve client name, as this now functions like a cluster resource and does not need a server specific name to confuse people as described earlier, and
- Works rocksolid, and
- Will prevent issues regarding broken user sessions to the webserver, if you install the webserver on the commserve you will have this issue.
In order to use this setup there are additional changes to be made on registry and SQL level to make this work. These changes will allow SQL communication between the webserver and commserver to be performed via the commvault tunnel by using a third party port mapping. is it worth the hassle? Spoiler alert yes it is never had problems this way. This solution has been tested extensively and discussed with cv support & development.
If your interested let me know so I can provide the needed registry/sql steps (need to translate them).
@Jos Meijer thanks for the proposal. Lets assume following
- DC1 Active commserve, example:
- Hostname: server1.dns.suffix
- DC2 Passive commserve
- Hostname: server2.dns.suffix
- DC1 Webserver
- Hostname: server3.dns.suffix
- DC1&DC2 Media Agent with diskspace for disklibrary
- Hostname: server4.dns.suffix
how would you recommend the setup then in case a DC goes down.
Thanks
Hi @Sebbo
Partially you have defined this already as you have divided your Commserve's and Media Agents over the DC's.
Regarding the webserver you can create high availability by:
- Installing an additional webserver in DC2 and use a load balancer with sticky session capabilities, or
- Have the webserver as a VM on for example VMware with High-Availability enabled, or
- Install the webserver on a Windows Failover Cluster with node 1 in DC1 and node 2 in DC2, or
- Install a webserver in each DC and adjust the URL manually depending on the DC availability
I hope I answered your question, if not let me know
Hello.
I’m following this with interest as we are looking to do this.
I have a question if you don’t mind. Can you confirm what the clients connect to if it’s not the commserv name?
Thanks
@Yuggyuy the clients will connect to the hostname/ip address of instance002 installations of both the active and the passive commserve's and will automatically redirect towards the active commserve
@Yuggyuy the clients will connect to the hostname/ip address of instance002 installations of both the active and the passive commserve's and will automatically redirect towards the active commserve
Thank you.
Would you be willing to send me the registry/sql settings you mentioned, and any other useful info?
Thanks.
Hi @Yuggyuy
Sorry for the delay, busy days currently..
This post shows the steps needed:
Let me know the result