openstack系列文章(四)

 

学习 openstack 的系列文章 - Nova

  • Nova 基本概念
  • Nova 架构
  • openstack Log
  • Nova 组件介绍
  • Nova 操作介绍

1. Nova 基本概念

Nova 是 openstack 最核心的服务,负责管理和维护云环境的计算资源,虚拟机的生命周期管理就是通过 Nova 来实现的 。

 

2. Nova 架构

2.1 Nova 基本组件

如上图所示,Nova 由多个组件构成,这些组件以子服务的形式运行 。

举例,通过  systemctl status openstack-nova-compute.service  判断 nova - compute 服务是否运行:

systemctl 命令见这篇

登陆 controller 查看 nova-scheduler 服务是否运行:

 
2.3 虚机创建步骤

这篇文章写的非常好: 

          代码模块为 nova.compute.manager, 找到该模块:

  1. find / -name compute  查找代码所在的 compute 目录;
  2. cd 到该目录,在该目录下有个 manager.py 的代码,即为运行的代码;
  3. 搜索 VM 关键字,在 1052 行找到打印这条 Log 的代码:

             

 

4. Nova 组件介绍

 4.1 nova - api 

nova - api 是 Nova 组件的门户,所有对 Nova 的请求首先会由 nova - api 进行处理。

关于虚机生命周期相关的操作,nova - api 都可以处理, openstack dashboard 中 Instances 栏的下拉菜单中记录着 nova -api 可执行的操作。

 
4.2 nova - scheduler 

nova - scheduler 根据用户的资源需求进行调用,资源需求包括 VCPU, RAM, DISK 和 Metadata , 这些资源需求定义在 flavor 中。

如何根据 flavor 进行调用?

nova - scheduler 的默认调度器是 Filter scheduler , 当Filter scheduler 执行调度操作时,会让 filter 选择满足 flavor 的计算节点,当选出满足条件的计算节点之后计算各计算节点的权重以选择最优的计算节点,在该计算节点上创建 instance。

 /etc/nova/nova.conf  中指明了默认的 filter:

RetryFilter: 刷掉已经调度过的节点。

AvailabilityZoneFilter: 将不属于指定 Availability Zone 的计算节点过滤掉,关于 Availability Zone 的介绍和设置可见这篇

注意要查看计算节点上运行的 instance 信息,需要切换到 root 用户,否则什么都显示不出来。

通过这些命令,也可以计算出这个 instance 还能够容纳多大 flavor 的 instance 。 

 

 5. Nova 操作介绍

5.1 Create Instance

 

通过 log 来分析这一创建过程,Debug 选项没开。

步骤如下:

1. 用户向 nova - api 发送请求: "create instance"

2. nova - scheduler 完成 调度,选择 compute-0 作为 instance 部署的节点

50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信