← Back
Home › Systems › Hardware and datacenter

datacenter-facility

Turns grid power and outside air into a place where server racks run without stopping, with redundant power delivery and cooling that removes the heat.

hyperscale datacenters

Open the datacenter-facility pagedatacenter-facility Datacenter coolingcloud: Hot/cold aisle containment, free cooling, direct liquid cooling and PUE mathPower oversubscription cappingcloud: Oversubscribe datacenter power with telemetry and fast capping (RAPL, priority-based throttling)Ups power distributioncloud: UPS, PDUs, busways and redundancy schemes (N+1, 2N) for datacenter powerGorilla XOR compressioncompression: Time-series codec: delta-of-delta timestamps plus XOR of consecutive float bit patterns, storing only changed bits; about 1.4 bytes per point.›Power management dvfshardware-os: DVFS governors, P- and C-states, race-to-idle, thermal throttlingFinite volume methodnumerics: Conservative cell-averaged discretization with numerical fluxes on structured and unstructured meshesVector bin packingoptimization: Multi-dimensional bin packing heuristics (first fit decreasing, dot product) for placing VMs and jobsModel predictive controlrobotics: Each tick, solve a small optimization over a predicted horizon, apply only the first input, repeat. Handles constraints and multiple inputs that a PID loop cannot.›PID controllerrobotics: Drive a measured value to a setpoint with three terms on the error: proportional, integral, derivative. The default feedback loop for motors, heaters, drones and gimbals.›Time-series anomaly detectionstatistics: Predict the expected value from a seasonal baseline, scale the residual by a robust spread (MAD), threshold at a chosen false-alarm rate, then merge flags into incidents.›Bacnet protocolembedded: BACnet objects, properties and services over IP/MSTP for building automationAlarm managementembedded: Turn raw process limits into a few actionable operator alarms with delay, deadband, acknowledge and shelving states, plus flood measurement.›Modbus protocolembedded: Modbus RTU/TCP registers and function codes with polling and CRCPriority and preemptionsystems: Priority classes, quota and evicting lower-priority work to admit higherBattery state estimationembedded: State of charge / health / power from coulomb counting, OCV curves and model-based observersHot-standby redundancyembedded: A second, always-current controller shadows the primary and takes over within a few cycles of silence; epochs stop the old primary from fighting back.›Delta encodingcompression: Store differences between consecutive values instead of the values, turning sorted IDs, timestamps and counters into small numbers that pack into few bits.›Bitstream serializationgame-networking: A bit writer and reader over a byte buffer that stores each field in exactly the bits its range needs: booleans in 1 bit, bounded integers in ceil(log2(span+1)) bits.›Fixed-rate control loopembedded: Run a controller at an exact period using absolute deadlines and a fixed dt, so jitter never accumulates and the math stays valid.›Flux limiters upwindingnumerics: Upwind schemes, TVD flux limiters, MUSCL and Riemann solvers for shock-capturing advectionSparse matrices (CSR)numerics: Compressed sparse row stores only nonzeros as row pointers, column indices and values; SpMV streams them once, so it is memory-bandwidth bound.›Unstructured meshrepresentationnumerics: Cell-face-node connectivity in CSR form for FEM and FVM meshes; partition-friendly ordering+ 9 moreDebouncing throttlingsystems: Coalescing rapid events: debounce (wait for quiet), throttle (max rate), and cancelling stale in-flight requestsHierarchical state machinesystems: Nest states so a substate inherits its parent's reactions and only overrides what differs, with ordered entry and exit actions along the path.›d-ary heapdata-structures: Array heap with d children per node (d = 4 typical): half the binary heap's depth, siblings in one cache line, faster priority queues.›Resource usage accountinghardware-os: Cgroup/procfs/GPU counters sampled into per-workload usageGraceful drainingsystems: On a termination signal, stop taking new work, finish in-flight work until a deadline, tell clients to reconnect elsewhere, then exit; clients resume from a token.›Equivalent circuit batterymodelembedded: Thevenin RC-network battery models with OCV-SoC curves and parameter identificationSpline interpolationnumerics: Linear, bilinear/trilinear and cubic spline interpolation on grids and tablesExtended Kalman filterrobotics: Kalman filter for nonlinear motion and measurement models: linearize f and h with Jacobians at the current estimate each step. The default estimator in robot navigation.›Primary-backup replicationdistributed: One node orders all writes and ships them to standbys; the acknowledgement rule (none, one, all) sets what a crash loses, and an external arbiter decides who takes over.›Watchdog timerembedded: A hardware down-counter that resets the chip unless software proves, in time and in a plausible pattern, that it is still healthy.›Bit packing and PFORcompression: Store blocks of integers with exactly b bits each and patch rare outliers separately (PFOR); the fastest integer codec family, billions of values per second.›Varint (LEB128)compression: Variable-length integers in 7-bit groups with a continuation bit; small numbers take 1 byte, the wire format of Protobuf, WebAssembly and DWARF.›+ 8 moreExplicit Eulernumerics: Step an ODE forward by its current slope, y += h·f(t, y); first-order, one evaluation per step, the baseline every other integrator is measured against.›Levenberg marquardtnumerics: Damped Gauss-Newton nonlinear least squares for model calibrationLeasesdistributed: A lock that expires on its own: bounded-time ownership that survives crashes and partitions, given bounded clock drift and fencing tokens on writes.›Write-ahead logstorage: Append each change to a checksummed sequential log and fsync it before touching data pages; the basis of crash durability in nearly every database.›Health checkingsystems: Decide per backend whether to route to it using probes and real-traffic errors, with consecutive-count hysteresis, capped ejection and a panic fallback.›SIMD programminghardware-os: Process 4-16 lanes per instruction with AVX2, AVX-512 or NEON via Rust std::arch, with runtime dispatch and a portable fallback.›+ 4 moreFencing tokensdistributed: A number that grows with every lock grant and is checked by the protected resource, so a paused ex-holder's late write is rejected.›CRC32C checksumshardware-os: The Castagnoli CRC-32 with dedicated instructions on x86 (SSE4.2) and ARMv8. It is the standard fast integrity check for storage blocks, logs and network frames.›fsync, O_DSYNC and O_DIRECThardware-os: What fsync, fdatasync, O_DSYNC, O_DIRECT and F_FULLFSYNC really guarantee on Linux and macOS, and the exact call sequences for crash-safe files.›+ 1 more+ 1 more+ 1 more

