Nova
是建立在无共享,基于消息推送的架构。Nova的所有组件可以分别构建在多个服务器上,组件之间通过消息队列来通信。为了避免组件等待一个消息响应引起堵塞,openstack采用延迟对象机制,当有组件响应时则会触发一个回调。
Nova现阶段是采用以SQL为各个组件的核心共享数据存储。对于小型部署而言这种方式足以应付,但是对于大型部署而言,特别是对安全高要求的情况,Nova倾向通过聚合系统实现多重数据存储。
各组件的关系:
DB
:存储各组件数据的数据库
Web Dashboard
: 调用组件api的潜在的外部组件
api
: 接收http请求,转发命令并通过消息队列或http(对象存储采用http方式)与其他组件通信
Auth Manager
: 对用户、工程、角色能访问DB或系统文件目录进行鉴权,它不是一个进程,而是系统中大部分组件使用的一个python对象
objectstore
:仿制s3 api的对象备份http server,运行存储和检索镜像
scheduler
: 决定哪个计算节点启动虚拟机实例,即决定哪台服务器获得VM
network
: 管理ip转发,桥接和vlan(虚拟网络)
compute
: 管理与hypervisor(超级监视器)和虚拟机通信。