HCIE-云计算-Nova组件介绍

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
指定主机创建,迁移时候该调度失效
Nova模块-scheduler
Hale Waihona Puke 版本中用的Filter列表
调度器 RetryFilter HuaweiAvailabilityZoneFilter RamFilter HuaweiDiskFilter ComputeFilter ImagePropertiesFilter SameHostFilter DifferentHostFilter CoreFilter
Group 1 Host Aggregate
2
Availability Zone 1
Resource grouping/organization under OpenStack
1. Nova的系统架构 2. Nova各模块功能简介 3. Nova中资源管理的机制
Nova各模块功能简介
模块
nova-api nova-scheduler nova-conductor nova-compute nova-novncproxy nova-consoleauth
功能 过滤掉之前已经尝试过失败的主机 过滤指定AZ的主机 过滤出内存资源充足的主机 过滤出本地磁盘资源充足的主机 过滤出状态为up的计算主机 通过镜像的属性过滤主机 过滤出指定虚拟机集合所在的主机 过滤掉指定虚拟机集合所在的主机 过滤出vcpu资源充足的主机
备注 原生 自研 原生 自研 原生 原生 原生 原生 原生
1. Nova的系统架构 2. Nova各模块功能简介 3. Nova中资源管理的机制
Nova简介
Nova为OpenStack提供计算服务
将服务器抽象成计算资源池,管理虚拟机(实例)的生命周期。
Nova是OpenStack中最核心的项目
最初OpenStack只包括Nova和Swift项目。 为方便开发、管理、运维逐渐将各模块从Nova分离形成其他项目。
Nova模块-scheduler
版本中用的Filter列表
调度器
功能
备注
AggregateInstanceExtraSpecsFi lter
过滤出指定主机组的主机。
原生
PhysicalNetworkFilter CpuBindFilter
过滤出拥有指定物理网络的主机
Numa/evs/IO muma亲和性过滤主 机。
Nova模块-conductor
Nova-conductor 代码结构
ConductorManager:主要负责与数据库相关操作的类。 ComputeTaskManager:主要负责流程调度的类。
Nova模块-scheduler
默认为内存权重 支持CPU权重
Nova-scheduler
Chance(Random) Filter_scheduler(current used)
选择策略
基于内存权重的选择。 散列:在候选的一个大小范围内的主机中,随机选择一个主机。
Filter:对主机进行过滤的实体,支持自研扩展
scheduler_default_filters配置新写的filter。 scheduler_available_filters指定扩展的filter目录的收集函数。
2. 支持大容量水平扩展。 支持的虚拟机实例数量随着节点增加线 性增长。
3. 硬件无关,支持多种标准硬件。 无需定制专门的硬件设备。
4. 虚拟化平台无关,支持多种Hypervisor: KVM、LXC、QEMU、UML、ESX、 Xen、PowerVM、Hyper-V。 支持所有的主流虚拟化平台,不依赖特定厂商。
经过一层层的fliter处理 后,rest 请求最终到达 Wsgi app,Wsgi app 对最终的请求进行处理。 在启动app服务的时候, 会注册很多controller, 每个controller就会对 一种资源进行处理。如 Instance controller负 责对虚拟机的CURD。
Nova模块-conductor
自研 自研
ServerGroupAntiAffinityFilter ServerGroupAffinityFilter PciPassthroughFilter BandwidthFilter HypervisorInstanceExtraSpecsF ilter
过滤掉指定虚拟机集合所在的主机。 原生
CPS : compute
nonvao-vcao-mcopmupteute
CPS : fc-nova-compute
fc-fnco-nvao-vcao-mcopmupteute
CPS : vmware-nova-compute
vmware-nova-compute
FusionCompute
vCenter
功能
接受rest消息 选择合适的主机 数据库操作和复杂流程控制 虚拟机生命周期管理和资源管理 noVNC访问虚拟机代理 noVNC访问虚拟机鉴权
一般部署位置
控制节点 控制节点 控制节点 计算节点 控制节点 控制节点
Nova模块-api
Nova-api层功能
对外提供rest接口的处理 对传入的参数进行合法性校验和约束限制 对请求的资源进行配额(quota)的校验和预留 资源的创建,更新,删除查询等 虚拟机生命周期的入口 可水平扩展部署
一般部署位置 控制节点 控制节点 控制节点 计算节点 控制节点 控制节点
Nova的部署架构
CPS : controller
novan-oavpai-api novan-osvcah-esdcuhleedruler novan-ocvoan-dsucchteodruler
nova-console nova-novncproxy
NOVA-Compute
NOVA -Compute
Group 1 Host Aggregate
2
Availability Zone 1

