To run Premium High Availability (PHA) and rack awareness together, so each of your two data centers holds three racks, follow the steps below.
This procedure uses these terms:
Before a data center uses rack awareness, it has one rack, rack1, and replicas sit on other nodes inside it. Converting to rack awareness creates the additional racks, rack2 and rack3, and only then does that layout become visible.
The starting point for this procedure depends on what you have today:
| Starting point | Recommended path |
|---|---|
No Managed Cluster yet | Install DC-1 rack-aware from the start, then add DC-2 |
An existing Managed Cluster, not yet PHA | Convert DC-1 to rack awareness, then add DC-2 |
An existing PHA deployment | Convert DC-1 to rack awareness, then rebuild DC-2 |
Dynatrace recommends making both data centers rack-aware. A rack-aware DC-2 alongside a non-rack-aware DC-1 works, but once more than one rack name exists in the Managed Cluster, every node you later add to either data center must pass --rack-name, or the join is rejected. Only one node operation runs at a time across the whole Managed Cluster, so plan the two data centers sequentially—DC-1 first is the usual order, but not a requirement.
Plan the target topology
Check the combined prerequisites
Make DC-1 rack-aware
Confirm DC-1 is stable
Bring DC-2 into the topology
Verify the deployment
Each data center holds exactly three racks, matching the replication factor of Dynatrace data storage. Dynatrace doesn't enforce a specific number of nodes per rack, but the number you choose determines how much protection rack awareness adds.
| Nodes per rack | Nodes per DC | Total nodes | Use this when |
|---|---|---|---|
1 | 3 | 6 | Not recommended—rack awareness adds no failover tolerance |
2 | 6 | 12 | Limited failover tolerance |
3 | 9 | 18 | Recommended for production |
4 | 12 | 24 | Scale for capacity |
5 | 15 | 30 | Maximum—15 nodes per DC |
Six nodes meets the PHA minimum, but it leaves one node per rack, where rack awareness gains no failover tolerance. Dynatrace recommends three nodes per rack for production deployments—nine nodes per DC, eighteen total.
With one node per rack, the rack is the node, so a rack failing is the same as a node failing, which a standard high-availability deployment already tolerates. A second failure then always falls in a different rack, which Dynatrace treats the same way it would treat a second failed node. Rack awareness buys nothing in that layout, yet still costs the same as a real one: you still owe the 10 ms inter-rack latency and physical-placement prerequisites for three racks, and each single-node rack holds a full replica—100% Owns (effective) instead of 33.3% at three nodes per rack—tripling per-node disk usage.
With three nodes per rack, a whole rack failing counts as multiple nodes failing in the same rack, which Dynatrace still considers the data center healthy. That's rack awareness working as intended.
Both DCs may use the same rack names—rack1, rack2, and rack3 in each. Dynatrace scopes rack names per data center, not globally, so reusing the same three names in DC-2 is expected. Matching names across the two data centers also keeps cassandra-nodetool.sh status output easier to compare, since the same three names appear under each data center's section.
Always supply --rack-dc and --rack-name together, and set --rack-dc to the same value as --datacenter—the installer refuses to proceed otherwise. With rack names repeating across data centers, --rack-dc is the only thing that tells Dynatrace which data center's rack a node belongs to.
Once the Managed Cluster holds more than one rack name, a joining node that omits --rack-name is rejected instead of defaulting to rack1, so you can't accidentally forget the rack parameters on a node you add later.
Dynatrace doesn't enforce the number of racks or the number of nodes per rack, so meeting the rack awareness requirements is your responsibility.
At nine nodes per DC, not every node serves web UI traffic by default. Use the Cluster REST API to set which nodes serve the UI.
Before you begin, confirm your deployment meets the prerequisites from both features.
Review the PHA requirements and limitations, including the license model, network latency, and node count bounds.
Review the rack awareness requirements, including the low-latency network requirement between racks.
If you don't have a Managed Cluster yet, install DC-1 rack-aware from the start. Follow Install Dynatrace Managed and append the rack parameters to the installation command, cycling the rack name across the three racks you want DC-1 to have:
dynatrace-managed.sh --rack-dc <dc-1-name> --rack-name <rack>
Replace <dc-1-name> with the name of DC-1, and <rack> with rack1, rack2, or rack3 depending on which rack the node belongs to.
While DC-1 has three racks and DC-2 has fewer, Dynatrace evaluates DC-2's health node by node instead of rack by rack, so DC-2 is briefly less fault-tolerant than a fully racked data center. This is expected and not a cause for concern: the DC-health rules still apply throughout, and if DC-1 has a problem, DC-2 is still there to take over.
Confirm DC-1 is fully converted and healthy before you continue to DC-2. Dynatrace Managed blocks all other cluster operations while a node operation is in progress, so you can't work on DC-1 and DC-2 at the same time.
Converting a nine-node data center by replication means six to twelve serialized node operations at one to two days each, so plan for roughly one to three weeks, plus a possible multi-day wait for the first node's Cassandra bootstrap. Six of those operations are additions, to populate rack2 and rack3. The rest are removals of the rack1 nodes whose capacity moved to the new racks and are no longer needed. A data center that started at three nodes needs no removals, while one that started at nine needs six removals and briefly reaches fifteen nodes before settling back at nine. Because DC-1 and DC-2 can't be converted in parallel, their durations add together.
Whether DC-2 doesn't exist yet or you're rebuilding an existing one, the underlying command is the same—only the surrounding procedure differs:
sudo /bin/sh ./managed-installer.sh --install-new-dc --premium-ha on --datacenter <dc-2-name> --seed-auth <api-token> --rack-dc <dc-2-name> --rack-name <rack>
This is the command from the install-nodes step of whichever procedure you follow below, with the rack parameters added. --rack-dc takes the same value as --datacenter. Cycle <rack> across rack1, rack2, and rack3 for DC-2's nodes so the three racks end up with equal node counts—reusing DC-1's rack names is expected. The two procedures below name the <dc-2-name> variable differently, so use whichever your procedure defines.
Follow Add a data center, and add the rack parameters to the command in Install second data center nodes.
Install all three racks. Dynatrace ignores racks in a data center that has only one or two.
Run cassandra-nodetool.sh status on the seed node, and confirm the output shows:
Datacenter: sections, one for each data centerUNDatacenter: datacenter1=======================Status=Up/Down|/ State=Normal/Leaving/Joining/Moving-- Address Load Tokens Owns (effective) Host ID RackUN 10.176.41.10 19.12 GB 256 33.3% 3af25127-4f99-4f43-afc3-216d7a2c10f8 rack1UN 10.176.41.11 19.18 GB 256 33.3% 5a618559-3a73-42ec-83f0-32d28e08beec rack1UN 10.176.41.12 19.44 GB 256 33.3% 191f3b30-949a-4cf2-b620-68a40eebf31e rack1UN 10.176.41.20 19.08 GB 256 33.3% 852ce236-a430-400a-92a6-daeed99acf68 rack2UN 10.176.41.21 19.31 GB 256 33.3% 84479219-b64d-442c-a807-a832db9aae18 rack2UN 10.176.41.22 19.27 GB 256 33.3% 507b377c-5bfc-4667-b251-a9b7c453ed22 rack2UN 10.176.41.30 19.15 GB 256 33.3% 48543bca-41f5-26d3-b2fd-6cfdf5c0f3b2 rack3UN 10.176.41.31 19.02 GB 256 33.3% 2aa7e790-a423-9273-88f9-45bcd158dd6e rack3UN 10.176.41.32 19.36 GB 256 33.3% f053dd8d-ecf3-7834-b099-68542439817b rack3Datacenter: dc-us-east-2========================Status=Up/Down|/ State=Normal/Leaving/Joining/Moving-- Address Load Tokens Owns (effective) Host ID RackUN 10.176.42.10 19.21 GB 256 33.3% a1b2c3d4-4f99-4f43-afc3-216d7a2c10f8 rack1UN 10.176.42.11 19.09 GB 256 33.3% b2c3d4e5-3a73-42ec-83f0-32d28e08beec rack1UN 10.176.42.12 19.33 GB 256 33.3% c3d4e5f6-949a-4cf2-b620-68a40eebf31e rack1UN 10.176.42.20 19.17 GB 256 33.3% d4e5f6a7-a430-400a-92a6-daeed99acf68 rack2UN 10.176.42.21 19.24 GB 256 33.3% e5f6a7b8-b64d-442c-a807-a832db9aae18 rack2UN 10.176.42.22 19.11 GB 256 33.3% f6a7b8c9-5bfc-4667-b251-a9b7c453ed22 rack2UN 10.176.42.30 19.29 GB 256 33.3% a7b8c9d0-f41f-26d3-b2fd-6cfdf5c0f3b2 rack3UN 10.176.42.31 19.06 GB 256 33.3% b8c9d0e1-a423-9273-88f9-45bcd158dd6e rack3UN 10.176.42.32 19.38 GB 256 33.3% c9d0e1f2-ecf3-7834-b099-68542439817b rack3