实例选项¶
实例选项是与实例直接相关的配置选项。
有关如何设置实例选项的说明,请参见 配置实例选项。
键值配置是命名空间的。以下选项可用
请注意,虽然为每个选项定义了一个类型,但所有值都存储为字符串,并且应通过 REST API 导出为字符串(这使得支持任何额外的值成为可能,而不会破坏向后兼容性)。
杂项选项¶
除了以下部分列出的配置选项外,还支持以下实例选项
键 | agent.nic_config |
类型 | bool |
默认值 |
|
实时更新 | 否 |
条件 | 虚拟机 |
对于容器,默认网络接口的名称和 MTU 用于实例设备。对于虚拟机,将此选项设置为 true
以将默认网络接口的名称和 MTU 设置为与实例设备相同。
键 | cluster.evacuate |
类型 | string |
默认值 |
|
实时更新 | 否 |
cluster.evacuate
提供对集群成员被撤离时如何处理实例的控制。
可用模式
auto
(默认): 系统将根据实例的类型和配置的设备自动确定最佳撤离方法如果任何设备不适合迁移,则不会迁移实例(只会停止)。
实时迁移仅适用于启用了
migration.stateful
设置且所有设备也可以迁移的虚拟机。
live-migrate
: 实例被实时迁移到另一台服务器。这意味着实例在迁移过程中保持运行和操作,从而确保最小的中断。migrate
: 在此模式下,实例被迁移到集群中的另一台服务器。迁移过程不会实时进行,这意味着实例在迁移过程中会短暂停机。stop
: 实例不会被迁移。相反,它们将在当前服务器上停止。stateful-stop
: 实例不会被迁移。相反,它们将在当前服务器上停止,但其运行时状态(内存)将存储在磁盘上,以便在恢复时恢复。force-stop
: 实例不会被迁移。相反,它们将被强制停止。
有关更多信息,请参见 撤离和恢复集群成员。
键 | linux.kernel_modules |
类型 | string |
实时更新 | yes |
条件 | 容器 |
将内核模块指定为逗号分隔的列表。
键 | environment.* |
类型 | string |
实时更新 | yes (exec) |
您可以将键值环境变量导出到实例。然后为 incus exec
设置这些变量。
cloud-init
配置¶
以下实例选项控制实例的 cloud-init
配置
键 | cloud-init.network-config |
类型 | string |
默认值 |
|
实时更新 | 否 |
条件 | 如果镜像支持 |
内容用作 cloud-init
的种子值。
键 | cloud-init.user-data |
类型 | string |
默认值 |
|
实时更新 | 否 |
条件 | 如果镜像支持 |
内容用作 cloud-init
的种子值。
键 | cloud-init.vendor-data |
类型 | string |
默认值 |
|
实时更新 | 否 |
条件 | 如果镜像支持 |
内容用作 cloud-init
的种子值。
键 | user.network-config |
类型 | string |
默认值 |
|
实时更新 | 否 |
条件 | 如果镜像支持 |
键 | user.user-data |
类型 | string |
默认值 |
|
实时更新 | 否 |
条件 | 如果镜像支持 |
键 | user.vendor-data |
类型 | string |
默认值 |
|
实时更新 | 否 |
条件 | 如果镜像支持 |
对这些选项的支持取决于使用的镜像,并不保证。
如果同时指定了 cloud-init.user-data
和 cloud-init.vendor-data
,则将合并两个选项的内容。因此,请确保在这些选项中指定的 cloud-init
配置不包含相同的键。
资源限制¶
以下实例选项指定实例的资源限制
键 | limits.cpu.allowance |
类型 | string |
默认值 | 100% |
实时更新 | yes |
条件 | 容器 |
要控制可以使用多少 CPU,请指定百分比 (50%
) 用于软限制,或指定时间段 (25ms/100ms
) 用于硬限制。
有关更多信息,请参阅 配额和优先级 (仅限容器)。
键 | limits.cpu.nodes |
类型 | string |
实时更新 | yes |
将实例 CPU 放置在的 NUMA 节点 ID 或范围的逗号分隔列表。或者,可以使用值 balanced
使 Incus 在启动时选择最不繁忙的 NUMA 节点。
有关更多信息,请参阅 配额和优先级 (仅限容器)。
键 | limits.cpu.priority |
类型 | 整数 |
默认值 |
|
实时更新 | yes |
条件 | 容器 |
在超额分配资源时,指定与共享相同 CPU 的其他实例相比的 CPU 调度优先级。指定 0 到 10 之间的整数。
有关更多信息,请参阅 配额和优先级 (仅限容器)。
键 | limits.disk.priority |
类型 | 整数 |
默认值 |
|
实时更新 | yes |
控制在负载下对实例 I/O 请求的优先级。
指定 0 到 10 之间的整数。
键 | limits.hugepages.1GB |
类型 | string |
实时更新 | yes |
条件 | 容器 |
用于限制 1 GB 大页数量的固定值(以字节为单位)。支持各种后缀(请参阅 存储、内存和网络限制的单位)。
有关更多信息,请参阅 大页限制。
键 | limits.hugepages.1MB |
类型 | string |
实时更新 | yes |
条件 | 容器 |
用于限制 1 MB 大页数量的固定值(以字节为单位)。支持各种后缀(请参阅 存储、内存和网络限制的单位)。
有关更多信息,请参阅 大页限制。
键 | limits.hugepages.2MB |
类型 | string |
实时更新 | yes |
条件 | 容器 |
用于限制 2 MB 大页数量的固定值(以字节为单位)。支持各种后缀(请参阅 存储、内存和网络限制的单位)。
有关更多信息,请参阅 大页限制。
键 | limits.hugepages.64KB |
类型 | string |
实时更新 | yes |
条件 | 容器 |
用于限制 64 KB 大页数量的固定值(以字节为单位)。支持各种后缀(请参阅 存储、内存和网络限制的单位)。
有关更多信息,请参阅 大页限制。
键 | limits.memory |
类型 | string |
默认值 |
|
实时更新 | yes |
主机内存的百分比或以字节为单位的固定值。支持各种后缀。
有关详细信息,请参阅存储、内存和网络限制的单位。
键 | limits.memory.enforce |
类型 | string |
默认值 |
|
实时更新 | yes |
条件 | 容器 |
如果实例的内存限制为hard
,则实例不能超过其限制。如果它为soft
,则实例可以在有额外主机内存可用时超过其内存限制。
键 | limits.memory.hugepages |
类型 | bool |
默认值 |
|
实时更新 | 否 |
条件 | 虚拟机 |
如果此选项设置为false
,则使用常规系统内存。
键 | limits.memory.swap |
类型 | string |
默认值 |
|
实时更新 | yes |
条件 | 容器 |
当设置为true
或false
时,它控制容器是否可能被内核交换掉部分内存。或者,它可以设置为字节值,然后允许容器通过交换使用额外的内存。
键 | limits.memory.swap.priority |
类型 | 整数 |
默认值 |
|
实时更新 | yes |
条件 | 容器 |
指定 0 到 10 之间的整数。值越高,实例越不可能被交换到磁盘。
键 | limits.kernel.* |
类型 | string |
实时更新 | 否 |
条件 | 容器 |
您可以对实例设置内核限制,例如,您可以限制打开的文件数量。有关更多信息,请参阅内核资源限制。
CPU 限制¶
您可以选择不同的方法来限制 CPU 使用率
将
limits.cpu
设置为限制实例可以看到和使用的 CPU。有关如何设置此选项,请参阅CPU 固定。将
limits.cpu.allowance
设置为限制实例可以在可用 CPU 上施加的负载。此选项仅适用于容器。有关如何设置此选项,请参阅配额和优先级(仅限容器)。
可以同时设置这两个选项,以限制实例可见的 CPU 和这些实例的允许使用情况。但是,如果您将limits.cpu.allowance
与时间限制一起使用,您应该避免额外使用limits.cpu
,因为这会对调度程序施加很多约束,并可能导致分配效率降低。
CPU 限制是通过cpuset
和cpu
cgroup 控制器混合实现的。
CPU 固定¶
limits.cpu
通过cpuset
控制器导致 CPU 固定。您可以指定哪些 CPU 或有多少个 CPU 对实例可见且可用
要指定要使用的 CPU,请将
limits.cpu
设置为一组 CPU(例如,1,2,3
)或一个 CPU 范围(例如,0-3
)。要固定到单个 CPU,请使用范围语法(例如,
1-1
)将其与 CPU 数量区分开来。如果您指定了一个 CPU 数量(例如,
4
),Incus 将对所有未固定到特定 CPU 的实例进行动态负载均衡,尝试将负载分散在机器上。每当实例启动或停止时,以及每当向系统添加 CPU 时,都会重新平衡实例。
虚拟机的 CPU 限制¶
注意
Incus 支持实时更新limits.cpu
选项。但是,对于虚拟机,这仅意味着相应的 CPU 处于热插拔状态。根据客户机操作系统的不同,您可能需要重新启动实例或完成一些手动操作才能将新的 CPU 联机。
Incus 虚拟机默认只分配一个 vCPU,它显示为与主机 CPU 供应商和类型匹配,但只有一个内核,没有线程。
当limits.cpu
设置为单个整数时,Incus 会分配多个 vCPU,并将其作为完整内核公开给客户机。这些 vCPU 不会固定到主机上的特定物理内核。vCPU 的数量可以在 VM 运行时更新。
当limits.cpu
设置为 CPU ID 的范围或逗号分隔列表(如incus info --resources
提供)时,vCPU 会固定到这些物理内核。在这种情况下,Incus 会检查 CPU 配置是否与真实的硬件拓扑结构相符,如果相符,它将在客户机中复制该拓扑结构。在进行 CPU 固定时,无法在 VM 运行时更改配置。
例如,如果固定配置包括八个线程,每个线程对来自同一个内核,并且跨两个 CPU 分布了偶数个内核,则客户机将显示两个 CPU,每个 CPU 都有两个内核,每个内核都有两个线程。NUMA 布局也会类似地复制,在这种情况下,客户机很可能最终会有两个 NUMA 节点,每个 CPU 插槽一个。
在具有多个 NUMA 节点的这种环境中,内存也会类似地跨 NUMA 节点划分,并相应地固定在主机上,然后公开给客户机。
所有这些都允许在客户机中执行非常高性能的操作,因为客户机调度程序可以正确地推断插槽、内核和线程,以及在共享内存或将进程跨 NUMA 节点移动时考虑 NUMA 拓扑结构。
配额和优先级(仅限容器)¶
limits.cpu.allowance
驱动 CFS 调度程序配额(当传递时间约束时),或通用 CPU 共享机制(当传递百分比值时)
时间约束(例如,
20ms/50ms
)是一个硬限制。例如,如果您想允许容器使用不超过一个 CPU,请将limits.cpu.allowance
设置为类似100ms/100ms
的值。该值相对于一个 CPU 的时间值,因此要限制为两个 CPU 的时间值,请使用类似100ms/50ms
或200ms/100ms
的值。在使用百分比值时,限制是一个软限制,仅在负载下应用。它用于计算实例的调度程序优先级,相对于任何其他使用相同 CPU 或 CPU 的实例。例如,要将容器的 CPU 使用率限制为负载下的一个 CPU,请将
limits.cpu.allowance
设置为100%
。
limits.cpu.priority
是另一个因素,用于在多个实例共享一组 CPU 并且分配给它们的 CPU 百分比相同的情况下,计算调度程序优先级得分。
巨页限制¶
Incus 允许通过limits.hugepage.[size]
键限制容器可用的巨页数量。
体系结构通常公开多个巨页大小。可用的巨页大小取决于体系结构。
为巨页设置限制在 Incus 配置为拦截hugetlbfs
文件系统的mount
系统调用(在无特权容器中)时特别有用。当 Incus 拦截hugetlbfs
mount
系统调用时,它会为容器挂载hugetlbfs
文件系统,并使用正确的uid
和gid
值作为挂载选项。这使得从无特权容器使用巨页成为可能。但是,建议通过limits.hugepages.[size]
限制容器可用的巨页数量,以阻止容器耗尽主机可用的巨页。
限制巨型页面的操作通过 hugetlb
cgroup 控制器完成,这意味着主机系统必须在旧版或统一 cgroup 层次结构中公开 hugetlb
控制器,才能应用这些限制。
内核资源限制¶
对于容器实例,Incus 公开了通用的命名空间键 limits.kernel.*
,可用于设置资源限制。
它之所以通用,是因为 Incus 不会对在 limits.kernel.*
前缀之后指定的资源进行任何验证。Incus 不可能了解给定内核支持的所有可能的资源。相反,Incus 只会在 limits.kernel.*
前缀之后传递相应的资源键及其值给内核。内核将进行相应的验证。这允许用户在其系统上指定任何支持的限制。
一些常见的限制包括
键 | limits.kernel.sigpending |
类型 | string |
资源 |
|
有关所有可用限制的完整列表,请参阅 getrlimit(2)
/setrlimit(2)
系统调用的手册页。
要在 limits.kernel.*
命名空间中指定限制,请使用小写的资源名称,不使用 RLIMIT_
前缀。例如,RLIMIT_NOFILE
应指定为 nofile
。
限制由两个冒号分隔的值指定,这些值可以是数字或单词 unlimited
(例如,limits.kernel.nofile=1000:2000
)。可以使用单个值作为快捷方式,将软限制和硬限制都设置为相同的值(例如,limits.kernel.nofile=3000
)。
没有明确配置限制的资源将继承启动容器的进程的限制。请注意,这种继承不是由 Incus 强制执行的,而是由内核强制执行的。
迁移选项¶
以下实例选项控制实例从一台 Incus 服务器移动到另一台时的行为
键 | migration.incremental.memory |
类型 | bool |
默认值 |
|
实时更新 | yes |
条件 | 容器 |
使用实例内存的增量内存传输可以减少停机时间。
键 | migration.incremental.memory.goal |
类型 | 整数 |
默认值 |
|
实时更新 | yes |
条件 | 容器 |
键 | migration.incremental.memory.iterations |
类型 | 整数 |
默认值 |
|
实时更新 | yes |
条件 | 容器 |
NVIDIA 和 CUDA 配置¶
以下实例选项指定实例的 NVIDIA 和 CUDA 配置
键 | nvidia.driver.capabilities |
类型 | string |
默认值 |
|
实时更新 | 否 |
条件 | 容器 |
指定的驱动程序功能用于设置 libnvidia-container NVIDIA_DRIVER_CAPABILITIES
。
键 | nvidia.require.cuda |
类型 | string |
实时更新 | 否 |
条件 | 容器 |
指定的版本表达式用于设置 libnvidia-container NVIDIA_REQUIRE_CUDA
。
键 | nvidia.require.driver |
类型 | string |
实时更新 | 否 |
条件 | 容器 |
指定的版本表达式用于设置 libnvidia-container NVIDIA_REQUIRE_DRIVER
。
原始实例配置覆盖¶
以下实例选项允许直接与 Incus 本身使用的后端功能进行交互
键 | raw.qemu.conf |
类型 | blob |
实时更新 | 否 |
条件 | 虚拟机 |
更多信息请参见 覆盖 QEMU 配置。
键 | raw.qemu.qmp.pre-start |
类型 | blob |
实时更新 | 否 |
条件 | 虚拟机 |
重要
设置这些 raw.*
键可能会以非明显的方式破坏 Incus。因此,您应该避免设置任何这些键。
覆盖 QEMU 配置¶
对于虚拟机实例,Incus 通过配置文件来配置 QEMU,该文件使用 -readconfig
命令行选项传递给 QEMU。此配置文件在每个实例启动之前生成。它位于 /run/incus/<instance_name>/qemu.conf
。
默认配置适用于 Incus 最常见的用例:具有 VirtIO 设备的现代 UEFI 来宾。但是,在某些情况下,您可能需要覆盖生成的配置。例如
运行不支持 UEFI 的旧来宾操作系统。
当来宾操作系统不支持 VirtIO 时,指定自定义虚拟设备。
在机器启动之前添加 Incus 不支持的设备。
删除与来宾操作系统冲突的设备。
要覆盖配置,请设置 raw.qemu.conf
选项。它支持类似于 qemu.conf
的格式,但也有一些补充。由于它是一个多行配置选项,因此您可以使用它来修改多个部分或键。
要替换生成的配置文件中的部分或键,请添加一个具有不同值的节。
例如,使用以下节来覆盖默认的
virtio-gpu-pci
GPU 驱动程序raw.qemu.conf: |- [device "qemu_gpu"] driver = "qxl-vga"
要删除一个节,请指定一个没有任何键的节。例如
raw.qemu.conf: |- [device "qemu_gpu"]
要删除一个键,请指定一个空字符串作为值。例如
raw.qemu.conf: |- [device "qemu_gpu"] driver = ""
要添加一个新的节,请指定配置文件中不存在的节名称。
QEMU 使用的配置文件格式允许具有相同名称的多个节。以下是 Incus 生成的配置的一部分
[global]
driver = "ICH9-LPC"
property = "disable_s3"
value = "1"
[global]
driver = "ICH9-LPC"
property = "disable_s4"
value = "1"
要指定要覆盖的节,请指定一个索引。例如
raw.qemu.conf: |-
[global][1]
value = "0"
节索引从 0 开始(当未指定时,这是默认值),因此上面的示例将生成以下配置
[global]
driver = "ICH9-LPC"
property = "disable_s3"
value = "1"
[global]
driver = "ICH9-LPC"
property = "disable_s4"
value = "0"
覆盖 QEMU 运行时对象¶
虽然 raw.qemu
和 raw.qemu.conf
可用于更改传递给 QEMU 的参数和配置文件,但现在很多设备都是通过 QMP 添加的。
Incus 使用它来添加可能需要在运行时重新配置的任何设备,实际上就是可以热插拔的任何设备。
这些设备无法通过配置或命令行来覆盖,而是可以使用其他配置键来直接运行 QMP 命令。
固定命令可以通过 raw.qemu.early
、raw.qemu.pre-start
和 raw.qemu.post-start
配置键提供。这些键接受一个 JSON 编码的 QMP 命令列表来运行。
这些钩子对应于
early
在 Incus 通过 QMP 添加任何设备之前运行pre-start
在 Incus 添加完所有设备后,虚拟机启动之前运行post-start
在虚拟机启动后立即运行
对于需要动态 QMP 交互的任何人,例如在修改或生成新对象之前检索某些对象的当前值,也可以使用脚本将这些钩子附加到这些钩子上。
这可以通过 raw.qemu.scriptlet
完成。脚本必须定义 qemu_hook(hook_name)
函数。
以下命令公开给该脚本
log_info
将记录一条INFO
消息log_warn
将记录一条WARNING
消息log_error
将记录一条ERROR
消息run_qmp
将运行任意 QMP 命令(JSON)并返回其输出run_command
将使用可选的参数列表运行指定的命令并返回其输出
此外,以下别名命令(在内部使用 run_command
)也可用于简化脚本
blockdev_add
blockdev_del
chardev_add
chardev_change
chardev_remove
device_add
device_del
netdev_add
netdev_del
object_add
object_del
qom_get
qom_list
qom_set
安全策略¶
以下实例选项控制实例的 安全 策略
键 | security.agent.metrics |
类型 | bool |
默认值 |
|
实时更新 | 否 |
条件 | 虚拟机 |
键 | security.csm |
类型 | bool |
默认值 |
|
实时更新 | 否 |
条件 | 虚拟机 |
启用此选项时,请将 security.secureboot
设置为 false
。
键 | security.guestapi |
类型 | bool |
默认值 |
|
实时更新 | 否 |
更多信息请参见 实例与主机之间的通信。
键 | security.guestapi.images |
类型 | bool |
默认值 |
|
实时更新 | 否 |
条件 | 容器 |
键 | security.idmap.isolated |
类型 | bool |
默认值 |
|
实时更新 | 否 |
条件 | 无特权容器 |
如果指定,则用于该实例的 idmap 在设置了此选项的实例中是唯一的。
键 | security.protection.shift |
类型 | bool |
默认值 |
|
实时更新 | yes |
条件 | 容器 |
将此选项设置为 true
以防止实例的文件系统在启动时发生 UID/GID 偏移。
键 | security.secureboot |
类型 | bool |
默认值 |
|
实时更新 | 否 |
条件 | 虚拟机 |
禁用此选项时,请考虑启用 security.csm
。
键 | security.sev.policy.es |
类型 | bool |
默认值 |
|
实时更新 | 否 |
条件 | 虚拟机 |
键 | security.sev.session.data |
类型 | string |
默认值 |
|
实时更新 | 否 |
条件 | 虚拟机 |
键 | security.sev.session.dh |
类型 | string |
默认值 |
|
实时更新 | 否 |
条件 | 虚拟机 |
键 | security.syscalls.allow |
类型 | string |
实时更新 | 否 |
条件 | 容器 |
允许的系统调用的 \n
分隔列表。此列表必须与 security.syscalls.deny*
互斥。
键 | security.syscalls.deny |
类型 | string |
实时更新 | 否 |
条件 | 容器 |
拒绝的系统调用的 \n
分隔列表。此列表必须与 security.syscalls.allow
互斥。
键 | security.syscalls.deny_compat |
类型 | bool |
默认值 |
|
实时更新 | 否 |
条件 | 容器 |
在 x86_64
上,此选项控制是否阻止 compat_*
系统调用。在其他架构上,此选项将被忽略。
键 | security.syscalls.deny_default |
类型 | bool |
默认值 |
|
实时更新 | 否 |
条件 | 容器 |
键 | security.syscalls.intercept.bpf |
类型 | bool |
默认值 |
|
实时更新 | 否 |
条件 | 容器 |
键 | security.syscalls.intercept.bpf.devices |
类型 | bool |
默认值 |
|
实时更新 | 否 |
条件 | 容器 |
此选项控制是否允许在统一层次结构中的设备 cgroup 中加载 BPF 程序。
键 | security.syscalls.intercept.mknod |
类型 | bool |
默认值 |
|
实时更新 | 否 |
条件 | 容器 |
这些系统调用允许创建字符/块设备的有限子集。
键 | security.syscalls.intercept.mount |
类型 | bool |
默认值 |
|
实时更新 | 否 |
条件 | 容器 |
键 | security.syscalls.intercept.mount.allowed |
类型 | string |
实时更新 | yes |
条件 | 容器 |
指定一个以逗号分隔的列表,列出可以安全地挂载到实例内部进程的文件系统。
键 | security.syscalls.intercept.mount.fuse |
类型 | string |
实时更新 | yes |
条件 | 容器 |
指定应重定向到其 FUSE 实现的给定文件系统的挂载点(例如,ext4=fuse2fs
)。
键 | security.syscalls.intercept.mount.shift |
类型 | bool |
默认值 |
|
实时更新 | yes |
条件 | 容器 |
键 | security.syscalls.intercept.sched_setcheduler |
类型 | bool |
默认值 |
|
实时更新 | 否 |
条件 | 容器 |
此系统调用允许提高进程优先级。
键 | security.syscalls.intercept.setxattr |
类型 | bool |
默认值 |
|
实时更新 | 否 |
条件 | 容器 |
此系统调用允许设置受限扩展属性的有限子集。
快照调度和配置¶
以下实例选项控制 实例快照 的创建和过期。
键 | snapshots.pattern |
类型 | string |
默认值 |
|
实时更新 | 否 |
指定一个表示快照名称的 Pongo2 模板字符串。此模板用于计划的快照和未命名的快照。
有关详细信息,请参阅 自动快照名称。
键 | snapshots.schedule |
类型 | string |
默认值 | empty |
实时更新 | 否 |
指定 cron 表达式(<minute> <hour> <dom> <month> <dow>
)、以逗号和空格分隔的计划别名列表(@startup
、@hourly
、@daily
、@midnight
、@weekly
、@monthly
、@annually
、@yearly
),或留空以禁用自动快照。
请注意,与大多数其他配置键不同,此键必须以逗号和空格分隔,而不能只是逗号分隔,因为 cron 表达式本身可能包含逗号。
自动快照名称¶
snapshots.pattern
选项接受一个 Pongo2 模板字符串来格式化快照名称。
要向快照名称添加时间戳,请使用 Pongo2 上下文变量 creation_date
。请确保在模板字符串中格式化日期,以避免快照名称中出现禁止的字符。例如,将 snapshots.pattern
设置为 {{ creation_date|date:'2006-01-02_15-04-05' }}
,以根据快照创建的时间(精确到秒)对快照进行命名。
避免名称冲突的另一种方法是在模式中使用占位符 %d
。对于第一个快照,占位符将被替换为 0
。对于后续的快照,将考虑现有的快照名称,以查找占位符位置处最大的数字。然后,将该数字加一,以生成新的名称。
易失性内部数据¶
以下易失性键目前由 Incus 在内部使用,用于存储特定于实例的内部数据
键 | volatile.<name>.hwaddr |
类型 | string |
当设备本身未设置 hwaddr
属性时,将使用网络设备 MAC 地址。
键 | volatile.<name>.last_state.created |
类型 | string |
可能的值为 true
或 false
。
键 | volatile.<name>.last_state.hwaddr |
类型 | string |
将物理设备移入实例时使用的原始 MAC。
键 | volatile.<name>.last_state.ip_addresses |
类型 | string |
网络设备上次使用的 IP 地址的逗号分隔列表。
键 | volatile.<name>.last_state.mtu |
类型 | string |
将物理设备移入实例时使用的原始 MTU。
键 | volatile.<name>.last_state.pci.driver |
类型 | string |
PCI 设备的原始主机驱动程序。
键 | volatile.<name>.last_state.pci.parent |
类型 | string |
将 PCI 设备分配给实例时使用的父主机设备。
键 | volatile.<name>.last_state.pci.slot.name |
类型 | string |
父主机设备 PCI 插槽名称。
键 | volatile.<name>.last_state.usb.bus |
类型 | string |
原始 USB 总线地址。
键 | volatile.<name>.last_state.usb.device |
类型 | string |
原始 USB 设备标识符。
键 | volatile.<name>.last_state.vdpa.name |
类型 | string |
将 VDPA 设备文件描述符移入实例时使用的 VDPA 设备名称。
键 | volatile.<name>.last_state.vf.hwaddr |
类型 | string |
将 VF 移入实例时使用的原始 MAC。
键 | volatile.<name>.last_state.vf.id |
类型 | string |
将 VF 移入实例时使用的 ID。
键 | volatile.<name>.last_state.vf.parent |
类型 | string |
将 VF 分配给实例时使用的父主机设备。
键 | volatile.<name>.last_state.vf.spoofcheck |
类型 | string |
将 VF 移入实例时使用的原始欺骗检查设置。
键 | volatile.<name>.last_state.vf.vlan |
类型 | string |
将 VF 移入实例时使用的原始 VLAN。
键 | volatile.<name>.vgpu.uuid |
类型 | string |
NVIDIA 虚拟 GPU 实例 UUID。
键 | volatile.cloud_init.instance-id |
类型 | string |
键 | volatile.cluster.group |
类型 | string |
在创建时将实例限制为的集群组。这在重新调度事件(如疏散)期间使用,以使实例保持在请求的集中。
键 | volatile.uuid.generation |
类型 | string |
只要实例在时间轴上的位置后退,实例生成 UUID 就会发生变化。它在所有服务器和项目中全局唯一。
注意
用户无法设置易失性键。