Managing Intel Rapid Storage from command line on Hyper-V Server 2008 R2

Installing Intel Rapid Storage driver and utility (fka Intel Matrix Storage) on Hyper-V Server 2008 R2 (and Windows Server 2008 R2 Core)

Scroll down for Testing hard drive failure information.

For a scenario describing this configuration, visit the Hyper-V Server 2008 R2 SP1 on Intel SATA page.

I wasted about 10.2 hours trying to figure out how to manage the Intel Rapid Storage Technology (IRST) system on a GUI-less system, I finally found the solution. Intel has apparently released a command-line utility called "RaidCfg32.exe" for managing IRST, however the utility version must match the driver version!

I was able to find a V10.0.0.1046 copy of the driver and utility, I believe this to be the most current version available of the utility. You can download from here the IRST_V10.0.0.1046_DriverAndUtility.zip file. (If you find a newer version of the utility, please let me know! E-Mail address is on the home page). Note: this write-up is based on a free Hyper-V Server 2008 R2 SP1 install, your experience may vary depending on OS version.

On the Hyper-V server, I shared the root of the C: drive, then using another workstation, I browsed to the Hyper-V server, created a directory named C:\IntelUtil and extracted the zip file to that directory (of course, use a directory of your choosing). On the Hyper-V server, in the command window I CD'd to the drivers\x64 directory and then used the pnputil command to install the V10.0.0.1046 iaStor.sys driver:

C:\Users\Administrator>cd \IntelUtil

C:\IntelUtil>RaidCfg32.exe /i
Version Tables:
Driver Version: 8.6.2.1014       <---- needs to be 10.0.0.1046
OROM   Version: 8.9.0.1023
App    Version: 10.0.0.1046
Version Check Failure: RaidCfg does not match driver
...... snip ......

C:\IntelUtil>cd ah*

C:\IntelUtil\AHCI_Intel_10.0.0.1046_W7x64>cd dr*

C:\IntelUtil\AHCI_Intel_10.0.0.1046_W7x64\Drivers>cd x64

C:\IntelUtil\AHCI_Intel_10.0.0.1046_W7x64\Drivers\x64>pnputil -i -a iaStor.inf
Microsoft PnP Utility

Processing inf :            iaStor.inf
Successfully installed the driver on a device on the system.
Driver package added successfully.
Published name :            oem0.inf


Total attempted:              1
Number successfully imported: 1

(you may get a pop-up box to confirm you trust software from Intel)

You will need to reboot the server to load the new driver.

To make administration from the command window easier, from the remote workstation I copied the files in the \IntelUtil\AHCI_Intel_10.0.0.1046_W7x64\RAIDCFG32 directory up to the top level \IntelUtil directory. You will probably want to open the RaidCfg32.txt file on the remote workstation for easier reading of the help on command switches.

The first switch you will want to use will be /i, to verify that the driver version matches the utility version. Review the first 4 lines of output to compare the Driver and App Versions.

C:\>cd \IntelUtil

C:\IntelUtil>RaidCfg32 /i
Version Tables:
Driver Version: 10.0.0.1046
OROM   Version: 8.9.0.1023
App    Version: 10.0.0.1046
Physical Disks Controlled by RAID S/W
 Drive: WDC WD5000AAKX-221CA    SerialNo:WD-WCAYUDP68864
 FreeBlks:5511  TotalBlks:976773168     BusId:0x0       TargetId:0x0
 Rev: 17.01H1   Partitions:2    LUN:0x0 CfgStatus:(0) Ok
 Description:00AAKX-221CA       Summary:Array Member
 CheckBox:0x0   Action:0        SMARTEvt:0x1    WriteCache:ON
 State:(0x53a)          Array:0x0
        CONFIGURED_DISK
        USABLE_DISK
        DETECTED_DISK
        CLAIMED_DISK
        CONFIG_ON_DISK
        DISK_SMART_EVENT_SUPPORTED
 Drive: WDC WD5000AAKX-221CA    SerialNo:WD-WCAYUDM20272
 FreeBlks:976773168     TotalBlks:976773168     BusId:0x2       TargetId:0x0
 Rev: 17.01H1   Partitions:1    LUN:0x0 CfgStatus:(0) Ok
 Description:00AAKX-221CA       Summary:Spare
 CheckBox:0x0   Action:0        SMARTEvt:0x1    WriteCache:ON
 State:(0x539)          Array:0xff
        SPARE_DISK
        USABLE_DISK
        DETECTED_DISK
        CLAIMED_DISK
        CONFIG_ON_DISK
        DISK_SMART_EVENT_SUPPORTED
 Drive: WDC WD5000AAKX-221CA    SerialNo:WD-WCAYUDP11752
 FreeBlks:5511  TotalBlks:976773168     BusId:0x4       TargetId:0x0
 Rev: 17.01H1   Partitions:2    LUN:0x0 CfgStatus:(0) Ok
 Description:00AAKX-221CA       Summary:Array Member
 CheckBox:0x0   Action:0        SMARTEvt:0x1    WriteCache:ON
 State:(0x53a)          Array:0x0
        CONFIGURED_DISK
        USABLE_DISK
        DETECTED_DISK
        CLAIMED_DISK
        CONFIG_ON_DISK
        DISK_SMART_EVENT_SUPPORTED
