Symptoms:
An administrator may want to reduce the Journal Size Hard Limit value in an attempt to decrease the overall size of a VM’s journal. This article explains the caveats and expected journal shrinking behavior.
Solution:
When the Journal Size Hard Limit is set to “Unlimited”, which is the default configuration, a VM’s journal can grow to whatever used size is necessary to contain the configured journal history. If the value is then reduced to one that is smaller than the current used size of the journal, there will be no immediate reduction.
- Journal volumes are presently allocated with the following sizing order as the logical journal grows to include multiple volumes: 16GB, 32GB, 33GB, 36GB, 52GB…
- If the IO rate of the protected VM doesn’t change, and as such presumably the same amount of journal space is required to contain the configured journal history, the journal will not shrink.
- After three full cycles of the configured journal history during which the journal free space remains above 50%, or a 24 hour period, whichever is greater, the system will remove the largest journal VMDK to reduce the journal’s provisioned size.
- If the journal utilization drops to 5GB or less, then all journal volumes except the base 16GB volume will be removed after three full cycles of the journal history or a 24 hour period, whichever is greater.
- Regardless to the Journal Size Hard Limit value, if the journal free space remains above 50%, and if a VMDK was used previously by the journal but is no longer used (meaning no bytes of that specific VMDK are used by the system to store journal data) for three full cycles of the journal history or a 24 hour period, whichever is greater, the system will remove that VMDK. This is true even when journal hard limit was not met.
- If the Journal Size Hard Limit is set to a value smaller than the current used size of the journal, and the Journal Size Hard Limit is in fact insufficient to protect the configured journal history, then the provisioned journal size will never reduce to below the Journal Size Hard Limit. It will only reduce once the protected IO rate drops.
For example, consider the following scenario:
The Journal History is set to 12 hours
The Journal Size Hard Limit is set to 100GB
The total provisioned journal size protecting the journal history is 81GB and it consists of 3 VMDKs (16GB, 32GB, 33GB).
- Assume that the protected VM's IO rate has slowed and the journal has 70% free space. Since the journal history is set to 12 hours, after 36 hours (the greater of 24 hours or 3*history) the system will remove the 33GB VMDK (even though the hard limit is set to 100GB!)
- If the IO rate remains low and the 32GB VMDK isn’t being used, and the journal still has over 50% free space, then after another 36 hours the system will remove the 32GB VMDK, leaving only the 16GB VMDK.
- Note that if the journal utilization dropped to 5GB or below while all three journal VMDKs were still part of the logical journal, then after a period of 36 hours, both the 32GB and 33GB VMDKs would be removed.