Rack Markup Language (RML) is an XML-based format for describing data center racks, equipment, and connections with precision and flexibility.
A minimal valid RackML document:
<rack name="my-rack" height="42">
<appliance name="server1" y="1u" type="server" />
</rack>
This creates a 42U rack with a server appliance positioned at 1U from the bottom.
RackML supports multiple unit types for positions and sizes. All measurements can be specified with explicit units:
mm - Millimeters (e.g., "450mm")m - Meters (e.g., "1m")u - Rack units (e.g., "2u", where 1U = 44.45mm)Examples:
size_x="440mm" - Width in millimeterssize_y="2u" - Height in rack unitsy="10u" - Position 10 rack units from bottomThe <rack> element is the root element of an RML document, representing the entire rack enclosure.
| Attribute | Type | Required | Description |
|---|---|---|---|
height |
string | Yes | Number of rack units (e.g., "42") |
A |
dimension | No | Horizontal distance between inner edge of posts |
B |
dimension | No | Horizontal distance between center of holes |
C |
dimension | No | Horizontal distance between outer edges of posts |
D |
dimension | No | Rack depth or other specification measurement |
U |
dimension | No | Physical size of each rack unit (default: "44.45mm") |
<appliance><conduit><connection><rack name="datacenter-rack-01" height="42"
A="450mm" B="465mm" C="483.4mm" D="1m" U="44.45mm">
<!-- Appliances go here -->
</rack>
The <appliance> element represents a piece of equipment installed in the rack (servers, switches, storage units, etc.).
| Attribute | Type | Required | Default | Description |
|---|---|---|---|---|
type |
string | Yes | - | Appliance type classification |
anchor |
string | No | "front" | Mounting reference point (front/rear) |
position |
string | No | "mounted" | Installation position type |
rot_x |
decimal | No | 0 | Rotation around X-axis in degrees |
rot_y |
decimal | No | 0 | Rotation around Y-axis in degrees |
rot_z |
decimal | No | 0 | Rotation around Z-axis in degrees |
<slot><port><appliance name="web-server-01" y="1u"
type="server" sku="Dell-R740"
size_x="440mm" size_y="2u" size_z="800mm">
<port name="eth1" type="rj45" x="50mm" y="0" face="front" />
<port name="power1" type="c14" x="10mm" y="0" face="rear" />
</appliance>
The <slot> element defines an expansion slot or modular bay within an appliance that can accept components.
| Attribute | Type | Required | Default | Description |
|---|---|---|---|---|
accepts |
string | Yes | - | Type of component this slot accepts |
face |
string | Yes | - | Which face of the appliance (front/rear) |
rotation |
decimal | No | 0 | Rotation in degrees around Z-axis |
<component> (0 or 1)<slot name="psu-slot-1" accepts="psu" face="rear"
x="10mm" y="10mm" size_x="100mm" size_y="50mm">
<component type="psu" name="750w-psu">
<port name="power-in" type="c14" x="10mm" y="10mm" />
</component>
</slot>
The <component> element represents a modular component installed in a slot (power supplies, line cards, etc.).
| Attribute | Type | Required | Description |
|---|---|---|---|
type |
string | Yes | Component type classification |
<port><component type="linecard" name="48-port-ethernet">
<port name="eth1" type="rj45" x="10mm" y="10mm" />
<port name="eth2" type="rj45" x="20mm" y="10mm" />
</component>
The <port> element defines a connection point (network, power, console, etc.) on an appliance or component.
| Attribute | Type | Required | Default | Description |
|---|---|---|---|---|
type |
string | Yes | - | Port type (rj45, sfp+, c14, etc.) |
face |
string | No | - | Which face the port is on (front/rear) |
rotation |
decimal | No | 0 | Rotation in degrees around Z-axis |
rj45 - Ethernet portsfp+ - 10G fiber portc14 - IEC power inletc13 - IEC power outletusb - USB port<port name="mgmt-port" type="rj45" x="380mm" y="0" face="front" />
<port name="power-in-1" type="c14" x="50mm" y="0" face="rear" />
The <connection> element defines a cable or logical connection between two ports.
| Attribute | Type | Required | Description |
|---|---|---|---|
from |
string | No | Source port name or path |
to |
string | No | Destination port name or path |
via |
string | No | Intermediate routing point |
<via> - Intermediate waypoints for cable routing<connection name="uplink-1"
from="server-01/eth1"
to="switch-01/port24">
<via name="cable-tray" path="0.5m,1.5m,0.2m" />
</connection>
The <conduit> element defines cable management infrastructure like trays, raceways, or conduits.
| Attribute | Type | Required | Description |
|---|---|---|---|
type |
string | No | Conduit type (tray, raceway, etc.) |
start |
string | No | Starting position or reference |
end |
string | No | Ending position or reference |
join-type |
string | No | How conduit segments join |
<conduit name="overhead-tray" type="cable-tray"
start="0,42u,0" end="0,42u,1m"
size_x="100mm" size_y="50mm" />
<rack name="server-rack-01" height="42" A="450mm" B="465mm" C="483.4mm" D="1m">
<appliance name="switch-01" y="1u" type="switch"
size_x="440mm" size_y="1u" size_z="300mm">
<port name="port1" type="rj45" x="50mm" y="0" face="front" />
<port name="port2" type="rj45" x="80mm" y="0" face="front" />
<port name="power" type="c14" x="20mm" y="0" face="rear" />
</appliance>
<appliance name="server-01" y="3u" type="server"
size_x="440mm" size_y="2u" size_z="800mm">
<port name="eth1" type="rj45" x="300mm" y="0" face="front" />
<port name="power-1" type="c14" x="50mm" y="0" face="rear" />
<port name="power-2" type="c14" x="100mm" y="0" face="rear" />
</appliance>
<connection name="uplink" from="server-01/eth1" to="switch-01/port1" />
</rack>
<rack name="datacenter-rack" height="42">
<appliance name="modular-switch" y="1u" type="switch"
size_x="440mm" size_y="2u" size_z="800mm">
<slot name="linecard-1" accepts="linecard" face="front"
x="50mm" y="20mm" size_x="200mm" size_y="80mm">
<component type="linecard" name="48-port-ethernet">
<port name="eth1" type="rj45" x="10mm" y="10mm" />
<port name="eth2" type="rj45" x="20mm" y="10mm" />
</component>
</slot>
<slot name="psu-1" accepts="psu" face="rear"
x="10mm" y="10mm" size_x="100mm" size_y="50mm">
<component type="psu" name="750w-supply">
<port name="power-in" type="c14" x="10mm" y="10mm" />
</component>
</slot>
</appliance>
</rack>
© 2025 Logistic Support Alliance, LLC. All rights reserved.