How it is built

Architecture overview

A datacenter facility turns grid power and outside air into a place where racks of servers run without stopping. Nearly all electricity entering the building leaves as heat, so the design is two pipes: a power train that delivers redundant electricity from the utility to the rack, and a cooling train that removes the same amount of heat. Around them sit a network fabric, a control and telemetry layer that watches meters, valves and breakers, and a fleet layer of software that places work, tolerates machine failures and keeps the power budget from being exceeded. The idea that makes it work (hyperscale case, after Barroso et al.): cheap capacity is bought by sharing the scarce resources (power headroom, cooling, uplink bandwidth) across many racks, and software absorbs the risk by being able to slow down, pause or move work within seconds.

Parts:

 grid ─► substation ─► MV switchgear ─► UPS (A) ─► PDU (A) ─┐
              generators ──────────┘    UPS (B) ─► PDU (B) ─┼─► rack busbar ─► servers ─┐
                                                            │      (RAPL cap, sensors)  │ heat
                  power controllers ◄── meters (3 s) ───────┘                           ▼
                  (leaf → upper)  ──── cap / uncap ───────────────────────────► racks, hot aisle
                                                                                       │
 outside air / cooling tower ◄─ chillers ◄─ process water ◄─ fan coils / cold plates ◄─┘
          ▲                                  ▲
          └──── cooling controllers (PID / MPC) ◄── temperature, flow, valve position

 server ─ ToR switch ─ fabric switches (pod) ─ spine planes ─ edge ─ backbone      scheduler ─► placement
 (all parts) ──► telemetry bus ──► time-series store ──► alarms, anomaly detection, capacity reports

The facility changes slowly (cooling plant lasts around ten years, servers about three) while the IT load changes in seconds, so the design is about headroom and control loops.

How the parts fit together

Power train

Power enters at a utility substation that steps high voltage to medium voltage; unit substations step it to low voltage; the UPS in front of the floor combines a transfer switch between utility and generator, stored energy to bridge the gap, and power conditioning. A generator needs on the order of ten to fifteen seconds to start and take the load (Barroso et al.), which the UPS storage must cover. PDUs then split the feed into many small circuits, each with its own breaker so one shorted power supply trips only its own circuit. The topologies are the block ups-power-distribution (no page yet).

