组件原理
Nova
Nova提供一个工具来部署云,包括运行实例、管理网络以及控制用户和其他项目对云的访问。与运行在主机操作系统上潜在的虚拟化机制交互的驱动,暴露基于Web API的功能。Nova对外提供API服务,为所有API查询提供一个端点,初始化绝大多数的部署活动,以及实施一些策略。Nova部署支持单节点、双节点和多节点,实际应用推荐使用多节点。由于Nova是无共享、基于消息的架构,可以安装每个nova-service在单独的服务器上,但Dashboard必须安装在nova-api服务器上。Nova在OpenStack框架中的位置如图1。
Nova服务可部署到控制节点和计算节点上,nova-api提供Web API服务,接口采用Rest API;nova-scheduler根据CPU和内存权重,选择放置VM;nova-database数据库操作代理;nova-compute管理虚拟机生命周期。
Cinder
Cinder是一个块存储服务,向虚拟机提供可用于持久存储块存储服务,架构图如图2所示。
- Cinder Client封装Cinder提供的rest接口,以CLI形式供用户使用。
- Cinder API对外提供REST API,对操作需求进行解析,对API进行路由。寻找相应的处理方法。包含卷的增删改查(包括从源卷、镜像、快照创建)、快照增删改查、备份、volume type管理、挂载/卸载等。
- Cinder scheduler负责收集backend上报的容量、能力信息,根设定的算法完成卷到指定cinder-volume的调度。
- Cinder volume多节点部署,使用不同的配置文件、接入不同的backend设备,由各存储厂商插入driver代码与设备交互完成设备容量和能力信息收集、卷操作。
- Cinder backup实现将卷的数据备份到其他存储介质。
- SQL DB提供存储卷、快照、备份、service等数据,支持MySQL、PostgreSQL等SQL数据库。
Neutron
Neutron是一个虚拟网络管理系统,服务包括REST API、DHCP、二层网络等,通过插件式架构支持大量网络厂商设备及网络技术,架构图如图3所示。