Hardware Raid¶
Basic RAID Operation¶
The RAID plugin provides automated hardware RAID configuration for physical machines.
Operational Stages¶
The RAID plugin provides the following stages:
- raid-inventory - Collects inventory of the RAID subsystem
- raid-enable-encryption - Configures controller-level encryption
- raid-configure - Creates and configures volumes on the RAID system
- raid-reset - Clears skip parameters to allow reconfiguration
- raid-baseline - Captures current configuration as a baseline
- raid-tools-install - Ensures appropriate RAID tools are installed
Protection Against Accidental Reconfiguration¶
Once RAID is configured, the system sets toggle parameters to prevent accidental reconfiguration:
raid-skip-config- Prevents volume reconfiguration after initial setupraid-skip-encryption- Prevents encryption changes after initial setup
To reconfigure RAID, either clear these parameters manually or use the raid-reset stage.
Typical Workflow¶
- Add machines to a workflow containing RAID stages (e.g.,
universal-hardware) - Set the
raid-target-configparameter with desired volume specifications - Execute the workflow - machines will configure RAID automatically
- Skip flags are set automatically to protect the configuration
- Use
raid-resetstage if reconfiguration is needed
Customizing RAID Workflow Order¶
Overview¶
The RAID content pack uses flexiflow to allow help operators customize the order and execution of RAID configuration tasks. This is useful in scenarios where you need virtual disks to be in place before encryption occurs, or when you need to adjust the standard workflow to meet specific hardware or organizational requirements.
Background¶
By default, the universal-hardware and universal-hardware-raid workflows execute RAID operations in this order:
- raid-enable-encryption stage
- raid-configure stage
Each of these stages is controlled by flexiflow parameters that define which tasks are executed and in what order.
Flexiflow Control Parameters¶
The RAID workflow behavior is controlled by two key parameters:
raid-enable-encryption-tasks¶
Default value:
This parameter controls what happens during the raid-enable-encryption stage. By default, it boots into sledgehammer and enables encryption at the controller level.
raid-configure-tasks¶
Default value:
This parameter controls what happens during the raid-configure stage. By default, it runs the raid-configure task to create virtual disks.
Common Customization: Swapping RAID Configuration and Encryption Order¶
Problem¶
Some implementations require virtual disks to be configured before controller-level encryption is enabled. This is common when:
- Hardware controllers require volumes to exist before encryption setup
- Organizational security policies dictate a specific ordering
- Troubleshooting or debugging requires a different sequence
Solution¶
You can swap the execution order by redefining the two flexiflow parameters. This can be done in a global profile, hardware-specific profile, or directly on a machine.
Step 1: Define raid-configure-tasks to include both tasks in the desired order:
Step 2: Define raid-enable-encryption-tasks to be empty or to skip:
Implementation Example¶
Using the DRP CLI to set these parameters on a global profile:
drpcli profiles set global param raid-configure-tasks to '[
"bootenv:sledgehammer",
"raid-configure",
"raid-enable-encryption"
]'
drpcli profiles set global param raid-enable-encryption-tasks to '[]'
Additional Flexiflow Customizations¶
Running Only Configuration (Skip Encryption)¶
To configure RAID volumes without encryption:
Running Only Encryption (Skip Configuration)¶
To enable encryption without reconfiguring existing volumes:
{
"raid-enable-encryption-tasks": [
"bootenv:sledgehammer",
"raid-enable-encryption"
],
"raid-skip-config": true
}
Adding Custom Tasks¶
You can inject custom tasks into either stage:
{
"raid-configure-tasks": [
"my-custom-pre-raid-task",
"raid-configure",
"my-custom-post-raid-task"
]
}
Understanding Skip Parameters¶
The flexiflow system works in conjunction with two boolean parameters that prevent accidental reconfiguration:
raid-skip-config¶
- Default:
false - Purpose: When
true, theraid-configuretask will skip execution even if called - Use case: Prevents reconfiguration of existing RAID volumes once they're set up
- Reset: The
raid-resetstage clears this flag to allow reconfiguration
raid-skip-encryption¶
- Default:
false - Purpose: When
true, theraid-enable-encryptiontask will skip execution even if called - Use case: Prevents re-encryption or encryption changes once configured
- Reset: The
raid-resetstage clears this flag to allow reconfiguration
Important: These skip parameters control task behavior within the tasks themselves. The tasks still run, but they exit early when the skip flag is set. This is different from removing tasks from the flexiflow parameter arrays, which prevents the tasks from being invoked at all.