API 扩展

以下更改是在 1.0 API 最终确定后引入 Incus API 的。

它们都向后兼容,并且可以通过客户端工具在 GET /1.0 中查看 api_extensions 字段来检测。

storage_zfs_remove_snapshots

引入了 storage.zfs_remove_snapshots 守护进程配置键。

这是一个布尔值,默认值为 false,当设置为 true 时,会指示 Incus 在尝试恢复另一个快照时删除任何所需的快照。

这是因为 ZFS 只能让你恢复最新的快照。

container_host_shutdown_timeout

引入了 boot.host_shutdown_timeout 容器配置键。

这是一个整数,它指示 Incus 在杀死容器之前应等待容器停止多长时间。

它的值仅在 Incus 守护进程干净关闭时使用。它默认为 30 秒。

container_stop_priority

引入了 boot.stop.priority 容器配置键。

这是一个整数,它指示容器在关闭过程中的优先级。

容器将从最高优先级级别开始关闭。

具有相同优先级的容器将并行关闭。它默认为 0。

container_syscall_filtering

引入了许多与容器配置键相关的新的系统调用。

  • security.syscalls.blacklist_default

  • security.syscalls.blacklist_compat

  • security.syscalls.blacklist

  • security.syscalls.whitelist

有关如何使用它们,请参阅 实例配置

auth_pki

这表示支持 PKI 身份验证模式。

在此模式下,客户端和服务器都必须使用由同一个 PKI 颁发的证书。

有关详细信息,请参阅 安全

container_last_used_at

GET /1.0/containers/<name> 端点中添加了一个 last_used_at 字段。

它是容器上次启动的时间戳。

如果容器已创建但尚未启动,则 last_used_at 字段将为 1970-01-01T00:00:00Z

etag

在所有相关端点上添加对 ETag 标头的支持。

这会在对 GET 的回复中添加以下 HTTP 标头

  • ETag(用户可修改内容的 SHA-256 哈希值)

并添加对 PUT 请求中以下 HTTP 标头的支持

  • If-Match(通过之前的 GET 获取的 ETag 值)

这使得可以获取 Incus 对象、修改它并 PUT 它,而不会冒 Incus 或其他客户端同时修改对象的风险。

patch

添加对 HTTP PATCH 方法的支持。

PATCH 允许对对象进行部分更新,而不是 PUT。

usb_devices

添加对 USB 热插拔的支持。

https_allowed_credentials

要使用所有 Web 浏览器(通过 SPA)中的 Incus API,你必须在每个 XHR 中发送凭据(证书)(为此,你应该将 withCredentials=true 标志设置为每个 XHR 请求)。

像 Firefox 和 Safari 这样的浏览器无法接受没有 Access-Control-Allow-Credentials: true 标头的服务器响应。为了确保服务器将返回带有该标头的响应,请设置 core.https_allowed_credentials=true

image_compression_algorithm

这在创建镜像(POST /1.0/images)时添加了对 compression_algorithm 属性的支持。

设置此属性会覆盖服务器默认值(images.compression_algorithm)。

directory_manipulation

此功能允许通过 Incus API 创建和列出目录,并通过 X-Incus-type 标头导出文件类型,该标头目前可以是 filedirectory

container_cpu_time

此功能添加了对检索运行容器的 CPU 时间的支持。

storage_zfs_use_refquota

引入了一个新的服务器属性 storage.zfs_use_refquota,它指示 Incus 在为容器设置大小限制时设置 refquota 属性而不是 quota。Incus 在被查询磁盘使用情况时,也将使用 usedbydataset 代替 used

这实际上控制了快照的磁盘使用量是否应计入容器的磁盘空间使用量。

storage_lvm_mount_options

添加了一个新的 storage.lvm_mount_options 守护程序配置选项,它默认为 discard,并允许用户为 LVM LV 使用的文件系统设置附加的挂载选项。

network

Incus 的网络管理 API。

