communication layer for host to guest

Registered by Scott Moser on 2011-04-19

Develop a mechanism for communicating through the openstack API to an in-guest agent. Ideally, nova will be capable of transporting messages from the user of its api to the instance, and back without knowing specifics about the messages. This will allow guest agents to be developed entirely outside of openstack.

Blueprint information

Status:
Complete
Approver:
Vish Ishaya
Priority:
High
Drafter:
Scott Moser
Direction:
Approved
Assignee:
None
Definition:
Superseded
Series goal:
None
Implementation:
Not started
Milestone target:
None
Completed by
Vish Ishaya on 2011-10-25

Related branches

Sprints

Whiteboard

*Note*: I (smoser) will only be in attendance on Wednesday and Thursday. Please do not schedule this for Friday.

I'd like to discuss a way to allow generic communication between host and guest, and allow that transport to shuffle messages between a user of the API and the instance without knowing specifics of the messages its carrying.

Some desireable characteristics of the transport would be:
 * cross hypervisor or at least implemented on multiple hypervisors
 * easily used from inside an instance
 * not dependent on networking, so it could be used for setting up networking

Some ways that you could use this transport for communication would be:
 * communicating with an in-guest agent securely.
 * instance telling the host that it will be unavailable on this transport
 * host notifying instance of certain events that might affect it
 * providing a "metadata service" like the AWS metadata service

The ultimate goal I believe is to have a user able to invoke RPC in an instance and receiving results by making openstack api calls. This gives the end user a secure mechanism to interact with their instance even in early bringup, as the openstack api would be exported over https and would communicate locally to the instance.

In kvm there is a mechanism (-chardev socket) for creating a unix socket to communicate securely between the host and the guest that can be used without networking setup. Other hypervisors may offer similar mechanisms.

Etherpad: http://etherpad.openstack.org/instance-transport
E

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.