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

Nova虚拟机自定义配置方法简介

2024-06-28 10:03:07
0
0

    Nova虚拟机自定义配置可赋予虚拟机丰富的特性,包括配置numa拓扑、启用大页内存、启用网卡多队列等等。Nova虚拟机自定义配置一般通过规格附加属性、镜像附加属性以及虚拟机元数据实现。
    规格附加属性可通过专属的一类RESTful API进行设置,最终以key-value形式记录于nova库的flavor_extra_specs表中。
    规格附加属性的key-value理论上可任意设置,但仅可被nova(或ironic)识别的key-value才能产生效果。
    规格附加属性实现的自定义配置包括但不限于:配置numa拓扑、启用大页内存等。
    镜像附加属性没有专属的一类RESTful API进行设置,而是集成在镜像的创建/更新等接口中。镜像附加属性最终以key-value形式记录于glance库的image_properties表中。
    与规格附加属性类似,镜像附加属性的key-value同样理论上可任意设置。镜像附加属性实际作用于虚拟机,镜像附加属性中仅可被nova(或ironic)识别的key-value才能产生效果。
    镜像附加属性实现的自定义配置包括但不限于:设置CPU的sockets、cores、threads数量、设置网卡多队列、设置显卡类型。
    镜像附加属性与规格附加属性一般作用于两个阶段,一是虚拟机调度阶段,如在规格附加属性中设置启用大页内存,调度过滤器将过滤掉未配置大页内存或剩余大页内存数量不足的计算节点;二是虚拟机孵化/重启阶段,如在镜像附加属性中设置启用网卡多队列,将通过xml文件把虚拟机的网卡队列数设置为与vcpu数量一致。
    镜像附加属性与规格附加属性从两个维度分别对虚拟机进行自定义配置,其中部分配置项可能存在交集,包括上述的配置numa拓扑、启用大页内存、启用网卡多队列等。若镜像附加属性与规格附加属性对同一个配置项进行了显式声明,则配置值必须一致,如存在冲突,不管是在虚拟机的调度阶段还是孵化/重启阶段,都将导致报错。
    虚拟机在初次创建时,会将部分镜像附加属性记录在虚拟机系统元数据(system_metadata)中,在后续的孵化/重启阶段不再通过访问glance获取镜像附加属性。因此,镜像附加属性的变更将无法作用于存量的虚拟机。
    此外,部分规格附加属性会在虚拟机在初次创建或规格变更时转化为虚拟机的属性,譬如numa拓扑和大页内存配置,将转化为虚拟机的numa拓扑属性。因此,规格附加属性的变更一般不会影响到存量的虚拟机。
    虚拟机元数据是一种灵活度较高的虚拟机自定义配置方式。虚拟机元数据可通过专属的一类RESTful API进行设置,最终以key-value形式记录于nova库的instance_metadata表中。在未做特定支持的情况下,设置虚拟机元数据并不产生效果。
    此外,区分于虚拟机元数据的还有虚拟机系统元数据,虚拟机系统元数据以key-value形式记录于nova库的instance_system_metadata表中,部分系统元数据即来源于镜像附加属性。
    需要注意的是,元数据和系统元数据的key-value长度因数据库表结构相关字段长度的限制而有所限制。

0条评论
0 / 1000