ニュースのトップページに戻る

Incus 6.9 リリースのお知らせ

2025/01/24

はじめに

Happy new year!

Incus チームは、Incus 6.9 のリリースのアナウンスができてうれしいです!

休暇であったことを考えると、このリリースは少し軽めのリリースですが、通常の多くのバグ修正に加えて、優れた機能がいくつか追加されています。

image|690x429

いつものように、オンラインでご自身で試せます: https://linuxcontainers.org/incus/try-it/

Enjoy!

新機能

ブリッジネットワーク上のインスタンスネットワーク ACL

システムがファイアウォールに nft を使用している場合は(これは incus info で調べられます)、ネットワーク ACL を、マネージドネットワークブリッジ上で実行されているインスタンスに直接適用できるようになりました。

この機能により、同じブリッジネットワーク上で実行されているさまざまなインスタンスに、個別の内向き・外向きのファイアウォールルールを適用することで、ネットワークのマイクロセグメンテーション化ができるようになりました。

ネットワーク ACL は、incus network acl を使って作成と管理を行い、security.acls 設定キーを使用して、関連する NIC インターフェースに適用できます。

ACL ドキュメント : https://linuxcontainers.org/incus/docs/main/howto/network_acls/
ブリッジドキュメント : https://linuxcontainers.org/incus/docs/main/reference/network_bridge/
NIC ドキュメント: https://linuxcontainers.org/incus/docs/main/reference/devices_nic/#nic-bridged

QEMU スクリプトレットの機能強化

このリリースで、QEMU スクリプトレットがさらに改善されました。

すべてのスクリプトレット呼び出しで完全なインスタンス構造が提供され、インスタンス設定、プロファイルのリストなどにアクセスできるようになりました。

QEMU が起動する前に実行される、新しい config フックも追加されました。
このフックは QMP コマンドを送ることには使えませんが、新しい関数を呼び出して、QEMU 設定ファイルまたはコマンドライン引数を変更できます:

  • get_qemu_cmdline
  • set_qemu_cmdline
  • get_qemu_conf
  • set_qemu_conf

ドキュメント : https://linuxcontainers.org/incus/docs/main/reference/instance_options/#advanced-use

VM のメモリーダンプ

新たに incus debug memory-dump コマンドと、それに対応する API が追加され、仮想マシンのメモリーダンプを簡単に取得できるようになりました。

Incus VM には、Windows 仮想マシンがメモリーデバッグ情報を提供できるようにするための必要なデバイスが含まれるようになりました。これにより、Windows デバッガーで読み込めるメモリーダンプが可能になります。

stgraber@dakara:~$ incus launch images:debian/12 v1 --vm
Launching v1
stgraber@dakara:~$ incus debug dump-memory v1 debug --format=elf
stgraber@dakara:~$ file debug
debug: ELF 64-bit LSB core file, x86-64, version 1 (SYSV), SVR4-style

OVM ネットワーク状態のアップリンクアドレス

アップリンクの IPv4、IPv6 アドレスを incus network info コマンドから直接得られるようになりました。

stgraber@athos:~# incus network info default
Name: default
MAC address: 00:16:3e:8d:51:b6
MTU: 1500
State: up
Type: broadcast

IP addresses:
  inet   10.22.45.1/24 (link)
  inet6  2602:fc62:b:8006::1/64 (link)

Network usage:
  Bytes received: 0B
  Bytes sent: 0B
  Packets received: 0
  Packets sent: 0

OVN:
  Chassis: delmak
  Logical router: incus-net13-lr
  IPv4 uplink address: 172.17.200.106
  IPv6 uplink address: 2602:fc62:b:200::106

サーバー構成ファイルからのストレージボリュームの作成

事前に与えるサーバー構成ファイル(preseed file)から直接、初期ストレージボリュームを定義できるようになりました。
この機能は、構成ファイルの一部でもあるプロファイルによって使用される共有ボリュームを設定する場合や、Incus イメージやバックアップストレージが使うボリュームを定義する場合に便利です。

ドキュメント : https://linuxcontainers.org/incus/docs/main/howto/initialize/#configuration-format

create コマンドでの説明の設定

