Start Instance 操作详解 - 每天5分钟玩转 OpenStack(31)

每天5分钟OpenStack (4.0万) 2017-09-19 13:16:03

Start Instance 操作详解 - 每天5分钟玩转 OpenStack(31)_https://www.tiejiang.org_每天5分钟OpenStack_第1张

本节通过日志文件详细分析 instance start 操作。

下面是 start instance 的流程图

Start Instance 操作详解 - 每天5分钟玩转 OpenStack(31)_https://www.tiejiang.org_每天5分钟OpenStack_第2张

  1. 向 nova-api 发送请求
  2. nova-api 发送消息
  3. nova-compute 执行操作

下面我们详细讨论每一个步骤。

向 nova-api 发送请求

客户(可以是 OpenStack 最终用户,也可以是其他程序)向API(nova-api)发送请求:“帮我启动这个 Instance”

Start Instance 操作详解 - 每天5分钟玩转 OpenStack(31)_https://www.tiejiang.org_每天5分钟OpenStack_第3张

查看日志 /opt/stack/logs/n-api.log

Start Instance 操作详解 - 每天5分钟玩转 OpenStack(31)_https://www.tiejiang.org_每天5分钟OpenStack_第4张

nova-api 发送消息

nova-api 向 Messaging(RabbitMQ)发送了一条消息:“启动这个 Instance” 查看源代码 /opt/stack/nova/nova/compute/api.py 的 2002 行,方法是 start。

Start Instance 操作详解 - 每天5分钟玩转 OpenStack(31)_https://www.tiejiang.org_每天5分钟OpenStack_第5张

self.compute_rpcapi.start_instance() 的作用就是向 RabbitMQ 上 nova-compute 的消息队列里发送一条 start instance 的消息。

nova-compute 执行操作

查看日志 /opt/stack/logs/n-cpu.log

开始启动

Start Instance 操作详解 - 每天5分钟玩转 OpenStack(31)_https://www.tiejiang.org_每天5分钟OpenStack_第6张

准备虚拟网卡

Start Instance 操作详解 - 每天5分钟玩转 OpenStack(31)_https://www.tiejiang.org_每天5分钟OpenStack_第7张

准备 instance 的 XML 文件

Start Instance 操作详解 - 每天5分钟玩转 OpenStack(31)_https://www.tiejiang.org_每天5分钟OpenStack_第8张

准备 instance 镜像文件

Start Instance 操作详解 - 每天5分钟玩转 OpenStack(31)_https://www.tiejiang.org_每天5分钟OpenStack_第9张

成功启动

Start Instance 操作详解 - 每天5分钟玩转 OpenStack(31)_https://www.tiejiang.org_每天5分钟OpenStack_第10张
Start 操作的分析就得这里,下节继续讨论其他 nova 操作。

THE END