Alert when unhealthy storage volumes in a pool
This rule checks the status of all the Concrete LUNs within the storage pool and generates an alert if there is an unhealthy state for any of the LUNs.
The alert will contain a list of the first 1024 LUNs in an unhealthy state along with the health state, health state details and operational status. You can override this Maximum Entities value up to a maximum of 8192 LUNs. Smaller values will result in more efficient processing and a smaller alert description, which may be of concern if sending alerts via email or messaging systems or a ticketing system.
An unhealthy state occurs if an unhealthy state occurs for a storage pool provisioned from the LUN. It can also occur if certain operations, such as migrations, reduce the performance of the LUN.
On VNX block systems a LUN becomes degraded if trespassed by its storage processor. Or an unhealthy state can occur if software operations or hardware failures disable the read or write cache and cause a LUN to become degraded.
Check and resolve any issues with the LUN's storage pool. Wait for performance-reducing operations to complete and then check the state. If applicable, try to trespass the LUN back to its storage processor.
For more information about this storage system component, refer to your storage system documentation.
For more information or technical support, refer to DELLEMC Online Support at support.emc.com.
Target | EMC.SI.StoragePool | ||
Category | Alert | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Remotable | True | ||
Alert Message |
|
ID | Module Type | TypeId | RunAs |
---|---|---|---|
DS | DataSource | EMC.SI.Get.SubEntity.Status.DataSource | Default |
Filter | ConditionDetection | System.ExpressionFilter | Default |
Alert | WriteAction | System.Health.GenerateAlert | Default |
<Rule ID="EMC.SI.StoragePool.ConcreteLun.Alert.Rule" Enabled="true" Target="ESILib!EMC.SI.StoragePool" ConfirmDelivery="true" Remotable="true" Priority="Normal" DiscardLevel="100">
<Category>Alert</Category>
<DataSources>
<DataSource ID="DS" TypeID="EMC.SI.Get.SubEntity.Status.DataSource">
<IntervalSeconds>337</IntervalSeconds>
<SyncTime/>
<ESIServiceHost>$Target/Host/Host/Property[Type="ESILib!EMC.SI.ESIService"]/ESIServiceHost$</ESIServiceHost>
<Port>$Target/Host/Host/Property[Type="ESILib!EMC.SI.ESIService"]/Port$</Port>
<ProxyServer>$Target/Host/Host/Property[Type="ESILib!EMC.SI.ESIService"]/ProxyServer$</ProxyServer>
<BypassList>$Target/Host/Host/Property[Type="ESILib!EMC.SI.ESIService"]/BypassList$</BypassList>
<IgonreCertificateErrors>$Target/Host/Host/Property[Type="ESILib!EMC.SI.ESIService"]/IgonreCertificateErrors$</IgonreCertificateErrors>
<HTTPStoHTTPFallBack>$Target/Host/Host/Property[Type="ESILib!EMC.SI.ESIService"]/HTTPStoHTTPFallBack$</HTTPStoHTTPFallBack>
<Orphaned>false</Orphaned>
<UserName>$Target/Host/Host/Property[Type="ESILib!EMC.SI.ESIService"]/UserName$</UserName>
<Password>$Target/Host/Host/Property[Type="ESILib!EMC.SI.ESIService"]/Password$</Password>
<HostComponentId>$Target/Property[Type="ESILib!EMC.SI.StoragePool"]/StoragePoolId$</HostComponentId>
<EntityClass>ConcreteLun</EntityClass>
<MaxEntities>1024</MaxEntities>
<TimeoutSeconds>600</TimeoutSeconds>
<DebugLevel>$Target/Property[Type="ESILib!EMC.SI.StorageDevice"]/DebugLevel$</DebugLevel>
</DataSource>
</DataSources>
<ConditionDetection ID="Filter" TypeID="System!System.ExpressionFilter">
<Expression>
<Or>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="Integer">Property[@Name='WarningCount']</XPathQuery>
</ValueExpression>
<Operator>Greater</Operator>
<ValueExpression>
<Value Type="Integer">0</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="Integer">Property[@Name='ErrorCount']</XPathQuery>
</ValueExpression>
<Operator>Greater</Operator>
<ValueExpression>
<Value Type="Integer">0</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</Or>
</Expression>
</ConditionDetection>
<WriteActions>
<WriteAction ID="Alert" TypeID="Health!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>2</Severity>
<AlertName/>
<AlertDescription/>
<AlertOwner/>
<AlertMessageId>$MPElement[Name="EMC.SI.StoragePool.ConcreteLun.Alert.Rule_AlertMessageResourceID"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/Property[@Name='WarningCount']$</AlertParameter1>
<AlertParameter2>$Data/Property[@Name='ErrorCount']$</AlertParameter2>
<AlertParameter3>$Data/Property[@Name='UnhealthyEntities']$</AlertParameter3>
<AlertParameter4>$Data/Property[@Name='DetailsUrl']$</AlertParameter4>
<AlertParameter5>Concrete Luns</AlertParameter5>
<AlertParameter6>$Data/Property[@Name='RemainingUnhealthyCount']$</AlertParameter6>
</AlertParameters>
<Suppression>
<SuppressionValue>$Target/Property[Type="ESILib!EMC.SI.StoragePool"]/StoragePoolId$</SuppressionValue>
</Suppression>
<Custom1/>
<Custom2/>
<Custom3/>
<Custom4/>
<Custom5/>
<Custom6/>
<Custom7/>
<Custom8/>
<Custom9/>
<Custom10/>
</WriteAction>
</WriteActions>
</Rule>