RAID Target Config Guide¶
The raid-target-config parameter defines the desired RAID layout for a machine. This
guide covers how to gather hardware inventory, understand controller indexing, and build
the correct config for a given hardware platform.
Once created, the raid-target-config is typically placed in a hardware profile so
operators can apply it to machines during provisioning. See the
Hardware RAID operations guide for how
operators use it in workflows.
Gather Controller and Disk Information¶
Run the raid-inventory task on a representative machine. This populates the
raid-current-config parameter with structured controller and disk data including PCI
addresses, physical disks, and volume information.
Not all RAID tools report PCI addresses in raid-current-config. If PCI information
is missing, check the gohai-inventory parameter instead. The gohai hardware inventory
collects PCI bus info for each block device under the storage section (reported as
BusInfo: "pci@<address>"). Cross-reference the disk serial numbers or slot positions
between gohai-inventory and raid-current-config to determine which PCI bus each
controller is on.
Understand Controller Indexing¶
drp-raid discovers all controllers across all installed tools, then sorts them by PCI address (bus, device, function) in ascending order. The position in that sorted list is the controller's index.
For example, given perccli output showing three controllers:
| Controller ID | Model | PCI Address | Disks |
|---|---|---|---|
| 0 | PERC RAID Controller | 00:4a:00:00 | 6 |
| 1 | HBA Pass-through | 00:0d:00:00 | 0 |
| 2 | HBA Pass-through | 00:b5:00:00 | 0 |
After PCI sort, the indexes are:
| Index | Controller | PCI Bus (hex) | Notes |
|---|---|---|---|
| 0 | HBA Pass-through | 0d | No disks, JBOD-only |
| 1 | PERC RAID Controller | 4a | 6 disks, RAID-capable |
| 2 | HBA Pass-through | b5 | No disks, JBOD-only |
The PERC controller with the disks is at index 1, not 0.
Controller index vs Controller ID
The Controller field in raid-target-config is the positional index after PCI
sorting, not the ID reported by the RAID tool. The tool-reported IDs (0, 1, 2) are
unrelated to the index used in the config.
Default controller
If Controller is omitted from a spec, it defaults to 0. When the target
controller is not at index 0, you must set Controller explicitly.
Identify Disk Types and Protocols¶
Review the PD LIST in the raid-current-config. Each disk has:
- Size — physical capacity
- Intf (Protocol) —
SATA,SAS, orNVMe - Med (Media Type) —
SSDorHDD
When a controller has mixed disk types, use the Type and Protocol fields in your
specs to ensure the right disks go to the right volumes.
Check Controller Capabilities¶
In the raid-current-config, check the controller's reported capabilities:
- RAID Level Supported — which RAID levels the controller supports
- Current Personality — must be
RAID-Modefor volume creation; controllers inHBA-Modeonly support JBOD pass-through
If the controller is in HBA-Mode, it must be switched to RAID mode (via BIOS or
perccli64 /c0 set personality=RAID) before raid-configure can create volumes.
VolSpec Field Reference¶
Each entry in raid-target-config is a volume specification (VolSpec). The key fields are:
| Field | Description | Example |
|---|---|---|
Controller |
Index of the target controller (default: 0) | 1 |
RaidLevel |
RAID level to create | "raid1", "raid5", "jbod" |
DiskCount |
Number of disks or "min"/"max" |
"2", "max" |
Size |
Volume size or "min"/"max" |
"min", "max", "500 GB" |
Type |
Disk media type filter | "ssd", "disk", "disk,ssd" |
Protocol |
Disk protocol filter | "sata", "sas", "nvme" |
Bootable |
Mark volume as bootable | true |
StripeSize |
Stripe size (default: 64 KB) | "256 KB" |
Specs are processed in order. Each spec picks disks from its controller's pool, and those disks are removed from the pool before the next spec runs. This means the first spec gets first pick, and subsequent specs on the same controller get the remaining disks.
Examples¶
Single Controller with Mixed Disks¶
A machine with one controller at index 0 containing 2x SATA SSDs and 6x SAS HDDs:
[
{
"Bootable": true,
"DiskCount": "2",
"RaidLevel": "raid1",
"Size": "min",
"Type": "ssd",
"Protocol": "sata"
},
{
"DiskCount": "max",
"RaidLevel": "raid5",
"Type": "disk",
"Protocol": "sas"
}
]
Controller is omitted because there is only one controller (index 0). Type and
Protocol ensure SSDs go to raid1 and HDDs go to raid5.
Multi-Controller (BOSS + PERC)¶
A Dell machine with a BOSS NVMe controller at index 0 and a PERC at index 1:
[
{
"DiskCount": "2",
"RaidLevel": "raid1",
"Size": "min"
},
{
"Controller": 1,
"DiskCount": "3",
"RaidLevel": "raid5"
}
]
The first spec targets Controller 0 (BOSS) implicitly. The second explicitly targets Controller 1 (PERC).
All Disks on One Controller¶
A machine with one controller and 6 identical disks, all for a single RAID5:
Multiple Controllers, Only One RAID-Capable¶
A machine with a RAID controller at index 1 (after PCI sort) and two HBA pass-through controllers with no disks at indexes 0 and 2:
[
{
"Bootable": true,
"Controller": 1,
"DiskCount": "2",
"RaidLevel": "raid1",
"Size": "min"
},
{
"Controller": 1,
"DiskCount": "max",
"RaidLevel": "raid5"
}
]
Both specs must specify Controller: 1 because the disks are on the second controller
in PCI sort order.
Troubleshooting¶
"No disks available"¶
- Check that
Controllerin your spec points to the index with disks, not the tool-reported ID - Verify the
TypeandProtocolfilters match what the disks actually report - Run
raid-inventoryand check theraid-current-configto confirm disk availability
"controller N does not exist"¶
The spec references a controller index beyond the number of controllers present.
Check raid-current-config for the actual number of controllers after deduplication.
"disks vary in size by more than 10 percent"¶
drp-raid rejects volumes where candidate disks differ in size by more than 10%. Use
Type and Protocol filters to separate disk groups, or set AllowMixedSizes: true
on the individual spec.
RAID level not supported / volumes not created¶
Check Current Personality in the controller status. If it shows HBA-Mode, the
controller cannot create RAID volumes. Switch to RAID mode via BIOS or perccli.