[Openstack] Metadata and File Injection
anotherjesse at gmail.com
Thu Dec 15 08:34:26 UTC 2011
Right now there are 3 approaches to metadata/runtime config:
* ec2 metadata service - http://169.254.169.254/ (used by ubuntu's
cloud-init for example)
* config drive - added in diablo
* xenstore via openstack agent - https://launchpad.net/openstack-guest-agents
* injecting files into the filesystem prior to launch - on some
hypervisors / filesystems combinations
There are issues with each approach currently:
* metadata service - requires that cloud uses DHCP to configure network
* config drive - only sets values at runtime and no support from any guests
* xenstore approach - hypervisor specific.
* injecting into filesystem - brittle as it requires the host to
support arbitrary filesystems
If we assume that instance networking can be configured by DHCP, then
a metadata service is probably our best choice for simplicity of
implementation and user experience.
Given that Rackspace Public Cloud is the only openstack developer/user
(I know of) that doesn't use DHCP for network configuration of
instances, I reached out to the team to see if DHCP would be an
option. They are researching either a way use DHCP _or_ propose an
approach to initial network configuration that can be executed by the
openstack guest agent.
Based on those conversations we've been writing a proposal that would
recommend guests use a (currently non-existing) openstack metadata api
Hope this helps.
Thoughts on the optimal experience for essex?
On Wed, Dec 14, 2011 at 9:28 AM, Jay Pipes <jaypipes at gmail.com> wrote:
> On Wed, Dec 14, 2011 at 9:04 AM, McNally, Dave <dave.mcnally at hp.com> wrote:
>> I've recently been looking at file and metadata injection in Nova and I have
>> a question relating to it.
>> (BTW this is based off what I have seen in nova/virt/disk.py)
>> I notice that for key/value pairs specified as metadata during boot of an
>> instance these values are injected into a file /meta.js in the instance.
>> However if a file (and corresponding injection location) are specified when
>> booting the instance the file does not get injected.
> Not on libvirt/KVM. It works on Xen, though:
>> I was wondering if there was an intentional decision not to use a similar
>> method to that used when injecting meta.js to inject other files? Because it
>> seems to me the addition of such functionality would be fairly
> I'm interested in the answer to this question as well...
>> Also on a vaguely related note why is the metadata injected into a file
>> rather than stored in a location where it can be retrieved from the metadata
> No idea. :(
> 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