Prefetch may log warning messages for UNMAPPED payload blocks in vhdx (Hyper-V virtual hard disk) during optimisation. Per the Vhdx specification document, a payload block ( read it as ‘data block’ ) can be in one of the following states – FULLY PRESENT, PARTIALLY PRESENT, NOT PRESENT, UNDEFINED, ZERO , UNMAPPED.
In Steelfusion vhdx prefetch stack, all the FULLY PRESENT & PARTIALLY PRESENT states are translated to valid blocks.
For UNDEFINED, ZERO, UNMAPPED, NOT PRESENT states, the spec mentions that reads to those blocks shall return zero data/ arbitrary data. Since there is no benefit in prefetching zero/arbitrary blocks from core to edge, pfstack in steelfusion core is expected to log translation failures for RAH on such blocks.
NtfsCrawler module in prefetch stack attempt to do these translations and log a ERR message whenever there is a failure.
Prefetch stack may attempt to read the blocks in these states in following scenarios:
RAH technique on a thin provisioned vhdx.
A block is allocated, but corresponding writes are not committed yet to core. Prefetch stack crawls vhdx only once for the first read after LUN is made online. Block states read during crawl are maintained in-mem. Recrawl is not triggered for every write on vhdx because, it is IO and compute intensive.
A block is actually in one of these states, prefetch stack may attempt to read as part of RAH techniques.
There is no functional impact because of these log messages and these are expected in some scenarios as described above.
Steelfusion 6.0. VM hosted on HyperV with at least vhdx disk attached to it.
NOTICE: Riverbed® product names have changed. Please refer to the Product List for a complete list of product names.