[openstack-dev] Feedback wanted please on proposal to make root disk size variable

Scott Moser smoser at ubuntu.com
Wed Jun 5 13:53:16 UTC 2013


On Mon, 3 Jun 2013, Day, Phil wrote:

> Hi Folks,
>
> I'd like to get your feedback on a change we've been looking at which would allow the root disc size to vary within the constraints specified by the image Creator (via image metadata ) and the Cloud Provider (via flavors).
>
> The problem we're trying to solve is to cope with a range of images that have different root disc requirements without having to either create specific flavours for each image type of have all instances use a large root size when they don't need to.    Imagine for example trying to have a common set of flavours for Linux and Windows without forcing all Linux instances to have a 30GB root disc.
>
> We think we have an approach which will do this without preventing anyone's existing use cases.  The proposal is capture here as a blueprint https://blueprints.launchpad.net/nova/+spec/variable-size-root-disk  which in turn points to a full description here in the Wiki: https://wiki.openstack.org/wiki/VariableSizeRootDisk
>
> We've also posted draft code that shows how this could be implemented here:  https://review.openstack.org/#/c/31521/

The only thing that I see that I find odd is:
 | The size of the ephemeral disk for the instance
 | (instance['ephemeral_gb']) is created to be (flavor.root_gb +
 | flavor.ephemeral_gb) – instance.root_gb

I understand the motivation, but I think its limiting.  I've always
[dangerously] assumed that ephemeral store came basically from the
realization by Amazon that the systems they were buying had obscene
amounts of local disk that were generally going un-used.  They basically,
then cut up the un-used space by the into the number of instances per host
and give each instance a share of it. In most cases on EC2, you get more
than one ephemeral disk.

Given the above, ephemeral storage (and even "instance store" root disks,
are essentially "free" to both the customer and the provider.  On Amazon,
you pay for increased EBS (cinder) storage, so you're motivated to have a
lower amount of that.  So it doesn't make sense to me to relate root size
to ephemeral size.

The other thing I don't like about it is that, currently (at least in
libvirt driver), ephemeral disks are cached.  This is because ephemeral
disks are attached with a filesystem already created on them. That allows
the user to immediately use the disk without having to do mkfs, and the
caching of that image saves the host from having to do it on every
instance launch.

If you use:
 ephemeral_gb = (flavor.root_gb + flavor.ephemeral_gb) - instance.root_gb
and instance.root_gb all of a sudden varies greatly amoung instances, then
the host will be creating ephemeral images (and mkfs'ing them) possibly
for every instance.


More information about the OpenStack-dev mailing list