Redundancy is expressed as N+1 (survives one failure or one maintenance action), N+2, or 2N (a full A side and a full B side, each rack fed from both). The Uptime Institute's Tier ladder describes the same idea for the whole facility: Tier I a single path, II redundant components, III a concurrently maintainable alternate path, IV two simultaneously active paths; the lowest-rated subsystem sets the tier (Barroso et al.). It is the same idea as Hot-standby redundancy for controllers: a second source that is ready, and a switch that moves the load when the first goes silent.

Two design choices separate hyperscale from enterprise. Batteries move toward the load: a double-conversion UPS (AC to DC to AC) can waste as much as 15 % of the power through it, while newer designs and rack- or server-level batteries cut the loss to a few percent or less (Barroso et al.); the Open Compute Project's Rack & Power work goes the same way. Power is shared, not partitioned: Google's medium-voltage power plane lets many unit substations draw from one generator farm, so a storage row and a compute row can share capacity without stranding power.

Battery state of charge and health are estimated from voltage, current and temperature with a model: battery-state-estimation (no page yet) with an Extended Kalman filter. Meters and breakers are read over fieldbuses such as modbus-protocol (no page yet), polled at a fixed rate.

Power management: capping instead of overbuilding

A breaker trips when current exceeds its rating for a time inversely related to the overdraw: large spikes trip fast, small excesses are tolerated for minutes (racks and rack power panels sustained a 10 % overdraw for around 17 minutes at Meta; Wu et al.). That time budget is what makes software control possible.

The case for oversubscription is economic. Fan, Weber and Barroso observed up to 15 thousand servers for about six months: at cluster level the gap between achieved and theoretical peak power was 7-16 %, and almost 40 % for whole datacenters. In the book's summary of that data a rack reached 93 % of its peak at some point, but a 5,000-server cluster never exceeded 72 %, so 28 % of provisioned power would have been stranded and nearly 40 % more machines could have been hosted, if something guaranteed the budget.

Meta's Dynamo is the published example of that guarantee (block: power-oversubscription-capping (no page yet)). A hierarchy of controllers mirrors the power hierarchy:

  • an agent on every server reads power (from a sensor, or a CPU-utilisation model on older machines) and applies a limit through Intel RAPL, which takes about two seconds to settle;
  • a leaf controller per lowest-level power device pulls its agents every 3 seconds and runs a three-band algorithm: a capping threshold (typically 99 % of the breaker limit), a capping target 5 % below it, and a lower uncapping threshold, so the loop does not oscillate;
  • a cut is taken from the lowest priority group first and, within a group, from the highest power bucket first (buckets of about 20 W), never below the group's SLA floor (the block is priority-and-preemption, no page yet);
  • upper-level controllers hand "contractual" limits to the children that exceed their quota ("punish the offender first"); each controller applies the minimum of its own and its parent's decision.

In production Dynamo prevented 18 potential outages in six months and enabled an 8 % higher power utilisation in one data center (Wu et al.). The loop is a fixed-period controller (Fixed-rate control loop) with hysteresis; the actuator is the mechanism used for energy saving, power-management-dvfs (no page yet), though modern server CPUs have a narrow voltage range, so DVFS alone saves little (Barroso et al.). The safety valve for oversubscription: always run work that can be paused quickly (batch in a lower priority class), and do not provision so aggressively that the valve fires often.

Cooling train

All the heat has to reach the outside. A common layout has three loops (Barroso et al.): an air loop on the floor, a process water loop to the cooling plant, and a condenser loop that rejects heat through chillers and evaporative cooling towers. Fresh-air cooling is cheapest but needs filtering, depends on climate and reacts fast to faults because air stores little heat; two-loop systems are simpler but less efficient. Water economisers skip the compressor-driven chiller when the wet-bulb temperature is low enough; the block is datacenter-cooling (no page yet).