这包括:

  • /1.0/networks 条目上添加 managed 属性

  • 所有网络配置选项(有关详细信息,请参阅 网络配置

  • POST /1.0/networks(有关详细信息,请参阅 RESTful API

  • PUT /1.0/networks/<entry>(有关详细信息,请参阅 RESTful API

  • PATCH /1.0/networks/<entry>(有关详细信息,请参阅 RESTful API

  • DELETE /1.0/networks/<entry>(有关详细信息,请参阅 RESTful API

  • nic 类型的设备上(当 nictypebridged 时)的 ipv4.address 属性

  • nic 类型的设备上(当 nictypebridged 时)的 ipv6.address 属性

  • nic 类型的设备上(当 nictypebridged 时)的 security.mac_filtering 属性

profile_usedby

向配置文件条目添加了一个新的 used_by 字段,用于列出使用它的容器。

container_push

当在推送模式下创建容器时,客户端充当源服务器和目标服务器之间的代理。这在目标服务器位于 NAT 或防火墙后面且无法直接与源服务器通信并在拉取模式下运行的情况下很有用。

container_exec_recording

引入了一个新的布尔值 record-output,它是 /1.0/containers/<name>/exec 的参数,当设置为 true 并与 wait-for-websocket 设置为 false 结合使用时,会将 stdout 和 stderr 记录到磁盘,并通过日志接口提供。

命令运行完毕后,操作元数据中将包含记录输出的 URL。

该输出将与其他日志文件一样过期,通常在 48 小时后过期。

certificate_update

向 REST API 添加以下内容:

  • 获取证书时的 ETag 标头

  • 证书条目的 PUT 操作

  • 证书条目的 PATCH 操作

container_exec_signal_handling

添加了对 /1.0/containers/<name>/exec 的支持,用于将发送到客户端的信号转发到容器中执行的进程。当前转发 SIGTERM 和 SIGHUP。以后可能会添加其他可以转发的信号。

gpu_devices

启用向容器添加 GPU。

container_image_properties

引入了一个新的 image 配置键空间。只读,包括父映像的属性。

migration_progress

传输进度现在作为操作的一部分导出,在发送端和接收端都有。这在操作元数据中显示为 fs_progress 属性。

id_map

启用设置 security.idmap.isolatedsecurity.idmap.isolatedsecurity.idmap.size 以及 raw.id_map 字段。

network_firewall_filtering

添加了两个新键,ipv4.firewallipv6.firewall,如果设置为 false,将关闭 iptables FORWARDING 规则的生成。只要匹配的 ipv4.natipv6.nat 键设置为 true,NAT 规则将继续添加。

如果在网桥上启用了 dnsmasq,则 dnsmasq 工作(DHCP/DNS)所需的规则将始终应用。

network_routes

引入了 ipv4.routesipv6.routes,允许将其他子网路由到 Incus 网桥。

storage

Incus 的存储管理 API。

这包括:

  • GET /1.0/storage-pools

  • POST /1.0/storage-pools(有关详细信息,请参阅 RESTful API

  • GET /1.0/storage-pools/<name>(有关详细信息,请参阅 RESTful API

  • POST /1.0/storage-pools/<name>(有关详细信息,请参阅 RESTful API

  • PUT /1.0/storage-pools/<name>(有关详细信息,请参阅 RESTful API

  • PATCH /1.0/storage-pools/<name>(有关详细信息,请参阅 RESTful API

  • DELETE /1.0/storage-pools/<name>(有关详细信息,请参阅 RESTful API

  • GET /1.0/storage-pools/<name>/volumes(有关详细信息,请参阅 RESTful API

  • GET /1.0/storage-pools/<name>/volumes/<volume_type>(有关详细信息,请参阅 RESTful API

  • POST /1.0/storage-pools/<name>/volumes/<volume_type>(有关详细信息,请参阅 RESTful API

  • GET /1.0/storage-pools/<pool>/volumes/<volume_type>/<name>(有关详细信息,请参阅 RESTful API

  • POST /1.0/storage-pools/<pool>/volumes/<volume_type>/<name>(有关详细信息,请参阅 RESTful API

  • PUT /1.0/storage-pools/<pool>/volumes/<volume_type>/<name> (详情请参见 RESTful API)

  • PATCH /1.0/storage-pools/<pool>/volumes/<volume_type>/<name> (详情请参见 RESTful API)

  • DELETE /1.0/storage-pools/<pool>/volumes/<volume_type>/<name> (详情请参见 RESTful API)

  • 所有存储配置选项(详情请参见 Storage configuration

file_delete

实现 DELETE/1.0/containers/<name>/files

file_append

实现 X-Incus-write 头部,它可以是 overwriteappend 之一。

network_dhcp_expiry

引入了 ipv4.dhcp.expiryipv6.dhcp.expiry,允许设置 DHCP 租约过期时间。

storage_lvm_vg_rename

引入了通过设置 storage.lvm.vg_name 来重命名卷组的能力。

storage_lvm_thinpool_rename

引入了通过设置 storage.thinpool_name 来重命名精简池名称的能力。

network_vlan

这为 macvlan 网络设备添加了一个新的 vlan 属性。

设置后,这将指示 Incus 连接到指定的 VLAN。Incus 将在主机上查找该 VLAN 的现有接口。如果找不到,它将自行创建一个,然后将其用作 macvlan 父级。

image_create_aliases

POST /1.0/images 中添加了一个新的 aliases 字段,允许在镜像创建/导入时设置别名。

container_stateless_copy

这在 POST /1.0/containers/<name> 中引入了新的 live 属性。将其设置为 false 告诉 Incus 不要尝试运行状态转移。

container_only_migration

引入了一个新的布尔值 container_only 属性。当设置为 true 时,只有容器会被复制或移动。

storage_zfs_clone_copy

为 ZFS 存储池引入了一个新的布尔值 storage_zfs_clone_copy 属性。当设置为 false 时,复制容器将通过 zfs send 和接收进行。这将使目标容器独立于其源容器,从而避免需要在 ZFS 池中保留依赖的快照。但是,这也意味着受影响池的存储使用效率较低。此属性的默认值为 true,即除非明确设置为 false,否则将使用节省空间的快照。

unix_device_rename

引入了通过设置 path 来重命名容器内的 unix-block/unix-char 设备的能力,并且添加了 source 属性来指定主机上的设备。如果设置了 source 但没有设置 path,我们应该假设 pathsource 相同。如果设置了 path 但没有设置 source 并且没有设置 major/minor,我们应该假设 sourcepath 相同。因此,至少必须设置其中一项。

storage_rsync_bwlimit

当必须调用 rsync 来传输存储实体时,设置 rsync.bwlimit 会对允许的套接字 I/O 量设置上限。

network_vxlan_interface

这引入了网络的新的 tunnel.NAME.interface 选项。

此键控制用于 VXLAN 隧道的哪个主机网络接口。

storage_btrfs_mount_options

这引入了 Btrfs 存储池的 btrfs.mount_options 属性。

此键控制将为 Btrfs 存储池使用哪些挂载选项。

entity_description

这为实体添加了描述,例如容器、快照、网络、存储池和卷。

image_force_refresh

这允许强制刷新现有镜像。

storage_lvm_lv_resizing

这引入了通过在容器根磁盘设备中设置 size 属性来调整逻辑卷大小的能力。

id_map_base

这引入了新的 security.idmap.base,允许用户跳过隔离容器的映射自动选择过程,并指定要使用哪个主机 UID/GID 作为基准。

container_push_target

这在 POST /1.0/containers/<name> 中添加了 target 字段,可用于让源 Incus 主机在迁移期间连接到目标。

network_vlan_physical

允许使用 vlan 属性与 physical 网络设备一起使用。

设置后,这将指示 Incus 连接到 parent 接口上的指定 VLAN。Incus 将在主机上查找该 parent 和 VLAN 的现有接口。如果找不到,它将自行创建一个。然后,Incus 将直接将此接口连接到容器。

storage_images_delete

这使存储 API 能够从特定存储池中删除镜像的存储卷。

container_edit_metadata

这添加了通过 API 编辑容器 metadata.yaml 及其相关模板的支持,方法是访问 /1.0/containers/<name>/metadata 下的 URL。它可以用于在从容器发布镜像之前编辑容器。

container_snapshot_stateful_migration

这使迁移有状态的容器快照到新容器成为可能。

storage_driver_ceph

添加 Ceph 存储驱动程序。

storage_ceph_user_name

添加指定 Ceph 用户的能力。

instance_types

在容器创建请求中添加 instance_type 字段。它的值扩展为 Incus 资源限制。

storage_volatile_initial_source

记录存储池创建过程中传递给 Incus 的实际源。

storage_ceph_force_osd_reuse

为 Ceph 存储驱动程序引入 ceph.osd.force_reuse 属性。当设置为 true 时,Incus 将重用另一个 Incus 实例正在使用的 OSD 存储池。

storage_block_filesystem_btrfs

除了 ext4xfs 之外,添加对 Btrfs 作为存储卷文件系统的支持。

resources

添加对查询 Incus 守护程序以获取其可用的系统资源的支持。

kernel_limits

添加对通过 nofile 为容器设置进程限制(如最大打开文件数)的支持。格式为 limits.kernel.[limit name]

storage_api_volume_rename

添加对重命名自定义存储卷的支持。

network_sriov

添加对支持 SR-IOV 的网络设备的支持。

console

添加对与容器控制台设备和控制台日志进行交互的支持。

restrict_dev_incus

引入了新的 security.guestapi 容器配置密钥。该密钥控制是否将 /dev/incus 接口提供给容器。如果设置为 false,则有效地阻止容器与 Incus 守护程序交互。

migration_pre_copy

添加对实时迁移过程中优化内存传输的支持。

infiniband

添加对使用 InfiniBand 网络设备的支持。

dev_incus_events

/dev/incus 套接字添加 WebSocket API。

通过 /dev/incus 套接字连接到 /1.0/events 时,您现在将通过 WebSocket 获取事件流。

proxy

为容器添加新的 proxy 设备类型,允许转发主机和容器之间的连接。

network_dhcp_gateway

引入了新的 ipv4.dhcp.gateway 网络配置密钥来设置备用网关。

network_leases

添加新的 /1.0/networks/NAME/leases API 端点来查询运行 Incus 管理的 DHCP 服务器的桥接上的租约数据库。

unix_device_hotplug

添加对 Unix 设备的 required 属性的支持。

storage_api_local_volume_handling

添加在同一个和不同的存储池中本地复制和移动自定义存储卷的能力。

operation_description

在所有操作中添加 description 字段。

clustering

Incus 的集群 API。

这包括以下新的端点(有关详细信息,请参见 RESTful API

  • GET /1.0/cluster

  • UPDATE /1.0/cluster

  • GET /1.0/cluster/members

  • GET /1.0/cluster/members/<name>

  • POST /1.0/cluster/members/<name>

  • DELETE /1.0/cluster/members/<name>

以下现有端点已修改

  • POST /1.0/containers 接受新的 target 查询参数

  • POST /1.0/storage-pools 接受新的 target 查询参数

  • GET /1.0/storage-pool/<name> 接受新的 target 查询参数

  • POST /1.0/storage-pool/<pool>/volumes/<type> 接受新的 target 查询参数

  • GET /1.0/storage-pool/<pool>/volumes/<type>/<name> 接受新的 target 查询参数

  • POST /1.0/storage-pool/<pool>/volumes/<type>/<name> 接受新的 target 查询参数

  • PUT /1.0/storage-pool/<pool>/volumes/<type>/<name> 接受新的 target 查询参数

  • PATCH /1.0/storage-pool/<pool>/volumes/<type>/<name> 接受新的 target 查询参数

  • DELETE /1.0/storage-pool/<pool>/volumes/<type>/<name> 接受新的 target 查询参数

  • POST /1.0/networks 接受新的 target 查询参数

  • GET /1.0/networks/<name> 接受新的 target 查询参数

event_lifecycle

在事件 API 中添加新的 lifecycle 消息类型。

storage_api_remote_volume_handling

添加在远程之间复制和移动自定义存储卷的能力。

nvidia_runtime

为容器添加 nvidia_runtime 配置选项,将其设置为 true 将使 NVIDIA 运行时和 CUDA 库传递给容器。

container_mount_propagation

在磁盘设备类型中添加新的 propagation 选项,允许配置内核挂载传播。

container_backup

添加容器备份支持。

这包括以下新的端点(有关详细信息,请参见 RESTful API

  • GET /1.0/containers/<name>/backups

  • POST /1.0/containers/<name>/backups

  • GET /1.0/containers/<name>/backups/<name>

  • POST /1.0/containers/<name>/backups/<name>

  • DELETE /1.0/containers/<name>/backups/<name>

  • GET /1.0/containers/<name>/backups/<name>/export

以下现有端点已修改

  • POST /1.0/containers 接受新的源类型 backup

dev_incus_images

为容器添加一个 security.guestapi.images 配置选项,用于控制通过 /dev/incus 提供 /1.0/images/FINGERPRINT/export API 的可用性。嵌套 Incus 运行的容器可以使用它从主机访问原始镜像。

container_local_cross_pool_handling

这使得可以在同一个 Incus 实例上跨存储池复制或移动容器。

proxy_unix

添加对代理设备中 Unix 套接字和抽象 Unix 套接字的支持。可以通过将地址指定为 unix:/path/to/unix.sock(普通套接字)或 unix:@/tmp/unix.sock(抽象套接字)来使用它们。

现在支持的连接为

  • TCP <-> TCP

  • UNIX <-> UNIX

  • TCP <-> UNIX

  • UNIX <-> TCP

proxy_udp

添加对代理设备中 UDP 的支持。

现在支持的连接为

  • TCP <-> TCP

  • UNIX <-> UNIX

  • TCP <-> UNIX

  • UNIX <-> TCP

  • UDP <-> UDP

  • TCP <-> UDP

  • UNIX <-> UDP

clustering_join

这使得 GET /1.0/cluster 返回有关加入节点需要创建哪些存储池和网络以及在创建它们时需要使用哪些特定于节点的配置键的信息。同样,PUT /1.0/cluster 端点现在接受相同的格式,以传递有关在尝试加入集群之前要自动创建的存储池和网络的信息。

proxy_tcp_udp_multi_port_handling

添加对转发多个端口的流量的支持。如果源和目标的端口范围相等(例如 1.2.3.4 0-1000 -> 5.6.7.8 1000-2000),则允许在端口范围内转发。以及在源端口范围和单个目标端口之间转发(例如 1.2.3.4 0-1000 -> 5.6.7.8 1000)。

network_state

添加对检索网络状态的支持。

这添加了以下新的端点(有关详细信息,请参阅 RESTful API

  • GET /1.0/networks/<name>/state

proxy_unix_dac_properties

这添加了对非抽象 Unix 套接字的 GID、UID 和模式属性的支持。

container_protection_delete

启用设置 security.protection.delete 字段,如果设置为 true,则可以防止删除容器。快照不受此设置的影响。

proxy_priv_drop

添加 security.uidsecurity.gid 用于代理设备,允许特权下降,并有效地改变用于连接到 Unix 套接字的 UID/GID。

pprof_http

这添加了一个新的 core.debug_address 配置选项来启动一个调试 HTTP 服务器。

该服务器当前包含一个 pprof API,并取代了旧的 cpu-profilememory-profileprint-goroutines 调试选项。

proxy_haproxy_protocol

在代理设备中添加一个 proxy_protocol 键,用于控制是否使用 HAProxy PROXY 协议头。

network_hwaddr

添加一个 bridge.hwaddr 键来控制网桥的 MAC 地址。

proxy_nat

这添加了优化的 UDP/TCP 代理。如果配置允许,代理将通过 iptables 完成,而不是通过代理设备。

network_nat_order

这引入了 Incus 网桥的 ipv4.nat.orderipv6.nat.order 配置键。这些键控制是在链中将 Incus 规则放在任何预先存在的规则之前还是之后。

container_full

这为 GET /1.0/containers 引入了一种新的 recursion=2 模式,允许检索所有容器结构,包括状态、快照和备份结构。

这使得 incus list 可以通过一次查询获取所有需要的信息。

backup_compression

这引入了新的 backups.compression_algorithm 配置键,允许配置备份压缩。

nvidia_runtime_config

在使用 nvidia.runtimelibnvidia-container 库时,这引入了几个额外的配置键。这些键几乎直接转换为匹配的 NVIDIA 容器环境变量

  • nvidia.driver.capabilities => NVIDIA_DRIVER_CAPABILITIES

  • nvidia.require.cuda => NVIDIA_REQUIRE_CUDA

  • nvidia.require.driver => NVIDIA_REQUIRE_DRIVER

storage_api_volume_snapshots

添加对存储卷快照的支持。它们的工作原理与容器快照类似,只是针对卷。

这添加了以下新的端点(有关详细信息,请参阅 RESTful API

  • GET /1.0/storage-pools/<pool>/volumes/<type>/<name>/snapshots

  • POST /1.0/storage-pools/<pool>/volumes/<type>/<name>/snapshots

  • GET /1.0/storage-pools/<pool>/volumes/<type>/<volume>/snapshots/<name>

  • PUT /1.0/storage-pools/<pool>/volumes/<type>/<volume>/snapshots/<name>

  • POST /1.0/storage-pools/<pool>/volumes/<type>/<volume>/snapshots/<name>

  • DELETE /1.0/storage-pools/<pool>/volumes/<type>/<volume>/snapshots/<name>

storage_unmapped

在存储卷上引入一个新的 security.unmapped 布尔值。

将其设置为 true 将刷新卷上的当前映射,并阻止在卷上进行任何进一步的 idmap 跟踪和重新映射。

这可以用于在将卷附加到需要写入权限的容器之后,在隔离的容器之间共享数据。

projects

添加一个新的项目 API,支持创建、更新和删除项目。

目前,项目可以包含容器、配置文件或镜像,并允许您通过切换到项目来获得 Incus 资源的单独视图。

network_vxlan_ttl

这添加了一个新的 tunnel.NAME.ttl 网络配置选项,可以提高 VXLAN 隧道上的 TTL。

container_incremental_copy

这添加了对增量容器复制的支持。当使用 --refresh 标志复制容器时,只有丢失或过时的文件才会被复制。如果目标容器尚不存在,则执行正常复制操作。

usb_optional_vendorid

顾名思义,现在附加到容器的 USB 设备上的 vendorid 字段已成为可选,允许将所有 USB 设备传递给容器(类似于对 GPU 的处理方式)。

snapshot_scheduling

此版本增加了对快照计划的支持。引入了三个新的配置键:snapshots.schedulesnapshots.schedule.stoppedsnapshots.pattern。快照可以自动创建,最短间隔为一分钟。

snapshots_schedule_aliases

快照计划可以通过用逗号分隔的计划别名列表进行配置。可用的别名有:<@hourly> <@daily> <@midnight> <@weekly> <@monthly> <@annually> <@yearly> <@startup>(适用于实例),以及 <@hourly> <@daily> <@midnight> <@weekly> <@monthly> <@annually> <@yearly>(适用于存储卷)。

container_copy_project

在容器源 JSON 对象中引入了 project 字段,允许在项目之间复制/移动容器。

clustering_server_address

此版本增加了对配置不同于 REST API 客户端网络地址的服务器网络地址的支持。在引导新的集群时,客户端可以设置新的 cluster.https_address 配置键来指定初始服务器的地址。在加入新的服务器时,客户端可以将加入服务器的 core.https_address 配置键设置为加入服务器应该监听的 REST API 地址,并将 PUT /1.0/cluster API 中的 server_address 键设置为加入服务器应该用于集群流量的地址(server_address 的值将自动复制到加入服务器的 cluster.https_address 配置键)。

clustering_image_replication

启用跨集群节点的镜像复制。引入了新的 cluster.images_minimal_replica 配置键,可用于指定镜像复制的最小节点数量。

container_protection_shift

启用设置 security.protection.shift 选项,该选项可以防止容器的 filesystem 被移位。

snapshot_expiry

此版本增加了对快照到期时间的支持。该任务每分钟运行一次。配置选项 snapshots.expiry 采用 1M 2H 3d 4w 5m 6y(1 分钟,2 小时,3 天,4 周,5 个月,6 年)的形式,但并非所有部分都必须使用。

然后创建的快照将根据表达式赋予一个到期时间。这个到期时间由 expires_at 定义,可以使用 API 或 incus config edit 手动编辑。具有有效到期时间的快照将在任务运行时被删除。通过将 expires_at 设置为空字符串或 0001-01-01T00:00:00Z(零时间)可以禁用到期时间。如果没有设置 snapshots.expiry,则这是默认设置。

这添加了以下新的端点(有关详细信息,请参阅 RESTful API

  • PUT /1.0/containers/<name>/snapshots/<name>

snapshot_expiry_creation

expires_at 添加到容器创建,允许在创建时覆盖快照的到期时间。

network_leases_location

在租约列表中引入了 Location 字段。这在查询集群时用于显示特定租约是在哪个节点上找到的。

resources_cpu_socket

在 CPU 资源中添加 Socket 字段,以防我们得到乱序的 socket 信息。

resources_gpu

在服务器资源中添加新的 GPU 结构,列出系统上所有可用的 GPU。

resources_numa

显示所有 CPU 和 GPU 的 NUMA 节点。

kernel_features

通过服务器环境公开可选内核功能的状态。

id_map_current

此版本引入了新的内部 volatile.idmap.current 键,用于跟踪容器的当前映射。

这实际上为我们提供了

  • volatile.last_state.idmap => 磁盘上的 idmap

  • volatile.idmap.current => 当前内核映射

  • volatile.idmap.next => 下一个磁盘上的 idmap

这需要在磁盘上的映射没有改变但内核映射改变的情况下(例如 idmapped mounts)实现环境。

event_location

公开 API 事件生成的来源。

storage_api_remote_volume_snapshots

此版本允许迁移存储卷,包括其快照。

network_nat_address

此版本引入了 Incus 桥接的 ipv4.nat.addressipv6.nat.address 配置键。这些键控制从桥接器发出的出站流量使用的源地址。

container_nic_routes

此版本引入了 nic 类型设备上的 ipv4.routesipv6.routes 属性。这允许在主机上添加静态路由到容器的 NIC。

cluster_internal_copy

此版本使得可以执行正常的 POST /1.0/containers 来在集群节点之间复制容器,Incus 内部会检测是否需要迁移。

seccomp_notify

如果内核支持基于 seccomp 的系统调用拦截,Incus 可以收到容器执行注册的系统调用的通知。然后 Incus 可以决定触发各种操作。

lxc_features

此版本引入了 incus info 命令通过 GET /1.0 路由输出的 lxc_features 部分。它输出对基础 LXC 库中存在关键功能的检查结果。

container_nic_ipvlan

此版本引入了 ipvlan nic 设备类型。

network_vlan_sriov

此版本引入了 VLAN (vlan) 和 MAC 过滤 (security.mac_filtering) 对 SR-IOV 设备的支持。

storage_cephfs

添加对 CephFS 作为存储池驱动程序的支持。这只能用于自定义卷,镜像和容器应该在 Ceph (RBD) 上而不是 CephFS 上。

container_nic_ipfilter

此版本引入了容器 IP 过滤 (security.ipv4_filteringsecurity.ipv6_filtering) 对 bridged NIC 设备的支持。

resources_v2

重新设计了 /1.0/resources 上的资源 API,特别是

  • CPU

    • 修复报告以跟踪 sockets、cores 和 threads

    • 跟踪每个 core 的 NUMA 节点

    • 跟踪每个 socket 的基本频率和 turbo 频率

    • 跟踪每个 core 的当前频率

    • 添加 CPU 缓存信息

    • 导出 CPU 架构

    • 显示 threads 的在线/离线状态

  • 内存

    • 添加大页面跟踪

    • 也跟踪每个 NUMA 节点的内存使用量

  • GPU

    • 将 DRM 信息拆分到单独的结构体中

    • 导出 DRM 结构体中的设备名称和节点

    • 导出 NVIDIA 结构体中的设备名称和节点

    • 添加 SR-IOV VF 跟踪

container_exec_user_group_cwd

添加在 POST /1.0/containers/NAME/exec 期间指定 UserGroupCwd 的支持。

container_syscall_intercept

添加 security.syscalls.intercept.* 配置键来控制 Incus 将拦截哪些系统调用并以提升的权限处理。

container_disk_shift

disk 设备上添加 shift 属性,该属性控制 idmapped mounts 覆盖层的用法。

storage_shifted

引入存储卷上的一个新的 security.shifted 布尔值。

将其设置为 true 将允许多个隔离的容器附加相同的存储卷,同时保持文件系统从所有容器中写入。

这使用 idmapped mounts 作为覆盖文件系统。

resources_infiniband

导出 InfiniBand 字符设备信息 (issmumaduverb) 作为资源 API 的一部分。

daemon_storage

这引入了两个新的配置键 storage.images_volumestorage.backups_volume,允许在现有池中使用存储卷来存储守护进程范围的镜像和备份工件。

instances

这引入了实例的概念,目前唯一类型是 container

image_types

这引入了对镜像上一个新类型字段的支持,指示它们是什么类型的镜像。

resources_disk_sata

扩展磁盘资源 API 结构以包含

  • 对 SATA 设备(类型)的正确检测

  • 设备路径

  • 驱动器 RPM

  • 块大小

  • 固件版本

  • 序列号

clustering_roles

这在集群条目中添加了一个新的 roles 属性,公开成员在集群中担任的角色列表。

images_expiry

这允许编辑镜像的过期日期。

resources_network_firmware

在网络卡条目中添加了 FirmwareVersion 字段。

backup_compression_algorithm

这添加了在创建备份 (POST /1.0/containers/<name>/backups) 时对 compression_algorithm 属性的支持。

设置此属性会覆盖服务器默认值 (backups.compression_algorithm)。

ceph_data_pool_name

这添加了对使用 Ceph RBD 创建存储池时可选参数 (ceph.osd.data_pool_name) 的支持,当使用此参数时,池将把它的实际数据存储在使用 data_pool_name 指定的池中,同时保持元数据在使用 pool_name 指定的池中。

container_syscall_intercept_mount

添加 security.syscalls.intercept.mountsecurity.syscalls.intercept.mount.allowedsecurity.syscalls.intercept.mount.shift 配置键来控制 Incus 是否以及如何拦截 mount 系统调用并以提升的权限处理。

compression_squashfs

添加对使用 SquashFS 文件系统格式导入/导出镜像/备份的支持。

container_raw_mount

这添加了对为磁盘设备传入原始挂载选项的支持。

container_nic_routed

这引入了 routed nic 设备类型。

container_syscall_intercept_mount_fuse

添加 security.syscalls.intercept.mount.fuse 键。它可以用于将文件系统挂载重定向到其 fuse 实现。为此,例如设置 security.syscalls.intercept.mount.fuse=ext4=fuse2fs

container_disk_ceph

这允许将现有的 Ceph RBD 或 CephFS 直接连接到 Incus 容器。

virtual-machines

添加虚拟机支持。

image_profiles

允许在启动新容器时将配置文件列表应用于镜像。

clustering_architecture

这在集群成员中添加了一个新的 architecture 属性,指示集群成员的体系结构。

resources_disk_id

在资源 API 上的磁盘条目中添加了一个新的 device_id 字段。

storage_lvm_stripes

这添加了在普通卷和精简池卷上使用 LVM 条带的能力。

vm_boot_priority

在 NIC 和磁盘设备上添加了 boot.priority 属性来控制引导顺序。

unix_hotplug_devices

添加对 Unix 字符和块设备热插拔的支持。

api_filtering

添加对过滤实例和镜像的 GET 请求结果的支持。

instance_nic_network

添加对 NIC 设备上 network 属性的支持,以允许 NIC 连接到托管网络。这允许它继承一些网络的设置,并允许更好地验证 IP 设置。

clustering_sizing

支持为数据库选民和备用指定自定义值。引入了新的 cluster.max_voterscluster.max_standby 配置键来指定数据库选民和备用的理想数量。

firewall_driver

ServerEnvironment 结构中添加了 Firewall 属性,指示正在使用的防火墙驱动程序。

storage_lvm_vg_force_reuse

引入从现有的非空卷组创建存储池的能力。此选项应谨慎使用,因为 Incus 无法保证卷名称冲突不会与同一卷组中非 Incus 创建的卷发生。如果发生名称冲突,这也有可能导致 Incus 删除非 Incus 卷。

container_syscall_intercept_hugetlbfs

当启用挂载系统调用拦截并将 hugetlbfs 指定为允许的文件系统类型时,Incus 将为容器挂载一个独立的 hugetlbfs 实例,并将 UID 和 GID 挂载选项设置为容器的根 UID 和 GID。这确保了容器中的进程可以使用大页面。

limits_hugepages

这允许通过 hugetlb cgroup 来限制容器可以使用的巨页数量。这意味着 hugetlb cgroup 需要可用。请注意,在为 hugetlbfs 文件系统拦截 mount 系统调用时,建议限制巨页,以避免容器耗尽主机上的巨页资源。

container_nic_routed_gateway

这引入了 ipv4.gatewayipv6.gateway NIC 配置键,它们的值可以是 autonone。如果未指定,该键的默认值为 auto。这将导致在容器内添加默认网关,并将相同的网关地址添加到主机端接口。如果将该值设置为 none,则不会添加默认网关,也不会将地址添加到主机端接口。这允许将多个路由 NIC 设备添加到容器中。

projects_restrictions

这引入了对项目上的 restricted 配置键的支持,该键可以阻止在项目中使用安全敏感功能。

custom_volume_snapshot_expiry

这允许自定义卷快照过期。过期日期可以单独设置,也可以通过在父自定义卷上设置 snapshots.expiry 配置键来设置,该键将自动应用于所有创建的快照。

volume_snapshot_scheduling

这增加了对自定义卷快照计划的支持。它引入了两个新的配置键:snapshots.schedulesnapshots.pattern。快照可以自动创建,最短间隔为每分钟。

trust_ca_certificates

这允许检查提供的 CA (server.ca) 信任的客户端证书。可以通过将 core.trust_ca_certificates 设置为 true 来启用它。如果启用,它将执行检查,如果 true,则绕过信任密码。如果连接的客户端证书位于提供的 CRL (ca.crl) 中,将例外。在这种情况下,它会要求输入密码。

snapshot_disk_usage

这在 /1.0/instances/<name>/snapshots/<snapshot> 输出中添加了一个新的 size 字段,它代表快照的磁盘使用量。

clustering_edit_roles

这为集群成员添加了一个可写端点,允许编辑其角色。

container_nic_routed_host_address

这引入了 ipv4.host_addressipv6.host_address NIC 配置键,它们可用于控制主机端 veth 接口的 IP 地址。当同时使用多个路由 NIC 并需要使用可预测的下一跳地址时,这将非常有用。

这也改变了 ipv4.gatewayipv6.gateway NIC 配置键的行为。当它们设置为 auto 时,容器的默认网关将分别设置为 ipv4.host_addressipv6.host_address 的值。

默认值是

ipv4.host_address: 169.254.0.1 ipv6.host_address: fe80::1

这与之前的默认行为向后兼容。

container_nic_ipvlan_gateway

这引入了 ipv4.gatewayipv6.gateway NIC 配置键,它们的值可以是 autonone。如果未指定,该键的默认值为 auto。这将导致在容器内添加默认网关,并将相同的网关地址添加到主机端接口。如果将该值设置为 none,则不会添加默认网关,也不会将地址添加到主机端接口。这允许将多个 IPVLAN NIC 设备添加到容器中。

resources_usb_pci

这将 USB 和 PCI 设备添加到 /1.0/resources 的输出中。

resources_cpu_threads_numa

这表示 numa_node 字段现在按线程记录,而不是按核心记录,因为某些硬件显然将线程放在不同的 NUMA 域中。

resources_cpu_core_die

公开每个核心的 die_id 信息。

api_os

这在 /1.0 中引入了两个新字段,osos_version

这些来自系统上的 OS-release 数据。

container_nic_routed_host_table

这引入了 ipv4.host_tableipv6.host_table NIC 配置键,它们可用于通过 ID 将实例 IP 的静态路由添加到自定义策略路由表。

container_nic_ipvlan_host_table

这引入了 ipv4.host_tableipv6.host_table NIC 配置键,它们可用于通过 ID 将实例 IP 的静态路由添加到自定义策略路由表。

container_nic_ipvlan_mode

这引入了 mode NIC 配置键,它可用于将 ipvlan 模式切换为 l2l3s。如果未指定,则默认值为 l3s(这是旧的行为)。

l2 模式下,ipv4.addressipv6.address 键将接受 CIDR 或单一格式的地址。如果使用单一格式,则 IPv4 和 IPv6 的默认子网大小分别为 /24 和 /64。

l2 模式下,ipv4.gatewayipv6.gateway 键仅接受单个 IP 地址。

resources_system

这将系统信息添加到 /1.0/resources 的输出中。

images_push_relay

这将推送和中继模式添加到镜像复制。它还引入了以下新端点

  • POST 1.0/images/<fingerprint>/export

container_nic_routed_limits

这引入了路由 NIC 的 limits.ingresslimits.egresslimits.max

instance_nic_bridged_vlan

这引入了 bridged NIC 的 vlanvlan.tagged 设置。

vlan 指定要加入的非标记 VLAN,而 vlan.tagged 是要加入的标记 VLAN 的逗号分隔列表。

network_state_bond_bridge

这将在 /1.0/networks/NAME/state API 中添加 bridgebond 部分。

这些包含与这些特定类型相关的其他状态信息。

Bond

  • 模式

  • 传输散列

  • 启动延迟

  • 停止延迟

  • MII 频率

  • MII 状态

  • 下层设备

Bridge

  • ID

  • 转发延迟

  • STP 模式

  • 默认 VLAN

  • VLAN 过滤

  • 上层设备

resources_cpu_isolated

在 CPU 线程上添加一个 Isolated 属性,以指示线程是否在物理上 Online,但配置为不接受任务。

usedby_consistency

此扩展表明 UsedBy 现在应该与合适的 ?project=?target= 保持一致(如果适用)。

具有 UsedBy 的 5 个实体是

  • 配置文件

  • 项目

  • 网络

  • 存储池

  • 存储卷

custom_block_volumes

这增加了对创建和附加自定义块卷到实例的支持。它在创建自定义存储卷时引入了新的 --type 标志,并接受值 fsblock

clustering_failure_domains

此扩展在 PUT /1.0/cluster/<node> API 中添加了一个新的 failure_domain 字段,它可以用来设置节点的故障域。

container_syscall_filtering_allow_deny_syntax

许多与容器配置密钥相关的新的系统调用已更新。

  • security.syscalls.deny_default

  • security.syscalls.deny_compat

  • security.syscalls.deny

  • security.syscalls.allow

resources_gpu_mdev

/1.0/resources 中公开可用的中介设备配置文件和设备。

console_vga_type

这扩展了 /1.0/console 端点以接受 ?type= 参数,该参数可以设置为 console(默认)或 vga(此扩展添加的新类型)。

当对 /1.0/<instance name>/console?type=vga 执行 POST 时,该操作在元数据字段中返回的数据 WebSocket 将是附加到目标虚拟机 SPICE Unix 套接字的双向代理。

projects_limits_disk

limits.disk 添加到可用的项目配置密钥中。如果设置,它限制了实例卷、自定义卷和映像卷在项目中可以使用磁盘空间的总量。

network_type_macvlan

增加了对附加网络类型 macvlan 的支持,并为这种网络类型添加了 parent 配置密钥,以指定应使用哪个父接口来创建基于其之上的 NIC 设备接口。

还为 macvlan NIC 添加了 network 配置密钥支持,允许它们指定应作为 NIC 设备基础使用的相同类型的关联网络。

network_type_sriov

增加了对附加网络类型 sriov 的支持,并为这种网络类型添加了 parent 配置密钥,以指定应使用哪个父接口来创建基于其之上的 NIC 设备接口。

还为 sriov NIC 添加了 network 配置密钥支持,允许它们指定应作为 NIC 设备基础使用的相同类型的关联网络。

container_syscall_intercept_bpf_devices

这增加了对在容器中拦截 bpf 系统调用的支持。具体来说,它允许管理设备 cgroup bpf 程序。

network_type_ovn

增加了对附加网络类型 ovn 的支持,它具有指定 bridge 类型网络作为 parent 的能力。

引入了新的 NIC 设备类型 ovn,它允许 network 配置密钥指定它们应连接到的哪个 ovn 类型网络。

还引入了两个新的全局配置密钥,这些密钥适用于所有 ovn 网络和 NIC 设备

  • network.ovn.integration_bridge - 要使用的 OVS 集成桥接。

  • network.ovn.northbound_connection - OVN 北向数据库连接字符串。

projects_networks

features.networks 配置密钥添加到项目,以及项目拥有网络的能力。

custom_volume_backup

添加自定义卷备份支持。

这包括以下新的端点(有关详细信息,请参见 RESTful API

  • GET /1.0/storage-pools/<pool>/<type>/<volume>/backups

  • POST /1.0/storage-pools/<pool>/<type>/<volume>/backups

  • GET /1.0/storage-pools/<pool>/<type>/<volume>/backups/<name>

  • POST /1.0/storage-pools/<pool>/<type>/<volume>/backups/<name>

  • DELETE /1.0/storage-pools/<pool>/<type>/<volume>/backups/<name>

  • GET /1.0/storage-pools/<pool>/<type>/<volume>/backups/<name>/export

以下现有端点已修改

  • POST /1.0/storage-pools/<pool>/<type>/<volume> 接受新的源类型 backup

backup_override_name

InstanceBackupArgs 中添加 Name 字段,以允许在还原备份时指定不同的实例名称。

StoragePoolVolumeBackupArgs 中添加 NamePoolName 字段,以允许在还原自定义卷备份时指定不同的卷名称。

storage_rsync_compression

rsync.compression 配置密钥添加到存储池。此密钥可用于在迁移存储池时禁用 rsync 中的压缩。

network_type_physical

增加了对附加网络类型 physical 的支持,它可以作为 ovn 网络的上行链路使用。

physical 网络上的 parent 指定的接口将连接到 ovn 网络的网关。

network_ovn_external_subnets

增加了对 ovn 网络使用来自上行链路网络的外部子网的支持。

介绍了 ipv4.routesipv6.routes 设置,它们在 physical 网络上定义了允许在子 OVN 网络的 ipv4.routes.externalipv6.routes.external 设置中使用的外部路由。

介绍了 restricted.networks.subnets 项目设置,它指定了项目内部 OVN 网络允许使用的外部子网(如果未设置,则允许上行链路网络上定义的所有路由)。

network_ovn_nat

添加了对 ovn 网络上 ipv4.natipv6.nat 设置的支持。

创建网络时,如果未指定这些设置,并且正在为子网生成等效的 IP 地址,则会添加适当的 NAT 设置并设置为 true

如果缺少该设置,则该值将视为 false

network_ovn_external_routes_remove

ovn 网络中删除了 ipv4.routes.externalipv6.routes.external 设置。

可以改为使用 ovn NIC 类型上的等效设置,而不是必须在网络和 NIC 级别同时指定它们。

tpm_device_type

这引入了 tpm 设备类型。

storage_zfs_clone_copy_rebase

这引入了 rebase 作为 zfs.clone_copy 的值,导致 Incus 跟踪祖先线中的任何 image 数据集,然后在其之上执行发送/接收。

gpu_mdev

这添加了对虚拟 GPU 的支持。它为 GPU 设备引入了 mdev 配置键,该键接受支持的 mdev 类型,例如 i915-GVTg_V5_4

resources_pci_iommu

这为资源 API 中的 PCI 条目添加了 IOMMUGroup 字段。

resources_network_usb

usb_address 字段添加到资源 API 中的网卡条目中。

resources_disk_address

usb_addresspci_address 字段添加到资源 API 中的磁盘条目中。

network_physical_ovn_ingress_mode

physical 网络添加了 ovn.ingress_mode 设置。

设置 OVN NIC 外部 IP 在上行链路网络上公布的方法。

l2proxy(代理 ARP/NDP)或 routed

network_ovn_dhcp

ovn 网络添加了 ipv4.dhcpipv6.dhcp 设置。

允许禁用 DHCP(和 IPv6 的 RA)。默认为开启。

network_physical_routes_anycast

physical 网络添加了 ipv4.routes.anycastipv6.routes.anycast 布尔设置。默认为 false

允许使用物理网络作为上行链路的 OVN 网络在与 ovn.ingress_mode=routed 一起使用时放宽外部子网/路由重叠检测。

projects_limits_instances

limits.instances 添加到可用的项目配置键中。如果设置,它将限制项目中可以使用实例(VM 和容器)的总数。

network_state_vlan

这将 vlan 部分添加到 /1.0/networks/NAME/state API 中。

它们包含与 VLAN 接口相关的其他状态信息

  • lower_device

  • vid

instance_nic_bridged_port_isolation

这为桥接 NIC 实例添加了 security.port_isolation 字段。

instance_bulk_state_change

添加了以下端点用于批量状态更改(有关详细信息,请参见 RESTful API

  • PUT /1.0/instances

network_gvrp

这将可选的 gvrp 属性添加到 macvlanphysical 网络,以及到 ipvlanmacvlanroutedphysical NIC 设备。

如果设置,这将指定是否应使用 GARP VLAN 注册协议注册 VLAN。默认为 false

instance_pool_move

这将 pool 字段添加到 POST /1.0/instances/NAME API 中,允许轻松在池之间移动实例根磁盘。

gpu_sriov

这添加了对启用 SR-IOV 的 GPU 的支持。它引入了 sriov GPU 类型属性。

pci_device_type

这引入了 pci 设备类型。

storage_volume_state

添加新的 /1.0/storage-pools/POOL/volumes/VOLUME/state API 端点以获取有关卷的用法数据。

network_acl

这将网络 ACL 的概念添加到 API 中,位于 API 端点前缀 /1.0/network-acls 下。

migration_stateful

添加新的 migration.stateful 配置键。

disk_state_quota

这在 disk 设备上引入了 size.state 设备配置键。

storage_ceph_features

在存储池上添加新的 ceph.rbd.features 配置键,以控制用于新卷的 RBD 功能。

projects_compression

添加新的 backups.compression_algorithmimages.compression_algorithm 配置键,允许按项目配置备份和映像压缩。

projects_images_remote_cache_expiry

为项目添加新的 images.remote_cache_expiry 配置键,允许设置一个天数,在此天数后将清除未使用的缓存的远程映像。

certificate_project

在 API 中的证书以及保存证书有权访问的项目名称列表的 projects 中添加新的 restricted 属性。

network_ovn_acl

为 OVN 网络和 OVN NIC 添加新的 security.acls 属性,允许应用网络 ACL。

projects_images_auto_update

添加新的 images.auto_update_cachedimages.auto_update_interval 配置键,允许配置项目中的映像自动更新。

projects_restricted_cluster_target

为项目添加新的 restricted.cluster.target 配置键,以防止用户使用 –target 指定要在哪个集群成员上放置工作负载或移动工作负载在成员之间。

images_default_architecture

添加了新的 images.default_architecture 全局配置键和匹配的每个项目键,允许用户告诉 Incus 在没有指定特定架构的情况下要使用哪个架构。

network_ovn_acl_defaults

添加了新的 security.acls.default.{in,e}gress.actionsecurity.acls.default.{in,e}gress.logged 配置键用于 OVN 网络和网卡。这取代了已删除的 ACL default.actiondefault.logged 键。

gpu_mig

这添加了对 NVIDIA MIG 的支持。它引入了 mig GPU 类型和关联的配置键。

project_usage

添加了一个 API 端点来获取项目中当前的资源分配。可在 API GET /1.0/projects/<name>/state 访问。

network_bridge_acl

bridge 网络添加了一个新的 security.acls 配置键,允许应用网络 ACL。

还添加了 security.acls.default.{in,e}gress.actionsecurity.acls.default.{in,e}gress.logged 配置键,用于指定未匹配流量的默认行为。

warnings

Incus 的警告 API。

这包括以下端点(有关详细信息,请参阅 Restful API

  • GET /1.0/warnings

  • GET /1.0/warnings/<uuid>

  • PUT /1.0/warnings/<uuid>

  • DELETE /1.0/warnings/<uuid>

projects_restricted_backups_and_snapshots

向项目添加了新的 restricted.backupsrestricted.snapshots 配置键,防止用户创建备份和快照。

clustering_join_token

添加了 POST /1.0/cluster/members API 端点,用于请求在不使用信任密码的情况下添加新的集群成员时使用的加入令牌。

clustering_description

向集群成员添加了一个可编辑的描述。

server_trusted_proxy

这引入了对 core.https_trusted_proxy 的支持,它让 Incus 解析此类连接上的 HAProxy 样式连接头,如果存在,将重写请求的源地址到代理服务器提供的地址。

clustering_update_cert

添加了 PUT /1.0/cluster/certificate 端点,用于在整个集群中更新集群证书

storage_api_project

这添加了对在项目之间复制/移动自定义存储卷的支持。

server_instance_driver_operational

这修改了 /1.0 端点的 driver 输出,使其仅包含在服务器上实际支持和可操作的驱动程序(而不是包含在 Incus 中但在服务器上不可操作的驱动程序)。

server_supported_storage_drivers

这将支持的存储驱动程序信息添加到服务器环境信息中。

event_lifecycle_requestor_address

lifecycle 请求者添加了一个新的地址字段。

resources_gpu_usb

在资源 API 中的 ResourcesGPUCard(GPU 条目)中添加了一个新的 USBAddress (usb_address) 字段。

clustering_evacuation

添加了 POST /1.0/cluster/members/<name>/state 端点,用于疏散和恢复集群成员。它还添加了配置键 cluster.evacuatevolatile.evacuate.origin,用于分别设置疏散方法 (autostopmigrate) 和任何迁移实例的来源。

network_ovn_nat_address

这引入了 Incus ovn 网络的 ipv4.nat.addressipv6.nat.address 配置键。这些键控制来自 OVN 虚拟网络的出站流量使用的源地址。只有当 OVN 网络的上行链路网络具有 ovn.ingress_mode=routed 时,才能指定这些键。

network_bgp

这引入了 Incus 充当 BGP 路由器以向 bridgeovn 网络发布路由的支持。

这伴随着对全局配置的以下添加:

  • core.bgp_address

  • core.bgp_asn

  • core.bgp_routerid

以下网络配置键 (bridgephysical)

  • bgp.peers.<name>.address

  • bgp.peers.<name>.asn

  • bgp.peers.<name>.password

以下 nexthop 配置键 (bridge)

  • bgp.ipv4.nexthop

  • bgp.ipv6.nexthop

以及以下特定于网卡的配置键 (bridged 网卡类型)

  • ipv4.routes.external

  • ipv6.routes.external

network_forward

这引入了网络地址转发功能。允许 bridgeovn 网络定义可以转发到其各自网络内部的内部 IP(s) 的外部 IP 地址。

custom_volume_refresh

添加了对卷迁移期间刷新操作的支持。

network_counters_errors_dropped

这将接收和发送的错误以及入站和出站丢弃的包添加到网络计数器中。

metrics

这将指标添加到 Incus。它使用 OpenMetrics 格式返回正在运行的实例的指标。

这包括以下端点

  • GET /1.0/metrics

image_source_project

POST /1.0/images 添加了一个新的 project 字段,允许在图像复制时设置源项目。

clustering_config

向集群成员添加了一个新的 config 属性,其中包含可配置的键/值对。

network_peer

这添加了网络对等功能,允许流量在 OVN 网络之间流动而无需离开 OVN 子系统。

linux_sysctl

添加了新的 linux.sysctl.* 配置键,允许用户修改容器内的某些内核参数。

network_dns

引入了内置的 DNS 服务器和区域 API,为 Incus 实例提供 DNS 记录。

这引入了以下服务器配置键

  • core.dns_address

以下网络配置键

  • dns.zone.forward

  • dns.zone.reverse.ipv4

  • dns.zone.reverse.ipv6

以及以下项目配置键

  • restricted.networks.zones

还引入了新的 REST API 来管理 DNS 区域

  • /1.0/network-zones (GET, POST)

  • /1.0/network-zones/<name> (GET, PUT, PATCH, DELETE)

ovn_nic_acceleration

为 OVN NIC 添加新的 acceleration 配置键,用于启用硬件卸载。它可以取值 nonesriov

certificate_self_renewal

此项新增对更新客户端信任证书的支持。

instance_project_move

POST /1.0/instances/NAME API 中添加了 project 字段,可以方便地将实例在项目之间迁移。

storage_volume_project_move

此项新增对在项目之间迁移存储卷的支持。

cloud_init

添加了新的 cloud-init 配置键命名空间,其中包含以下键

  • cloud-init.vendor-data

  • cloud-init.user-data

  • cloud-init.network-config

此外,还在 /dev/incus 中添加了新的端点 /1.0/devices,用于显示实例的设备。

network_dns_nat

在网络区域(DNS)上引入了 network.nat 作为配置选项。

默认情况下,它会按照当前行为为所有实例 NIC 生成记录,但如果设置为 false,它将指示 Incus 仅为可外部访问的地址生成记录。

database_leader

添加了新的 database-leader 角色,分配给集群领导者。

instance_all_projects

此项新增对显示所有项目中的实例的支持。

clustering_groups

添加对对集群成员进行分组的支持。

引入了以下新端点

  • /1.0/cluster/groups (GET, POST)

  • /1.0/cluster/groups/<name> (GET, POST, PUT, PATCH, DELETE)

添加了以下项目限制

  • restricted.cluster.groups

ceph_rbd_du

在 Ceph 存储池中添加了一个新的 ceph.rbd.du 布尔值,允许禁用使用可能很慢的 rbd du 调用。

instance_get_full

GET /1.0/instances/{name} 引入了一种新的 recursion=1 模式,允许检索所有实例结构,包括状态、快照和备份结构。

qemu_metrics

添加了一个新的 security.agent.metrics 布尔值,默认值为 true。当设置为 false 时,它不会连接到 incus-agent 获取指标和其他状态信息,而是依赖于 QEMU 的统计信息。

gpu_mig_uuid

支持 NVIDIA 470+ 驱动程序使用的新的 MIG UUID 格式(例如,MIG-74c6a31a-fde5-5c61-973b-70e12346c202),可以省略 MIG- 前缀

此扩展取代了旧的 mig.gimig.ci 参数,这些参数保留与旧驱动程序的兼容性,并且不能一起设置。

event_project

公开 API 事件所属的项目。

clustering_evacuation_live

cluster.evacuate 中添加了 live-migrate 作为配置选项,强制在集群疏散期间对实例进行实时迁移。

instance_allow_inconsistent_copy

POST /1.0/instances 上的实例源中添加了 allow_inconsistent 字段。如果为 true,则 rsync 会忽略 Partial transfer due to vanished source files(代码 24)错误,当从副本创建实例时。

network_state_ovn

/1.0/networks/NAME/state API 中添加了一个 ovn 部分,其中包含与 OVN 网络相关的其他状态信息

  • chassis

storage_volume_api_filtering

添加了对过滤存储卷 GET 请求结果的支持。

image_restrictions

此扩展在镜像属性上添加了镜像限制/主机要求。这些要求有助于确定实例和主机系统之间的兼容性。

storage_zfs_export

通过设置 zfs.export,引入了在卸载池时禁用 zpool 导出的功能。

network_dns_records

扩展了网络区域(DNS)API,添加了创建和管理自定义记录的功能。

这添加了

  • GET /1.0/network-zones/ZONE/records

  • POST /1.0/network-zones/ZONE/records

  • GET /1.0/network-zones/ZONE/records/RECORD

  • PUT /1.0/network-zones/ZONE/records/RECORD

  • PATCH /1.0/network-zones/ZONE/records/RECORD

  • DELETE /1.0/network-zones/ZONE/records/RECORD

network_zones_all_projects

此项新增对通过 GET /1.0/network-zones API 上的 all-projects 参数列出所有项目中的网络区域的支持。

storage_zfs_reserve_space

添加了设置 reservation/refreservation ZFS 属性以及 quota/refquota 的功能。

network_acl_log

添加了一个新的 GET /1.0/networks-acls/NAME/log API,用于检索 ACL 防火墙日志。

storage_zfs_blocksize

为 ZFS 存储卷引入了新的 zfs.blocksize 属性,允许设置卷块大小。

metrics_cpu_seconds

用于检测 Incus 是否已修复为以秒为单位输出使用的 CPU 时间而不是毫秒。

instance_snapshot_never

snapshots.schedule 中添加了 @never 选项,允许禁用继承。

certificate_token

将基于令牌的证书添加到信任库,作为对信任密码的更安全替代方案。

POST /1.0/certificates 中添加了 token 字段。

instance_nic_routed_neighbor_probe

此项新增对禁用父网络上 routed NIC IP 邻居探测以检查可用性的功能。

添加了 ipv4.neighbor_probeipv6.neighbor_probe NIC 设置。如果未指定,则默认设置为 true

event_hub

此项新增对 event-hub 集群成员角色和 ServerEventMode 环境字段的支持。

agent_nic_config

如果设置为 true,在虚拟机启动时,incus-agent 将应用 NIC 配置以更改实例 NIC 设备的名称和 MTU。

projects_restricted_intercept

添加新的 restricted.container.intercept 配置键以允许通常安全的系统调用拦截选项。

metrics_authentication

引入一个新的 core.metrics_authentication 服务器配置选项,允许 /1.0/metrics 端点在没有客户端身份验证的情况下普遍可用。

images_target_project

添加了将镜像复制到与源不同的项目的能力。

images_all_projects

这添加了通过 all-projects 参数在 GET /1.0/images API 上跨所有项目列出镜像的支持。

cluster_migration_inconsistent_copy

添加 allow_inconsistent 字段到 POST /1.0/instances/<name>。设置为 true 允许集群成员之间不一致的复制。

cluster_ovn_chassis

引入一个新的 ovn-chassis 集群角色,允许指定哪个集群成员应该充当 OVN 底盘。

container_syscall_intercept_sched_setscheduler

添加 security.syscalls.intercept.sched_setscheduler 以允许在容器中进行高级进程优先级管理。

storage_lvm_thinpool_metadata_size

引入了通过 storage.thinpool_metadata_size 指定精简池元数据卷大小的能力。

如果没有指定,则默认情况下让 LVM 选择合适的精简池元数据卷大小。

storage_volume_state_total

这将 total 字段添加到 GET /1.0/storage-pools/{name}/volumes/{type}/{volume}/state API 中。

instance_file_head

/1.0/instances/NAME/file 上实现 HEAD。

instances_nic_host_name

这引入了 instances.nic.host_name 服务器配置键,它可以取 randommac 的值。如果未指定,则该键的默认值为 random。如果它设置为随机,则使用随机主机接口名称。如果它设置为 mac,则生成 inc1122334455 形式的名称。

image_copy_profile

添加了在复制镜像时修改配置文件集的能力。

container_syscall_intercept_sysinfo

添加 security.syscalls.intercept.sysinfo 以允许使用基于 cgroup 的资源使用信息填充 sysinfo 系统调用。

clustering_evacuation_mode

这在疏散请求中引入了一个 mode 字段,它允许覆盖传统上通过 cluster.evacuate 设置的疏散模式。

resources_pci_vpd

在 PCI 资源条目中添加了一个新的 VPD 结构。此结构提取供应商提供的數據,包括完整的产品名称和额外的键值配置对。

qemu_raw_conf

引入 raw.qemu.conf 配置键以覆盖生成的 qemu.conf 的特定部分。

storage_cephfs_fscache

通过新的 cephfs.fscache 配置选项,为 CephFS 池添加了对 fscache/cachefilesd 的支持。

network_load_balancer

这引入了网络负载均衡器功能。允许 ovn 网络在外部 IP 地址上定义端口,这些端口可以转发到它们各自网络内部的一个或多个内部 IP。

vsock_api

这引入了一个双向 vsock 接口,它允许 incus-agent 和 Incus 服务器更好地进行通信。

instance_ready_state

这为实例引入了一个新的 Ready 状态,可以使用 /dev/incus 设置。

network_bgp_holdtime

这引入了一个新的 bgp.peers.<name>.holdtime 配置键来控制特定对等体的 BGP 保持时间。

storage_volumes_all_projects

这引入了列出所有项目中的存储卷的能力。

metrics_memory_oom_total

这在 /1.0/metrics API 中引入了一个新的 incus_memory_OOM_kills_total 指标。它报告内存不足杀手(OOM)触发的次数。

storage_buckets

这引入了存储桶 API。它允许管理存储池的 S3 对象存储桶。

storage_buckets_create_credentials

这更新了存储桶 API,以便在创建存储桶时返回初始管理员凭据。

metrics_cpu_effective_total

这在 /1.0/metrics API 中引入了一个新的 incus_cpu_effective_total 指标。它报告有效 CPU 的总数。

projects_networks_restricted_access

添加了 restricted.networks.access 项目配置键以指示(以逗号分隔的列表形式)项目内部可以访问哪些网络。如果未指定,则所有网络都可访问(假设它也允许下面描述的 restricted.devices.nic 设置)。

这也引入了一个更改,即网络访问由项目的 restricted.devices.nic 设置控制

  • 如果 restricted.devices.nic 设置为 managed(如果未指定,则为默认值),则只能访问受管理的网络。

  • 如果 restricted.devices.nic 设置为 allow,则所有网络都可访问(取决于 restricted.networks.access 设置)。

  • 如果 restricted.devices.nic 设置为 block,则所有网络都不可访问。

storage_buckets_local

此更改引入了通过设置新的 core.storage_buckets_address 全局配置设置来在本地存储池上使用存储桶的功能。

loki

此更改增加了对将生命周期和日志事件发送到 Loki 服务器的支持。

它添加了以下全局配置键

  • loki.api.ca_cert: 用于将事件发送到 Loki 服务器时的 CA 证书

  • loki.api.url: Loki 服务器的 URL(协议、名称或 IP 和端口)

  • loki.auth.usernameloki.auth.password: 如果 Loki 位于启用了基本身份验证的反向代理之后,则使用这些参数

  • loki.labels: 用作 Loki 事件标签的逗号分隔值列表。

  • loki.loglevel: 发送到 Loki 服务器的事件的最小日志级别。

  • loki.types: 要发送到 Loki 服务器的事件类型(lifecycle 和/或 logging)。

acme

此更改添加了 ACME 支持,允许 Let's Encrypt 或其他 ACME 服务颁发证书。

它添加了以下全局配置键

  • acme.domain: 要为其颁发证书的域名。

  • acme.email: 用于 ACME 服务帐户的电子邮件地址。

  • acme.ca_url: ACME 服务的目录 URL,默认为 https://acme-v02.api.letsencrypt.org/directory

它还添加了以下端点,这是 HTTP-01 挑战所需的

  • /.well-known/acme-challenge/<token>

internal_metrics

此更改将内部指标添加到指标列表中。这些指标包括

  • 正在运行的操作总数

  • 活动警告总数

  • 守护进程正常运行时间(以秒为单位)

  • Go 内存统计信息

  • goroutine 数量

cluster_join_token_expiry

此更改为集群加入令牌添加了到期时间,默认为 3 小时,但可以通过设置 cluster.join_token_expiry 配置键来更改。

remote_token_expiry

此更改为远程添加加入令牌添加了到期时间。它可以在 core.remote_token_expiry 配置键中设置,默认为无到期时间。

storage_volumes_created_at

此更改增加了对存储存储卷及其快照的创建日期和时间的支持。

此更改在 StorageVolumeStorageVolumeSnapshot API 类型中添加了 CreatedAt 字段。

cpu_hotplug

此更改为 VM 添加了 CPU 热插拔功能。使用 CPU 固定时会禁用热插拔,因为这将需要热插拔 NUMA 设备,而这是不可能的。

projects_networks_zones

此更改增加了对 features.networks.zones 项目功能的支持,该功能会更改创建项目网络区域时与它们关联的项目网络区域。以前,网络区域与 features.networks 的值相关联,这意味着它们是在与网络相同的项目中创建的。

现在,它已与 features.networks 分离,以允许在默认项目中共享网络的项目(即具有 features.networks=false 的项目)拥有自己的项目级 DNS 区域,这些区域提供了项目的“视图”。”共享网络上的地址(其中只包含来自其项目中的实例的地址)。

此更改还引入了对网络 dns.zone.forward 设置的更改,该设置现在接受逗号分隔的 DNS 区域名称列表(每个项目最多一个),以便将共享网络与多个区域关联。

dns.zone.reverse.* 设置没有进行任何更改,它们仍然只允许设置单个 DNS 区域。但是,生成的区域内容现在包括 PTR 记录,涵盖通过其转发区域之一引用该网络的所有项目的地址。

具有 features.networks=true 的现有项目将自动设置 features.networks.zones=true,但新项目需要明确指定。

instance_nic_txqueuelength

在 NIC 设备中添加了 txqueuelen 键,用于控制 txqueuelen 参数。

cluster_member_state

添加了 GET /1.0/cluster/members/<member>/state API 端点和关联的 ClusterMemberState API 响应类型。

instances_placement_scriptlet

增加了对 Starlark 脚本的支持,该脚本提供给 Incus 以允许自定义逻辑来控制在新集群中放置新实例的位置。

Starlark 脚本是通过新的全局配置选项 instances.placement.scriptlet 提供给 Incus 的。

storage_pool_source_wipe

增加了对存储池上的 source.wipe 布尔值的支持,该值指示 Incus 应该擦除请求的磁盘上的分区头,而不是可能由于预先存在的文件系统而失败。

zfs_block_mode

此更改增加了对使用 ZFS 块的支持文件系统卷,允许在 ZFS 之上使用不同的文件系统。

此更改为 ZFS 存储池添加了以下新的配置选项

  • volume.zfs.block_mode

  • volume.block.mount_options

  • volume.block.filesystem

instance_generation_id

增加了对实例生成 ID 的支持。每当实例在时间上向后移动时,VM 或容器生成 ID 都会发生变化。到目前为止,生成 ID 只通过到 VM 类型实例。这允许 VM 客机操作系统重新初始化其所需的任何状态,以避免重复可能已经发生的潜在状态

  • volatile.uuid.generation

disk_io_cache

此更改为磁盘设备引入了新的 io.cache 属性,该属性可用于覆盖 VM 缓存行为。

amd_sev

增加了对 AMD SEV(安全加密虚拟化)的支持,该技术可用于加密虚拟机的内存。

此更改为 SEV 加密添加了以下新的配置选项

  • security.sev : (bool) 此 VM 是否启用了 SEV

  • security.sev.policy.es : (bool) 此 VM 是否启用了 SEV-ES

  • security.sev.session.dh : (string) 客机所有者的 base64 编码的 Diffie-Hellman 密钥

  • security.sev.session.data : (string) 客机所有者的 base64 编码的会话 blob

storage_pool_loop_resize

此更改允许通过更改池的 size 设置来扩展循环文件支持的存储池。

migration_vm_live

此更改增加了对对共享存储(集群 Ceph)和非共享存储池执行 VM QEMU 到 QEMU 实时迁移的支持。

此更改还为迁移 CRIUType protobuf 字段添加了 CRIUType_VM_QEMU 的值 3

ovn_nic_nesting

此更改增加了对在同一实例上将 ovn NIC 嵌套在另一个 ovn NIC 中的支持。这允许 OVN 逻辑交换机端口使用 VLAN 标记在另一个 OVN NIC 内部进行隧道传输。

此功能通过使用 nested 属性指定父 NIC 名称以及使用 vlan 属性指定用于隧道的 VLAN ID 来配置。

oidc

这增加了对 OpenID Connect (OIDC) 身份验证的支持。

这添加了以下新的配置键

  • oidc.issuer

  • oidc.client.id

  • oidc.audience

network_ovn_l3only

这增加了将 ovn 网络设置为“仅第 3 层”模式的能力。可以使用 ipv4.l3onlyipv6.l3only 配置选项分别在 IPv4 或 IPv6 级别启用此模式。

启用此模式后,将对网络进行以下更改

  • 虚拟路由器的内部端口地址将配置为单个主机网络掩码(例如,IPv4 为 /32 或 IPv6 为 /128)。

  • 活动实例 NIC 地址的静态路由将添加到虚拟路由器。

  • 将向虚拟路由器添加一个针对整个内部子网的丢弃路由,以防止目标为非活动地址的数据包逸出到上行链路网络。

  • 将配置 DHCPv4 服务器以指示将使用 255.255.255.255 的网络掩码进行实例配置。

ovn_nic_acceleration_vdpa

这更新了 ovn_nic_acceleration API 扩展。OVN NIC 的 acceleration 配置键现在可以取值为 vdpa,以支持虚拟数据路径加速 (VDPA)。

cluster_healing

这添加了集群修复功能,该功能会自动撤离脱机集群成员。

这添加了以下新的配置键

  • cluster.healing_threshold

配置键接受一个整数,可以通过将其设置为 0(默认值)来禁用。如果设置,该值表示撤离脱机集群成员的阈值。如果该值小于 cluster.offline_threshold,则将使用该值。

撤离脱机集群成员时,只会迁移远程支持的实例。本地实例将被忽略,因为在集群成员脱机后无法迁移它们。

instances_state_total

此扩展在 InstanceStateDiskInstanceStateMemory 中添加了一个新的 total 字段,这两者都是实例状态 API 的一部分。

auth_user

将当前用户详细信息添加到主 API 终结点。

这引入了

  • auth_user_name

  • auth_user_method

security_csm

引入一个新的 security.csm 配置键来控制 CSM(兼容性支持模块)的使用,以允许在 Incus VM 中运行传统操作系统。

instances_rebuild

此扩展添加了使用相同源映像、备用映像或空映像重建实例的功能。添加了一个新的 POST /1.0/instances/<name>/rebuild?project=<project> API 终结点,以及一个新的 CLI 命令 incus rebuild

numa_cpu_placement

这增加了将一组 CPU 放置在所需 NUMA 节点集中的可能性。

这添加了以下新的配置键

  • limits.cpu.nodes : (字符串) 逗号分隔的 NUMA 节点 ID 或 NUMA 节点 ID 范围列表,用于放置 CPU(使用 limits.cpu 的动态值选择)。

custom_volume_iso

这增加了将 ISO 映像导入为自定义存储卷的可能性。

这为 incus storage volume import 添加了 --type 标志。

network_allocations

这增加了列出 Incus 部署的网络分配的可能性。

通过 incus network list-allocations 命令和 --project <PROJECT> | --all-projects 标志,您可以列出每个 instancenetworknetwork forwardnetwork load-balancer 使用的所有 IP 地址、硬件地址(对于实例)、资源 URI 以及是否使用 NAT。

zfs_delegate

这实现了一个新的 zfs.delegate 卷布尔值,用于 ZFS 存储驱动器上的卷。当启用并且使用合适的系统(需要 ZFS 2.2 或更高版本)时,ZFS 数据集将被委托给容器,允许通过 zfs 命令行工具使用它。

storage_api_remote_volume_snapshot_copy

这允许将存储卷快照复制到远程和从远程复制。

operations_get_query_all_projects

这引入了对 all-projects 查询参数的支持,用于对 /1.0/operations/1.0/operations?recursion=1 的 GET API 调用。此参数允许绕过项目名称过滤器。

metadata_configuration

添加了 GET /1.0/metadata/configuration API 终结点,以 JSON 格式检索生成的元数据配置。JSON 结构采用结构 "configs" > `ENTITY` > `ENTITY_SECTION` > "keys" > [<CONFIG_OPTION_0>, <CONFIG_OPTION_1>, ...]。请查看 配置选项 列表,了解其中包含哪些配置选项。

syslog_socket

这引入了可以接收 syslog 格式日志消息的 syslog 套接字。这些可以在事件 API 和 incus monitor 中查看,并且可以转发到 Loki。要启用此功能,请将 core.syslog_socket 设置为 true

event_lifecycle_name_and_project

这将字段 NameProject 添加到 lifecycle 事件。

instances_nic_limits_priority

这引入了每个 NIC 的新 limits.priority 选项,该选项与 cgroup1 和 cgroup2 兼容,与已弃用的 limits.network.priority 实例设置不同,后者仅与 cgroup1 兼容。

disk_initial_volume_configuration

此 API 扩展提供了为实例根设备设置初始卷配置的功能。初始卷配置以 initial. 为前缀,可以通过配置文件或在实例初始化期间使用 --device 标志直接指定。

请注意,这些配置仅在实例创建时应用,后续修改对现有设备没有影响。

operation_wait

此 API 扩展指示服务器上存在 /1.0/operations/{id}/wait 端点。这指示客户端可以使用该端点等待操作完成,而不是通过 /1.0/events 端点等待操作事件。

image_restriction_privileged

此扩展添加了新的镜像限制 requirements.privileged,当设置为 false 时,表示镜像不能在特权容器中运行。

cluster_internal_custom_volume_copy

此扩展添加了对使用单个 API 调用在集群内复制和移动自定义存储卷的支持。调用 POST /1.0/storage-pools/<pool>/custom?target=<target> 将复制请求的 source 部分中指定的自定义卷。调用 POST /1.0/storage-pools/<pool>/custom/<volume>?target=<target> 将把自定义卷从请求的 source 部分中指定的源移动到目标。

disk_io_bus

这为磁盘设备引入了新的 io.bus 属性,该属性可用于覆盖磁盘连接到的总线。

storage_cephfs_create_missing

这引入了配置键 cephfs.create_missingcephfs.osd_pg_numcephfs.meta_poolcephfs.osd_pool,这些键在添加 cephfs 存储池时使用,以指示 Incus 创建存储池所需的实体(如果不存在)。

instance_move_config

此 API 扩展提供了在项目和/或存储池之间移动实例时使用标志 --profile--no-profile--device--config 的能力。

ovn_ssl_config

这引入了新的服务器配置键,以提供 SSL CA 和客户端密钥对以访问 OVN 数据库。新的配置键是 network.ovn.ca_certnetwork.ovn.client_certnetwork.ovn.client_key

certificate_description

在证书中添加 description 字段。

disk_io_bus_virtio_blk

disk 设备上的 io.bus 添加了新的 virtio-blk 值,这使得连接的磁盘可以连接到 virtio-blk 总线。

loki_config_instance

添加了新的 loki.instance 服务器配置键,用于自定义 Loki 事件中的 instance 字段。这可以用来公开集群的名称,而不是发送事件的单个系统名称,因为这通常已经在 location 字段中涵盖了。

instance_create_start

POST /1.0/instances API 中添加了新的 start 字段,当设置为 true 时,实例将在创建后自动启动。

在这种情况下,创建和启动是单个后台操作的一部分。

clustering_evacuation_stop_options

这引入了 cluster.evacuate 选项的新选项

  • stateful-stop 使实例将其状态存储到磁盘,以便在恢复时恢复。

  • force-stop 使实例立即停止,而无需等待其关闭。

boot_host_shutdown_action

这引入了新的 boot.host_shutdown_action 实例配置键,该键可用于覆盖系统关闭时默认的 stop 行为。它支持值 stopstateful-stopforce-stop

agent_config_drive

这引入了新的 agent:config 磁盘 source,该源可用于将包含代理及其配置的 ISO 公开给 VM 客戶端。

network_state_ovn_lr

NetworkStateOVN 结构中添加了新的 LogicalRouter 字段,该字段是 GET /1.0/networks/NAME/state API 的一部分。

这用于获取 OVN 逻辑路由器名称。

image_template_permissions

这在镜像元数据模板条目中添加了 uidgidmode 字段。

storage_bucket_backup

添加存储桶备份支持。

这包括以下新的端点(有关详细信息,请参见 RESTful API

  • GET /1.0/storage-pools/<pool>/buckets/<bucket>/backups

  • POST /1.0/storage-pools/<pool>/buckets/<bucket>/backups

  • GET /1.0/storage-pools/<pool>/buckets/<bucket>/backups/<name>

  • POST /1.0/storage-pools/<pool>/buckets/<bucket>/backups/<name>

  • DELETE /1.0/storage-pools/<pool>/buckets/<bucket>/backups/<name>

  • GET /1.0/storage-pools/<pool>/buckets/<bucket>/backups/<name>/export

storage_lvm_cluster

这添加了新的 lvmcluster 存储驱动程序,该驱动程序通过 lvmlockd 使用 LVM 共享 VG。

有了它,就可以在多个服务器上拥有一个共享的 LVM 池,只要它们都能看到相同的后备设备(s)。

shared_custom_block_volumes

这在自定义块卷中添加了新的配置键 security.shared。如果未设置或为 false,则自定义块卷不能附加到多个实例。添加此功能是为了防止在自定义块卷同时附加到多个实例时可能发生的数据丢失。

auth_tls_jwt

这添加了使用签名的 JSON Web Token (JWT) 而不是直接使用 TLS 客户端证书的能力。

在这种情况下,客户端从自己的 TLS 客户端证书派生 JWT,并将其作为 bearer 令牌通过 Authorization HTTP 标头提供。

The JWT 必须具有证书的指纹作为其 Subject,并且必须由客户端的私钥签名。

oidc_claim

这引入了新的 oidc.claim 服务器配置键,该键可用于指定要作为用户名使用的 OpenID Connect 声明。

device_usb_serial

这为设备类型 usb 添加了新的配置键 serial。添加了功能,以区分具有相同 vendoridproductid 的设备。

numa_cpu_balanced

这将 balanced 作为 limits.cpu.nodes 的新值添加。

当设置为 balanced 时,Incus 将尝试在启动时为实例选择最不繁忙的 NUMA 节点,试图将负载分散到系统上的 NUMA 节点。

image_restriction_nesting

此扩展添加了一个新的图像限制,requirements.nesting,当true时,表示图像必须嵌套才能运行。

network_integrations

添加了网络集成的概念,并初步支持 OVN 互联。

新 API

  • /1.0/network-integrations (GET, POST)

  • /1.0/network-integrations/NAME (GET, PUT, PATCH, DELETE, POST)

每个集成都包含以下内容:

  • 名称

  • 描述

  • 类型(目前仅支持 ovn

  • 配置

    • ovn.northbound_connection(OVN 互联数据库的数据库连接字符串)

    • ovn.ca_cert(可选,OVN 互联数据库的 SSL CA 证书)

    • ovn.client_cert(可选,连接到 OVN 互联数据库的 SSL 客户端证书)

    • ovn.client_key(可选,连接到 OVN 互联数据库的 SSL 客户端密钥)

    • ovn.transit.pattern(用于生成中转交换机名称的 Pongo2 模板)

这些集成通过一些新的字段连接到网络对等方:

  • typelocal 代表当前行为,remote 代表集成)

  • target_integration(集成引用)

instance_memory_swap_bytes

此扩展扩展了 limits.memory.swap 以允许以字节为单位的总限制。

network_bridge_external_create

这使得 bridge.external_interfaces 可以使用 interface/parent/vlan 语法创建父接口。

storage_zfs_vdev

通过扩展存储 source 配置,此功能添加了对 mirrorraidz1raidz2 ZFS vdev 类型的支持。

container_migration_stateful

引入了 migration.stateful 配置键。

这是一个布尔标志,在启动、停止和快照函数期间,只要容器处于有状态模式,它就会被设置为 true。

这降低了用户在将容器复制到另一个系统时遇到 CRIU 错误的可能性。

profiles_all_projects

此功能添加了通过 GET /1.0/profiles API 上的 all-projects 参数在所有项目中列出配置文件的支持。

instances_scriptlet_get_instances

这允许实例脚本在给定可选的项目或位置过滤器的情况下获取实例列表。

instances_scriptlet_get_cluster_members

这允许实例脚本在给定可选的集群组的情况下获取集群成员列表。

instances_scriptlet_get_project

这允许实例脚本在给定项目名称的情况下获取项目。

network_acl_stateless

此功能添加了对网络 ACL 中无状态规则的支持。

instance_state_started_at

这在实例状态 API 中添加了一个 started_at 时间戳。

networks_all_projects

此功能添加了通过 GET /1.0/networks API 上的 all-projects 参数在所有项目中列出网络的支持。

network_acls_all_projects

此功能添加了通过 GET /1.0/network-acls API 上的 all-projects 参数在所有项目中列出网络 ACL 的支持。

storage_buckets_all_projects

此功能添加了通过 GET /1.0/storage-pools/POOL/buckets API 上的 all-projects 参数在所有项目中列出存储桶的支持。

resources_load

在资源 API 中添加了一个新的负载部分。

instance_access

这在 GET /1.0/instances/NAME/access 处引入了新的 API 端点,该端点公开哪些人可以与实例交互以及他们的角色。

project_access

这在 GET /1.0/projects/NAME/access 处引入了新的 API 端点,该端点公开哪些人可以与项目交互以及他们的角色。

projects_force_delete

这扩展了 DELETE /1.0/projects 以允许 ?force=true,它将删除项目中的所有内容以及项目本身。

resources_cpu_flags

这在我们的资源 API 中公开了 CPU 标志/扩展以检查 CPU 功能。

disk_io_bus_cache_filesystem

这为由文件系统支持的磁盘添加了对 io.busio.cache 的支持。

instance_oci

添加了对运行 OCI 容器的初步支持。

clustering_groups_config

这在集群组中引入了标准键值 config 选项,这将允许对这些组施加一些限制或配置。

instances_lxcfs_per_instance

这引入了一个新的 instances.lxcfs.per_instance 服务器配置键,用于控制是在每个实例上运行 LXCFS 还是在系统上全局运行。

clustering_groups_vm_cpu_definition

这引入了一些新的配置选项,用于通过集群组配置来控制虚拟机 CPU 定义。

新的配置键是:

  • instances.vm.cpu.ARCHITECTURE.baseline

  • instances.vm.cpu.ARCHITECTURE.flag

disk_volume_subpath

这引入了通过使用 source=volume/path 语法访问文件系统自定义卷的子路径的能力。

projects_limits_disk_pool

这引入了每个池项目的磁盘限制,在项目限制中引入了 limits.disk.pool.NAME 配置选项。

network_ovn_isolated

这允许将 none 用作 OVN 网络的上行链路网络,使网络隔离。

qemu_raw_qmp

这在虚拟机中添加了新的配置选项,以便在启动的各个阶段直接发出 QMP 命令

  • raw.qemu.qmp.early

  • raw.qemu.qmp.pre-start

  • raw.qemu.qmp.post-start

network_load_balancer_health_check

这添加了对负载均衡器后端执行健康检查的能力。

引入了以下新的配置选项:

  • healthcheck

  • healthcheck.interval

  • healthcheck.timeout

  • healthcheck.failure_count

  • healthcheck.success_count

oidc_scopes

这引入了新的 oidc.scopes 服务器配置键,它可以接受要从身份提供者请求的 OIDC 范围的逗号分隔列表。

network_integrations_peer_name

这扩展了 ovn.transit.pattern 以允许 peerName 作为模板变量。

qemu_scriptlet

这添加了在启动的各个阶段运行脚本的能力:使用 raw.qemu.scriptlet 配置键。

instance_auto_restart

此功能引入了一个新的配置键 boot.autorestart,当该键设置为 true 时,实例会在意外退出后自动重启,在 1 分钟内最多重启 10 次。

storage_lvm_metadatasize

此功能引入了一个新的选项 lvm.metadata_size,用于 LVM 存储池,允许在创建新的 LVM 物理卷时覆盖默认的元数据大小。

ovn_nic_promiscuous

此功能在 OVN 网卡上实现了一个新的配置选项 security.promiscuous

ovn_nic_ip_address_none

此功能为 OVN 网卡的 ipv4.addressipv6.address 添加了 none 作为值。

instances_state_os_info

此扩展向实例的 state API 添加了一个指向 InstanceStateOSInfo 结构体的指针。

network_load_balancer_state

此功能添加了一个新的 API 端点 /1.0/networks/NAME/load-balancers/IP/state,它返回负载均衡器健康检查信息(如果已配置)。

instance_nic_macvlan_mode

此功能在 macvlan 网络接口上添加了一个配置键 mode,允许配置 Macvlan 模式。

storage_lvm_cluster_create

通过将 source 设置为共享块设备,允许创建新的 LVM 集群池。

network_ovn_external_interfaces

此功能支持 OVN 网络上的 bridge.external_interfaces

instances_scriptlet_get_instances_count

此功能允许实例脚本获取给定可选项目或位置筛选器的实例数量,并包括待处理实例。