Archival Notice
This guide was written for legacy enterprise storage environments using LSI MegaRAID / Avago StorCLI tools. Please note that underlying RAID utilities have largely migrated to Broadcom storcli and newer OpenBMC redfish storage bindings.
When provisioning bare-metal database servers across enterprise data centers, managing hardware RAID volumes efficiently requires low-level administrative control over SAS storage controllers. Booting servers into the initial BIOS controller configuration utility requires taking active nodes offline during critical business hours.
To maintain production availability, storage engineers utilize bare-metal CLI wrappers to inspect attached SAS enclosures, query individual physical drive firmware states, and bootstrap new virtual drive storage arrays dynamically.
In this manual, I outline how to utilize low-level CLI utilities to verify attached storage topology and audit drive operational parameters.
Step 1: Enumerating Installed Storage Processors
To query physical storage processors and verify hardware RAID controller model details, initialize a discovery scan against installed adapter hardware slots.
# Query active host bus adapter count and firmware revisions
megacli -AdpAllInfo -aAll
Step 2: Auditing Physical Drive Topology (PdList)
When diagnosing failed array disks or preparing unallocated spares for logical grouping, print an audit report across all physical disks connected to target adapter slots.
# Display physical disk details on Adapter 0
megacli -PdList -a0
Parsing Diagnostic Topology Fields
Evaluating the CLI output provides precise insight into active link speeds, sector sizing, WWN addressing, and media verification status.
Adapter #0
Enclosure Device ID: 252
Slot Number: 0
Device Id: 12
Sequence Number: 2
Media Error Count: 0
Other Error Count: 0
Predictive Failure Count: 0
Last Predictive Failure Event Seq Number: 0
PD Type: SAS
Raw Size: 558.911 GB [0x45dd2fb0 Sectors]
Non Coerced Size: 558.411 GB [0x45cd2fb0 Sectors]
Coerced Size: 557.861 GB [0x45bb9000 Sectors]
Firmware state: Online, Spun Up
SAS Address(0): 0x5000c5003a0539d1
SAS Address(1): 0x0
Connected Port Number: 3(path0)
Inquiry Data: SEAGATE ST9600204SS 00066WN0P5GV
FDE Capable: Not Capable
FDE Enable: Disable
Secured: Unsecured
Locked: Unlocked
Needs EKM Attention: No
Foreign State: None
Device Speed: 6.0Gb/s
Link Speed: 6.0Gb/s
Media Type: Hard Disk Device
Drive: Not Certified
Step 3: Identifying Array Drive States
When analyzing large SAS drive enclosures, distinguish between active volume members and unconfigured raw spares available for pool expansion.
1. Dedicated Online Volume Member
An active drive assigned to a degraded or optimal array logical group:
Enclosure Device ID: 252
Slot Number: 1
Device Id: 14
Coerced Size: 557.861 GB [0x45bb9000 Sectors]
Firmware state: Online, Spun Up
SAS Address(0): 0x5000c5003a049665
Inquiry Data: SEAGATE ST9600204SS 00066WN0NMAX
2. Unconfigured Pool Candidate
A completely healthy replacement disk prepared for dynamic inclusion or configured as a hot spare:
Enclosure Device ID: 252
Slot Number: 2
Device Id: 16
Coerced Size: 557.861 GB [0x45bb9000 Sectors]
Firmware state: Unconfigured(good), Spun Up
SAS Address(0): 0x5000c5003a05f631
Inquiry Data: SEAGATE ST9600204SS 00066WN0NHB5
Step 4: Provisioning Logical Volume Groups
With unallocated drives verified, invoke logical group creation specifying exact RAID level redundancy profiles across specific enclosure device IDs and physical slots.
# Construct a RAID 1 volume across enclosure 252, slots 2 and 3
megacli -CfgLdAdd -r1 [252:2, 252:3] WB RA Direct -a0
# Verify logical drive operational status
megacli -LDInfo -Lall -a0
Storage Initialized
Your bare-metal database server is now fully configured with high-performance hardware RAID logical drives operating at optimal link speeds!