为了实现云计算的各项功能,OpenStack实现每个项目的既定目标,将存储、计算、监控和网络服务划分为几个项目来进行开发,每个项目也是对应的OpenStack中的一个或多个组件,如图5-3-3所示为OpenStack的整体架构。
OpenStack各个组件之间耦合是非常松的。其中,Keystone是各个组件之间的通信核心,它依赖自身REST(基于Identity API)对所有的OpenStack组件提供认证和访问策略服务,每个组件都需要向Keystone进行注册,主要目的是对云平台各个组件进行认证与授权,对云平台用户进行管理,注册完成后才能获取相对应的组件通信的地址,其中包括通信的端口和IP地址,然后实现组件之间和内部子服务之间的通信。
- Nova
Nova是OpenStack计算的弹性控制器,也是整个云平台最重要的组件。其功能包括运行虚拟机实例、管理网络以及通过用户和项目来控制对云的访问。OpenStack云实例生命期所需的各种动作都将由Nova进行处理和支撑,这就意味着Nova以管理平台的身份登场,负责管理整个云的计算资源、网络、授权及测度。虽然Nova本身并不提供任何虚拟能力,但是它将使用libvirt API与虚拟机的宿主机进行交互。Nova通过自身的API对外提供处理接口,而且这些接口与Amazon的Web服务接口是兼容的。
计算服务(Nova)是云平台的工作负载的核心。如果有些云服务的工作中不包括计算,那么它们充其量只代表静态存储,所有动态活动都会涉及一些计算元素。OpenStack的其他组件依托Nova,与Nova