Incus 7.0 LTS リリースのお知らせ¶
2026/05/05
はじめに ¶
Incus チームは、Incus 7.0 LTS のリリースを発表することを大変誇りに思い、またうれしく思います!!
Incus は、最新のシステムコンテナ、アプリケーションコンテナ、仮想マシンのマネージャーです。Apache 2.0 ライセンスのもとにリリースされており、Linux Containers Organization の一部として、コミュニティー主導の Open Source プロジェクトとして運営されています。
Incus はクラウドのような環境を提供し、プロジェクトが作成したイメージ や任意の OCI レジストリーからインスタンスを作成し、サーバーをシームレスにクラスタリングできる機能をはじめとして、幅広い機能を提供します。
複数の異なるローカルやリモートのストレージオプション、従来型、または完全に分散化されたネットワークをサポートし、完全な REST API、Ansible、Terraform/OpenTofu、Packer、Kubernetes Cluster API などの一般的なツールとの統合を含む、一般的なクラウド機能をほとんど提供します。
このリリースは、Incus にとって 2 度目の LTS リリースであり、Incus 6.0 LTS は、5 年間のライフサイクルのうちの残り 3 年間のセキュリティ修正のみのフェーズに入ります。
Incus 7.0 LTS は、LXC 7.0 LTS と LXCFS 7.0 LTS に続く、今回の LTS リリースの締めくくりです。
姉妹プロジェクトと同様に、Incus 7.0 LTS は 2031 年 6 月 までサポートされます。
最初の2年間は、バグ修正やセキュリティ対策、および軽微なユーザビリティ改善が、定期的なポイントリリース(7.0.x)を通じて提供されます。最初の2年間が経過した後、Incus 7.0 LTS は、5年間のサポート期間の残り 3 年は、セキュリティ対策のみのメンテナンスに移行します。
6.0 LTS と 7.0 LTS リリースの間で合計 204 名が Incus に貢献し、6.23 と 7.0 LTS リリースの間では 45 名が貢献しました。
いつものように、オンラインでご自身で試せます: https://linuxcontainers.org/incus/try-it/
Enjoy!
セキュリティ修正 ¶
このリリースには、9 件のセキュリティ問題の修正を含みます。
これらは、https://7asecurity.com が実施したセキュリティ監査の一部として報告されたものです。
- CVE-2026-35527 (Moderate)
- CVE-2026-40195 (Moderate)
- CVE-2026-40197 (Moderate)
- CVE-2026-40251 (Moderate)
- CVE-2026-41647 (Moderate)
- CVE-2026-41684 (Moderate)
- CVE-2026-41685 (Moderate)
- CVE-2026-40243 (Low)
- CVE-2026-41648 (Low)
互換性のない変更 ¶
今回のリリースは、新しいメジャーリリースであるため、互換性を損なう変更をいくつか加えています。
最小システム要件が更新されました:
- Go 1.25
- Linux 6.12
- QEMU 8.2
- LXC 6.0.0
- nftables 1.0.0
- dnsmasq 2.90
- openvswitch 2.15.0 (OVS や OVN 使用時)
- ovn 23.03.0 (OVN 使用時)
- ZFS 2.1.0 (ZFS 使用時)
- LVM 2.03.11 (LVM 使用時)
それに加えて、レガシーなシステムサポートが削除されました:
- cgroup v1 サポートの廃止
- xtables (iptables/ip6tables/ebtables) サポートの廃止
incus コマンドラインツールも、解析ロジックが大幅に改良され、多くの古い特殊ケースが廃止され、さまざまなコマンドの動作が一貫性を保つように改良されました。
Incus 6.23 からの変更点 ¶
MinIO をビルトイン S3 リスナーへ置き換え ¶
MinIO はもはや開発元でメンテナンスされないため、ストレージバケットのバックエンドプロバイダーとしては使い続けられなくなりました。
他の外部依存へ移行し、それに伴う複雑な設定や統合作業を避けるため、必要となる基本的な S3 操作を Incus に直接実装することにしました。
ストレージバケットは、初回アクセス時に MinIO のディスク上のフォーマットから、新しいディスク上のフォーマット(メタデータが別のプレーンファイル)に変換されます。この処理は、バケット内のオブジェクトのサイズによっては数分かかる場合があります。
移行ロジックは、必要に応じて元の MinIO メタデータを保持します。
クライアントの視点では、変換時の初期の接続遅延を除いて、API に違いはなく、従来通りの S3 のままです。
サーバーのシャットダウン動作 ¶
新たなサーバー設定オプションとして、core.shutdown_action が追加されました。
デフォルト値である shutdown では、すべてのインスタンスがクリーンにシャットダウンします。新しい値である evacuate を指定すると、シャットダウン時にクラスター化サーバーの退避がトリガーされ、可能な限り多くのインスタンスは他のサーバーに移行できます。
ドキュメント : https://linuxcontainers.org/incus/docs/main/server_config/
低レベルバックアップ API ¶
標準的なバックアップソフトウェアとの統合を簡単にするため、Incus は NBD API と、変更追跡用のダーティビットマップの作成を制御する API を公開するようになりました。
これら 2 つの機能を組み合わせることで、増分での転送やリストアを含む、容易な仮想マシンのバックアップが可能になります。
NBD は Incus API を通して提供されるため、Incus CLI ツールがバックエンドコネクションを処理し、通常の NBD クライアントとのインターフェースとなる NBD リスナーをセットアップできます。
stgraber@castiana:~$ incus storage volume nbd default virtual-machine/v1 --address=127.0.0.1:1234
NBD listening on 127.0.0.1:1234
ストレージプールのプロジェクト制限 ¶
新たにプロジェクトの設定キーに restricted.storage-pools.access が追加されました。これにより、プロジェクト内からアクセス可能なストレージプールのカンマ区切りのリストを指定できます。
これは、プロジェクト内でストレージプールに対して 0 バイトのクォータを設定するのと同様に動作しますが、拒否リストではなく、許可リスト形式を採用しています。
ドキュメント : https://linuxcontainers.org/incus/docs/main/reference/projects/
クラスターリバランス時の配置スクリプトレット呼び出し ¶
クラスターのリバランス機能が有効になり、Incus が負荷分散のためにインスタンスの移動を検討している場合、インスタンス配置スクリプトレットは専用の rebalance コールを受け取るようになりました。
候補サーバーのリストは、負荷が低い方から高い方へソートされます。
ドキュメント : https://linuxcontainers.org/incus/docs/main/explanation/clustering/
ファイル転送コマンドは cp コマンドと同様に ¶
incus file push と incus file pull コマンドは、cp コマンドと合致するオプションを使い、cp コマンド同様に動作するようになりました:
-p, --create-dirs 必要なディレクトリーを作成する
-L, --dereference ソースパス内のシンボリックリンクを常にたどる
-H, --follow コマンドラインに指定したソースパスのみシンボリックリンクをたどる
-P, --no-dereference ソースパス内のシンボリックリンクはたどらない
-r, --recursive 再帰的にファイルを転送する
これにより、Incus インスタンス間でのファイル転送がより予測どおりになります。
incus image copy の --reuse フラグ ¶
incus image copy コマンドに --reuse フラグが追加されました。このフラグを --copy-aliases と同時に使うと、新たにコピーされたイメージが、既存のエイリアスをすべて引き継ぎます。
Incus 6.0.6 LTS 以降の変更 ¶
これまで、Incus 6.x リリースから 6.0.x LTS リリースへのバックポートをかなり積極的に行いました。その結果、6.0.6 LTS から移行するユーザーにとっての新機能リストは比較的短いです。
これらの新機能は主に、ディスク上の大規模な変更やデータベーススキーマの変更を必要とするため、LTS へのバックポートには適さなかった変更にフォーカスを当てています。
ここまで紹介したすべての新機能 ¶
Incus 6.0.6 LTS は、Incus 6.23 の直前にリリースされたため、ここまでで紹介したすべての新機能は、Incus 6.0.6 LTS から移行するユーザーにも適用されます。
OCI サポート ¶
Incus 6.3 で初めて導入された機能として、OCI イメージからアプリケーションコンテナを作成できるようになりました。
リソース制限や、システムコールインターセプションなど、Incus コンテナのすべての設定オプションは、これらの OCI イメージから作成したコンテナにもすべて適用されます。
stgraber@dakara:~$ incus remote add docker https://docker.io --protocol=oci
stgraber@dakara:~$ incus launch docker:mysql mysql \
> -c environment.MYSQL_DATABASE=wordpress \
> -c environment.MYSQL_USER=wordpress \
> -c environment.MYSQL_PASSWORD=wordpress \
> -c environment.MYSQL_RANDOM_ROOT_PASSWORD=1
Launching mysql
stgraber@dakara:~$ incus list mysql
+-------+---------+----------------------+------------------------------------------+-----------------+-----------+
| NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS |
+-------+---------+----------------------+------------------------------------------+-----------------+-----------+
| mysql | RUNNING | 172.17.250.26 (eth0) | 2602:fc62:c:250:216:3eff:fefa:468 (eth0) | CONTAINER (APP) | 0 |
+-------+---------+----------------------+------------------------------------------+-----------------+-----------+
stgraber@dakara:~$ incus launch docker:wordpress wordpress \
> -c environment.WORDPRESS_DB_HOST=172.17.250.26 \
> -c environment.WORDPRESS_DB_USER=wordpress \
> -c environment.WORDPRESS_DB_PASSWORD=wordpress \
> -c environment.WORDPRESS_DB_NAME=wordpress
Launching wordpress
stgraber@dakara:~$ incus list wordpress
+-----------+---------+-----------------------+-------------------------------------------+-----------------+-----------+
| NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS |
+-----------+---------+-----------------------+-------------------------------------------+-----------------+-----------+
| wordpress | RUNNING | 172.17.250.119 (eth0) | 2602:fc62:c:250:216:3eff:fe61:c1fc (eth0) | CONTAINER (APP) | 0 |
+-----------+---------+-----------------------+-------------------------------------------+-----------------+-----------+
stgraber@dakara:~$
依存ストレージボリューム ¶
Incus 6.23 で初めて導入されたこの機能により、インスタンスと完全にひも付いたカスタムボリュームを持つことができるようになりました。一致するスナップショットを取得したり、インスタンスとともに移行したり、バックアップに含めたり、インスタンスが削除されると同時に削除したりできるようになりました。(訳注:インスタンスを削除すると同時にボリュームも削除され、インスタンスのスナップショットを作成するとボリューム上に一致するスナップショットが作成され、インスタンスのバックアップには依存ボリュームが含まれる)
stgraber@castiana:~$ incus launch images:debian/13 c1
Launching c1
stgraber@castiana:~$ incus storage volume create default c1-extra dependent=true
Storage volume c1-extra created
stgraber@castiana:~$ incus config device add c1 extra disk pool=default source=c1-extra dependent=true path=/extra
Device extra added to c1
stgraber@castiana:~$ incus storage volume snapshot create default c1-extra test
Error: Direct snapshots are not allowed for dependent volumes
stgraber@castiana:~$ incus snapshot create c1 foo
stgraber@castiana:~$ incus storage volume snapshot list default c1-extra
+------+----------------------+------------+
| NAME | TAKEN AT | EXPIRES AT |
+------+----------------------+------------+
| foo | 2026/03/27 18:54 EDT | |
+------+----------------------+------------+
stgraber@castiana:~$ incus snapshot delete c1 foo
stgraber@castiana:~$ incus storage volume snapshot list default c1-extra
+------+----------+------------+
| NAME | TAKEN AT | EXPIRES AT |
+------+----------+------------+
ネットワークアドレスセット ¶
Incus 6.12 で初めて導入されたネットワークアドレスセットは、送信元・送信先アドレスのリストを重複させる必要がないため、ネットワーク ACL を簡素化する便利な方法です。
アドレスセットは、ACL と同様にプロジェクトにひもづけられ、それぞれのセットは IPv4 と IPv6 アドレスを含めることができます。セットは ACL のソースとデスティネーションフィールドから参照できます。
stgraber@dakara:~$ incus network address-set create cloudflare-dns
Network address set cloudflare-dns created
stgraber@dakara:~$ incus network address-set add cloudflare-dns 1.0.0.1
stgraber@dakara:~$ incus network address-set add cloudflare-dns 1.1.1.1
stgraber@dakara:~$ incus network address-set add cloudflare-dns 2606:4700:4700::1001
stgraber@dakara:~$ incus network address-set add cloudflare-dns 2606:4700:4700::1111
stgraber@dakara:~$ incus network acl create my-acl
Network ACL my-acl created
stgraber@dakara:~$ incus network acl rule add my-acl egress action=allow state=enabled
stgraber@dakara:~$ incus network acl rule add my-acl egress action=reject state=enabled destination='$cloudflare-dns'
stgraber@dakara:~$ incus config device override d13 eth0 security.acls=my-acl
Device eth0 overridden for d13
stgraber@dakara:~$ incus exec d13 -- ping linuxcontainers.org -c1 -W1
PING linuxcontainers.org (2602:fc62:a:1::7) 56 data bytes
64 bytes from rproxy.dcmtl.stgraber.org (2602:fc62:a:1::7): icmp_seq=1 ttl=59 time=8.60 ms
--- linuxcontainers.org ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 8.599/8.599/8.599/0.000 ms
stgraber@dakara:~$ incus exec d13 -- ping one.one.one.one -c1 -W1
PING one.one.one.one (2606:4700:4700::1111) 56 data bytes
--- one.one.one.one ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms
ドキュメント : https://linuxcontainers.org/incus/docs/main/howto/network_address_sets/
Linstor ストレージドライバー ¶
Incus 6.11 で初めて導入された Linstor は、DRBD を使ってシステム間で効率的なデータレプリケーションを行う、もう 1 つのリモートストレージオプションです。
Linstor の詳細については、公式サイトをご覧ください: https://linbit.com/linstor/
Linstor を使用すると、コンテナや仮想マシン用のブロックボリュームを生成できます。通常は、プライマリーコピーはインスタンスが稼働しているサーバー上に、レプリカはクラスター内の他のサーバー上に存在します。
ドライバードキュメント : https://linuxcontainers.org/incus/docs/main/reference/storage_linstor/
Howto: https://linuxcontainers.org/incus/docs/main/howto/storage_linstor_setup/
インターナル : https://linuxcontainers.org/incus/docs/main/reference/storage_linstor_internals/
TrueNAS ストレージドライバー ¶
Incus 6.16 で初めて導入された TrueNAS ストレージドライバーは、リモートの TrueNAS サーバーを、Incus インスタンスとボリュームのストレージプールとして使用できるようにします。
これは、TrueNAS が使用する ZFS ストレージドライバーと非常に似た動作をします。しかし、ローカルで ZFS とやりとりするのではなく、TrueNAS API を使用してさまざまなアクションをリモートでストレージサーバー上で実行します。そして、iSCSI を使用して TrueNAS からボリュームをエクスポートし、Incus サーバーへ接続します。
(Ceph や Linstor やクラスター化された LVM と並んで)リモートストレージドライバーとしてこれをクラスターで使用すると、データの移動が不要なため、サーバー間でインスタンスのシームレスなマイグレーションができるようになります。
root@truenas-incus:~# incus storage create demo truenas source=test/demo truenas.host=192.0.2.10 truenas.api_key=MY-KEY truenas.allow_insecure=true
Storage pool demo created
root@truenas-incus:~# incus launch images:debian/13 d13 --storage demo
Launching d13
root@truenas-incus:~# incus list
+------+---------+---------------------+------------------------------------------------+-----------+-----------+
| NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS |
+------+---------+---------------------+------------------------------------------------+-----------+-----------+
| d13 | RUNNING | 10.2.165.159 (eth0) | fd42:a815:51cf:d4bb:1266:6aff:fe51:ae56 (eth0) | CONTAINER | 0 |
+------+---------+---------------------+------------------------------------------------+-----------+-----------+
ドキュメント : https://linuxcontainers.org/incus/docs/main/reference/storage_truenas/
クラスターグループごとの CPU ベースライン定義 ¶
Incus 6.4 で初めて導入されたこの機能で、Incus はクラスターグループ内で CPU 定義を構成できるようになりました。これにより、混在したクラスター内での効率的な CPU 利用とライブマイグレーションが可能になります。
この機能により、CPU モデル・世代ごとに 1 つのクラスターグループを持ち、Incus がそれらのサーバーに対して共通の CPU フラグのセットを計算できるようになります。
例えば、incus cluster group set foo instances.vm.cpu.x86_64.baseline=kvm64 instances.vm.cpu.x86_64.flags=auto とすると、Incus は自動的に foo クラスターグループ内のサーバーを自動的に調べ、共通の CPU フラグのセットを flag 設定キーに入力します。
ただし、これにより、完全にカスタムの CPU 定義を設定することもできます。例えば、incus cluster group set foo instances.vm.cpu.x86_64.baseline=EPYCv2 instances.vm.cpu.x86_64.flags=-svm とすると、仮想化拡張機能(svm)を無効にした、基本的な第 2 世代の AMD EPYC CPU が公開されます。
すべての変更点 ¶
Incus 6.23 以降のすべての変更点のリストは次の通りです(翻訳なし):
すべてのChangeLogを見る
- shared/cliconfig: Shorten path to using keepalive proxy
- shared/cliconfig: Implement TLS cert/key/ca caching
- shared/cliconfig: Add support for encrypted TLS keys to keepalive proxy
- github: format INCUS_VERSION from tag in release workflow
- Added translation using Weblate (Georgian)
- client: Optionally skip blocking for OIDC authentication
- incus/version: Gracefully fail when server unreachable
- incusd/instance/agent-loader: Use Linux arch names
- incusd/instance/qmp: Add QuerySpice
- incusd/instance/qemu: Add SPICE detection logic
- incusd/instance/qemu: Disable SPICE on systems missing support
- incusd/instances/qemu: Rework qemuArchConfig
- incusd/instance/qmp: Add Query9pDevice
- incusd/instance/qemu: Add plan9 detection logic
- incusd/instance/qemu: Export plan9 drives only when supported
- incusd/instance/qemu: enable SPICE audio via feature gate
- incus: Un-export Command and Run functions
- incus-benchmark: Un-export Command and Run functions
- incus-simplestreams: Un-export Command and Run functions
- incus-agent: Un-export Command and Run functions
- incus-user: Un-export Command and Run functions
- lxd-to-incus: Un-export Command and Run functions
- lxc-to-incus: Un-export Command and Run functions
- fuidshift: Un-export Command and Run functions
- incus: Un-export remaining exported functions
- incus-migrate: Un-export remaining exported functions
- incus-benchmark: Un-export remaining exported functions
- incusd: Un-export remaining exported functions
- incus-benchmark: Remove unused function
- incusd: Fix bad type in format strings
- incusd/instance/qmp: Add QueryVirtioSoundDevice
- incusd/instance/qemu: Add virtio-sound detection logic
- incusd/instance/qemu: Omit audio device on systems without virtio-sound
- Translated using Weblate (Georgian)
- Translated using Weblate (Russian)
- incusd/storage: Delete dependent volumes on instance deletion
- tests: Test dependent volume deletion on instance deletion
- internal/incusos: Allow non-GET requests
- internal/incusos: Implement TriggerSystemUpdateCheck
- incusd: Trigger IncusOS update check on version mismatch
- incusd/response: Make pipeResponse flush headers ASAP
- incusd: Disallow setting the 'dependent' key on volume creation
- incusd/device: Update 'dependent' flag on device add and detach
- tests: Add additional tests for dependent volume handling
- incusd/instance/common: Don't perform costly storage actions when no snapshots
- incusd: Remove explicit caching mechanism in favor of implicit
- incusd/storage/zfs: Implement better caching
- incusd/storage/truenas: Implement better caching
- incusd/instances: Allow more concurency
- incusd/storage/truenas: Retry iSCSI map request
- shared/cliconfig: Avoid treating
=as part of a remote name - incusd/network/state: Use canAccessNetwork
- cmd/incus-simplestreams: Add flag for overriding product name
- incusd/storage/truenas: Use old-style ZFS types
- incusd/storage/zfs: Use old-style ZFS types
- Translated using Weblate (Portuguese (Brazil))
- Translated using Weblate (Portuguese (Brazil))
- Translated using Weblate (Japanese)
- Translated using Weblate (Japanese)
- Translated using Weblate (Japanese)
- Translated using Weblate (Portuguese)
- Translated using Weblate (Portuguese)
- Translated using Weblate (Tamil)
- Translated using Weblate (Georgian)
- Translated using Weblate (Georgian)
- Translated using Weblate (French)
- Translated using Weblate (French)
- Translated using Weblate (French)
- Translated using Weblate (French)
- Translated using Weblate (French)
- Translated using Weblate (French)
- Translated using Weblate (French)
- Translated using Weblate (French)
- Translated using Weblate (Chinese (Traditional Han script))
- Translated using Weblate (Chinese (Traditional Han script))
- Translated using Weblate (Spanish)
- Translated using Weblate (Spanish)
- Translated using Weblate (Russian)
- Translated using Weblate (Russian)
- Translated using Weblate (Dutch)
- Translated using Weblate (Dutch)
- Translated using Weblate (German)
- Translated using Weblate (German)
- Translated using Weblate (German)
- Translated using Weblate (German)
- Translated using Weblate (German)
- Translated using Weblate (Greek)
- Translated using Weblate (Norwegian Bokmål)
- Translated using Weblate (Norwegian Bokmål)
- Translated using Weblate (Italian)
- Translated using Weblate (Italian)
- Translated using Weblate (Indonesian)
- Translated using Weblate (Indonesian)
- Translated using Weblate (Swedish)
- Translated using Weblate (Swedish)
- 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))
- Translated using Weblate (Chinese (Simplified Han script))
- Translated using Weblate (Chinese (Simplified Han script))
- shared/api: Switch to go-yaml/v4
- shared/cliconfig: Switch to go-yaml/v4
- shared/cmd: Switch to go-yaml/v4
- shared/subprocess: Switch to go-yaml/v4
- shared/validate: Switch to go-yaml/v4
- incusd/instance/drivers: Switch to go-yaml/v4
- incusd/storage: Switch to go-yaml/v4
- incus-agent: Switch to go-yaml/v4
- incus-migrate: Switch to go-yaml/v4
- incus-simplestreams: Switch to go-yaml/v4
- incusd/backup: Switch to go-yaml/v4
- incusd/storage/drivers: Switch to go-yaml/v4
- incusd: Switch to go-yaml/v4
- incus: Switch to go-yaml/v4
- test: Switch to go-yaml/v4
- gomod: Update dependencies
- incus: Update for new YAML empty reader behavior
- test: Fix ordering of godeps.list
- tests: Update for slight YAML differences
- incusd/device: Ignore 'not found' errors when updating dependent config during device add/remove
- incusd/storage: Add ShouldMigrateDependentVolume
- incusd/instance: Add support for disk name to ExportQcow2Block
- incusd/instance/drivers: Add support for cross-cluster dependent volumes migration
- incusd/storage: Add support for cross-cluster dependent volumes migration
- incusd/instance: Add HasDependentDisk and ForEachDependentDiskType to instance interface
- incusd/storage: use ForEachDependentDiskType and HasDependentDisk from instance
- incusd/instance: Pass additional parameter to Delete method
- incusd/storage: Pass additional parameter to Delete method
- incusd/instance: Move dependent volume deletion from storage to instance delete()
- incusd/storage: Move dependent volume deletion from storage to instance delete()
- incusd/storage: Fix race in caching logic
- incusd/storage: Fix potential deadlock
- incusd/migration: Implement cancelation in migration logic
- incusd/instances: Implement cancelation in exec logic
- incusd: Clarify shutdown message
- incusd: Limit request body to 1MiB by default
- incusd: Configure exceptions to the 1MiB limit
- incusd/instance: Rename deleteDependentVolumes to cleanupDependencies
- incus/server/network/ovn/nb: Add function to get PortGroups by Port UUID
- incus/server/network/ovn/driver: Cleanup stale instance port uuids from acl port groups on instance stop
- incusd/storage: Support optimized storage for dependent volumes
- incusd/storage: Improve logging during dependent volume creation from backup
- incusd/storage: Rename createDependentVolumes to createDependentVolumesFromBackup
- incusd/device: Add cleanupDependencies argument to Remove() method
- incusd/instance/drivers: Pass the cleanupDependencies flag to device Remove
- tests: Rewrite out-of-space test to use profiles
- incusd/storage: Improve comments on locks
- incusd/forksyscall: Handle mount arguments when using idmap
- incusd/storage: Use device name when importing dependent volumes from backup
- tests: Add tests for exporting/importing dependent volumes
- incusd/cluster/config: Clarify description of oidc.claim option
- doc: Update metadata
- incusd/device/nic_physical: Fix device validation
- doc: Update config
- gomod: Update dependencies
- incusd/instance: Add support for stateful snapshots for qcow2 volumes
- incusd/storage: Add support for stateful snapshots for qcow2 volumes
- incusd: Don't expose the API extension list pre-authentication
- incusd/device/nic_physical: Fix bridge handling
- incusd/device/nic_physical: Fix inheritance from network
- incusd/instances/qemu: Skip vmcoreinfo on ppc64le
- doc/image_format: Update Pongo2 website
- incusd/device/nic_bridged: Handle physical NICs
- incusd/instance/drivers: Fix live migration of instances with snapshots
- incusd/instance/qemu: Scale SCSI queues with CPUs
- incus: Enable admin recover and admin sql on all platforms
- api: storage_volume_nbd
- incusd/auth: Add can_connect_nbd
- client: Add GetStoragePoolVolumeBlockNBDConn
- incusd/storage_volumes: Add NBD API
- incusd/storage: Implement NBD functions
- doc/rest-api: Refresh swagger YAML
- incusd/instance: Implement ConnectNBD
- incus/storage/volume: Add NBD command
- i18n: Update translation templates
- incusd/instance/qmp: Add QueryBlockExports and QueryNBDBlockExports
- incusd/instance/drivers: Improve error when NBD server is already running
- incusd/instance: Export snapshot when VM is running to ensure consistency
- incusd/storage: Export snapshot when VM is running to ensure consistency
- incusd/storage/drivers: Implement ActivateTask
- incusd/storage: Support NBD export in offline mode
- incusd/instance/qmp: Add commands to manage dirty bitmaps
- shared/api: Add structs for managing dirty bitmaps
- incusd/instance: Add methods to manage dirty bitmaps
- incusd/storage: Add InstanceByVolumeName
- incusd: Add API endpoints for managing dirty bitmaps
- doc/rest-api: Refresh swagger YAML
- incusd/instance/lxc: Don't return nil when not implemented
- client: Forward skopeo errors
- incusd/storage: Add instanceStateful flag to volume snapshot operations
- incusd/device: Pass instanceStateful flag during instance snapshot
- incusd: Pass instanceStateful flag during instance snapshot
- incusd/apparmor/qemuimg: Expand symlinks
- incus: Fix Windows absolute paths
- incus: Enforce stricter directory checks
- tests: Add strict pull checks for directories
- i18n: Update translation templates
- incusd: Return bitmap endpoints by default, objects with recursion=1
- doc/rest-api: Refresh swagger YAML
- incusd/instance/qemu: Fix RTC handling on Windows
- incusd/instance/drivers: Allow exposing dirty bitmaps through NBD export in online mode
- incusd/storage: Allow exposing dirty bitmaps through NBD export in offline mode
- incusd/storage/drivers: Fix ordering in Qcow2DeletionCleanup
- incusd/instance/drivers: Improve snapshot creation rollback handling
- incusd/storage: Improve snapshot creation rollback handling
- internal/instance: Introduce volatile.vm.boot_state
- incusd/instance/qemu: Rename internal structs
- incusd/instance/qemu: Add new migration state volatile
- incusd/instance/qemu: Move topology functions to new file
- incusd/instance/qemu: Make use of new migration state logic
- incusd/instance/qemu: Don't export internal vcpus and numa nodes maps
- doc: Update config
- incusd/instance/qemu: Handle stateful detection corner case
- incusd/migrate: Set short timeouts on read/write of control data
- client: Fix bad error handling
- incusd/response/upgrade: Add small delay for NBD
- incus/server/network/ovn/nb: Mark route as discord when nexthop is 'discard'
- incus/server/network/ovn/driver: Only add discard route if it doesn't exist already
- incusd/storage: Improve qcow2 volume handling
- incusd/storage/drivers: Add syncBtrfs
- incusd/storage/drivers: Use 'qemu-img info' in read-only mode
- incusd/instances: Don't delete ephemeral instances on system shutdown
- api: Add projects_restricted_storage_pool_access extension
- incusd/project: Add support for restricted.storage-pools.access
- doc: Update config
- incusd/project: Make checkRestrictionsAndAggregateLimits validate pool access
- Translated using Weblate (Tamil)
- Translated using Weblate (Japanese)
- Translated using Weblate (Japanese)
- Translated using Weblate (Japanese)
- Translated using Weblate (Spanish)
- Translated using Weblate (Spanish)
- 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))
- Translated using Weblate (Chinese (Simplified Han script))
- Translated using Weblate (Chinese (Simplified Han script))
- Translated using Weblate (Swedish)
- Translated using Weblate (Swedish)
- Translated using Weblate (Russian)
- Translated using Weblate (Russian)
- Translated using Weblate (Indonesian)
- Translated using Weblate (Indonesian)
- Translated using Weblate (Georgian)
- Translated using Weblate (Georgian)
- Translated using Weblate (Italian)
- Translated using Weblate (Italian)
- Translated using Weblate (Chinese (Traditional Han script))
- Translated using Weblate (Chinese (Traditional Han script))
- Translated using Weblate (Greek)
- Translated using Weblate (French)
- Translated using Weblate (French)
- Translated using Weblate (French)
- Translated using Weblate (French)
- Translated using Weblate (French)
- Translated using Weblate (French)
- Translated using Weblate (French)
- Translated using Weblate (French)
- Translated using Weblate (Norwegian Bokmål)
- Translated using Weblate (Norwegian Bokmål)
- Translated using Weblate (Portuguese)
- Translated using Weblate (Portuguese)
- Translated using Weblate (Dutch)
- Translated using Weblate (Dutch)
- Translated using Weblate (German)
- Translated using Weblate (German)
- Translated using Weblate (German)
- Translated using Weblate (German)
- Translated using Weblate (German)
- Translated using Weblate (Portuguese (Brazil))
- Translated using Weblate (Portuguese (Brazil))
- shared/archive: Improve detection and error handling
- shared/subprocess: Cleanup pointless check
- incusd/seccomp: Cleanup pointless check
- incusd/migrate: Bump migration timeouts
- shared/util: Introduce SafeCopy
- incus-migrate: Switch io.CopyN to util.SafeCopy
- incus: Switch io.CopyN to util.SafeCopy
- incusd: Switch io.CopyN to util.SafeCopy
- client: Switch io.Copy to util.SafeCopy
- shared/ws: Switch io.Copy to util.SafeCopy
- shared/cliconfig: Switch io.Copy to util.SafeCopy
- shared/util: Switch io.Copy to util.SafeCopy
- internal/util: Switch io.Copy to util.SafeCopy
- internal/io: Switch io.Copy to util.SafeCopy
- internal/rsync: Switch io.Copy to util.SafeCopy
- lxd-to-incus: Switch io.Copy to util.SafeCopy
- lxc-to-incus: Switch io.Copy to util.SafeCopy
- incus-simplestreams: Switch io.Copy to util.SafeCopy
- incus-agent: Switch io.Copy to util.SafeCopy
- incus-user: Switch io.Copy to util.SafeCopy
- incus-migrate: Switch io.Copy to util.SafeCopy
- incus: Switch io.Copy to util.SafeCopy
- incusd: Switch io.Copy to util.SafeCopy
- Translated using Weblate (Russian)
- incusd/migration: Bump timeouts to 30s
- Translated using Weblate (Russian)
- incusd/instance/qemu: Fix boot state recording
- incusd/devices/disk: Lock creation of ISO images
- incusd: Increase devices tmpfs
- gomod: Update dependencies
- incusd/device/nic: Prevent USB NICs on migratable VMs
- incus/cluster: Tweak error message
- i18n: Update translation templates
- incus/info: Tweak wording in resources output
- i18n: Update translation templates
- incus/export: Improve target file handling
- incus/import: Improve stdin handling
- incus/storage_volume: Improve import/export file handling
- incus/storage_bucket: Improve import/export file handling
- tests: Add import from stdin and export to stdout
- i18n: Update translation templates
- incusd/instance/drivers/qmp: Wait for block job completion after issuing block-job-complete
- incusd/instance/drivers: Add support for handling BLOCK_JOB_COMPLETED and BLOCK_JOB_ERROR events
- incusd/migrate: Limit timeout to initial handshake
- shared/archive: Avoid concurrent calls to Wait
- Translated using Weblate (Italian)
- Translated using Weblate (Italian)
- Translated using Weblate (Russian)
- Translated using Weblate (Russian)
- Translated using Weblate (Dutch)
- Translated using Weblate (Dutch)
- Translated using Weblate (Spanish)
- Translated using Weblate (Spanish)
- Translated using Weblate (Spanish)
- Translated using Weblate (Norwegian Bokmål)
- Translated using Weblate (Norwegian Bokmål)
- Translated using Weblate (Portuguese (Brazil))
- Translated using Weblate (Portuguese (Brazil))
- Translated using Weblate (Portuguese (Brazil))
- Translated using Weblate (Swedish)
- Translated using Weblate (Swedish)
- Translated using Weblate (Portuguese)
- Translated using Weblate (Portuguese)
- Translated using Weblate (Greek)
- Translated using Weblate (Chinese (Traditional Han script))
- Translated using Weblate (Chinese (Traditional 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))
- Translated using Weblate (Chinese (Simplified Han script))
- Translated using Weblate (Chinese (Simplified Han script))
- Translated using Weblate (Chinese (Simplified Han script))
- Translated using Weblate (Indonesian)
- Translated using Weblate (Indonesian)
- Translated using Weblate (Indonesian)
- Translated using Weblate (German)
- Translated using Weblate (German)
- Translated using Weblate (German)
- Translated using Weblate (German)
- Translated using Weblate (German)
- Translated using Weblate (Georgian)
- Translated using Weblate (Georgian)
- Translated using Weblate (Japanese)
- Translated using Weblate (Japanese)
- Translated using Weblate (Japanese)
- Translated using Weblate (French)
- Translated using Weblate (French)
- Translated using Weblate (French)
- Translated using Weblate (French)
- Translated using Weblate (French)
- Translated using Weblate (French)
- Translated using Weblate (French)
- Translated using Weblate (French)
- Translated using Weblate (French)
- Translated using Weblate (Tamil)
- incusd/images: Allow simpler HTTP headers
- incusd/storage/drivers: Extract unpackVolume and backupVolume to util
- incusd/storage/drivers: Make createParentSnapshotDirIfMissing public
- incusd/storage: Add support for export/import qcow2 in raw format
- Translated using Weblate (Portuguese)
- incusd/instance/edk2: Add support for seabios at bios-256k
- incus: Widen stdout checks in pull commands
- incus: Add cp-like flags to incus file push
- tests: Test cp-like flags in incus file push
- incus: Defer dereferencing error handling
- incus: Add cp-like flags to incus storage volume file push
- tests: Test cp-like flags in incus storage volume file push
- i18n: Update translation templates
- incusd/instance/qemu: Improve OS detection for FreeBSD
- incus-agent: Use psutil for process count
- Translated using Weblate (Portuguese)
- Translated using Weblate (Russian)
- incusd/instance/qemu: Use timeouts for agent operations
- incusd: Add validation for dependent volumes during copy request
- incusd: Allow copy only when all volumes are on remote storage
- incusd/storage: Include dependent disks in copy requests
- incusd/instance/drivers: Remove temporary snapshot block device after migration
- incusd/storage: Add support for migrating dependent volumes with a new name
- incusd/storage: Add support for copying dependent volumes on the same target when the root volume storage changes
- incusd/instance/drivers: Add support for live-migration of dependent volumes with a changed name
- incusd/instance/drivers: Add check to notify disk only during cluster move
- incusd/instances/qemu: Fix crash on nil qmp handler in RunJSON
- incusd/storage: Prevent migration of dependent volumes for snapshot instances
- shared/validate: Fix name validation on single character
- internal/linux: Add logging to ClearBlock
- Translated using Weblate (Russian)
- incusd/networks: Support targeting of network list
- incus/network: Add --target to network list
- i18n: Update translation templates
- doc/benchmark_performance: Mention GOPATH
- incus/instance/drivers/common: Add isErrorStatusCode function Signed-off-by: Leon Schoch git@darkress.xyz
- incus/instance/drivers/qemu: Early return state call in case instance is in error state Signed-off-by: Leon Schoch git@darkress.xyz
- incus/instance/drivers/lxc: Early return state call in case instance is in error state Signed-off-by: Leon Schoch git@darkress.xyz
- incusd/cgroup: Require Cgroup V2
- incusd/instance/lxc: Remove cgroup1 support
- incusd: Remove cgroup1 support
- incusd/apparmor: Remove cgroup1 support
- incusd/device: Remove cgroup1 support
- incusd/seccomp: Remove cgroup1 support
- incusd/sys: Remove cgroup1 support
- doc: Remove cgroup1 mentions
- Translated using Weblate (Russian)
- incus-agent: Work around issue when built with GO111MODULE=off
- incusd/storage/drivers: Add CanRestoreVolume
- incusd/storage/drivers: Run Qcow2Info in read-only mode
- incusd/storage: Add CanRestoreInstanceSnapshot and qcow2CanRestoreSnapshot
- incusd/instance/drivers: Check whether an instance snapshot can be safely restored
- incusd/storage/drivers: Fix migration import-shadowing
- incus; Fix copy/pasted list column description
- incus: Add missing example descriptions
- incus/profile: Clarify example description
- incus/admin_sql: Clarify behavior on standalone systems
- i18n: Update translation templates
- incus: Wrap addition of string flags
- incus: Wrap addition of string array flags
- incus: Wrap addition of integer flags
- incus: Wrap addition of boolean flags
- incus: Wrap addition of native integer flags
- incus: Generalize -f shorthand for --force
- incus: Generalize -f shorthand for --format
- incus: Generalize -t shorthand for --type
- incus: Generalize -a shorthand for --all
- i18n: Update translation templates
- incusd: Reset LXC feature detection
- incusd/cgroup: Update LXC baseline
- incusd/device: Update LXC baseline
- incusd/instance/lxc: Update LXC baseline
- incusd/seccomp: Update LXC baseline
- incus: Improve cp compatibility for pull operations
- tests: Add more thorough tests for pull/push operations
- client: Add bitmap manipulation functions
- incusd: Remove kernel feature detection
- incusd/sys: Update kernel baseline
- incusd/instance/lxc: Update kernel baseline
- incusd/device: Update kernel baseline
- incusd/apparmor: Update kernel baseline
- incusd/seccomp: Update kernel baseline
- incusd/seccomp: Update LXC baseline
- incusd/instance/lxc: Drop forknet info fallback in networkState
- incusd/forknet: Remove unused info subcommand
- incusd/device/proxy: Drop pidfd fallback in setupProxyProcInfo
- incusd/seccomp: Assume pidfd kernel support in MakePidFd
- incusd/instance/lxc: Drop pidfd fallback paths
- shared/idmap: Keep respecting INCUS_IDMAPPED_MOUNTS_DISABLE
- doc/requirements: Expand on minimum versions
- incusd: Drop kernel version checks (6.12 baseline)
- incusd/instance/qemu: Drop QEMU version checks below 8.2
- incusd/storage/zfs: Drop ZFS version checks below 2.1.0
- incusd/storage/btrfs: Drop btrfs version checks below 6.12.0
- incusd/storage/lvm: Drop LVM version checks below 2.03.11
- incusd/storage/truenas: Bump baseline to 0.7.7
- incusd/firewall/nftables: Drop nftables version checks below 1.0.0
- incusd/apparmor: Drop AppArmor version checks below 3.0.0
- incusd/rsync: Drop rsync version checks below 3.2.0
- incusd/network/bridge: Drop dnsmasq version checks below 2.90
- Translated using Weblate (Portuguese)
- incusd/storage/linstor: Update comment
- incus/config_trust: Drop legacy [
:] ATOM syntax - shared/cliconfig: Drop legacy
syntax - incus/remote_unix: Drop legacy
syntax - incus/color: Add warning prefix
- incus/usage: Add deprecation warning for the
syntax - incus/storage_volume: Drop legacy [custom/] prefix
- tests: Drop legacy [custom/] prefix
- i18n: Update translation templates
- incusd/firewall: Drop xtables/iptables/ebtables backend (nftables only)
- doc: Drop xtables/iptables/ebtables references
- tests: Drop xtables firewall driver support
- github: Automatically close untyped issues
- github: Add disclaimer on bug reports
- incusd/storage: Allow overriding pool for dependent disk during migration
- incusd/migration: Add DeviceName field to DependentVolume
- client: Pass device override information during copy
- incusd/migration: Add support for overriding disk device pool during migration
- incusd/storage: Add support for overriding disk device pool during migration
- incusd/instance: Add UpdateDevices
- incusd/instance: Add support for overriding disk device pool during migration
- incusd: Add support for overriding disk device pool during migration
- incusd: Fix cross-server migration being used instead of intra-cluster migration when storage and target are specified
- incusd/storage/linstor: Tune DrbdOptions/Disk/rs-discard-granularity on pool creation
- incus/storage: Fix typo
- i18n: Update translation templates
- incus/cluster: Fix spelling of YAML
- i18n: Updatee translation templates
- incus/network_zone: Fix missing example description
- i18n: Updatee translation templates
- incus/storage_bucket: Fix bad list column help message
- i18n: Updatee translation templates
- internal/rsync: Fix gofumpt
- internal/server/cgroup: Fix gofumpt
- incusd/instances: Fix gofump
- incusd/storage/s3: Add in-process S3 handler package
- incusd/storage/s3: Switch to new listener
- incusd/storage/s3: Migrate data from minio to new format
- incusd/storage: Remove remaining minio interactions
- incusd/storage/s3: Remove minio supervisor and ActivateBucket
- tests: Replace minio with simple built-in S3 endpoint
- incusd: Switch minio S3 client for AWS SDK
- incusd/storage/s3: Derive AWS region from S3 endpoint URL
- gomod: Update dependencies
- incusd: Patch LINSTOR to set DrbdOptions/Disk/rs-discard-granularity
- incus/server/network/ovn/driver: Validate that networks external ips are not used by another network, forward or loadbalancer
- incusd/images: Add image server restriction check in image URL download path
- incusd/storage/bucket: Validate expected metadata on import
- incusd/storage/volume: Validate snapshot entries on import
- incusd/storage/instance: Properly check dependent volumes on import
- incusd/network/ovn: Fix TLS validation logic
- incusd/storage/instance: Fix bad snapshot index calculation
- incusd/storage/s3: Fix nil pointer dereference on truncated input
- incusd: Limit tarball YAML reads to 1MiB
- incusd: Fix nil pointer dereference in instance backup restore
- incusd: Use QuotaWriter for backup and ISO uploads
- api: Add server_shutdown_action extension
- incusd/cluster/config: Add core.shutdown_action
- doc: Update metadata
- incusd/evacuate: Extract evacuateStopInstance and evacuateMigrateInstance helpers
- incusd: Implement core.shutdown_action
- incus/cluster: Don't attempt to connect during join
- incus/image/copy: Add --reuse flag for --copy-aliases
- i18n: Update translation templates
- incus/server/network/ovn/driver: Fix duplicate external network ip check on network creation
- doc/metrics: Mention Loki requirement
- incusd: Add missing path parameters
- doc/rest-api: Refresh swagger YAML
- Makefile: Add help target and remove tags target
- tests: Use a 5MiB test file for buckets
- incus/cluster: Simplify logic
- api: instances_placement_scriptlet_rebalance
- shared/api/scriptlet: Add InstancePlacementReasonRebalance
- incusd/cluster: Run placement scriptlet during re-balancing
- doc/clustering: Add new scriptlet reason
- incusd/instance/qemu: Fix locking around VM reset
- incusd/device/nic: Set next-hop based on configured IP addresses
- tests: Adjust to work with next-hop
- incusd/instance/agent-loader: Remove some trailing whitespaces
- incus/storage_bucket/key: Fix incorrect list column description
- incus/launch: Add missing example description
- incus/config_template: Add missing example description
- incus/create: Add missing example description
- incus/network_acl: Add missing example description
- incus/network_address_set: Add missing example description
- incus/network_integration: Add missing example description
- incus/network_zone: Add missing example description
- incus/storage: Add missing example description
- i18n: Update translation templates
- incusd/device/disk: Auto-create missing volume sub-directories
- incusd/instance: Allow initial keys for sub-paths
- doc/devices/disk: Update to cover sub-path creation
- doc: Update config
- tests: Extend sub-path tests to cover directory creation
- incusd/instance/qemu: Don't emit shutdown lifecycle event during restart
- incusd/instance/qemu: Don't restart the VM on shutdown
- incusd/instance/console: Emit a single instance-console event on SPICE
- gomod: Update dependencies
- Makefile: Switch to new golangci-lint install script
- github/workflows/tests: Configure PPAs without apt-add-repository
- github/workflows/tests: Install mdl from rubygems instead of snap
- github/workflows/tests: Build cowsql and raft from source
- Rewrite Go import path to v7
- gomod: Update dependencies
ドキュメント ¶
Incus のドキュメントはこちらです:
https://incus-ja.readthedocs.io/ja/latest/ (日本語訳)
https://linuxcontainers.org/incus/docs/main/ (原文)
インストール ¶
Incus の開発元は、通常リリースの tarball のみをリリースするため、公式の Incus パッケージはありません。Incus を実行するために使えるオプションを以下にいくつか示します。
Linux パッケージ ¶
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/7.0.0
Incus クライアントの Winget パッケージ ¶
Winget 経由で、Windows ユーザー向けにクライアントツールが利用できます。
https://winstall.app/apps/LinuxContainers.Incus
LXD からの移行 ¶
lxd-to-incus 移行ツールを使用すると、LXD から Incus へ直接移行できます。
このツールは、LXD 4.0 LTS から最新の LXD 5.21 バグ修正リリースまで、幅広いバージョンでテストされています。
事前に、潜在的なコンフリクトを自動的にチェックし、LXD から Incus への非常に素早い移行が可能です。
詳細はこちらをご覧ください : https://linuxcontainers.org/incus/docs/main/howto/server_migrate_lxd/
サポート ¶
Incus 7.0 LTS は、合計 5 年間(2031 年 6 月まで)サポートされます。
最初の 2 年間は、バグ修正やセキュリティ修正、および軽微なユーザビリティ改善を含むポイントリリースが提供されます。最初の 2 年間が経過した後(Incus 8.0 LTSのリリース後)は、Incus 7.0 LTS は残りの 3 年間はセキュリティ修正のみのサポートに移行します。
これは、過去 10 年間、他のプロジェクト(LXCおよびLXCFS)で実施してきたサポートと同様です。
コミュニティサポートはこちらから : https://discuss.linuxcontainers.org
商用サポートはこちらから : https://zabbly.com/incus
バグはこちらから報告できます : https://github.com/lxc/incus/issues
