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

Incus 6.10 リリースのお知らせ

2025/02/28

はじめに

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

このリリースでは、有効な HTTPS 証明書で Incus を実行する簡単な方法や、プロビジョニングデータを VM に送る新しい方法、とても歓迎される API の強化などが導入されています。

image|659x280

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

Enjoy!

新機能

ACME DNS-01 バリデーション

ACME(もっとも一般的には Let's Encrypt)を使った DNS-01 チャレンジを可能にするための新しい設定キーが追加されました。

これにより、Incus サーバー上で有効な TLS 証明書を取得するための簡単なパスが提供できます。

設定例:

acme.agree_tos: true
acme.domain: foo.example.net
acme.email: admin@foo.example.net
acme.challenge: DNS-01
acme.provider: cloudflare
acme.provider.environment: |-
  CLOUDFLARE_EMAIL=admin@foo.example.net
  CLOUDFLARE_API_KEY=XYZ

ドキュメント: https://linuxcontainers.org/incus/docs/main/server_config/#server-options-acme

API 全体でフィルタリングをサポート

Incus は、インスタンス、イメージ、ストレージボリュームのサーバー側でのフィルタリングすでにサポートしています。同じロジックが残りすべての API コレクションに拡張されました。

これらはすべて同じ OData フィルターで filter パラメータをサポートしています。
今後数回のリリースで、Incus のコマンドラインツールがこれを使うようになるでしょう。

ドキュメント: https://linuxcontainers.org/incus/docs/main/rest-api/#filtering

VM で SMBIOS11 プロビジョニングをサポート

DMI テーブルを備えたシステム(x86_64 もしくは aarch64)では、SMBIOS タイプ 11 テーブルにデータを与えることができるようになりました。これは、ハイパーバイザーに対して別の通信チャンネル(ネットワーク、シリアルなど)を必要とせずに、システムにデータを提供する方法です。

これは特に systemd がサポートしており、プロビジョニングデータを渡すために使用できます: https://www.freedesktop.org/software/systemd/man/latest/smbios-type-11.html

例:

stgraber@dakara:~$ incus launch images:debian/12 d12 --vm -c smbios11.io.systemd.credential:foo=bar
Launching d12
stgraber@dakara:~$ incus exec d12 -- systemd-creds --system cat foo
bar

VM での IOMMU サポート

Incus の VM は、セキュリティやデバイスパススルーの助けになる IOMMU サポートを自動的に取得するようになりました。ほとんどのユーザーにとっては、これは完全に目に見えない変更です。

root@u1:~# dmesg | grep -i iommu
[    0.406474] iommu: Default domain type: Translated
[    0.406481] iommu: DMA domain TLB invalidation policy: strict mode
[    0.534812] virtio_iommu virtio0: input address: 48 bits
[    0.534820] virtio_iommu virtio0: page mask: 0xfffffffffffff000
[    0.637345] pcieport 0000:00:02.0: Adding to iommu group 0
[    0.642755] pcieport 0000:00:02.1: Adding to iommu group 1
[    0.649614] pcieport 0000:00:02.2: Adding to iommu group 2
[    0.656700] pcieport 0000:00:02.3: Adding to iommu group 3
[    0.663517] pcieport 0000:00:02.4: Adding to iommu group 4
[    0.669419] pcieport 0000:00:02.5: Adding to iommu group 5
[    0.675831] pcieport 0000:00:02.6: Adding to iommu group 6
[    0.682967] pcieport 0000:00:02.7: Adding to iommu group 7
[    0.688303] pcieport 0000:00:03.0: Adding to iommu group 8
[    0.695646] pcieport 0000:00:03.1: Adding to iommu group 9
[    0.700994] pcieport 0000:00:03.2: Adding to iommu group 10
[    0.709613] pcieport 0000:00:03.3: Adding to iommu group 11
[    0.715130] pcieport 0000:00:03.4: Adding to iommu group 12
[    0.722208] virtio-pci 0000:01:00.0: Adding to iommu group 13
[    0.728419] virtio-pci 0000:01:00.1: Adding to iommu group 13
[    0.732362] virtio-pci 0000:01:00.2: Adding to iommu group 13
[    0.737953] virtio-pci 0000:01:00.3: Adding to iommu group 13
[    0.746652] virtio-pci 0000:01:00.4: Adding to iommu group 13
[    0.752491] virtio-pci 0000:01:00.5: Adding to iommu group 13
[    0.781052] virtio-pci 0000:02:00.0: Adding to iommu group 14
[    0.791255] virtio-pci 0000:03:00.0: Adding to iommu group 15
[    0.799383] virtio-pci 0000:03:00.1: Adding to iommu group 15
[    0.809692] virtio-pci 0000:04:00.0: Adding to iommu group 16
[    0.820005] virtio-pci 0000:05:00.0: Adding to iommu group 17
[    1.399721] xhci_hcd 0000:01:00.6: Adding to iommu group 13

routed NIC での VRF サポート

複数の VRF(Virtual Routing and Forwarding)を使用するシステムでは、特定の routed NIC を任意の VRF に配置できるようになりました。

これは、routed タイプの nic デバイス上で、新しい vrf プロパティを使うことで行われます。

ドキュメント : https://linuxcontainers.org/incus/docs/main/reference/devices_nic/#nictype-routed

事前に与える構成ファイルでのプロジェクト内のプロファイルの作成

Incus サーバーの、事前に与える構成ファイル(preseed)を使うロジックが拡張されました。特定のプロジェクト内でプロファイルが作成できます。

これは、関連する profile エントリーの project キーを通して行えます。
そして、プロジェクトも事前に与える構成ファイル内で定義する必要があります。

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

バックアップとイメージで LZ4 をサポート

lz4 が、Incus 内で完全にサポートされている圧縮フォーマットになりました。
対応するツールがシステムにインストールされている場合、インスタンス、ボリューム、バケットのバックアップ(インポート・エクスポート)とイメージの両方に LZ4 が使えるようになりました。

すべての変更点

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

すべてのChangeLogを見る
  • incusd/instance/drivers/qmp: Handle missing log directory
  • cmd/incus-user: keep track of socket path used to connect to the server
  • cmd/incus-user: unify logging, support --verbose and --debug
  • api: init_preseed_profile_project
  • shared/api: Add project support to profiles in preseed init
  • client: Add project support to profiles in preseed init
  • doc/rest-api: Refresh swagger YAML
  • incus/admin/init: use api.InitProfileProjectPost
  • incusd/network/ovn: Fix bad route check
  • incus/file/pull: Ensure we have a leading / in all paths
  • github: Fix shellcheck
  • doc/installing: mention incus group on NixOS
  • incus/file/pull: Read files in chunks
  • incus/file/pull: Actually make read buffer 1MiB
  • incusd/network/bridge: Fix deletion of tunnels and dummy devices
  • incusd/device/disk: Allow virtiofsd on non-x86
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • incusd/instance/drivers/qemu: Add IOMMU device
  • incus/file: Remove unused function
  • i18n: Update translation templates
  • incus/network/info (ovn): Fix object not found.
  • Translated using Weblate (Chinese (Simplified Han script))
  • incusd/instance/drivers: Improve NUMA balancing
  • incus/file: Move from path to filepath
  • github: Add linux-modules-extra (for vrf)
  • shared/archive: Added LZ4 support
  • api: instance_nic_routed_host_address
  • incus/server/ip: Add Master parameter for veth and tuntap
  • incus/server/ip: Add VRF parameter for IP Route
  • incus/server/device: Add vrf parameter for routed NIC devices
  • tests: Add test for routed NIC with VRF
  • doc: Add description for routed-nic VRF parameter
  • Translated using Weblate (Chinese (Simplified Han script))
  • Translated using Weblate (Chinese (Simplified Han script))
  • generate-database: Move into cmd package
  • generate-config: Move to cmd package
  • incus/storage/drivers: Fix issue with lvmcluster storage pool creation
  • generate-database: Rename from incus-generate
  • generate-config: Rename from incus-doc
  • github: Workaround permission problems
  • internal/instance: Move user config key doc string
  • internal/instance: Add environment config keys docstring
  • incusd/internal/server/instance: Add qemuEscapeCmdline
  • incusd/internal/server/instance: Use qemuEscapeCmdline
  • api: instance_smbios
  • internal/instance: Add smbios config keys
  • incusd/instance/drivers/qemu: Implement smbios config keys
  • doc: Update configs
  • incus: Fix instance copy error when using '--refresh' flag
  • doc/network_load_balancers: Fix backend add instructions
  • doc: Add frontend to wordlist
  • incusd/main_nsexec: Fix change_namespaces fallback to handle multiple namespaces
  • incusd/instance/utils: Only check uid/gid for containers
  • generate-database: Use types.Package
  • generate-database: Remove support for separate database package
  • generate-database: Separate Go package loading
  • incusd/instance/drivers: Check if disk is remote when migrating with an extra disk
  • incusd/instance/edk2: Look for bios.bin in /usr/share/seabios
  • generate-database: Add unified generate command
  • incusd/db: Use generate command
  • generate-database: Remove obsolete commands stmt and method
  • generate-database: Update README.md
  • generate-database: Reduce to single go:generate per package
  • incusd/db: Use Single generate per package
  • golangci: Update for new generate-database syntax
  • internal/cmd/table: Improve errors on modifiers
  • incusd: Add additional validation when joining a new cluster member
  • incusd: Upgrade flosch/pongo2 to v6
  • doc: Bump minimum kernel to 5.15
  • Makefile: Bump minimal Go to 1.23
  • doc: Bump minimum Go to 1.23
  • gomod: Update dependencies
  • github: Re-order code tests tasks
  • incusd/resources: Prevent concurrent runs and cache data for 10s
  • incusd/backup: Implement compatibility with old backups
  • incusd/backup: Detect incompatible backup files
  • fix: Don't attempt to download signatures for oci
  • incusd: Ensure directories have 755 permissions in 'incus file push -p' command
  • tests: Fix test for verifying directory permissions
  • devcontainer: Update Go to 1.23
  • generate-database: Make "Code generated" comment Go conformant
  • db/cluster: Update code generated by generate-database
  • generate-database: Add internal tool disclaimer
  • generate-config: Formatting README.md
  • generate-config: Add internal tool disclaimer
  • incusd/storage/drivers: Truncate the block file during custom volume migration
  • incusd/instance/qemu: Don't attempt to hotplug over the virtual IOMMU
  • incusd/device/disk: Remove diskAddRootUserNSEntry
  • incusd/device/disk: Use virtiofsd uid/gid handling
  • generate-database: Add error mapping
  • incusd/db: Use error mapping
  • incusd/db: Update generated code
  • generate-database: Make self-sufficient
  • incusd/db: Update generated code
  • generate-database: Improve case handling
  • incus/list: Remove unused arguments and parameters
  • incus/top: Fix handling of all-projects
  • incusd/storage/drivers: Refactor ceph discovery
  • incusd/instance/drivers: Let QEMU handle Ceph itself
  • incus/file: Simplify sftpCreateFile
  • incus/file: Change recursiveFilePush to use SFTP
  • incus/file: Change recursiveMkdir to use SFTP
  • incus/file: Change recursivePullFile to use SFTP
  • incus/file: Re-use SFTP as much as possible
  • internal/filter: Handle multiple in-line structs
  • api: api_filtering_extended
  • incusd: Add filtering to /1.0/networks
  • incusd: Add filtering to /1.0/networks/{networkName}/forwards
  • incusd: Add filtering to /1.0/networks/{networkName}/load-balancers
  • incusd: Add filtering to /1.0/networks/{networkName}/peers
  • incusd: Add filtering to /1.0/network-acls
  • incusd: Add filtering to /1.0/network-integrations
  • incusd: Add filtering to /1.0/network-zones
  • incusd: Add filtering to /1.0/network-zones/{zone}/records
  • incusd: Add filtering to /1.0/storage-pools
  • incusd: Add filtering to /1.0/storage-pools/{poolName}/buckets
  • incusd: Add filtering to /1.0/certificates
  • incusd: Add filtering to /1.0/profiles
  • incusd: Add filtering to /1.0/projects
  • doc/rest-api: Refresh swagger YAML
  • tests: Test more API filters
  • doc: Remove mention of limitations on filtering
  • gomod: Update dependencies
  • api: acme_dns01
  • incusd/cluster/config: Add extra ACME config keys
  • incusd/acme: Add DNS-01 support
  • gomod: Update dependencies
  • doc: Add resolvers to wordlist
  • doc: Update configs

ドキュメント

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.10.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