文章目录
Nova计算服务
- 计算服务是openstack最核心的服务之一,负责维护和管理云环境的计算资源,它在openstack项目中代号是nova。
- Nova自身并没有提供任何虚拟化能力,它提供计算服务,使用不同的虚拟化驱动来与底层支持的Hypervisor(虚拟机管理器)进行交互。所有的计算实例(虚拟服务器)由Nova进行生命周期的调度管理(启动、挂起、停止、删除等)
- Nova需要keystone、 glance、 neutron、 cinder和swift等其他服务的支持, 能与这些服务集成,实现如加密磁盘、裸金属计算实例等。
Nova系统架构
Nova由多个服务器进程组成,每个进程执行不同的功能
DB | 用于数据存储的sql数据库 |
API | 用于接收HTTP请求、转换命令、通过消息队列或HTTP与其他组件通信的nova组件 |
Scheduler | 用于决定哪台计算节点承载实例的nova调度器 |
Network | 管理IP转发、网桥或虚拟局域网的nova网络组件 |
Compute | 管理虚拟机管理器与虚拟机之间通信的nova计算组件 |
Conductor | 处理需要协调(构建虚拟机或调整虚拟机大小)的请求,或者处理对象转换 |
Nova组件介绍–API
- API是客户访问nova的http接口,它由nova-api服务实现,nova-api服务接收和响应来自最终用户的计算api请求。作openstack对外服务的最主要接,nova-api提供 了一个集中的可以查 询所有api 的端点。
- 所有对nova的请求都首先由nova-api处理。API提供REST标准调用服务,便于与第三方系统集成。
- 最终用户不会直接改送RESTful API请求,而是通过openstack命令行、dashbord和其他需要跟nova交换的组件来使用这些API。
- 只要跟虚拟机生命周期相关的操作,nova-api都可以响应。
- Nova-api对接收到的HTTP API请求做以下处理:
●1)检查客户端传入的参数是否合法有效
●2)调用nova其他服务来处理客户端HTTP请求
●3)格式化nova其他子服务返回结果并返回给客户端- Nova- api是外部访问并使用nova提供的各种服务的唯一途径,也是客户端和nova之间的中间层。
Nove组件介绍–Scheduler
结构图
- Scheduler可译为调度器,由nova-scheduler服务实现,主要解决的是如何选择在哪个计算节点上启动实例的问题。它可以应用多种规则,如果考虑内存使用率、cpu负载率、cpu构架(intel/amd) 等多种因素,根据一定的算法,确定虚拟机实例能够运行在哪一台计算服务器上。Nova-scheduler服务会从队列中接收-一个虚拟机实例的请求,通过读取数据库的内容,从可用资源池中选择最合适的计算节点来创建新的虚拟机实例。
- 创建虚拟机实例时,用户会提出资源需求,如cpu,内存、磁盘各需要多少Openstack将这些需求定义在实例类型中,用户只需指定使用哪个实例类型