[openstack-dev] libvirt memory ballooning [nova]

Steve Gordon sgordon at redhat.com
Fri Jan 16 13:44:42 UTC 2015


----- Original Message -----
> From: "Vikash Kumar" <vikash.kumar at oneconvergence.com>
> To: "openstack-dev" <openstack-dev at lists.openstack.org>
> 
> All,
> 
>    There is blueprint for enabling  libvirt memory ballooning
> https://blueprints.launchpad.net/nova/+spec/libvirt-memory-ballooning in
> openstack nova. I think for Hyper-V , its already in place. Can we discuss
> about the design and implementation and target for L release?
> 
> 
> Regards,
> Vikash

Yes, Hyper-V support for roughly equivalent functionality was added under this blueprint:

    https://blueprints.launchpad.net/nova/+spec/hyper-v-dynamic-memory

This added a configuration variable dynamic_memory_ratio for setting the ratio between the total RAM assigned to an instance and its startup RAM amount:

	cfg.FloatOpt('dynamic_memory_ratio',
			default=1.0,
			help='Enables dynamic memory allocation (ballooning) when '
			'set to a value greater than 1. The value expresses '
			'the ratio between the total RAM assigned to an '
			'instance and its startup RAM amount. For example a '
			'ratio of 2.0 for an instance with 1024MB of RAM '
			'implies 512MB of RAM allocated at startup')

It doesn't appear that any logic was added to the scheduler to factor this in during placement though [1]. I think a Libvirt driver implementation to support memory ballooning would make sense, and is probably overdue, but there are a few issues to consider. In particular as Dan mentioned how would this interplay with other constructs for handling guest RAM including the 'normal' RAM overcommit functionality and also how to ensure that guests which don't support exercising the memory balloon (lack of installed driver/agent) are handled correctly.

Thanks,

Steve

[1] https://review.openstack.org/#/c/38791/



More information about the OpenStack-dev mailing list