Documentation Index
Fetch the complete documentation index at: https://mintlify.com/deuxfleurs-org/garage/llms.txt
Use this file to discover all available pages before exploring further.
Description
Thegarage layout commands manage the cluster layout, which defines how data is distributed across nodes. The layout includes node roles (storage or gateway), zones, capacities, and redundancy parameters.
Garage uses a staged configuration model: changes are first staged, reviewed, and then explicitly applied. This prevents accidental misconfigurations.
Usage
Subcommands
layout show
Show the current cluster layout and any staged changes.- Current active layout with node roles
- Staged changes (if any)
- Preview of new layout after applying changes
- Statistics about data movement
layout assign
Assign a role to one or more Garage nodes.One or more node IDs (or prefixes) to assign roles to.
Location (zone or datacenter) of the node.The zone is used for redundancy calculations. Place nodes in different zones to ensure data survives zone failures.
Storage capacity in bytes. Supports suffixes: B, KB, MB, GB, TB, PB.Example:
100GB, 1TB, 500MBThis tells Garage how much data this node should store. Garage distributes data proportionally based on capacity.Configure node as gateway-only (no data storage).Gateway nodes handle S3 API requests but don’t store data. Use this for frontend nodes or when you want to separate compute from storage.
Optional tags to add to the node. Can be specified multiple times.Tags are metadata for organizing nodes. They don’t affect data placement.
Node ID(s) to be replaced by the new node.Used when replacing failed nodes. Data from the old node will be migrated to the new node.
layout remove
Remove a node’s role from the cluster.Node ID (or prefix) whose role should be removed.
layout config
Configure layout computation parameters.Zone redundancy parameter. Can be:
noneormaxormaximum: Maximum possible redundancy- An integer: Minimum number of zones that must store each data block
-r 3 ensures data is stored in at least 3 different zones.layout apply
Apply staged layout changes to the cluster.Version number of the new layout. Must be exactly current_version + 1.This ensures you’re applying the expected changes. Get the version from
garage layout show.layout revert
Cancel all staged layout changes.Confirm the revert operation.Required to prevent accidental reverts.
layout history
View the history of layout versions in the cluster.- All layout versions with timestamps
- Status of each version (Active, Acknowledged, Historical)
- Update trackers showing sync progress across nodes
layout skip-dead-nodes
Force progress when awaiting layout synchronization, skipping dead nodes.Layout version to assume is current.Typically the current layout version shown in
garage layout history.Skip even if a quorum cannot be reached for the data.Warning: This may result in data loss if nodes are permanently offline.
Examples
View Current Layout
Add First Node to Cluster
Add Storage Node to Existing Cluster
Add Gateway-Only Node
Add Node with Tags
Replace a Failed Node
11111111 to node 22222222.
Remove a Node
Change Node Capacity
Configure Zone Redundancy
Cancel Staged Changes
Multi-Node Assignment
Understanding Zones
Zones represent failure domains. Examples:- Physical datacenters
- Availability zones in cloud
- Different racks
- Different buildings
Zone Examples
Understanding Capacity
Capacity controls data distribution:- Proportional distribution: A 2TB node gets 2x the data of a 1TB node
- Automatic balancing: Garage distributes data to match capacity ratios
- Flexible units: Use GB, TB, or any convenient unit
Capacity Examples
Layout Versioning
Every layout change increments the version number:- Initial layout: version 1
- Add a node: version 2
- Change capacity: version 3
- Remove node: version 4
- You’re applying the changes you reviewed
- No conflicting changes from other administrators
- Clear audit trail of cluster changes
Data Rebalancing
After applying layout changes:- Immediate: New writes use the new layout
- Background: Existing data gradually migrates to match new layout
- Monitoring: Use
garage layout historyto track migration progress