综述
启动一个新的instance涉及到很多openstack nova里面的组件
- API server:处理客户端的请求,并且转发到cloud control
- Cloud control:处理compute节点,网络控制节点,API server和scheduler中间连接
- Scheduler:选择一个host去执行命令
- compute worker:启动和停止实例,附加和删除卷 等操作
- network controller:管理网络资源,分配固定IP,配置vlans

1.API server将消息发送到Cloud Controller
2. Authertication 保用户有权限,然后Cloud Controller将消息发送给Scheduler
3. Scheduler caste 一个消息给一个选择好的host要求他启动一个实例
4.compute worker(选择的那个host)获取到消息
5.6.7.8 compute worker需要一个固定的ip去启动一个实例,所以向network controller发送消息
下面我将详细说明一下:
API
1.可以在dashboard网页上面进行
2.可以用命令行 euca-add-keypair euca-run-instances
用户的请求发送到nova-api,有两种方式
第一种:通过openstack api (nova/api/servers.py 类 class Controller(object))create方法
def create(self, req, body):
""" Creates a new server for a given user """
if 'server' in body:
body['server']['key_name'] = self._get_key_name(req, body)
extra_values = None
extra_values, instances = self.helper.create_instance(
req, body, self.compute_api.create)