Wolkra

Placement groups

Updated

A Wolkra placement group spreads the servers in it across different physical hosts in our Frankfurt data center, so a problem with one host affects at most one of them. It is the building block for clusters, replicas and active/standby pairs that should not fail together.

Why spreading servers matters

Every cloud server runs on a physical host. Several servers can share one host. That is efficient, but it means servers you built to back each other up could end up side by side, and a single host failure or maintenance window would hit both.

A placement group removes that risk. You put the servers that belong together into a group, and Wolkra places each one on a different host.

How it works

  1. Create a placement group in your project and give it a name, such as db-cluster.
  2. When you create a server, select the placement group.
  3. Wolkra places the server on a host that does not already run another server from the same group.
  4. Repeat for every node of the cluster.

From then on, the servers behave like any other cloud server. You can resize, rebuild, snapshot and monitor them as usual.

In the console and the API

In the console, the placement group is an option on the create-server screen, and each group shows the servers it holds. With the Wolkra API, pass the placement group when you create servers, so scripts that build a cluster get the spread automatically.

Where placement groups help

Setup Why spread it
Database primary and replica The replica must survive what stops the primary
Web servers behind a load balancer A host problem removes one target, not all of them
Active/standby pair with a floating IP The standby must not share the active node's host
Quorum clusters (etcd, Consul, Kafka) Losing one host must not break the quorum
Several CI runners One host problem should not stop every build

Designing for availability

A placement group is one piece of a reliable setup. A typical highly available web stack on Wolkra combines:

  • Two or more app servers in a placement group
  • A load balancer with health checks in front of them
  • A database primary and replica in their own placement group
  • A private network between the tiers
  • Daily backups on servers that hold data

With Composer you can draw such a stack and see its monthly cost before you apply it.

An example: a three-node cluster

Say you run a database cluster with three nodes that elect a leader. If two of the three run on the same host and that host goes away, the cluster loses its majority and stops accepting writes. With a placement group:

  1. Create a group called db-cluster.
  2. Create three servers, each with the group selected.
  3. Each node lands on its own host.
  4. A single host problem takes away at most one node, and the other two keep the cluster running.

The same pattern works for message brokers, search clusters and any system that keeps copies of its data on several nodes.

Typical uses

Placement groups and monitoring

Once a cluster is spread across hosts, watch each node on its own. The monitoring graphs for CPU, disk and network show quickly when one node carries more load than the others, which often points to a replication or balancing issue worth fixing before it matters.

Pricing basis

Placement groups are an option on your servers; the servers themselves are billed by the hour from your prepaid balance and capped at their monthly price. See the pricing page for current details.

Limits to know

  • Placement groups spread servers across hosts inside one location. Today that is Frankfurt, so they do not protect against a site-wide event.
  • Choose the group when you create the server.
  • A group protects availability, not data. Replicate your data and keep backups.

Related products

Build servers that fail alone

Spread your cluster across hosts with one setting. Sign up for Wolkra and create your first placement group in Frankfurt.

Frequently asked questions

What is a placement group?

A placement group tells Wolkra to place its servers on different physical hosts. It is a simple way to get anti-affinity for clusters and redundant pairs.

Why does it matter which host a server runs on?

Servers on the same host share that host's hardware. If the host has a problem, every server on it is affected, so spreading replicas across hosts limits the impact.

Do placement groups cost extra?

Check the pricing page for current details. You pay for the servers in the group as usual, by the hour from your prepaid balance.

When do I choose the placement group?

Choose it when you create the server, on the create-server screen in the console or in the API request. Plan your groups before you build the cluster.

Does a placement group replace backups?

No. Placement groups protect availability, not data. Keep backups or snapshots and replicate data between the servers in the group.