Nova系统框架是无共享的(shared-nothing)、基于消息传递的框架。Nova组件可以分布在多个服务器上运行,这也意味着组件之间必须用消息队列来通信。为了避免组件等待响应时产生阻塞,故采用了延迟对象,当收到响应时触发回调函数。

Nova近来开始转向使用基于sql的中央数据库,这个数据库被系统中的所有组件共享。数据的量和深度(depth)非常适合sql数据库。

对于小规模的部署,这是一个可选的解决方案。对于大规模的部署,当特别考虑安全的时候,Nova将利用集成系统使用多种数据库。

Nova组件之间的关系:

                                                      /- ( LDAP )
                         [ Auth Manager ] ---
                                     |                \- ( DB )
                                     |
                                     |
                                     |
[ Web Dashboard ] -> [ api ] -- < AMQP > ------ [ network ] - ( Flat/Vlan )
                                     |                       \
                               < HTTP >   [ scheduler ]  - [ compute ] - ( libvirt/xen )
                                     |                                        |
                           [ objectstore ]  < -  retrieves images

DB:所有组件共享的sql数据库

Web Dashboard:额外的组件,提供一个web页面,可以方便的调用api

api:一个组件,接收http请求,通过消息队列或者http在各组件之间传递命令和通信
Auth Manager:一个python类,实现系统中的组件认证用户功能,后端可以用LDAP或DB

objectstore:云存储,包含一个http 服务器,在这里的作用就是存储和检索镜像

scheduler:决定实例运行在哪个主机上

network:管理ip转发,桥接网络,和虚拟局域网(vlan)

compute:管理监视器(hypervisor)和实例之间的通信

posted on 2014-05-06 10:26  cfs111  阅读(493)  评论(0编辑  收藏  举报