RAID information is usually written on the drive labels. However, that would require us to turn off the machine and physically pull the drives out.
In this tutorial, we’ll see how to detect the RAID information, such as the name and the model number, from the Linux command line. Afterward, we can Google these models for further specific details.
2. Detecting RAID Information
The process of finding out the RAID controller information is dependent on the RAID being used. So, there might be tools available on the manufacturer’s website for that specific controller.
Software RAID is implemented by the user, so the type of RAID is easily known to a user. On the other hand, discerning between a genuine hardware RAID and FakeRAID is difficult.
However, one solution to this problem would be to run the lspci command and inspect the output, which is what we’ll do next.
Generally, if we want to check whether we’re using a RAID controller on our server, lspci is the way to do it. By default, it displays entries for many devices. However, we’ll narrow it down to “RAID” using grep:
$ lspci | grep RAID 00:1f.2 RAID bus controller: Intel Corporation 82801 Mobile SATA Controller [RAID mode] (rev 04)
The information we’re looking for is Intel Corporation 82801 Mobile SATAController [RAID mode]. The hardware RAID information appears in the output. In contrast, the FakeRAID implementations don’t appear in the lspci list.
Similarly, we can also use lshw to display additional RAID storage information:
$ lshw -class storage *-raid description: RAID bus controller product: 82801 Mobile SATA Controller [RAID mode] vendor: Intel Corporation physical id: 1f.2 bus info: pci@0000:00:1f.2 logical name: scsi0 version: 04 width: 32 bits clock: 66MHz capabilities: raid msi pm bus_master cap_list emulated configuration: driver=ahci latency=0 resources: irq:26 ioport:f0d0(size=8) ioport:f0c0(size=4) ioport:f0b0(size=8) ioport:f0a0(size=4) ioport:f060(size=32) memory:f7e36000-f7e367ff
We should note that the command should be run as root. Otherwise, we’d see a warning message with no relevant output.
In addition to the above methods, we can also use the smartctl utility to find out our disk information from virtual devices. smartctl is used to generate various disk reports and error logs. We can install it from the official repositories.
Before running smartctl against our drives, we’ll parse the dmesg output for our SCSI disk first:
$ dmesg | grep -i scsi [ 0.210852] SCSI subsystem initialized [ 0.341280] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 243) ... [ 1.213299] scsi 0:0:0:0: Direct-Access ATA ST320LT012-9WS14 YAM1 PQ: 0 ANSI: 5 [ 1.319886] sd 0:0:0:0: [sda] Attached SCSI disk [ 19.571008] sd 0:0:0:0: Attached scsi generic sg0 type 0
We can see that the SCSI disk is available under the sda virtual device. Now, we can generate various reports and run different tests against this device using smartctl.
For that purpose, we can use the –all option to print the entire relevant information about the disk:
$ smartctl --all /dev/sda Model Family: Seagate Laptop HDD Device Model: ST320LT012-9WS14C Serial Number: S0V3R9LL LU WWN Device Id: 5 000c50 05be4653c Firmware Version: 0001YAM1 User Capacity: 320,072,933,376 bytes [320 GB] Sector Sizes: 512 bytes logical, 4096 bytes physical Rotation Rate: 5400 rpm Form Factor: 2.5 inches Device is: In smartctl database 7.3/5319 ATA Version is: ATA8-ACS T13/1699-D revision 4 SATA Version is: SATA 2.6, 3.0 Gb/s (current: 3.0 Gb/s) Local Time is: Sat Nov 19 20:52:01 2022 PKT SMART support is: Available - device has SMART capability. SMART support is: Enabled ...
smartctl doesn’t necessarily print information about RAID controllers. However, it gives us enough details to search the web for additional information.
We can check for array layout information like RAID type and spare disks using other utilities. One of the generic tools for this use case is the megacli utility.
Let’s check the whole array and RAID level:
$ megacli -LDInfo -Lall -aALL Adapter 0 -- Virtual Drive Information: Virtual Drive: 0 (Target Id: 0) Name : SEAGATE RAID Level : Primary-1, Secondary-0, RAID Level Qualifier-0 Size : 320 GB Sector Size : 512 Mirror Data : 320 GB State : Optimal ...
Another helpful utility that we can use is lsscsi. Unfortunately, it’s not available on major distributions by default, so we’d need to install it from the official repositories.
Once installed, we can simply type in the lsscsi command:
$ lsscsi [0:0:0:0] disk ATA ST320LT012-9WS14 YAM1 /dev/sda
Here, we can see that we’re using ATA with the model number ST320LT012-9WS14.
With the manufacturer and model number in hand, we should be able to get the additional information and helper tools about the RAID controller from the Internet. A simple Google query will fetch the related results.
In our case, we can simply head over to the Seagate official website and download the required tools built for Linux.
2.6. Vendor-Specific Tools
The generic tools we’ve discussed so far can be used to generate quick information. However, when vendor-specific tools are available for the system, we should emphasize using them instead of generic utilities.
For instance, we can use the omreport utility that ships with the OpenManage CLI suite. The omreport utility generates system-specific information, including details about the virtual disks.
As an example, let’s extract information about the /dev/sda virtual device:
$ omreport storage vdisk List of Virtual Disks in the System Controller SEAGATE Laptop HDD ID : 0 Status : Ok Name : SEAGATE State : Ready Hot Spare Policy violated : Not Assigned Encrypted : No Layout : RAID-0 Size : 320.00 GB (343597383680 bytes) T10 Protection Information Status : No Associated Fluid Cache State : Not Applicable Device Name : /dev/sda Bus Protocol : ATA Media : HDD Read Policy : Adaptive Read Ahead Write Policy : Write Back Cache Policy : Not Applicable Stripe Element Size : 128 KB Disk Cache Policy : Enabled
In this article, we learned how we can detect information about RAID controllers in Linux. We used different generic utilities to generate the disk and RAID controller reports.
Moreover, we also used the vendor-specific utility for the same purpose.