----------------------------
 Total Physical Disks = 3

RAID Volumes
Volume 1 / 1
 SerialNo:Volume0       Summary:Normal
 RaidLevel:1    TargetId:0x1    MemberDisks:2           StripSize:64KB
 SizeInMB: 476937       Domains/Mirrors:2       CfgStatus:0x0
 BytesPerBlock:0x200    Action:0        Array:0
 MapState:0     MigrState:0     MigrType:1
----------------------------
 Total Volumes = 1

RAID Arrays
Array 1 / 1
 Action:0       NumDisks:2      RAIDDevs:1      CheckBox:0x0
 State:0        TotalMB: 953879                 FreeMB:5
----------------------------
 Total Arrays = 1

Fair Warning: this testing and setup was done October of 2011, the latest iaStor.sys version is V10.6.0.1002, every system is unique and there may or may not be improvements you will need in the newer version of the driver. Just be aware that if you upgrade to a newer driver, you will lose the ability to manage the IRST from the command-line (unless you can find a corresponding version of RaidCfg32.exe).

I am by no means an Intel expert, but based on my significant experience with Intel chipsets, I believe this method will work for IRST managment with free Hyper-V Server 2008 R2 (and Windows Server 2008 R2 Core) using the following chipsets:
- Intel(R) ESB2 SATA RAID Controller
- Intel(R) ICH7R/DH SATA RAID Controller
- Intel(R) ICH7MDH SATA RAID Controller
- Intel(R) ICH8R/ICH9R/ICH10R/DO/5 Series/3400 Series SATA RAID Controller
- Intel(R) ICH8M-E/ICH9M-E/5 Series SATA RAID Controller
- Intel(R) Desktop/Workstation/Server Express Chipset SATA RAID Controller
- Intel(R) Mobile Express Chipset SATA RAID Controller

The system I did this testing with is a 3420 Chipset (SuperMicro X8SIL-F).



Testing hard drive failure
Since there was little time invested in setting up this particular server, we decided testing for and managing a failed hard drive would be a wise excercise. The test succeeded! Here are the series of commands and screens we encountered during the test.

Sequence of events

      Drive -->  0       2         4
Begin          Member  Member    Spare
Remove #2      Member  Removed   Updating
Sync Finished  Member  Removed   Member
Insert #2      Member  Unknown   Member
Reset #2       Member  Non-RAID  Member
Mark Spare     Member  Spare     Member

Note: the server remained booted to the Hyper-V Server 2008 R2 Operating System during this entire excercise. We made no real effort to test throughput during this test, but I suspect that we would have found performance degraded but acceptable like we experience with the normal full GUI OS install.

Before drive removal, our standard RAID1 + HotSpare configuration. Disks 0 and 2 are the mirror set, Disk 4 is the HotSpare.

C:\IntelUtil>raidcfg32 /st
Intel(R) RAID Utility for Serial ATA - v10.0.0.1046
Copyright(C) 2003-10 Intel Corporation.  All Rights Reserved.

  RAID Volumes:
  ID   Name              Level             Strip      Size Status      Bootable
  0    Volume0           RAID1(Mirror)     N/A     465.8GB Normal        Yes

  Physical Devices:
  Port Device Model     Serial #                     Size Type/Status(Vol ID)
  0    WDC WD5000AAKX-2 WD-WCAYUDP68864           465.7GB Member Disk(0)
  2    WDC WD5000AAKX-2 WD-WCAYUDM20272           465.7GB Member Disk(0)
  4    WDC WD5000AAKX-2 WD-WCAYUDP11752           465.7GB Spare Disk

After drive removal, we pulled Disk 2 from the hot-swap bay.

C:\IntelUtil>raidcfg32 /st
Intel(R) RAID Utility for Serial ATA - v10.0.0.1046
Copyright(C) 2003-10 Intel Corporation.  All Rights Reserved.

  RAID Volumes:
  ID   Name              Level             Strip      Size Status      Bootable
  0    Volume0           RAID1(Mirror)     N/A     465.8GB Updating      Yes

  Physical Devices:
  Port Device Model     Serial #                     Size Type/Status(Vol ID)
  0    WDC WD5000AAKX-2 WD-WCAYUDP68864           465.7GB Member Disk(0)

Watching rebuild progress, the raidcfg32 /i command generates a lot of information. We only wanted to monitor the line with the Rebuild information, so we piped the results to the find command. It was very easy to monitor progress by occasionally hitting the up-arrow then <enter> to re-issue the last command. Rebuild of the 500GB mirror took about 1.7 hours.

C:\IntelUtil>raidcfg32 /i | find "Rebuild"
 SerialNo:Volume0       Summary:Rebuild: 4.32% Complete

