We recently upgraded our storage where our PVS vDisk’s reside. I was attempting to inject a file using ‘Mount vDisk’ from the PVS Console and I got an error message:
The text of the message states:
“When accessing a new tape of a multivolume partition, the current block size is incorrect”.
Google searching this message does not bring any helpful results.
I then tried to mount the vDisk via the command line:
Since we still had our ‘older’ storage I tried mounting the same vDisk. It worked. So something with our new storage was preventing us from mounting our VHD’s. We could still create new versions and boot our target devices off the new versions without issue, but mounting the vDisk’s to add a file or change a single registry key is so much more efficient and faster. We have 5 different datacenters with different storage at each, with 1 of the datacenters about to undergo another storage migration (so 6 different storage ‘filers’ in total). I attempted to mount a vDisk from each:
A pattern immediately emerged on the far right of this procmon trace. The ‘filers’ that allowed us to mount the VHD file had the ‘QuerySizeInformationValue’ report back a ‘BytesPerSector’ of 512. The filers that failed had a BytesPerSector of 4,096. Immediately, it became obvious that the new storage had a 4K format and the older storage had 512B format. Microsoft has a statement about VHD files and 4K support:
Effect when hosting VHDs on native 4K disks {.sbody-h3}
The VHD driver today assumes that the size of the physical sector of the disk is 512 bytes and issues 512-bytes IOs. This makes the VHD driver incompatible with these disks. Therefore, the VHD stack does not open the VHD files on physical 4 KB sector disks.
Well, there you go. You cannot mount VHD files when they reside on 4K storage. Fortunately, PVS 7.7 supports VHDX files with 512e support with Windows 2008R2 so we can move our VHD’s to VHDX’s. I will document how to do so in my next post.