searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

Nova虚拟机配置整体流程介绍

2023-09-26 02:26:56
12
0

    Nova虚拟机常规配置一般包括计算、存储、网络三类资源的基本配置。

    对于计算资源,虚拟机创建时,需指定一个规格。规格需预先创建,主要定义虚拟机的核数以及内存大小。虚拟机创建后,可通过规格变更接口关联另一个规格,变更虚拟机的核数以及内存大小,达到计算资源扩缩容的目的。

    存储资源一般由Cinder进行管理,虚拟机与Cinder所管理的卷(Volume)产生关联,虚拟机创建时,需指定一个卷列表,其中需包含一个可启动的系统卷。虚拟机创建后,可通过卷挂载/解挂接口对更多的卷进行关联或取消关联。

    网络资源一般由Neutron进行管理,虚拟机与Neutron所管理的端口(Port)产生关联。虚拟机创建时,可指定一个端口列表。虚拟机创建后,可通过端口绑定接口对更多的端口进行关联或取消关联。

    Nova虚拟机自定义配置(所谓的常规配置和自定义配置只是相对而言)则可赋予虚拟机更丰富的特性,包括配置numa拓扑、启用大页内存、启用网卡多队列等等。

    Nova虚拟机自定义配置一般通过各种附加属性或元数据实现,包括对一类虚拟机生效的规格附加属性、镜像附加属性(系统卷一般源于镜像,可通过系统卷关联到镜像),以及对单个虚拟机生效的虚拟机元数据。

    此外,Nova配置文件的配置项也会形成Nova虚拟机自定义配置,对落在当前节点的虚拟机生效。

    除Nova配置文件外,虚拟机的配置一般可通过nova-api等服务提供的RESTful API进行设置,配置记录于数据库的相关库表中。

    在虚拟机的调度阶段,nova-scheduler服务将根据数据库中虚拟机的记录(包括其关联记录)按需作用于调度过滤器及权重计算器。在虚拟机的孵化阶段,nova-compute服务将根据数据库中虚拟机的记录(包括其关联记录)以及配置文件的部分配置项,针对其所对接的虚拟化管理器(一般即为Libvirt)进行相对应的虚拟机配置设置。

    Libvirt定义了一套通过xml文件进行虚拟机配置设置的规范。nova-compute服务在其Libvirt驱动中,根据数据库中虚拟机的记录以及配置文件配置项,构造xml文件并调用Libvirt接口进行虚拟机配置设置。

    Libvirt服务对xml文件进行格式/参数校验以及默认参数填充后,将xml文件保存于指定目录中。

    完成虚拟机配置设置后,nova-compute可调用Libvirt接口进行虚拟机启动。Libvirt服务在启动虚拟机时,将读取xml文件内容,对于Qemu类型虚拟机,则根据xml文件内容进行Qemu参数的拼接。

    整体流程示意图如下:

0条评论
0 / 1000