Equipments Positioning How-To
This document explains how-to define in RacksDB the positions of your infrastructure’s equipments in the racks.
For learning purpose, consider this example infrastructure named « tiger » with equipments distributed in 2 racks R01 and R02:
In RacksDB, the equipments are declared by rack. Then, for each rack, the equipments are declared grouped in sets of similar and consecutive equipments. In this example, 6 sets can be identified:
In the first rack R01:
-
set 1 with 40 dense nodes
cn[001-040]
(1u height and half rack width). -
set 2 with 5 classic nodes
cn[101-104]
(1u height and full rack width). -
set 3 with 2 fat nodes
srv[001-002]
(2u height and full rack width).
In the second rack R02:
-
set 4 with 28 blade nodes
cn[201-228]
(5u height and 1/7th rack width). -
set 5 with 4 network switches
sw[001-004]
(1u height and full rack width). -
set 6 with 1 NAS
nas001
(2u height and full rack width).
Each set has its specific equipments type. All these equipment types must be initially declared in the Types object of the database, with their individual dimensions. For this example, this can be declared this way:
types:
# nodes
nodes:
- id: dense # node type for set 1
height: 1u
width: 1/2 # half rack width
- id: classic # node type for set 2
height: 1u
width: full
- id: fat # node type for set 3
height: 2u
width: full
- id: blade # node type for set 4
height: 5u
width: 1/7 # 7 blades can be installed in the width of the rack
# network equipments
network:
- id: racksw # network equipment type for set 5
height: 1u
model: Rack switch
# storage equipments
storage:
- id: nas # storage equipment type for set 6
height: 2u
model: 2U NAS
Many required properties of NodeType, NetworkEquipmentType and StorageEquipmentType objects have been voluntarily discarded of this snippet (ex: CPU, storage devices, network interfaces) for focusing on dimensions and positions matters. |
The default width of
NetworkEquipmentType and
StorageEquipmentType is full and
corresponds to the example. This is the reason why it is not explicitely defined
in the snippet.
|
At this stage, the dimensions of every single type of equipment is specified in RacksDB. Then, the infrastructure with all its equipments actually present must be declared, as an Infrastructure object.
First, define the infrastructure’s name and description:
name: tiger
description: Tiger cluster
For every set of equipments, the slot of the rack used by the 1st equipment in the set must be determined. This slot number defines the position of all the equipments in the set.
RacksDB considers this first equipment in the set is located on the left side of the rack, starting from this slot. Then it fills the rows from left to right, and then from bottom to top, in z-like pattern, with all consecutive equipments in the set, considering the individual dimensions of their respective type. If the equipment type width is the full rack width, equipments are just stacked up.
This logic is represented in this schema:
In RackDB, racks slots are numbered from bottom to top, starting from 1 by default.
In rack R01:
-
In set 1, the 1st equipment is located in slot 3,
-
In set 2, the 1st equipment is located in slot 25,
-
In set 3, the 1st equipment is located in slot 31.
In rack R02:
-
In set 4, the 1st equipment is located in slot 3,
-
In set 5, the 1st equipment is located in slot 27,
-
In set 6, the 1st equipment is located in slot 36.
While racks slots are numbered starting from 1 by default, it can be changed by setting the index of the initial slot in the RackType objects. For example, with an initial index set to 0:
|
In RacksDB database, this infrastructure layout can be declared this way, for rack R1-01:
…
layout:
- rack: R01 # 1st rack
nodes:
- name: cn[001-040] # set 1: 40 denses nodes starting from slot 2
type: dense
slot: 3
- name: cn[100-104] # set 2: 4 classic nodes starting from slot 24
type: classic
slot: 25
- name: srv[001-002] # set 3: 2 fat nodes starting from slot 30
type: fat
slot: 31
…
And for rack R1-A02:
…
- rack: R02 # 2nd rack
nodes:
- name: cn[201-228] # set 4: 28 blade nodes starting from slot 2
type: blade
slot: 3
network:
- name: sw[001-004] # set 5: 4 rack switches starting from slot 26
type: racksw
slot: 27
storage:
- name: nas001 # set 6: 1 NAS in slot 35
type: nas
slot: 36
After this in-depth look over this example, you are probably now able to specify the positions of your infrastructures' equipments in RacksDB!
If you feel the layout of your equipments cannot be specified in RacksDB in a consistent and natural manner, please file an issue on project code tracker. We would be happy to consider your specificities. |
Show complete types and infrastructure YAML example
types:
# nodes
nodes:
- id: dense # node type for set 1
height: 1u
width: 1/2 # half rack width
model: Dense node of 1U height and half rack width
cpus:
sockets: 2
model: Intel Xeon Silver 4316
cores: 20
ram:
dimm: 4
size: 32GB
- id: classic # node type for set 2
height: 1u
width: full
model: Classic node of 1U height
cpus:
sockets: 2
model: Intel Xeon Silver 4316
cores: 20
ram:
dimm: 4
size: 32GB
- id: fat # node type for set 3
height: 2u
width: full
model: Large node of 2U height
cpus:
sockets: 2
model: Intel Xeon Silver 4316
cores: 20
ram:
dimm: 4
size: 32GB
- id: blade # node type for set 4
height: 5u
width: 1/7 # 7 blades can be installed in the width of the rack
model: Blade node
cpus:
sockets: 2
model: Intel Xeon Silver 4316
cores: 20
ram:
dimm: 4
size: 32GB
# network equipments
network:
- id: racksw # network equipment type for set 5
height: 1u
model: Rack switch
# storage equipments
storage:
- id: nas # storage equipment type for set 6
height: 2u
model: 2U NAS
infrastructures:
- name: tiger
description: Tiger cluster
layout:
- rack: R01 # 1st rack
nodes:
- name: cn[001-040] # set 1: 40 denses nodes starting from slot 2
type: dense
slot: 3
- name: cn[100-104] # set 2: 4 classic nodes starting from slot 24
type: classic
slot: 25
- name: srv[001-002] # set 3: 2 fat nodes starting from slot 30
type: fat
slot: 31
- rack: R02 # 2nd rack
nodes:
- name: cn[201-228] # set 4: 28 blade nodes starting from slot 2
type: blade
slot: 3
network:
- name: sw[001-004] # set 5: 4 rack switches starting from slot 26
type: racksw
slot: 27
storage:
- name: nas001 # set 6: 1 NAS in slot 35
type: nas
slot: 36
This full example is not a complete valid RacksDB database, it notably misses essential RackType and Datacenter objects. Please refer to the quickstart guide examples section for ready to use examples. |