Problems occur if the image.minram value it the database is set to a low value and a provisoning module creates a VM with too little RAM. There are no checks on the frontend when a new image is created. By default, images get set to 512 MB of RAM or less.
This can obviously cause VMs to fail to boot and slow running VMs if the boot succeeds. Another side effect is failed image captures. A VM may be able to boot with too little RAM due to the pagefile being used. When an image is captured, the pagefile is disabled and the VM is rebooted. The image capture may fail because the VM has trouble booting without a pagefile.
The VMware.pm module has code to prevent this, but the minimum RAM values are hard-coded in this module which isn't ideal.
It would be better if the provisioning module had a way to query either the OS module or the OS table in the database for a more appropriate value. There are tradeoffs for each method.
Storing the values in the database allows the values to be easily adjusted. The difficulty would be having to add additional entries for multiple architectures such as win7-32bit and win7-64bit. I'd rather not do this until the OS table is redesigned. The OS table is already a horrible mess. See https://issues.apache.org/jira/browse/VCL-566
Having each OS module provide a get_minimum_ram subroutine is another option. This means hard-coding the values but would allow the OS module to logically figure out the minimum RAM. I think this is a better approach until the OS table is fixed.