OpenStack的部署(五)------NOVA项目

一、相关概念

1、Nova计算服务

计算服务是openstack最核心的服务之一,负责维护和管理云环境的计算资源,它在openstack项目中代号是nova。
Nova自身并没有提供任何虚拟化能力,它提供计算服务,使用不同的虚拟化驱动来与底层支持的Hypervisor(虚拟机管理器)进行交互。所有的计算实例(虚拟服务器)由Nova进行生命周期的调度管理(启动、挂起、停止、删除等)
Nova需要keystoneglanceneutroncinderswift等其他服务的支持,能与这些服务集成,实现如加密磁盘、裸金属计算实例等。

2、Nova系统架构

在这里插入图片描述
外部联系

  • DB:用于数据存储的sql数据库
  • Network:管理IP转发、网桥或虚拟局域网的nova网络组件
  • Keystone:安全认证的组件
  • Glance & Cinder:负责管理镜像的组件

内部结构

  • API:用于接收HTTP请求、转换命令、通过消息队列或HTTP与其他组件通信的nova组件
  • Scheduler:用于决定哪台计算节点承载计算实例的nova调度器
  • Compute:管理虚拟机管理器与虚拟机之间通信的nova计算组件
  • Conductor:处理需要协调(构建虚拟机或调整虚拟机大小)的请求,或处理对象转换

二、nova组件介绍

1、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之间的中间层

2、Scheduler----调度器

Scheduler可译为调度器,由nova-scheduler服务实现,主要解决的是如何选择在哪个计算节点上启动实例的问题,它可以应用多种规则,如果考虑内存使用率,cpu负载率、cpu架构(Intel/amd)等多种因素,根据一定的算法,确定虚拟机实例能够运行在哪一台计算服务器上,nova-scheduler服务会从队列中接收一个虚拟机实例的请求,通过读取数据库的内容,从可用资源池中选择最合适的计算节点来创建新的虚拟机实例
创建虚拟机实例时,用户会提出资源需求,如cpu、内存、磁盘各需要多少,openstack讲这些需求定义在实例类型中,用户只需指定使用哪个实例类型就可以了

(1) nova调度器的类型

  • 随机调度器(chance scheduler) :从所有正常运行nova-compute服务的节点中随机选择。
  • 过滤器调度器(filter scheduler):根据指定的过滤条件以及权重选择最佳的计算节点,Filter又称为筛选器
    • 调度器调度过程:主要分两个阶段
      • 通过指定的过滤器选择满足条件的计算节点,比如内存使用率小于50%,可以使用多个过滤器依次进行过滤。
      • 过滤之后的主机列表进行权重计算并排序选择最优的计算节点来创建虚拟机实例。
  • 缓存调度器(caching scheduler):可看作随机调度器的一种特殊类型,在随机调度的基础上将主机资源信息缓存在本地内存中,然后通过后台的定时任务定时从数据库中获取最新的主机资源信息。

(2)过滤器

在这里插入图片描述

当过滤调度器需要执行调度操作时,会让过滤器对计算节点进行判断,返回True或False。

在配置文件/etc/nova/nova.conf中

  • scheduler_available_filters选项用于配置可用过滤器,默认是所有nova自带的过滤器都可以用于过滤作用
  • 另外还有一个选项scheduler_ default_ filters用于指定,nova-scheduler服务真正使用的过滤器

过滤调度器将按照下列顺序依次过滤

RetryFilter(再审过滤器)
主要作用是过滤掉之前已经调度过的节点。如A、B、C都通过了过滤,A权重最大被选中执行操作,由于某种原因,操作在A上失败了。Nova-filter将重新执行过滤操作,那么此时A就被会RetryFilter直接排除, 以免再次失败

AvailabilityZoneFilter (可用区域过滤器)
为提高容灾性并提供隔离服务,可以将计算节点划分到不同的可用区域中。Openstack默认有一个命名为nova的可用区域,所有的计算节点初始是放在nova区域中的。用户可以根据需要创建自己的一个可用区域。创建实例时,需要指定将实例部署在哪个可用区域中。Nova-scheduler执行过滤操作时,会使用AvailabilityZoneFilter不属于指定可用区域计算节点过滤掉

RamFilter (内存过滤器)
根据可用内存来调度虚拟机创建,将不能满足实例类型内存需求的计算节点过滤掉,但为了提高系统资源利用率,Openstack在计算节点的可用内存时允许超过实际内存大小,超过的程度是通过nova.conf配置文件中
ram_allocation_ratio参数来控制的,默认值是1.5。
vi /etc/nova/nova.conf
ram_ allocation_ ratio=1 .5

DiskFilter (硬盘调度器)
根据磁盘空间来调度虚拟机创建,将不能满足类型磁盘需求的计算节点过滤掉。磁盘同样允许超量,超量值可修改nova.conf中disk_allocation ratio参数控制,默认值是1.0
vi /etc/nova/nova.conf
disk_allcation_ratio=1.0

ComputeFilter(计算过滤器)
保证只有nova-compute服务正常:工作的计算节点才能被nova-scheduler调度,它是必选的过滤器。

ComputeCapablilitiesFilter (计算能力过滤器)
根据计算节点的特性来过滤,如x86_ 64和ARM架构的不同节点,将实例分别进行过滤

ImagePropertiesFilter(镜像属性过滤器)
根据所选镜像的属性来筛选匹配的计算节点。通过元数据来指定其属性。如希望镜像只运行在KVM的Hypervisor上,可以通过Hypervisor Type属性来指定。

ServerGroupAntiAffinityFilter(服务器组反亲和性过滤器)
要求尽量将实例分散部署到不同的节点上。例如有3个实例s1、s2、s3, 3个计算节点A、B、C。具体操作如下:
创建一个anti-affinit策略的服务器组
openstack server group create -policy antiaffinity group-1
创建三个实例,将它们放入group-1服务器组
openstack server create -flavor m1.tiny -image cirros -hint group=group-1 s1
openstack server create -flavor m1.tiny -image cirros -hint group=group-1 s2
openstack server create -flavor m1.tiny -image cirros -hint group=group-1 s3
ServerGroupAffinityFilter(服务器组亲和性过滤器)
与反亲和性过滤器相反,此过滤器尽量将实例部署到同-个计算节点上

(3)权重(weight)

  • nova-scheduler服务可以使用多个过滤器依次进行过滤。过滤之后的节点再通过计算权重选出能够部署实例的节点。
  • 注意:
    • 所有权重位于nova/scheduler/weights目录下。目前默认实现是RAMweighter,根据计算节点空闲的内存量计算权重值,空闲越多,权重越大,实例将被部署到当前空闲内存最多的计算节点上
  • openstack源码位置 /usr/lib/python2.7/site-packages
  • 权重源码位置 /usr/lib/python2.7site-packages/nova/scheduler/weights

3、Compute----计算器

  • Nova-compute在计算节点上运行,负责管理节点上的实例
    • 通常一个主机运行一个Nova-compute服务,一个实例部署在哪个可用的主机上取决于调度算法。OpenStack对实例的操作, 最后都是提交给Nova-compute来完成。
  • Nova-compute可分为两类
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值