すべての create コマンドに --description オプションが追加され、オブジェクトの設定(description)フィールドを直接設定できるようになりました。

stgraber@dakara:~$ incus profile create foo --description "Example profile"
Profile foo created
stgraber@dakara:~$ incus profile list
+---------+-----------------------+---------+
|  NAME   |      DESCRIPTION      | USED BY |
+---------+-----------------------+---------+
| default | Default Incus profile | 6       |
+---------+-----------------------+---------+
| foo     | Example profile       | 0       |
+---------+-----------------------+---------+

すべての変更点

このリリースのすべての変更のリストは次の通りです(翻訳なし):

すべてのChangeLogを見る
  • Translated using Weblate (Japanese)
  • incusd/scriptlet: Refactor load package
  • incusd/scriptlet: Add support for checking optional functions and improve error messages
  • Translated using Weblate (Japanese)
  • Translated using Weblate (Japanese)
  • incusd/storage/drivers: Force blkdiscard and ignore errors
  • incusd/auth: fix FGA online data race
  • incusd/storage/drivers: Log on blkdiscard failure
  • incusd/storage: Add storage volume db entries when storage is changed
  • client: Propagate HTTP TLS dialer to websocket
  • api: network_ovn_state_addresses
  • shared/api: Expand OVN state with uplink addresses
  • doc/rest-api: Refresh swagger YAML
  • internal/server: Add uplink addresses to ovn state
  • incus/network/info: Add uplink addresses for ovn network
  • i18n: Update translation templates
  • incus: Add --description flag to create commands
  • i18n: Update translation templates
  • tests: Add tests for --description flag on create commands
  • incusd/scriptlet: Fix qemu_hook required argument
  • doc: Fix qemu_hook required argument
  • Add simple shell.nix
  • client: Add proxy host to skopoe calls
  • incusd/cluster: Add missing error handling
  • incusd/cluster: Clarify error on DB failure
  • incusd/instance/qemu: Fix QMP arguments typing
  • incusd/instance/qemu: QEMU device naming consistency
  • Encode mc alias for storage buckets to match allowed characters
  • doc: Contributing section restructuring
  • incusd/network/ovn: Allow creation of OVN network with no uplink
  • incusd/network/ovn: Handle missing logical router in state
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • lxd-to-incus: Clear volatile.uuid from instances
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Added translation using Weblate (Chinese (Traditional Han script))
  • Translated using Weblate (Chinese (Traditional Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • github: Bump most workflows to 24.04
  • github: Split testsuite to separate action
  • github: Add aarch64 tests
  • tests: Skip nftables test on old kernels
  • Added translation using Weblate (Tamil)
  • shared/util: Add IsNoneOrEmpty
  • incusd/network/bridge: Tweak dnsmasq startup condition
  • shared/cgo: Add finalize_userns
  • shared/cgo: Export in_same_namespace
  • incusd/main_forkproxy: Join all namespaces at once
  • incusd/main_forkfile: Join all namespaces at once
  • internal/linux: Add ClearBlock
  • incusd/storage: Switch to linux.ClearBlock
  • internal/linux/discard: Remove leftover debugging
  • internal/linux/discard: Use marker length for buffer
  • internal/linux/discard: Add support for offset
  • incusd/storage/generic: Pass offset to ClearBlock
  • incusd/storage/lvm: Discard the new blocks on resize
  • incusd/storage/lvm: Run ClearBlock on all new thick block volumes
  • cmd: support header line for csv output
  • cmd: update --format flag description
  • i18n: Update translation templates
  • cmd: add validation for --format flag
  • doc: fix ref for vendor-data
  • devcontainer: initial version
  • Makefile: add target for unit tests as root
  • Makefile: add missing installations for gotags and openfga
  • incusd/network/ovn: Skip remote peers when iterating peer networks
  • incusd/storage/lvm: Move resize clearing to SetVolumeQuota
  • incusd/storage: Make use of qemu-img's target-is-zero option
  • incusd/device/disk: Remove virtfs-proxy-helper dependency
  • tests: Remove 9p proxy driver
  • incusd/instance: Split startupHook function
  • incusd/main_cluster: Tweak to have help refer to correct command name
  • incusd/instance: Pass an *api.Instance to the scriptlet program
  • incusd/scriptlet/qemu: Add instance parameter to the QEMU scriptlet
  • incusd/instance: Rewire QEMU config generation
  • incusd/instance: Make QEMU config types public
  • incusd/scriptlet/qemu: Fix Starlark function name
  • incusd/scriptlet/qemu: Prevent calling QMP functions at config stage
  • incusd/device/disk: Better handle partitions
  • Fixed link to point to correct manpage.
  • lxd-to-incus: Be more lenient on database changes
  • incusd/storage/drivers: Handle 4k sector sizes
  • incusd/dnsmasq: Don't put the project name in the DNS record
  • incusd/device/disk: disable 9p if idmap requested
  • incusd/scriptlet/qemu: Add QEMU configuration getters
  • incusd/scriptlet/qemu: Add QEMU configuration setters
  • api: qemu_scriptlet_config
  • doc/ref/instance_options: Update QEMU scriptlet documentation
  • incusd/instance: Update unit test
  • incusd/instance/drivers: Introduce ReloadDevice
  • api: network_bridge_acl_devices
  • incusd/device/nic: ACL support for bridge NIC device
  • incusd/server/firewall: ACL for bridge NIC device
  • doc/device/nic: Add ACL support to bridge NICs
  • doc/network_acl: Document usage with bridged NICs
  • tests: nftable test with ACL rules
  • github: Switch to Github's hosted arm64 runners
  • doc: typo
  • doc: Updated storage_zfs.md
  • incusd/device/disk: Update correct mount options
  • incus/file/pull: Port to SFTP
  • i18n: Update translation templates
  • api: instance_debug_memory
  • incusd/instances/qemu: Add vmcoreinfo device
  • incusd/instances/qemu: Add dump-guset-memory implementation for instance memory debugging
  • incusd: Add GET /1.0/instances/NAME/debug/memory
  • doc/rest-api: Refresh swagger YAML
  • client: Add API implementation for instance memory debugging
  • incus: Add "debug dump-memory" command
  • i18n: Update translation templates
  • doc: Force white background for swagger API
  • gomod: Update dependencies
  • api: init_preseed_storage_volumes
  • client: Add storage volume initialization
  • shared/api: Add storage volume initialization
  • doc: Include storage initialization example
  • doc/rest-api: Refresh swagger YAML
  • tests: Include storage volume to init test
  • incusd/instance/qemu: Fix device_id warning on 9.2.x
  • incus: Fix example description for debug dump-memory command
  • i18n: Update translation templates

ドキュメント

Incus のドキュメントはこちらです:
https://incus-ja.readthedocs.io/ja/latest/ (日本語訳)
https://linuxcontainers.org/incus/docs/main/ (原文)

パッケージ

Incus の開発元は、通常リリースの tarball のみをリリースするため、公式の Incus パッケージはありません。Incus を実行するために使えるオプションを以下にいくつか示します。

Linux 上に Incus サーバーをインストールする

Incus はほとんどの一般的な Linux ディストリビューションで利用できます。インストール手順の詳細は、Incus のドキュメントを参照してください。

https://incus-ja.readthedocs.io/ja/latest/installing/ (日本語訳)
https://linuxcontainers.org/incus/docs/main/installing/ (原文)

Incus クライアントの Homebrew パッケージ

HomeBrew 経由で、Linux と macOS 向けにクライアントツールが利用できます。

https://formulae.brew.sh/formula/incus

Incus クライアントの Chocolatey パッケージ

Chocolatey 経由で、Windows ユーザー向けにクライアントツールが利用できます。

https://community.chocolatey.org/packages/incus/6.9.0

Incus クライアントの Winget パッケージ

Winget 経由で、Windows ユーザー向けにクライアントツールが利用できます。

https://winstall.app/apps/LinuxContainers.Incus

サポート

月次のフィーチャーリリースは、次のリリースがリリースされるまでのみサポートされます。より長いサポート期間と少ない変更頻度が必要な場合、代わりに Incus 6.0 LTS の使用を検討すべきです。

コミュニティサポートはこちらから : https://discuss.linuxcontainers.org
商用サポートはこちらから : https://zabbly.com/incus
バグはこちらから報告できます : https://github.com/lxc/incus/issues