Incus 6.9 リリースのお知らせ¶
2025/01/24
はじめに ¶
Happy new year!
Incus チームは、Incus 6.9 のリリースのアナウンスができてうれしいです!
休暇であったことを考えると、このリリースは少し軽めのリリースですが、通常の多くのバグ修正に加えて、優れた機能がいくつか追加されています。
いつものように、オンラインでご自身で試せます: 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