After rebuild completed, we can see the Status is again normal.

Intel(R) RAID Utility for Serial ATA - v10.0.0.1046
Copyright(C) 2003-10 Intel Corporation.  All Rights Reserved.

  RAID Volumes:
  ID   Name              Level             Strip      Size Status      Bootable
  0    Volume0           RAID1(Mirror)     N/A     465.8GB Normal        Yes

  Physical Devices:
  Port Device Model     Serial #                     Size Type/Status(Vol ID)
  0    WDC WD5000AAKX-2 WD-WCAYUDP68864           465.7GB Member Disk(0)
  4    WDC WD5000AAKX-2 WD-WCAYUDP11752           465.7GB Member Disk(0)

Plugging in previously removed drive, what becomes of the stale mirror data on Disk 2? We were concerned the stale mirror data would could cause problems with the rebuilt mirror set. As it turns out, Disk 2 was seen as "Unknown Disk", which seems like a good thing.

C:\IntelUtil>raidcfg32 /st
Intel(R) RAID Utility for Serial ATA - v10.0.0.1046
Copyright(C) 2003-10 Intel Corporation.  All Rights Reserved.

  RAID Volumes:
  ID   Name              Level             Strip      Size Status      Bootable
  0    Volume0           RAID1(Mirror)     N/A     465.8GB Normal        Yes

  Physical Devices:
  Port Device Model     Serial #                     Size Type/Status(Vol ID)
  0    WDC WD5000AAKX-2 WD-WCAYUDP68864           465.7GB Member Disk(0)
  2    WDC WD5000AAKX-2 WD-WCAYUDM20272           465.7GB Unknown Disk
  4    WDC WD5000AAKX-2 WD-WCAYUDP11752           465.7GB Member Disk(0)

Tried marking "Unknown Disk" as spare, but apparently the "RAID" information (MetaData) on Disk 2 needed to wiped first.

C:\IntelUtil>raidcfg32 /spare:2
Drive 2-0 Spare Failed, Illegal Disk Action - ISM_ERROR

Resetting Disk, removing "RAID" information (MetaData) from "Unknown Disk". The help information for the various switches of the raidcfg32 command is not very clear. In fact, the help information for the /x switch is alarming: "Remove metadata from all disks. Selecting a single disk with the /DS option will delete the metadata from all volume members." So which is it? All disks? All volume members? How about a single disk?

With crossed fingers, we tried the /x switch (remove metadata), specifying Disk 2 with the /ds:2 switch. (Nice touch that the prompt was much more reassuring!).

C:\IntelUtil>raidcfg32 /ds:2 /x
Selected Disks: Disk(Port:2)
All volumes contained on this disk will be deleted and all related volume
member disks will be reset
Are you sure you want to reset the selected disks? (y/n)
Removing MetaData from selected disks...Completed

Verify status, succeeded! Disk 2 is indeed available again as a Non-RAID disk!

C:\IntelUtil>raidcfg32 /st
Intel(R) RAID Utility for Serial ATA - v10.0.0.1046
Copyright(C) 2003-10 Intel Corporation.  All Rights Reserved.

  RAID Volumes:
  ID   Name              Level             Strip      Size Status      Bootable
  0    Volume0           RAID1(Mirror)     N/A     465.8GB Normal        Yes

  Physical Devices:
  Port Device Model     Serial #                     Size Type/Status(Vol ID)
  0    WDC WD5000AAKX-2 WD-WCAYUDP68864           465.7GB Member Disk(0)
  2    WDC WD5000AAKX-2 WD-WCAYUDM20272           465.7GB Non-RAID Disk
  4    WDC WD5000AAKX-2 WD-WCAYUDP11752           465.7GB Member Disk(0)

Mark "Non-RAID Disk" as spare, that was painless.

C:\IntelUtil>raidcfg32 /spare:2
Drive 2-0 marked as a spare

Final step, check status. Our standard RAID1 + HotSpare configuration has been restored. Disks 0 and 4 are now the mirror set, and Disk 2 is now the HotSpare.

C:\IntelUtil>raidcfg32 /st
Intel(R) RAID Utility for Serial ATA - v10.0.0.1046
Copyright(C) 2003-10 Intel Corporation.  All Rights Reserved.

  RAID Volumes:
  ID   Name              Level             Strip      Size Status      Bootable
  0    Volume0           RAID1(Mirror)     N/A     465.8GB Normal        Yes

  Physical Devices:
  Port Device Model     Serial #                     Size Type/Status(Vol ID)
  0    WDC WD5000AAKX-2 WD-WCAYUDP68864           465.7GB Member Disk(0)
  2    WDC WD5000AAKX-2 WD-WCAYUDM20272           465.7GB Spare Disk
  4    WDC WD5000AAKX-2 WD-WCAYUDP11752           465.7GB Member Disk(0)
Copyright 1996-2017 Ohman Automation Corp. All rights reserved.