Airflow limits density: the book puts the practical raised-floor limit around 150-200 W per square foot without added cost. Containment separates hot and cold air so every server ingests the same temperature and the supply temperature can rise. Beyond that, in-row or in-rack heat exchangers and cold plates on the highest-power chips (Google's third-generation TPU cools four chips in series on one water loop) carry heat in water.

The control side: each chiller, pump and valve is regulated by a PID loop holding a temperature or flow set-point. Plant energy depends non-linearly on load, chillers running and weather, and the book notes that the large sensor data set makes machine-learning control of cooling attractive; Model predictive control is the classical form: predict the thermal response over a horizon, solve a small optimisation each tick with quadratic-programming (no page yet) or an Interior-point method, apply the first move. Cooling is safety-relevant: a facility can overheat within minutes without it, so generators back up the mechanical plant too (chillers and pumps can add 40 % or more to their load). Sensors and valves speak building protocols such as bacnet-protocol (no page yet).

Thermal model

Before racks are placed or a set-point changed, airflow is simulated: CFD on the room uses finite-volume-method (no page yet) and a Sparse direct solver over CSR matrices, after a Fill-reducing ordering built on Graph partitioning. It is too slow for control; it feeds layout decisions and tests control changes offline.

Network fabric

Bandwidth does not scale by buying a bigger switch: a switch chip has limited ports and power, so large networks cascade identical chips in a Clos / fat-tree (Al-Fares, Loukissas and Vahdat, SIGCOMM 2008, built from commodity switches). Cost per server rises with bisection bandwidth, so builders oversubscribe at the top-of-rack switch; the book says ratios of 4-10 are common.

Two production designs show the idea:

  • Google Jupiter: a multi-stage Clos from merchant silicon, with centralised control that pushes one global configuration to all switches; capacity grew 100x over ten years to more than 1 Pbps of bisection bandwidth (Singh et al.).
  • Meta data center fabric: small identical pods of 48 racks, four independent spine planes of up to 48 switches, every fabric switch connected to every spine in its plane, layer 3 with BGP4 only, ECMP flow hashing and a centralised BGP controller able to override paths. A spine plane is one failure domain that can be taken out of service without production impact (Meta engineering blog).

The shared point is uniformity: identical switches and pods make capacity grow by adding units and make the network programmable. The graph has no block yet for Clos fabrics, ECMP or switch operating systems.

Telemetry and alarms

Every stage reports slowly changing timestamped floats, the case Gorilla XOR compression and Delta encoding are made for. Turning them into action is two problems:

The efficiency metric is PUE, facility power divided by IT power. Barroso et al. recommend real-time measurement and warn that published values differ in what overhead they count; annual averages are the comparable form. Google reports a fleet-wide trailing-twelve-month PUE of 1.09 for 2025, and quotes 1.54 as the average of respondents to the Uptime Institute's 2025 survey.

Fleet operations

At warehouse scale hardware reliability alone cannot deliver availability: servers with a 30-year MTBF in a cluster of 10,000 would still see about one failure per day (Barroso et al.), so software tolerates failures. In the studies the book cites, operator, configuration and software faults, not hardware, dominate service-level disruption.

The fleet layer uses the facility's limits as scheduling dimensions. Borg combines admission control, task packing, over-commitment and machine sharing, and spreads tasks to reduce correlated failures (Verma et al.). Placement is multi-dimensional packing (vector-bin-packing (no page yet), Bin packing, Column generation) over CPU, memory, rack power and fault domain. Replicated state uses Primary-backup replication; unhealthy machines leave the pool by Health checking and are emptied by Graceful draining.

Data and control flow

One power excursion (Dynamo-style capping):

  1. A burst of requests raises server power on a rack row within seconds.
  2. Each leaf controller pulls its agents (3 s cycle), sums them and compares the total with the breaker limit.
  3. Above the capping threshold it computes the cut (distance to the capping target) and assigns it to the lowest priority group first, highest power bucket first.
  4. Per-server limits go to the agents, which program RAPL; the effect settles in about two seconds.
  5. The upper-level controller sees its aggregate fall; below the uncapping threshold, limits are removed.
  6. The event goes to the time-series store; an operator is alerted if more than 20 % of a group's readings failed.

One cooling disturbance:

  1. A chiller trips or the wet-bulb temperature rises; cooling controllers see supply temperature move and open valves, add a chiller or shift load from tower to chiller.
  2. If it still climbs, alarm management raises one grouped alarm. Capping IT load through the actuator above is a natural design choice, not something the sources document. Water tanks buy time; air-cooled rooms have almost none.
  3. Afterwards anomaly detection compares PUE and loop temperatures with their seasonal baselines.

One machine failure: health checks fail, the scheduler drains what it can, replicas serve the data, and the machine returns to the pool after repair.

Time goes: power control in seconds (3 s read, about 2 s to act), cooling in seconds to minutes.

Scaling

Limits in the order they bite:

  1. Power capacity. Stranded power is expensive. Levers: mix workloads in one power domain, oversubscribe with capping and a pausable low-priority class, share capacity with a medium-voltage plane.
  2. Cooling density. Levers: containment and higher supply temperature, in-row coolers, then cold plates and liquid loops for the hottest chips.
  3. Network bisection bandwidth. Cost per server rises with fabric size. Levers: oversubscribe at the ToR, add spine switches to every plane, uniform pods, a centralised control plane.

Failure modes

FailureSymptomCauseFix
Breaker trip from synchronised peakrow or room loses poweroversubscribed power with slow or missing capping, correlated loadsub-minute power reads, hierarchical capping, priority classes
Capping oscillationservers repeatedly cap and uncapsingle threshold with no hysteresisthree bands: capping, target, lower uncapping threshold
Generator or transfer failureoutage after utility lossuntested start, or switch decides on a stale signalregular load tests, tested transfer logic, one agreed owner of the output
Cooling losstemperature rises within minuteschiller trip, controller fault, air-cooled room with no thermal bufferbackup power to the mechanical plant, water thermal storage, cap IT load
Correlated machine lossmany replicas disappear togethershared power or switch domain, bad rolloutspread replicas across fault domains, stage rollouts, drain before maintenance

Real implementations

namewhat it isrepolicencenotes
Open Compute Project, Rack & Poweropen rack, power shelf and battery specificationsopencompute.orgsee OCP policiesspecs, not code
SONiCopen network operating system for data-centre switchessonic-net/sonic-buildimageApache-2.0 (components vary)containerised, built on the Switch Abstraction Interface
FBOSSMeta's switch softwarefacebook/fbossBSD-style, see repoopen-source switch software from Meta
OpenBMCopen firmware for baseboard management controllersopenbmc/openbmcsee repoBMC firmware stack for heterogeneous systems
Kubernetesopen container scheduler, descended from Borgkubernetes/kubernetesApache-2.0placement, health, draining
Prometheustime-series monitoring and alertingprometheus/prometheusApache-2.0telemetry and alert rules
Dynamo, Jupiter, BorgMeta power capping; Google fabric and cluster managernone publicproprietarydescribed in the ISCA 2016, SIGCOMM 2015 and EuroSys 2015 papers

The alternative: the enterprise or colocation design buys reliability in hardware and facility (2N power, Tier III or IV, redundant components in every server) and runs software that assumes the machine stays up. The hyperscale design buys it in software (replication, scheduling, capping) and builds a cheaper facility around that. Pick enterprise when the software cannot tolerate failures; pick hyperscale when the workload is large, replicated and tolerant.

Sources

  • L. A. Barroso, U. Hölzle, P. Ranganathan, The Datacenter as a Computer: Designing Warehouse-Scale Machines, 3rd ed., 2018, open access. book. Chapters 3-5 and 7 used.
  • X. Fan, W.-D. Weber, L. A. Barroso, Power provisioning for a warehouse-sized computer, ISCA 2007. abstract
  • Q. Wu et al., Dynamo: Facebook's Data Center-Wide Power Management System, ISCA 2016. abstract and paper
  • A. Singh et al., Jupiter Rising: A Decade of Clos Topologies and Centralized Control in Google's Datacenter Network, SIGCOMM 2015. abstract
  • M. Al-Fares, A. Loukissas, A. Vahdat, A scalable, commodity data center network architecture, SIGCOMM 2008 (DOI 10.1145/1402958.1402967, checked in Crossref; paper not opened).
  • A. Andreyev, Introducing data center fabric, the next-generation Facebook data center network, Engineering at Meta, 2014. post
  • A. Verma et al., Large-scale cluster management at Google with Borg, EuroSys 2015. abstract
  • Google Data Centers, Power usage effectiveness: page. Uptime Institute, Tier Classification System: page.
  • Open Compute Project, Rack & Power. project page
  • SONiC Foundation: sonicfoundation.dev; OpenBMC: openbmc.org.

Similar systems

Share the most building blocks with this one.