Data ONTAP PRO: Hyper-V Host LUN Alignment Monitor

DataONTAP.PRO.LUN.Alignment.Protip.Monitor (UnitMonitor)


This monitor checks the alignment of LUNs on this Hyper-V host. For optimal performance, the file system on the LUN and the storage array should be in proper alignment.

Failure to make sure that LUNs are aligned can result in mild to severe performance degradation depending upon the configuration and overall environment.

Knowledge Base article:

Summary

This monitor checks the alignment of LUNs on this Hyper-V host. For optimal performance, the file system on the LUN and the storage array should be in proper alignment.

Failure to make sure that LUNs are aligned can result in mild to severe performance degradation depending upon the configuration and overall environment.

Causes

LUNs on this Hyper-V host have file systems which have partitions where the starting offsets do not align with the start of the storage block

Resolutions

See NetApp Storage Best Practices for Microsoft Virtualization (TR-3702) for details on resolutions.

Element properties:

TargetDataONTAP.PRO.HyperV.Host
Parent MonitorSystem.Health.AvailabilityState
CategoryAvailabilityHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.Windows.2SingleEventLog2StateMonitorType
RemotableTrue
AccessibilityPublic
Alert Message
Data ONTAP PRO: Hyper-V Host LUN Alignment
{0}
RunAsDataONTAP.SecureReference.RunAsProfileVirtualization

Source Code:

<UnitMonitor ID="DataONTAP.PRO.LUN.Alignment.Protip.Monitor" Accessibility="Public" Enabled="true" Target="DataONTAP.PRO.HyperV.Host" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="Windows!Microsoft.Windows.2SingleEventLog2StateMonitorType" ConfirmDelivery="true" RunAs="DS!DataONTAP.SecureReference.RunAsProfileVirtualization">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="DataONTAP.PRO.LUN.Alignment.Protip.Monitor_AlertMessageResourceID">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/EventDescription$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="UIGeneratedOpStateId974c540f0f31448390d4c35052160091" MonitorTypeStateID="FirstEventRaised" HealthState="Warning"/>
<OperationalState ID="UIGeneratedOpStateIdc67026f9d2c4436294747bf5a27da536" MonitorTypeStateID="SecondEventRaised" HealthState="Success"/>
</OperationalStates>
<Configuration>
<FirstComputerName/>
<FirstLogName>OnCommand</FirstLogName>
<FirstExpression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">651</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Data ONTAP Virtualization MP</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<RegExExpression>
<ValueExpression>
<XPathQuery Type="String">Params/Param[1]</XPathQuery>
</ValueExpression>
<Operator>ContainsSubstring</Operator>
<Pattern>$Target/Property[Type="DataONTAP.PRO.HyperV.Host"]/HostFqdn$</Pattern>
</RegExExpression>
</Expression>
</And>
</FirstExpression>
<SecondComputerName/>
<SecondLogName>OnCommand</SecondLogName>
<SecondExpression>
<And>
<Expression>
<Or>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">650</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">653</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</Or>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Data ONTAP Virtualization MP</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<RegExExpression>
<ValueExpression>
<XPathQuery Type="String">Params/Param[1]</XPathQuery>
</ValueExpression>
<Operator>ContainsSubstring</Operator>
<Pattern>$Target/Property[Type="DataONTAP.PRO.HyperV.Host"]/HostFqdn$</Pattern>
</RegExExpression>
</Expression>
</And>
</SecondExpression>
</Configuration>
</UnitMonitor>