VM1
VMn
VMm
VM
x
VM1
VMn
VMm
VM
x
NOVA-Compute
Host Aggregate 1
NOVA -Compute
NOVA-Compute
NOVA -Compute
controller
•osapi_compute_app_v2 •ec2executor •metaapp
FlavorAction Controller
others
CURD CURD CURD action
Nova-api处理流程说明
Wsgi server是RESTFUL 请求的入口,它启动了 3个服务。 其中ec2是亚马逊的 API; metadata服务可以让 虚拟机来获取一些有关 虚拟机的信息; osapi_compute是 OpenStack自己的API。
_run_pending_deletes pull_instances_with_exceptional_state
KVM XEN FusionCompute Vmware
Nova-compute中的周期性任务
周期性函数 _check_instance_build_time _heal_instance_info_cache
_poll_rebooting_instances _poll_rescued_instances _poll_unconfirmed_resizes
_poll_shelved_instances _instance_usage_audit _poll_bandwidth_usage
功能 检查虚拟机是否卡在building状态。 从neutorn同步port的状态到nova数据 库中。 检测虚拟机是否卡在rebooting状态。 检测虚拟机是否卡在rescued状态。 虚拟机修改规格后,在一定时间内自 动确认。 将shelved的虚拟机的资源删除。 定期通知虚拟机的存在。 更新虚拟机网卡带宽的使用。
模块 nova-api nova-scheduler nova-conductor nova-compute nova-novncproxy nova-consoleauth
功能 接受rest消息 选择合适的主机 数据库操作和复杂流程控制 虚拟机生命周期管理和资源管理 novnc访问虚拟机代理 novnc访问虚拟机鉴权
G版本引进。 数据库操作。解耦其他组件(nova-compute)数据库访问。 Nova复杂流程控制,如创建,冷迁移,热迁移,虚拟机规格调整,虚拟机重建。 其他组件的依赖。如nova-compute需要依赖nova-conductor启动成功后才能启动成功。 其他组件的心跳定时写入。 可水平扩展部署。
周期 60S 60S
60S 60S 60S
3600S 60S 600S
备注 原生 原生
原生 原生 原生
原生 原生 原生
Nova-compute中的周期性任务
周期性函数 _sync_power_states _reclaim_queued_deletes update_available_resource _cleanup_running_deleted_instances
Middleware(fliter)用 来将rest 请求进行处理, aceess_log会记录一个 简单的日志,内容是有关 请求要进行的操作,对于 每一个请求消息,都会生 成一个对应的 compute_req_id,comp ute_req_id会保存在 context上下文里面,整 个请求过程中都会保存。 一般将compute_req_id 传入access_log,方便 查询日志。
Nova在OpenStack中的位置
Nova的系统结构
说明:该框架使用的网络为neutron组件, 而不是传统的nova-network 1、基于消息队列的架构 2、使用延缓对象,回调函数避免组件通信阻塞 3、可以容易的水平扩展,使用于大规模的部署
Nova的系统架构实现
Nova的系统架构说明
OpenStack中负责计算资源管理的项目
允许用户使用自己的镜像文件,通过 RESTful API 创建、管理和销毁虚拟 服务器。
自身并没有提供任何虚拟化能力,相反它使用libvirt API等来与被支持的 Hypervisors交互。
Nova计算虚拟化特点
1. 基于REST API 友好的服务访问方式。
内置周期性任务,完成资源刷新,虚拟机状态同步等功能。 资源管理模块(resource_tracker)配合插件机制,完成资源的统计。 Claim模块完成资源的分配和释放。
Nova模块-compute
Nova-compute框架一览
Manager Driver hypervisor
对接的虚拟化平台
过滤出指定虚拟机集合所在的主机。 原生
过滤出拥有网络PCI设备的主机。 原生
PCI设备网卡带宽过滤。
自研
级联使用。
自研
Nova模块-compute
Nova-compute介绍
虚拟机各生命周期操作的真正执行者(会调用对应的hypervisor的 driver)。
底层对接不同虚拟化的平台(kvm, vmware, xen, hyperv, FusionCompute等)。
Nova-api处理流程
WSGI server + Paste + WebOb nova所有的rest请求的入口
Nova-api处理流程
Wsgi server
传入 Middleware(filter) 传入 wsgi app
•osapi_compute •ec2 •metadata
•compute_req_id •faultwrap •access_log •sizelimit •authtoken •Keystonecontext •ratelimit
Nova计算资源模型
Region
VM1
VMn
VMm
VM
x
VM1
VMn
VMm
VM
x
Controller Node
NOVA –Api NOVA-Scheduler Nova-Condutor …. MySQL Rabbit-MQ
NOVA-Compute
Host Aggregate 1
NOVA -Compute
负载均衡模式部署 • nova-api • nova-scheduler • nova-console • nova-conductor
主备模式部署 • nova-novncproxy • fc-nova-compute • vmware-nova-compute
单机部署 • nova-compute
相关文档
最新文档