Monitoring Intel ICH10R/Adaptec HostRAID Controllers: SNMP Alerts and Software Solutions for Windows Server Environments


2 views

When working with Supermicro's X8DTL-i motherboard, you'll encounter an interesting identification quirk. The BIOS identifies the controller as Intel ICH10R, but Windows Device Manager shows it as "Adaptec Serial ATA HostRAID". This occurs because:

// Sample PowerShell to check controller info
Get-WmiObject Win32_SCSIController | Where-Object {$_.Description -like "*Adaptec*"} | 
Select-Object Name, Manufacturer, DeviceID

After extensive testing with ICH10R-based systems, here are the most effective monitoring methods:

1. Adaptec Storage Manager with Custom Configuration

While limited, ASM can be configured for basic monitoring:

# Sample registry tweak to enable extended logging
[HKEY_LOCAL_MACHINE\SOFTWARE\Adaptec\Adaptec Storage Manager]
"EnableVerboseLogging"=dword:00000001
"SNMPCommunity"="public"
"EmailServer"="smtp.yourdomain.com"

2. SNMP Monitoring via Custom Scripts

Create a PowerShell script that polls RAID status:

# RAID status check script
$raidStatus = Get-PhysicalDisk | Where-Object {$_.FriendlyName -like "*ADAPTEC*"} | 
              Select-Object DeviceID, OperationalStatus, HealthStatus

if ($raidStatus.OperationalStatus -ne "OK") {
    # Send SNMP trap
    Invoke-WebRequest -Uri "http://opennms-server/snmp?trap=raidDegraded" -Method Post
}

3. Windows Event Log Monitoring /h2>

The ICH10R controller logs events to System logs. Create a custom event viewer filter:

<QueryList>
  <Query Id="0" Path="System">
    <Select Path="System">
      *[System[Provider[@Name='iaStor'] and (Level=2)]]
    </Select>
  </Query>
</QueryList>

For Server Core installations where GUI tools aren't available:

# WMI query for RAID health (works on Server Core)
Get-WmiObject -Namespace root\wmi -Class MSStorageDriver_FailurePredictStatus | 
Where-Object {$_.InstanceName -like "*ICH10R*"} | 
Select-Object InstanceName, PredictFailure, Reason

Several monitoring tools can integrate with ICH10R:

  • PRTG Network Monitor (custom sensor scripts)
  • Zabbix (low-level S.M.A.R.T. monitoring)
  • Nagios (check_raid_smart plugin)

Example Nagios configuration:

define service {
    service_description     RAID Status
    host_name               your-server
    check_command           check_nrpe!check_raid_status
    use                     generic-service
}

Many administrators encounter confusion when dealing with the Intel ICH10R controller that reports as an Adaptec device in Windows. This hybrid implementation combines Intel's chipset with Adaptec's firmware, creating monitoring challenges. During boot, you'll see:

Controller #00: HostRAID-ICH10r at PCI Bus:00...

Yet Windows Device Manager displays "Adaptec Serial ATA HostRAID." This dual identity creates complications for monitoring solutions.

After extensive testing with the MBD-X8-DTL-I-O motherboard, here are the most effective monitoring methods:

1. SNMP Monitoring with SNMPInformant

While standard SNMP won't show RAID status, you can use SNMPInformant to monitor disk health indicators. Install with:

msiexec /i SNMPInformant-STD-x64.msi /quiet /norestart

Then query disk status using PowerShell:

Get-SNMPData -Community public -IP 127.0.0.1 -OID .1.3.6.1.4.1.2680.1.2.101

2. Adaptec Storage Manager Workaround

Despite limitations, the Adaptec Storage Manager can send SNMP traps for critical events. Configure the alert destination in asm_alert.cfg:

ALERT_DESTINATION = "snmp"
SNMP_COMMUNITY = "public"
SNMP_TRAP_HOST = "your.nms.server"

When higher-level RAID monitoring fails, fall back to SMART attribute monitoring using smartmontools:

smartctl -d sat -a /dev/sda

Parse the output for critical attributes (Reallocated_Sector_Ct, Current_Pending_Sector):

$disks = Get-PhysicalDisk | Where-Object {$_.MediaType -eq "HDD"}
foreach ($disk in $disks) {
    $health = (Get-StorageReliabilityCounter -PhysicalDisk $disk).HealthStatus
    if ($health -ne "Healthy") {
        Send-SNMPTrap -Message "Disk $($disk.DeviceId) degraded: $health"
    }
}

Configure a scheduled task to check for RAID-related events in System logs:

$query = @"
<QueryList>
  <Query Id="0" Path="System">
    <Select Path="System">
      *[System[Provider[@Name='iaStor'] and (Level=1 or Level=2)]]
    </Select>
  </Query>
</QueryList>
"@
Get-WinEvent -FilterXml $query | ForEach-Object {
    # Process critical storage events
}

For basic health checks, query Win32_DiskDrive status:

Get-WmiObject -Class Win32_DiskDrive | 
Where-Object {$_.InterfaceType -eq "SCSI"} |
Select-Object Model, Status

This helps identify when the controller reports a disk as failed, though it won't show array degradation.