ViPR SRM VNX Collector errors "Invalid value 'N/A' for key storagepool-tier-dataTargetedforHigherTier
Symptoms
Large number of Severe log errors filling the ViPR SRM emc-vnx Collector logs. An example of the log errors is the following:
SEVERE -- [2016-12-15 06:16:24 EST] -- DataListener$ValueFormatter::createValues(): Invalid value 'N/A' for key storagepool-tier-dataTargetedforHigherTier, context VNX4 and properties {topopass=value, getdisk-optional-speeds-flag=-speeds, getdisk-optional-usercapacity-flag=-usercapacity, getdisk-optional-busyticks_SPB-flag=-busyticks_SPB, storagepool-tier-freeCapacity=655.53, getdisk-optional-vendor-flag=-vendor, storagepool-tier-subscribed=90.00, getdisk-optional-hw-flag=-hw, storagepool-tier-consumedCapacity=5901.25, getdisk-optional-numluns-flag=-numluns, getdisk-optional-bytrd-flag=-bytrd, storagepool-tier-dgraid=r_10, secfilepath=, storagepool-tier-dataTargetedforLowerTier=N/A, userflag=-user, password={3E0405E9D4AE49A4ECF339796BDD4542A01749F85319EF7E1A2FA08AEEB331BFC81081913BFB861DEE24241CD99B####}, getdisk-optional-rev-flag=-rev, storagepool-freecapacity=11340.85693359375, nopollflag=-nopoll, getdisk-optional-product-flag=-product, agent-serialnb=CKM###########, RemoveMe=0, getlun-optional-que-flag=, getdisk-optional-drivetype-flag=-drivetype, agent-spb-memory=16384, storagepool-description=, agent-spa-memory=16384, storagepool-full=56.949, storagepool-tier-userCapacity=6556.78, isFlare33=true, storagepool-ddupefficiencysavings=, friendlyname=#######SAN01, spb=##.###.###.##, spa=##.###.###.##, getdisk-optional-arrivalswithnonzeroqueue-flag=-arrivalswithnonzeroqueue, agent-model=VNX5200, isFlare32=true, getdisk-optional-bytwrt-flag=-bytwrt, storagepool-ddupstat=, storagepool-fastcache=1, storagepool-ddupremainingsize=, array-setstats=ENABLED, getdisk-optional-sr-flag=-sr, getdisk-optional-que-flag=-que, <?xml version="1.0" encoding="UTF-8"?><sparql xmlns="http://www.w3.org/2005/sparql-results#">, storagepool-rawcapacity=40886.442401885986, secfilepathflag=, getdisk-optional-serial-flag=-serial, getdisk-optional-idleticks_SPB-flag=-idleticks_SPB, getdisk-optional-busyticks_SPA-flag=-busyticks_SPA, storagepool-ddupsharedcapacity=, storagepool-availability=Offline, scopeflag=-scope, getlun-optional-issnapmountpoint-flag=-issnapmountpoint, topouser=value, <variable name="issrc"/>, storagepool-part=RINPV06GP01, storagepool-tier-name=Performance, getdisk-optional-tla-flag=-tla, storagepool-disktype=Mixed, sstype=Block, cimauthorization=@{user}:@{password}:@{scope}, getdisk-optional-state-flag=-state, storagepool-subscribed=37120.60986328125, passwordflag=-password, getdisk-optional-hs-flag=-hs, storagepool-tier-dataTargetedforHigherTier=N/A, scope=0, zerovalue=0, getdisk-optional-sw-flag=-sw, getdisk-optional-capacity-flag=-capacity, storagepool-capacity=26342.8505859375, storagepool-dduppercentcompleted=, POLLING_COUNTER=2387, deviceid=4, command=/opt/Navisphere/bin/naviseccli, storagepool-subscribedcapacity=37120.60986328125, storagepool-dduplast=, getdisk-optional-hr-flag=-hr, getdisk-optional-idleticks_SPA-flag=-idleticks_SPA, topoport=######.###.###:48443, storagepool-raidtype=Mixed, getdisk-optional-wrts-flag=-wrts, storagepool-ddupstate=, storagepool-usedcapacity=15001.99365234375, storagepool-haslun=1, agent-revision=05.33.008.5.119, user=srm_service, getdisk-optional-rds-flag=-rds, getdisk-optional-rg-flag=-rg, storagepool-oversubscribedcapacity=10777.75927734375, getlun-optional-wcrh-flag=-wcrh}
Cause
Resolution
1) Backup /opt/APG/Collecting/Stream-Collector/emc-vnx/conf/transformers/normalizeAutotiering.xsl
2) Modify the file by doing the following:
Modify line 30
from:
<xsl:attribute name="datatoMoveWithinTiers" select="$storagePool[@NAME='Data to Move Within Tiers (GBs)']/VALUE" />
to:
<xsl:attribute name="datatoMoveWithinTiers" select="if ($storagePool[@NAME='Data to Move Within Tiers (GBs)']/VALUE !='N/A') then ($storagePool[@NAME='Data to Move Within Tiers (GBs)']/VALUE) else 0" /> 3) Backup /opt/APG/Collecting/Stream-Collector/emc-vnx/conf/transformers/vnxblock-storagepool.xsl 4) Modify the file by doing the following:
Modify lines 76 and 77
from:
<xsl:attribute name="dataTargetedforHigherTier" select="if (exists($tier[@NAME='Data Targeted for Higher Tier (GBs)'])) then ($tier[@NAME='Data Targeted for Higher Tier (GBs)']/VALUE) else 0" /> <xsl:attribute name="dataTargetedforLowerTier" select="if (exists($tier[@NAME='Data Targeted for Lower Tier (GBs)'])) then ($tier[@NAME='Data Targeted for Lower Tier (GBs)']/VALUE) else 0" /> to:
<xsl:attribute name="dataTargetedforHigherTier" select="if (exists($tier[@NAME='Data Targeted for Higher Tier (GBs)']) and $tier[@NAME='Data Targeted for Higher Tier (GBs)']/VALUE != 'N/A') then ($tier[@NAME='Data Targeted for Higher Tier (GBs)']/VALUE) else 0" /> <xsl:attribute name="dataTargetedforLowerTier" select="if (exists($tier[@NAME='Data Targeted for Lower Tier (GBs)']) and $tier[@NAME='Data Targeted for Lower Tier (GBs)']/VALUE != 'N/A') then ($tier[@NAME='Data Targeted for Lower Tier (GBs)']/VALUE) else 0" /> 5) Restart the collector, and verify that the error messages stop coming in.