Config drives

注意

本节提供关于配置驱动功能的部署信息。有关配置驱动功能以及通用实例元数据的信息,请参阅 用户指南

配置驱动是在实例启动时附加到实例的特殊驱动器。实例可以挂载此驱动器并从中读取文件,以获取通常通过 元数据服务 可用的信息。

配置驱动有很多用例。其中一个用例是在不使用 DHCP 为实例分配 IP 地址时传递网络配置。例如,您可以将实例的 IP 地址配置通过配置驱动传递,实例可以在配置实例的网络设置之前挂载和访问该配置。使用配置驱动的另一个常见原因是负载。如果您的实例中运行类似 OpenStack puppet providers 的服务,它们可能会每十五分钟同时对您拥有的每个实例访问 元数据服务器。它们只是在签入和构建事实,但这不是一个可以忽略的负载。使用配置驱动后,这将变成本地(缓存)磁盘读取。最后,使用配置驱动意味着您不依赖于元数据服务处于启动、可访问或性能良好的状态来执行诸如重新启动在启动时运行 cloud-init 的实例等操作。

任何能够挂载 ISO 9660 或 VFAT 文件系统的现代客户操作系统都可以使用配置驱动。

需求和指南

要使用配置驱动,您必须遵循计算主机和镜像的以下要求。

计算主机要求

以下 virt 驱动程序支持配置驱动:libvirt 和 VMware。Bare Metal 服务也支持配置驱动。

  • 要与 libvirt 或 VMware 配合使用配置驱动,您必须首先在每个计算主机上安装 genisoimage 包。使用 mkisofs_cmd 配置选项设置安装 genisoimage 程序的位置。如果 genisoimagenova-compute 服务位于同一路径中,则无需设置此标志。

  • 要与 Bare Metal 服务配合使用配置驱动,您无需进行任何准备。

镜像要求

使用最新版本的 cloud-init 包构建的镜像可以自动访问通过配置驱动传递的元数据。cloud-init 包版本 0.7.1 适用于 Ubuntu、基于 Fedora 的镜像(例如 Red Hat Enterprise Linux)以及基于 openSUSE 的镜像(例如 SUSE Linux Enterprise Server)。如果镜像未安装 cloud-init 包,则必须自定义镜像以运行一个脚本,该脚本在启动时挂载配置驱动,从驱动器读取数据,并采取适当的操作,例如将公钥添加到帐户。有关配置驱动上数据组织方式的更多详细信息,请参阅 用户指南

配置

nova-compute 服务接受以下与配置驱动相关的选项

例如,要确保 nova 始终为实例提供配置驱动,但跳过版本 2018-08-27 (Rocky) 和 2017-02-22 (Ocata),请将以下内容添加到 nova.conf

[DEFAULT]
force_config_drive = True

[api]
config_drive_skip_versions = 2018-08-27 2017-02-22

注意

可以使用 img_config_drive 镜像元数据属性来强制启用配置驱动。此外,用户可以在启动实例时显式请求配置驱动。有关更多信息,请参阅 用户指南