Q: I'm creating a large number of differencing hard disks based on a single master image. Will this create a lot of overhead on the master image?
A: Differencing disks allow child hard disks to be created from a parent disk, which only writes new and changed data to the child disks, thus keeping the parent disk in a read-only condition. An example would be a parent disk that contains a SYSPREP'd operating system image and creates multiple differencing child disks that are then used by various virtual machines (VMs). Each of the VMs use their specific differencing disk, which runs the specialized phase. All the changes are written to the differencing disk, while the majority of the operating system binaries remain on the shared master parent disk, as shown in the figure below.
What this means is each of the VMs that leverage a child disk, for a large portion of the reads, will hit the parent VHD, thus resulting in a lot of I/O on the parent VHD—far more than that of each of the child VHDs. This would typically cause the parent VHD to become a bottleneck. To avoid this situation, the parent VHD should be placed on a higher tier of storage, such as SSD-based storage (which would happen automatically over time withR2's Storage Spaces—however, to avoid the initial performance hit, you would manually pin the parent VHD to the SSD tier). If you're using a SAN, you need to ensure that the parent VHD is on a LUN using a large number of spindles. In addition, the parent VHD would most likely have the majority of its content cached in memory because it would be used heavily.
To summarize, if you're using a parent VHD for a large number of VMs, it's important to ensure that the parent VHD is placed on a storage subsystem that can handle the large amount of read requests that will be generated by all the child VMs.