Openstack组件实现原理 — Nova 体系结构
来源:互联网 发布:阿里云先知大会 编辑:程序博客网 时间:2024/05/21 08:41
目录
- 目录
- 前文列表
- Nova体系结构
- 虚拟机实例化流程
前文列表
Openstack组件部署 — Overview和前期环境准备
Openstack组建部署 — Environment of Controller Node
Openstack组件部署 — Keystone功能介绍与认证实现流程
Openstack组件部署 — Keystone Install & Create service entity and API endpoints
Openstack组件部署 — keystone(domain, projects, users, and roles)
Openstack组件实现原理 — Keystone认证功能
Openstack组建部署 — Glance Install
Openstack组件实现原理 — Glance架构(V1/V2)
Openstack组件部署 — Nova overview
Openstack组件部署 — Nova_安装和配置Controller Node
Openstack组件部署 — Nova_Install and configure a compute node
Nova体系结构
Nova主要有API、Compute、Conductor、Scheduler四个核心服务组成,这些服务之间通过AMQP消息队列来进行通信。
Client:Nova Client能够让Tenant管理员或用户终端提交指令,是Openstack官方为了简化用户对RESTful API的使用所提供的API封装,Client能够将用户的请求转换为标准的HTTP请求。
API(nova-api service):nova-api service能够接收和响应Client的Compute API调用,所以API就是Client进入Nova的HTTP接口。
Compute(nova-compute service):nova-compute service是一个通过hypervisor APIs(虚拟化层API)来实现创建和终止虚拟机实例的守护进程,Compute通过和VMM的交互来运行虚拟机并管理虚拟机的生命周期。
Scheduler(nova-scheduler service):nova-scheduler service会从queue中接收一个虚拟机实例的请求,并确定该实例能够运行在哪一台Compute server中。Scheduler通过读取数据库的内容,从可用的池中选择最合适的Compute Node来创建新的虚拟机实例。
Conductor(nova-conductor):nova-conductor module能够协调nova-compute service和database之间的交互,Conductor为数据库访问提供了一层安全保障。
Queue:queue是Nova 服务组件之间传递信息的中心枢纽。通常使用AMQP(高级消息队列协议Advanced Message Queuing Protocol)的RabbitMQ消息队列来实现。
注意:因为Scheduler只能读取数据库内容,和API通过Policy机制来限制数据库的访问,所以Scheduler和API这两个服务都可以直接访问数据库。但是支持引入了Conductor服务之后,更加规范的方法是通过Conductor服务来对数据库进行操作。
虚拟机实例化流程
Step1:首先用户执行Nova Client提供的用于创建虚拟机的指令
Step2:nova-api service监听到来自于Nova Client的HTTP请求,并将这些请求转换为AMQP消息之后加入消息队列Queue
Step3:通过消息队列Queue调用nova-conductor service
Step4:nova-conductor service从Queue接收到虚拟机实例化请求消息后,进行一些准备工作(EG. 汇总HTTP请求中所需要实例化的虚拟机参数)
Step5:nova-conductor service通过Queue告诉nova-scheduler去选择一个合适的Compute Node来创建虚拟机,此时nova-scheduler会读取数据库的内容
Step6:nova-conductor从nova-scheduler得到了合适的Compute Node的信息后,在通过Queue来通知nova-compute service实现虚拟机的创建
送虚拟机实例化的过程可以看出,Nova中最重要的4个服务之间的通信都是通过Queue来实现的。这符合松耦合的实现方式。
- Openstack组件实现原理 — Nova 体系结构
- Openstack组件部署 — Nova overview
- OpenStack-Nova组件理解
- Openstack中Nova组件介绍
- OpenStack云计算入门指南——Nova组件介绍
- OpenStack云计算入门——Nova组件
- OpenStack云计算入门指南——Nova组件介绍
- OpenStack云计算入门指南——Nova组件介绍
- Openstack组件实现原理 — Keystone认证功能
- Openstack组件实现原理 — Glance架构(V1/V2)
- Openstack组件实现原理 — OpenVswitch/Gre/vlan
- Openstack组件 — Keystone认证功能实现原理
- OpenStack云平台组件--Nova简介
- 发现 OpenStack: Compute 组件 Glance 和 Nova
- OpenStack 的 Nova 和 Glance 组件
- OpenStack Nova VNC Proxy原理及过程
- OpenStack——nova安装
- 详解openstack命令启动实现流程及原理(nova --debug image-list)
- php利用微信接口获取微信用户信息
- React Native控件之ViewPagerAndroid讲解
- mysql基础篇---mysql查询语句干货!!!
- 杂
- 【树DP+基环树】[NOI2013]快餐店
- Openstack组件实现原理 — Nova 体系结构
- shell脚本中实现脚本a里面的函数调用脚本b中的函数参数-用到source关键字
- Spring知识点提炼
- MUI开发注意事项
- vim实用功能备忘
- 每日一题(day1)
- CF686B A - Little Robber Girl's Zoo
- 接口测试笔记1
- 动态规划之钢筋切割问题