Virtual disk for iSCSI target failed to initialize

Microsoft.Windows.FileServices.Service.iSCSITarget.10.0.FailedInitVHD (Rule)

Knowledge Base article:

Summary

This rule monitors virtual hard disks (VHD) that cannot be initialized for the iSCSI Target service. When this occurs, VHDs will be unavailable to any iSCSI Target that uses the VHD.

An alert will be generated for every VHD that cannot be initialized. The alert description will contain the device ID and local path to the VHD that has failed. Only a single alert will be generated per unique VHD that exhibits a problem.

Causes

A VHD can fail to initialize for a number of reasons such as:

Multiple VHDs may be affected and you should review additional alerts which have been generated for the iSCSI Target service.

Resolutions

On the Windows Server computer hosting the iSCSI Target service, ensure the VHD file that is referred to in the alert is present and available.

If the file was unavailable when the iSCSI Target service started, and is now available, the iSCSI Target service must be restarted. Note that this can cause an interruption in iSCSI target services to iSCSI initiators while the service is restarted.

To restart the iSCSI Target service, use the following steps:

You must manually resolve alerts after the issues have been resolved.

Element properties:

TargetMicrosoft.Windows.FileServices.Service.iSCSITarget.10.0
CategoryAvailabilityHealth
EnabledTrue
Event_ID15
Event SourceMicrosoft-Windows-iSCSITarget-Service
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
RemotableTrue
Alert Message
Failed to initialize a virtual disk
The iSCSI target on computer '{3}' could not load virtual disk index {0} located at '{1}'. The error message was: {2}
Event LogMicrosoft-Windows-iSCSITarget-Service/Admin

Member Modules:

ID Module Type TypeId RunAs 
DS DataSource Microsoft.Windows.EventProvider Default
GenerateAlert WriteAction System.Health.GenerateAlert Default

Source Code:

<Rule ID="Microsoft.Windows.FileServices.Service.iSCSITarget.10.0.FailedInitVHD" Target="Microsoft.Windows.FileServices.Service.iSCSITarget.10.0" Enabled="true" Remotable="true" ConfirmDelivery="true">
<Category>AvailabilityHealth</Category>
<DataSources>
<DataSource ID="DS" TypeID="Windows!Microsoft.Windows.EventProvider">
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<LogName>Microsoft-Windows-iSCSITarget-Service/Admin</LogName>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Microsoft-Windows-iSCSITarget-Service</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">15</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="SystemHealth!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>2</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.Windows.FileServices.Service.iSCSITarget.10.0.FailedInitVHD.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/Params/Param[1]$</AlertParameter1>
<AlertParameter2>$Data/Params/Param[2]$</AlertParameter2>
<AlertParameter3>$Data/Params/Param[3]$</AlertParameter3>
<AlertParameter4>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</AlertParameter4>
</AlertParameters>
<Suppression>
<SuppressionValue>$Data/Params/Param[1]$</SuppressionValue>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>