[Openstack-operators] [Openstack] [Nova] How common is user_data for instances?

Dan Prince dprince at redhat.com
Mon Aug 13 13:12:05 UTC 2012

----- Original Message -----
> From: "Michael Still" <michael.still at canonical.com>
> To: openstack at lists.launchpad.net, openstack-operators at lists.openstack.org
> Sent: Saturday, August 11, 2012 5:12:22 AM
> Subject: [Openstack] [Nova] How common is user_data for instances?
> Greetings.
> I'm seeking information about how common user_data is for instances
> in
> nova. Specifically for large deployments (rackspace and HP, here's
> looking at you). What sort of costs would be associated with changing
> the data type of the user_data column in the nova database?
> Bug 1035055 [1] requests that we allow user_data of more than 65,535
> bytes per instance. Note that this size is a base64 encoded version
> of
> the data, so that's only a bit under 50k of data. This is because the
> data is a sqlalchemy Text column.
> We could convert to a LongText column, which allows 2^32 worth of
> data,
> but I want to understand the cost to operators of that change some
> more.
> Is user_data really common? Do you think people would start uploading
> much bigger user_data? Do you care?

Nova has configurable quotas on most things so if we do increase the size of the DB column we should probably guard it in a configurable manner with quotas as well.

My preference would actually be that we go the other way though and not have to store user_data in the database at all. That unfortunately may not be possible since some images obtain user_data via the metadata service which needs a way to look it up. Other methods of injecting metadata via disk injection, agents and/or config drive however might not need it to be store in the database right?

As a simpler solution:

Would setting a reasonable limit (hopefully smaller) and returning a HTTP 400 bad request if incoming requests exceed that limit be good enough to resolve this ticket? That way we don't have to increase the DB column at all and end users would be notified up front that user_data is too large (not silently truncated). They way I see it user_data is really for bootstrapping instances... we probably don't need it to be large enough to write an entire application, etc.

> Mikal
> 1: https://bugs.launchpad.net/nova/+bug/1035055
> _______________________________________________
> Mailing list: https://launchpad.net/~openstack
> Post to     : openstack at lists.launchpad.net
> Unsubscribe : https://launchpad.net/~openstack
> More help   : https://help.launchpad.net/ListHelp

More information about the OpenStack-operators mailing list