本帖最后由 pig2 于 2015-3-17 01:36 编辑
问题导读
1.什么是nova?
2.nova有哪些主要组件?
3.nova组件是如何分布的?
1.什么是Nova
这个是最核心的,Nova最开始的时候,可以说是一套虚拟化管理程序,还可以管理网络(nova-network)和存储(nova-volume)等。
计算管理(codenamed “Nova”) 基于用户需求为VM提供计算资源管理. 基于Python语言编写。
它可以启动实例、管理实例
2.Nova组件
Nova-API(restful api \comand api):对外统一提供标准化接口.接受和响应最终用户Compute API的请求,同时还实现与Openstack其他各逻辑模块的通讯与服务提供
Nova-Scheduler:从队列上得到一个虚拟机实例请求并且决定它应该在哪里运行(使用多种过滤器或算法调度)【选择合适的物理机】
Queue:提供了一个守护进程之间传递消息的中央枢纽。消息队列系统作用还可以实现与Openstack其他各逻辑模块之间的通信建立连接枢纽
Nova-Database:存储云基础设施的编译时和运行时的状态,从理论上讲,OpenStack Nova可以支持任何SQL-Alchemy支持的数据库,但是目前被广泛使用的数据库有sqlite3(只适用于测试和开发工作),MySQL和PostgreSQL。
Nova-Compute:主要是一个人工守护进程,它可以通过虚拟机管理程序的API(XenAPI for XenServer/XCP, libvirt for KVM or QEMU, VMwareAPI for VMware等)来创建和终止虚拟机实例。支持多种虚拟化平台【实例的启动和关闭】
Nova还提供控制台的服务,让最终用户通过代理服务器访问他们的虚拟实例的控制台。这涉及到多个守护进程(nova-console,nova-novncproxy、nova-xvpnvncproxy和nova-consoleauth)
3.Nova架构
以上内容基本都已介绍。
Compute Manager:虚拟机生命周期的管理
Computer driver:虚拟机开启、关闭,提供具体实现
libvirt提供具体实现:
Libvirt 库是一种实现 Linux 虚拟化功能的 Linux® API,它支持各种虚拟机监控程序,包括 Xen 和 KVM,以及 QEMU 和用于其他操作系统的一些虚拟产品。本文主要探讨 libvirt 及其用途和架构。
更多内容:Libvirt 虚拟化库剖析
4.Nova进程分布
控制节点
Nova-api
Nova-schedule
Nova-conductor
nova-consoleauth
nova-novncproxy
nova-cert
重点介绍:
Nova-conductor:连接数据库,直接连接conductor,然后由conductor访问数据库。减轻数据库压力
nova-consoleauth:用来做认证,vnc proxy连接到nova-consoleauth来验证token
nova-novncproxy:考虑安全性,直接访问novnc比较危险,统一负责vnc管理,更多内容:openstack nova-novncproxy介绍
nova-cert:证书的分发
计算节点
Nova-compute:实例生命周期的管理
客户端
Nova-client:nova api发请求
Nova-manage:整个nova管理, 查看租户、账户、角色等,详细查看openstack nova-manage 用户管理
5.请求一个虚拟机实例过程
|