ニュース¶
Incus 6.12 リリースのお知らせ¶
2025/04/25
はじめに ¶
Incus チームは、Incus 6.12 のリリースのアナウンスができてうれしいです!
このリリースには、仮想マシンメモリーのオンライン拡張、ネットワーク ACL をより簡単にするネットワークアドレスセット、ロギングの改良などの期待されたいくつかの改良点が含まれています。
新機能に加えて、このリリースには多数のスナップショットを持つシステムに特にうれしいパフォーマンスの改善や、ZFS を使うシステム向けのさらなるパフォーマンス強化もかなり行われています。
いつものように、オンラインでご自身で試せます: https://linuxcontainers.org/incus/try-it/
Enjoy!
新機能 ¶
ネットワークアドレスセット ¶
複雑なネットワーク ACL ルールの管理を簡単にするために、Incus はアドレスセットをサポートするようになりました。
アドレスセットは、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/
仮想マシンのメモリーホットプラグ ¶
Incus でのコンテナと VM との利用上の数少ない違いの 1 つに、VM でメモリーを減らすことはできても増やすことはできなかった点があります。
この違いは改良され、ゲストへのメモリーホットプラグがサポートされるようになりました。limits.memory
を実行時に増やすことができ、そのメモリーを VM 内ですぐに使えるようになりました。
stgraber@dakara:~$ incus launch images:debian/13 d13 --vm Launching d13 stgraber@dakara:~$ incus exec d13 -- free -m total used free shared buff/cache available Mem: 879 238 662 19 102 640 Swap: 0 0 0 stgraber@dakara:~$ incus config set d13 limits.memory=4GiB stgraber@dakara:~$ incus exec d13 -- free -m total used free shared buff/cache available Mem: 3951 351 3684 19 102 3600 Swap: 0 0 0
ログの処理とリモート syslog の再実装 ¶
Incus のロギングは、今まで 2 つの選択肢に限られていました:
- ローカル syslog ロギング
- リモート Loki ロギング(単一エンドポイント)
このリリースではそれが変わりました。新しい、より柔軟なロギングメカニズムが提供され、無制限のロギングターゲットが loki
または syslog
で許可され、含めるイベントが選択できるようになりました。
例 :
logging.loki01.target.type: loki logging.loki01.target.address: https://loki01.int.example.net logging.loki01.target.username: foo logging.loki01.target.password: bar logging.loki01.types: lifecycle,network-acl logging.loki01.lifecycle.types: instance logging.syslog01.target.type: syslog logging.syslog01.target.address: syslog01.int.example.net logging.syslog01.target.facility: security logging.syslog01.types: logging logging.syslog01.logging.level: warning
この例では、loki01
と syslog01
という 2 つのロギングターゲットが定義されています。前者は認証済みエンドポイント(リバースプロキシ)を通して Loki ロギングトラフィックを受信し、lifecycle(特にインスタンスに影響するイベント)と network-acl のイベントのみを送信します。後者は syslog ロギングを使用し、priority(優先度)が warning 以上のメッセージを送信します。
ドキュメント : https://linuxcontainers.org/incus/docs/main/server_config/#server-options-logging
複雑なネットワーク転送での SNAP サポート ¶
ネットワーク転送では、ポートとポートレンジの指定方法を非常に柔軟に選択できます。
例えば、外部の 80
と 443
番ポートを内部 IP のそれぞれ 1234
と 2345
番ポートに転送できます。
これはほとんどのケースでうまく機能します。しかし、UDP ポートを使用する WebRTC アプリケーションのような特定の状況では、トラフィックの一部が外部のクライアントからではなく、インスタンスから開始されます。このようなシナリオでは、インスタンスの 2345
番ポートから外に出るトラフィックは、転送アドレスの 443
番ポートから送信されたものとして外部に表示される必要があります。
これを実現するために準備されたのが、ネットワーク転送内の個々のポートに新たに追加された snat
プロパティです。このプロパティは、インスタンスから出るトラフィックに対して、対応する SNAT ルールを設定します。
この機能は、(OVN ではない)通常のブリッジ上のネットワークのみ、そしてファイアウォールとして nftables
を使っているシステム上でのみに限定して使えます。
ドキュメント : https://linuxcontainers.org/incus/docs/main/howto/network_forwards/#port-properties
access_token パラメーター経由での認証 ¶
Incus は主に 2 つの認証メカニズムをサポートしています:
- TLS クライアント証明書
- OpenID Connect (OIDC)
前者の場合、ほとんどのクライアントは TLS クライアント証明書を直接取得し、TLS 接続の一部としてクライアント証明書を使用します。しかし、クライアント側での処理が難しかったり(Web ブラウザーなど)、TLS 終端プロキシーが存在することが問題になったりするため、この方法は必ずしも常に機能するとは限りません。
このような理由から、Incus では TLS 証明書から署名付き Bearer
トークンを生成し、それを HTTP の Authorization
ヘッダーに渡す方法もサポートしています。
このリリースでは、同じ Bearer
トークンを HTTP ヘッダーではなく、URL パラメーターの access_token
として渡すことができるようになりました。
この主な理由は、JavaScript WebSocket API ではカスタムの HTTP ヘッダーを渡すことが許可されていないため、Web クライアントから認証済み WebSocket エンドポイントに接続できるようにするためです。
例 :
stgraber@dakara:~$ curl -k -s https://127.0.0.1:8443/1.0 | jq -r .metadata.auth untrusted stgraber@dakara:~$ curl -k -s https://127.0.0.1:8443/1.0?access_token=eyJhbGciOiJFUzM4NCIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJhZjQ3MzRhYzY3YzAzMDYxY2Y1Yzg5Y2UxYTQ2NDAwYjc4MzQ2MWRiOGI3MjlkMDhjNDZhYjE5MmM3ZDc2NTMxIiwiZXhwIjoxNzQ1NTMxOTA4LCJuYmYiOjE3NDU1MzE4NDgsImlhdCI6MTc0NTUzMTg0OH0.WcsG48XQ41fNhLUlf-nqwAyJrZKpCrfM-W8mOSNpt7cwPH-QhKZkiBDa3sFWIVOdo15_cOZBeNy1QbJu6rCnYYQ18LpNJNkSKPkcwi65-yBo7U7ync5BQCuhsOgxAQap | jq -r .metadata.auth trusted
CLI におけるサーバーサイドフィルタリングの改善 ¶
Incus API 内で単一のオブジェクトタイプすべてのサーバーサイドフィルタリングを最近追加しました。これに続いて、CLI でも徐々にこのサポートを追加しています。これにより、特定のアイテムのみをリクエストする際、データベースとネットワークトラフィックを削減できます。
このリリースでは、次の機能がサーバーサイドフィルタリングに完全に移行しました:
- インスタンス
- イメージ
- カスタムボリューム
- プロファイル
例 :
stgraber@dakara:~$ incus profile list description=bar +------+-------------+---------+ | NAME | DESCRIPTION | USED BY | +------+-------------+---------+ | foo | bar | 0 | +------+-------------+---------+
この作業の一部は、テキサス大学オースティン校の学生によって行われました。
生成されたドキュメントの拡充 ¶
設定キーを忘れてしまうリスクを避けるため、ほとんどの設定テーブルをコードから直接生成できるように移植する取り組みを継続してきました。
このリリースでは、次の項目が直接コードから抽出されるようになりました:
- ネットワークブリッジ
- ネットワーク転送
- TPM デバイス
- プロキシーデバイス
- GPU デバイス
- NIC デバイス
- Infiniband デバイス
この作業はテキサス大学オースティン校の学生によって行われました。
すべての変更点 ¶
このリリースのすべての変更のリストは次の通りです(翻訳なし):
すべてのChangeLogを見る
- doc: Fix missing OCI section
- internal/instance: Tweak wording
- doc: Update config
- incus/utils: Added support for server-side filtering by instance name
- incus/list: Added support for server-side filtering by instance name
- incus/image: Adjustments made after modifying getServerSupportedFilters
- tests: Adjustments made after modifying getServerSupportedFilters
- doc: Fix config option reference on LINSTOR driver
- incusd/instance/lxc: Fix max gid when in a privileged container
- incus: Replace interface{} by any
- internal/server/ip: Replace interface{} by any
- shared/logger: Replace interface{} by any
- client: Use strings.ReplaceAll
- lxd-to-incus: Use strings.ReplaceAll
- generate-database: Use strings.ReplaceAll
- incusd/db/cluster: Update generated code
- incus: Use strings.ReplaceAll
- internal/linux: Use strings.ReplaceAll
- incusd/apparmor: Use strings.ReplaceAll
- incusd/auth: Use strings.ReplaceAll
- incusd/db/cluster: Use strings.ReplaceAll
- incusd/db: Use strings.ReplaceAll
- incusd/device: Use strings.ReplaceAll
- incusd/instance: Use strings.ReplaceAll
- incusd/ip: Use strings.ReplaceAll
- incusd/network: Use strings.ReplaceAll
- incusd/storage: Use strings.ReplaceAll
- incus/utils: Check type assertion
- incusd/instance: Remove needless embedded fields
- incusd/storage/s3: Simplify variable declaration
- README: Fix typo
- lxd-to-incus: Fix typo in trigger
- incusd/instance/edk2: Limit test to UEFI architectures
- doc/devices/disk: Fix restriction on
path
option - doc: Update configs
- doc: Tweak ACME documentation
- incusd/instances/qemu: Handle deprecation of runas
- incusd/main_forknet: Handle missing DNS in DHCP response
- incusd/instance/lxc: Pass limited environment to forkstart
- incusd/instance/lxc: Don't reset resolv.conf
- incusd/main_forknet: Use Fprintf
- cmd/list: Support server-side filtering
- cmd/image: Support server-side filtering
- cmd/utils: Support server-side filtering
- internal/filter: Support server-side filtering
- tests: Added/Fixed tests for server-side filtering
- client: Add GetImagesAllProjectsWithFilter
- cmd/image: Use GetImagesAllProjectsWithFilter to filter images across all projects
- incusd/instance/qemu: Avoid unnecessary snapshot loading
- incusd/migrate: Bump timeouts to 30s
- incusd/storage: Add missing forwarding on snapshot list
- client: Pass ETag in UpdateWarning
- client: Pass ETag in UpdateCluster
- client: Make golangci-lint clean
- shared/api: Make golangci-lint clean
- shared/idmap: Remove unused rootfs argument to NewSetFromSystem
- incus-user: Update for change to shared/idmap
- incusd/sys: Update for change to shared/idmap
- shared/idmap: Rename IdmapStorageType to StorageType
- shared/idmap: Make golangci-lint clean
- incusd: Update for shared/idmap changes
- shared/ws: Make golangci-lint clean
- shared/ask: Remove deprecated functions (and clear golangci-lint)
- shared/validate: Make golangci-lint clean
- shared/tls: Make golangci-lint clean
- shared/osarch: Make golangci-lint clean
- shared/osarch: Rename ArchitectureId to ArchitectureID
- shared/simplestreams: Update for ArchitectureID
- incusd: Update for ArchitectureID
- client: Update for ArchitectureID
- incus-simplestreams: Update for ArchitectureID
- lxc-to-incus: Update for ArchitectureID
- internal/version: Update for ArchitectureID
- shared/osarch: Keep our all-caps architecture names
- client/oci: Only replace the first match
- incus: Remove unused functions
- incusd/instance/common: Fix concurrent restarts
- incus: Make golangci-lint clean
- shared/subprocess: Make golangci-lint clean
- shared/simplestreams: Make golangci-lint clean
- shared/cliconfig: Make golangci-lint clean
- shared/ask: Make golangci-lint clean
- shared/util: Make golangci-lint clean
- shared/revert: Make golangci-lint clean
- shared/proxy: Make golangci-lint clean
- shared/logger: Make golangci-lint clean
- shared/archive: Make golangci-lint clean
- incusd/instance/lxc: Fix import shadowing in IdmappedStorage
- doc/rest-api: Refresh swagger YAML
- generate-database: Fix documentation for
ignore
- incusd/response: Remove redundant line break in error
- incusd/main_forknet: Don't add gateway route if classless static routes are provided (as required by RFC 3442)
- incusd/network/ovn: Add plumbing for state through OVN ACL functions
- api: network_address_set
- doc: Add documentation for network address sets
- shared/api: Add network address sets
- shared/api/lifecycle: Add events for network address sets
- incusd/auth: Add network address sets
- incusd/auth/openfga: Rebuild model
- incusd/network/ovn: Add GetAddressSet
- incusd/network/ovn: Add address set support
- incusd/network/bridge: Add address set support
- incusd/db/cluster: Add network_address_sets tables
- incusd/db: Add network address set functions
- incusd/network/acl: Add address set support
- incusd/lifecycle: Add network address set events
- incusd/firewall: Add address set support
- incusd/projects: Clear address sets on delete
- incusd/network/address-set: Add new API
- incusd/device/nic/ovn: Handle address set when cleaing ACLs
- client: Add network address set functions
- incus: Add network address-set sub-command
- i18n: Update translation templates
- tests: Add tests for address sets
- doc/rest-api: Refresh swagger YAML
- doc: Update configs
- incus-agent: Retry mounts to avoid kernel races
- incusd/instance: Add Name to ConfigReader interface
- incusd/storage: Use ConfigReader when possible
- incusd/response: Remove unused nolint
- incusd/storage: Add infrastructure to cache pre-fetch snapshot data
- incusd/instance: Use storage instance snapshot caching
- incusd/instance/lxc: Use existing storage pool in diskState
- incusd/storage/zfs: Implement snapshot size caching
- incusd/instance: Move instance disk usage to driver logic
- incusd/config: Update list of supported compressors
- incusd/project: Update list of supported compressors
- doc: Update configs
- incusd/operations: Fix WaitGet on op failure
- incusd/instance/lxc: Use pre-existing PATH when not overridden
- incusd/acme: Include CA in generate certificate
- shared/ask: Fix bad validation logic
- incus-migrate: Fix golangci-lint warnings
- incus-migrate: Rework command validation
- incus-migrate: Require an instance type
- incus-migrate: Clarify arguments
- client/incus: Fix non-constant format strings
- doc/cluster: mDNS setup for cluster access
- cmd/storage_volume: Support filtering by a single keyword
- i18n: Update translation templates
- incusd/instance/qemu: Clean leftover sockets on startup
- incusd: Implement Incus OS API forwarding
- incusd/network/bridge: Port to gendoc
- doc/network/bridge: Use gendoc
- doc: Update configs
- doc: Use
$USER
instead of YOUR-USERNAME - doc: Ignore link that's blocking Azure
- incusd/storage: Avoid querying pending pool status
- incusd/storage/linstor: Fix pool size reporting
- incusd/patches: Refresh OpenFGA model for address sets
- incusd/network/common: Add gendoc comments for forward configurations
- doc: Update configs
- doc/network/forward: Use gendoc for network forwards
- api: server_logging
- incus/server/logging: Add new logging mechanism with syslog and loki support
- incus/server/config: Support for new logging.* config keys
- incusd: Use new logging mechanism
- incus/server/events: Fix issue with race condition
- incus/server/loki: Remove loki package
- doc: Documentation for new logging mechanism
- doc: Update configs
- incusd/device/tpm: Add gendoc comments
- doc: Update configs
- doc: Use gendoc for TPM devices
- incusd/firewall/nftables: Cleanup rule formatting
- incusd/firewall: Add basic rules on nftables
- incusd/storage/zfs: Make CacheVolumeSnapshots failures non-fatal
- incusd/instance/lxc: Restrict unprivileged ping to recent kernels
- api: network_forward_snat
- doc/network_forwards: Add snat key
- shared/api: Add SNAT to NetworkForwardPort
- doc/rest-api: Refresh swagger YAML
- incusd/network/common: Add validation for SNAT
- incusd/network: Pass SNAT field to firewall driver
- incusd/firewall: Add support for forward SNAT rules
- doc: Add SNAT/DNAT to wordlist
- incusd/apparmor/lxc: Allow write access to /proc/sys/user
- incusd/instance/lxc: Defer calls to the scheduler
- shared/archive: Prevent xattr errors from crashing unsquashfs
- incusd/storage/zfs: Extend use of the cache
- incusd/instance: Pre-fetch snapshot data in RenderFull
- incus-simplestreams: Add import and delete aliases to add and remove
- incus: Add remove alias to delete
- incusd/http: Support passing bearer authentication token through access_token parameter
- tests: Test the access_token handling
- incusd/instance/qmp: Add utility functions for memory manipulation
- incusd/instance/drivers: Extract getCPUOpts for reuse
- incusd/instance/drivers: Add support for memory hotplug
- api: memory_hotplug
- tests: Add tests for memory hotplug helper functions
- incusd/instances_post: Properly handle refresh migrations
- incusd/storage/zfs: Rework ZFS setting enforcement
- incusd: Remove old routing logic
- incusd/instances_post: Fix bad function call
- incusd/devices: Don't require a serial number for USB hotplug
- Move tls testing functions to tlstest
- incusd/device/proxy: Add gendoc comments
- doc: Update generated configs
- doc/devices/proxy: Use gendoc for docs
- Remove Rican7/retry dependency
- shared/tls: Fix gofumpt
- incusd/device/gpu: Added gendoc comments
- doc: Updated configs
- doc: Use gendoc for gpu
- incusd/device/nic_bridged: Port to gendoc
- incusd/device/nic_macvlan: Port to gendoc
- incusd/device/nic_sriov: Port to gendoc
- incusd/device/nic_ovn: Port to gendoc
- incusd/device/nic_physical: Port to gendoc
- incusd/device/nic_ipvlan: Port to gendoc
- incusd/device/nic_p2p: Port to gendoc
- incusd/device/nic_routed: Port to gendoc
- doc/devices_nic: Update to use gendoc
- doc: Update configs
- incusd/device: Replace j-keck/arping with mdlayher/arp
- Makefile: Hold back go-jose
- gomod: Update dependencies
- incusd/sys: Remove gocapability dependency
- gomod: Update dependencies
- incusd/server/device/infiniband: Added gendoc for parent, mtu, hwaddr
- incusd/device/device_load.go: Added gendoc for nicType
- doc: Update configs
- doc: Use gendoc for infiniband
- shared/validate: Move to adhocore/gronx
- incusd: Move to adhocore/gronx
- gomod: Update dependencies
- incus/storage: Correct help messsage for
incus storage list
- i18n: Update translation templates
- api/scriptlet: Add yaml struct tags
- incusd/storage/migration: Check instance size during migration
- incusd/main_forknet: Add dhcp static routes via 0.0.0.0 as scope link
- incusd/main_forknet: Use logrus for logging and add a command argument for the logfile path
- incusd/instance/lxc: Pass log file to forknet dhcp
- incusd/device/disk: Fix registration of custom volumes
- client: Add server-side filtering for profiles
- incus/profile: Use server-side filtering
- i18n: Update translation templates
- Fix reference passing when yaml unmarshal
- Limit new() calls
- incusd/network/bridge: Fix children interface delete issue
- doc/reference/instance: Clarify VM memory behavior
- incus/admin/init: Allow passing a file to --preseed
- incusd/network/ovn: Notify whole cluster on uplink changes
- incus: Use a random image in first use message
- incus-benchmark: Replace default distro
- incus: Replace distro examples
- i18n: Update translation templates
- doc: Replace Ubuntu in documentation examples
- doc/requirements: Refresh a bit
- scriptlet: Return proper error
- incusd/instance: Also consider local CPU flags
- gomod: Update dependencies
- incusd/instance/qemu: Cap maxmem to host mem maximum
ドキュメント ¶
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.12.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
Incus 6.0.4 LTS リリースのお知らせ¶
2025/04/04
はじめに ¶
Incus チームは、Incus 6.0.4 のリリースのアナウンスができてうれしいです!
このリリースは、Incus 6.0 に対する 4 度目のバグ修正リリースです。Incus 6.0 は 2029 年 6 月までサポートされます。
変更点 ¶
いつもどおり、このバグ修正リリースは、安定性とセキュリティー強化にフォーカスを当てています。
データのマイグレーションやデータベースの変更を必要とせず、ユーザーが予期しない動きの変化に直面するようなことにはならない、マイナーな改善もバックポートされています。
このような改良の数は、LTS ブランチ内では時間の経過とともに減少するでしょう。
このリリースのハイライトは次のとおりです:
- ブリッジネットワーク上のインスタンスのネットワーク ACL
- QEMU スクリプトレットの強化
- VM メモリーダンプ
- OVN ネットワーク状態情報の拡充
- サーバーの事前に与える構成ファイルの拡充
- ACME DNS-01 サポート
- API 全体のコレクションフィルタリング
- VM での SMBIOS11 プロビジョニングサポート
- VM での IOMMU サポート
- routed NIC の VRF サポート
- 新しい MAC アドレス帯
- VM 内の USB NIC
- VM 内の USB ディスク
- ネットワークでの設定可能な DNS サーバー
- DHCP 経由の追加 IPv4 ルート
コミットのすべてのリストは次のとおりです:
すべてのChangeLogを見る
- 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
- incus: Add --description flag to create commands
- tests: Add tests for --description flag on create commands
- Add simple shell.nix
- 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
- lxd-to-incus: Clear volatile.uuid from instances
- github: Bump most workflows to 24.04
- github: Split testsuite to separate action
- github: Add aarch64 tests
- tests: Skip nftables test on old kernels
- 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
- 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
- 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
- doc: Force white background for swagger API
- i18n: Update translation templates
- 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
- 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
- gomod: Update dependencies
- 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
- incusd/instance/drivers/qemu: Add IOMMU device
- incus/file: Remove unused function
- incus/network/info (ovn): Fix object not found.
- 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
- 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
- Makefile: Bump minimal Go to 1.23
- doc: Bump minimum Go to 1.23
- 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
- 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
- gomod: Update dependencies
- incusd/db/cluster: Fix cluster group table
- incusd/db: Update generated files
- 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
- api: acme_dns01
- incusd/cluster/config: Add extra ACME config keys
- incusd/acme: Add DNS-01 support
- doc: Add resolvers to wordlist
- doc: Update configs
- incusd/network/bridge: Fix deletion of tunnels and dummy devices
- incusd/device/disk: Include cluster name and config path in RBD string
- incusd/instance/qemu: Provide the RBD keyring to QEMU
- api: security_iommu
- internal/instance: Add security.iommu
- doc: Update configs
- incusd/instance/qemu: Simplify Windows detection
- incusd/instance/qemu: Implement security.iommu
- incusd/instance/qemu: Add IOMMU for Windows
- incusd/instance/qemu: Configure irqchip for split mode with IOMMU
- doc: Add passthrough and IOMMU to wordlist
- incusd/storage/ceph: Re-introduce keyring parsing
- doc: Clarify virtiofsd requirements
- incusd/migration: Change field type of Snapshots in VolumeTargetArgs
- incusd: Adjust code for VolumeTargetArgs Snapshots type change
- incusd/instance/drivers: Adjust code for VolumeTargetArgs Snapshots type change
- incusd/storage: Adjust code for VolumeTargetArgs Snapshots type change
- incusd/db: Add missing go:generate directive
- incusd/db: Update generated code
- incusd/device/disk: Do not allow mounting of custom block volume snapshots
- generate-database: Abstract DB connection / DB transaction
- incusd/db: Update generated code
- lint: Add short import exception for *.mapper.go
- generate-database: Accept interface instead of concrete type for PrepareStmts
- incusd/db: Update generated code
- cmd/list: Simplify evaluateShorthandFilter by reducing nesting levels
- incusd/storage: Don't use sparse writer on thick LVM
- shared/util: Add IsTruthy
- generate-database: Validate struct tags
- generate-database: Add marshal=json
- generate-database: Update generated code
- incusd/instance/edk2: Fix typo in function name
- incusd/instance/edk2: Fix EDK2 path overwrite issue
- incusd/instance/qemu: Propagate errors from edk2
- incusd/instance_types: Introduce INCUS_SKIP_INSTANCE_TYPES
- doc/environment: Add INCUS_SKIP_INSTANCE_TYPES
- doc/environment: Sort the environment variables
- incusd/ip: Error message styling
- incusd/ip: Only parse MAC on ethernet links
- internal/instance: Clarify security.secureboot setting
- doc: Update configs
- incusd/network/ovn: Fallback to OVN router address as DNS server
- api: network_ipv4_dhcp_routes
- shared/validate: Add IsDHCPRouteList
- incusd/network/ovn: Add ipv4.dhcp.routes
- incusd/network/bridge: Add ipv4.dhcp.routes
- tests: Add tests for ipv4.dhcp.routes
- doc: Add documentation for ipv4.dhcp.routes config
- github: Pass shell type to shellcheck
- generate-database: Handle constraint err in Create
- incusd/db: Update generated code
- generate-database: Check for tx if necessary
- incusd/db: Update generated code
- cmd/incus: Use the file extension of the edited file for the temp file, to help with syntax highlighting
- incusd/api_internal: Centralize all internal API endpoints
- tests: Update for re-organized internal endpoints
- incus/drivers: Fix ZFS CreateVolume deletes pre-existing data on failure
- incus/rebuild: Correct help message
- incusd/cluster/config: Set default value for acme.ca_url
- incusd/cluster/config: Return acme.provider.environment as a slice
- incusd/acme: Remove DNS-01 provider (now using lego externally)
- incusd/acme: Move DNS-01 to external lego binary
- incusd/api_1_0: Trigger ACME on all ACME config options
- incus/file: Always use 1MB chunks for SFTP
- incusd/instance/lxc: Fail immediately if no idmap found
- incusd/acme: use correct path
- incusd/bgp: Rework start/stop logic
- incusd/network/ovn: Skip existing static routes
- incusd/instance/qemu: Set caching-mode with intel-iommu
- incus-agent: Improve SFTP performance
- incusd/instance/qemu: Move Windows check to a function
- incusd/instance/qemu: Set RTC base to localtime on Windows
- doc/api-extensions: Fix formatting
- api: network_state_ovn_ls
- incusd/network/ovn: Export LogicalRouter and LogicalSwitch names as needed
- shared/api: Add LogicalSwitch to OVN state
- incus/network: Add Logical Switch for OVN
- incus/network: Better handle partial OVN state
- doc/rest-api: Refresh swagger YAML
- incus/network: Support for missing counters
- shared/api: Make NetworkStateCounters a pointer
- incusd/resources: Update for Counters being a pointer
- incus/copy: Clear full device when overriding with type=none
- doc/instance/create: Cover behavior on Windows
- api: network_dns_nameservers
- incusd/network/bridge: Add dns.nameservers
- incusd/network/ovn: Add dns.nameservers
- doc/network: Add dns.nameservers to bridge and OVN
- incusd/network/ovn: Correctly remove individual DHCP options from OVN when they are unset
- incusd/ports: Cleanup consts
- api: acme_http01_port
- incusd/cluster/config: Add acme.http.port
- doc/rest-api: Refresh swagger YAML
- incusd/acme: Use lego for HTTP-01
- gomod: Update dependencies
- i18n: Update translation templates
- incusd/db: Add missing error mapper
- incusd/instance/qmp: Add MachineDefinition function
- internal/instance: Add volatile.vm.definition
- doc: Update configs
- incusd/instance/qemu: Use saved machine definition when restoring running VM
- incusd/instance/qemu: Handle firmware vars name matching internal one
- incusd: Switch MAC generation to Zabbly prefix
- incusd: Switch to new MAC prefix
- doc: Switch to new MAC prefix
- incus: Switch to new MAC prefix
- lxc-to-incus: Switch to new MAC prefix
- shared/api: Switch to new MAC prefix
- tests: Switch to new MAC prefix
- doc/rest-api: Refresh swagger YAML
- client: Fix spelling errors found by codespell
- incusd/instance/edk2: Select SecureBoot capable firmware on Debian
- api: network_ovn_ipv4_dhcp_expiry
- incusd/network/ovn: Add option ipv4.dhcp.expiry for OVN networks
- doc/reference/network_ovn: Add ipv4.dhcp.expiry
- incusd/dns: Use shared mutex
- incusd/network/ovn: Add UpdateLogicalSwitchPortDHCP
- incusd/network/ovn: Reconfigure DHCP option on existing logical switch ports when DHCP is enabled on the network
- generate-config: Fix gofumpt
- lxd-to-incus: Fix gofumpt
- incus-agent: Fix gofumpt
- incus-benchmark: Fix gofumpt
- incus-migrate: Fix gofumpt
- incus-simplestreams: Fix gofumpt
- incus-user: Fix gofumpt
- lxc-to-incus: Fix gofumpt
- incus: Fix gofumpt
- shared/tls: Fix gofumpt
- shared/termios: Fix gofumpt
- shared/subprocess: Fix gofumpt
- shared/simplestreams: Fix gofumpt
- shared/logger: Fix gofumpt
- shared/idmap: Fix gofumpt
- shared/cliconfig: Fix gofumpt
- internal/version: Fix gofumpt
- internal/util: Fix gofumpt
- internal/usbid: Fix gofumpt
- internal/rsync: Fix gofumpt
- internal/linux: Fix gofumpt
- internal/io: Fix gofumpt
- incusd/storage: Fix gofumpt
- incusd/network: Fix gofumpt
- incusd/apparmor: Fix gofumpt
- incusd/backup: Fix gofumpt
- incusd/cgroup: Fix gofumpt
- incusd/cluster: Fix gofumpt
- incusd/config: Fix gofumpt
- incusd/db: Fix gofumpt
- incusd/device: Fix gofumpt
- incusd/dnsmasq: Fix gofumpt
- incusd/endpoints: Fix gofumpt
- incusd/events: Fix gofumpt
- incusd/firewall: Fix gofumpt
- incusd/ip: Fix gofumpt
- incusd/metrics: Fix gofumpt
- incusd/operations: Fix gofumpt
- incusd/resources: Fix gofumpt
- incusd/scriptlet: Fix gofumpt
- incusd/seccomp: Fix gofumpt
- incusd/sys: Fix gofumpt
- incusd/util: Fix gofumpt
- Makefile: Switch to gofumpt
- golangci: Switch to gofumpt
- generate-config: Use RunE
- internal/linux: Fix missing export comments
- incusd/seccomp: Fix import shadowing
- incusd/cluster: Remove duplicate type declaration
- incusd/bgp: Fix comment
- incusd/network/ovn: Don't run bgpSetup twice
- incusd/network/physical: Do full start following change of parent
- incusd/apparmor: Move AppArmor profiles to separate files
- doc: Fix spelling errors found by codespell
- shared: Fix spelling errors found by codespell
- tests: Fix spelling errors found by codespell
- lint: Run codespell automatically
- incusd/instance/common: Check PID validity
- client: Fix gofumpt
- incusd: Fix gofumpt
- incusd/instance: Fix gofumpt
- cmd: Fix spelling errors found by codespell
- internal: Fix spelling errors found by codespell
- incus/file: Properly handle relative source paths
- cmd/storage: Typo 'Examples:' create storage
- incusd/events: Don't open needless transactions
- incusd/instances: Re-order evacuated check to limit DB calls
- incusd: Limit calls to LocalNodeIsEvacuated
- incusd/instances_post: Move non-DB logic outside of transaction
- incusd/network/ovn: Fix default DNS IPv4 server
- shared/osarch: Extend OS detection logic
- incus-agent: Update for osarch change
- incusd: Update for osarch change
- internal/version: Update UserAgent logic for osarch change
- api: instance_state_cpu_time
- shared/api: Add AllocatedTime CPU field
- incusd/cgroup: Add GetCPUCfsLimit
- incusd/instance/lxc: Add AllocatedTime CPU field
- incusd/instance/qemu: Add AllocatedTime CPU field
- doc/rest-api: Refresh swagger YAML
- test: Check CPU allocated time
- incusd/certificates: Properly handle bad PEM data
- cmd/generate-database/lex: Fix pluralization
- cmd/generate-database/db: Consider marshal tagged fields as columns
- cmd/generate-database/db: Support multi-package parsing
- cmd/generate-database/db: Import entities from non-local packages
- cmd/generate-database/db: Add GetNames
- cmd/generate-database: Update docs
- cmd/generate-database/file/boilerplate: Use tx for multi-queries
- internal/server/db/cluster: Update generated code
- cmd/generate-database/db: Fix generator tests
- incusd/network/common: Handle missing BGP peer
- incusd/cluster/evacuate: Don't live-migrate stopped instances
- cmd/generate-database/db: Directly pass reference table and column names
- internal/server/db/cluster: Specify table name on method declarations
- internal/server/db/cluster: Update generated code
- cmd/incusd: Update calls to generated code
- cmd/generate-database/db: Make linter happy (defer loops)
- api: network_io_bus
- incusd/device/config: Add USB bus override
- incusd/instance: Add support for USB NICs
- incusd/device/nic: Add support for io.bus
- incusd/storage/s3 Fixed minio client mc too ambious issue
- doc/device/nic: Add support for io.bus
- incusd/instance/qemu enable s4 by default
- doc/instance_options: Updates raw.qemu.conf example
- incusd/networks: Validate configuration on join too
- Makefile: Bump base Go 1.23 version
- gomod: Update dependencies
- cmd/generate-database/db: Fix GetNames spacing
- github: Rework issue templates
- internal/server/storage/s3: Add
minio-client
to list of potential binary names - doc: Update Debian installation documentation
- internal/server/storage/s3: Update logic for checking MinIO version from multiple possible binary names
- incusd/auth: Tweak SQL queries
- incusd/auth: Properly handle network integrations
- incusd/db/cluster/entities: Sort maps
- doc/network-integration: Document properties
- api: disk_io_bus_usb
- incusd/device/disk: Add support for USB bus
- incusd/instance/qemu: Add support for USB disks
- doc: Update configs
- golangci: Upgrade to version 2
- incusd/storage/s3 minio client check enhancement
- golangci: Disable STI005 error checks
- test: Fix deprecated chown syntax
- test: Fix test cleanup
- shared/validate: Add string length validator
- shared/validate: Add minimum duration validator
- incusd/sys: Add Hostname to OS struct
- incusd/instance/drivers: Populate StorageMove and StoragePool when migrating lxc instances
- incusd/storage: Populate StorageMove and StoragePool when migrating volumes
- incusd/storage: Add more parameters to MigrationTypes
- incusd/network/ovn: Remove internal routes to forward/load-balancers
- doc/ref/storage_ceph: Fix typo
- tests: Tweak volume sizes
- tests: Be more specific on selecting property
- incusd/instance/edk2: Always prefer the EDK2 override
- doc/support: Update feature release version
- incusd/instance: Don't enforce device/config validation on snapshots
- i18n: Update translation templates
- incus: Replace interface{} by any
- internal/server/ip: Replace interface{} by any
- shared/logger: Replace interface{} by any
- client: Capture original OCI image identifier
- fix: Don't attempt to download signatures for oci
- client/oci: Add errors for missing umoci
- client: Add proxy host to skopoe calls
- client/oci: Add errors for missing skopeo
- client: Use strings.ReplaceAll
- lxd-to-incus: Use strings.ReplaceAll
- generate-database: Use strings.ReplaceAll
- incusd/db/cluster: Update generated code
- incus: Use strings.ReplaceAll
- internal/linux: Use strings.ReplaceAll
- incusd/apparmor: Use strings.ReplaceAll
- incusd/auth: Use strings.ReplaceAll
- incusd/db/cluster: Use strings.ReplaceAll
- incusd/db: Use strings.ReplaceAll
- incusd/device: Use strings.ReplaceAll
- incusd/instance: Use strings.ReplaceAll
- incusd/ip: Use strings.ReplaceAll
- incusd/network: Use strings.ReplaceAll
- incusd/storage: Use strings.ReplaceAll
- incus/utils: Check type assertion
- incusd/instance: Remove needless embedded fields
- incusd/storage/s3: Simplify variable declaration
- incusd: Fix missing line breaks
- README: Fix typo
- lxd-to-incus: Fix typo in trigger
- incusd/instance/edk2: Limit test to UEFI architectures
- doc/devices/disk: Fix restriction on
path
option - doc: Update configs
- doc: Tweak ACME documentation
- incusd/instances/qemu: Handle deprecation of runas
- incusd/instance/lxc: Pass limited environment to forkstart
- incusd/instance/qemu: Avoid unnecessary snapshot loading
- incusd/migrate: Bump timeouts to 30s
- incusd/storage: Add missing forwarding on snapshot list
- client: Pass ETag in UpdateWarning
- client: Pass ETag in UpdateCluster
- client/oci: Only replace the first match
- incusd/instance/common: Fix concurrent restarts
- generate-database: Fix documentation for
ignore
- incus: Remove unused functions
パッケージ作成者への注意: Incus は、ACME サポートのロジックをすべて incusd
バイナリー自体に組み込むのではなく、外部の lego
コマンドに依存するようになりました。ACME 証明書の発行サポートを維持したい場合、Incus は lego に依存することに注意してください。
サポートとアップグレード ¶
Incus 6.0 ブランチは 2029 年 6 月までサポートされます。常に最新の LTS バグ修正リリースを実行することを強く推奨します。
ダウンロード ¶
- リリース tarball : incus-6.0.4.tar.xz
- GPG シグネチャー : incus-6.0.4.tar.xz.asc
感謝 ¶
この LTS リリースアップデートは、Sovereign Tech Fund(現在は Sovereign Tech Agency の一部)からの資金提供により実現しました。
Sovereign Tech Fund は、オープンデジタルインフラストラクチャーの開発、改良、保守をサポートします。その目標は、セキュリティ、レジリエンス、技術の多様性、コードの背後にいる人々に焦点を当て、オープンソースエコシステムを持続的に強化することです。
詳細は https://www.sovereign.tech をご覧ください。
Incus 6.11 リリースのお知らせ¶
2025/03/28
はじめに ¶
Incus チームは、Incus 6.11 のリリースのアナウンスができてうれしいです!
間違いなくこのリリースの目玉機能は、Ceph の代わりを探している人のための新しいストレージドライバー Linstor の初期サポートです。
しかし、この Incus リリースが提供するのはこれだけではありません。多数の新しい VM、OCI、ネットワーク機能も搭載されています。
いつものように、オンラインでご自身で試せます: https://linuxcontainers.org/incus/try-it/
Enjoy!
新機能 ¶
Linstor ストレージドライバー ¶
Incus は、クラスターストレージ用の Ceph の代替として、Linstor を新たにサポートしました。
Linstor 自体については、Linstor のウェブサイトをご覧ください: https://linbit.com/linstor/
簡単に言うと、Linstor は Linux の DRBD メカニズムの上にある管理レイヤーであり、複数のサーバー間のブロックデバイスのレプリケーションに使用します。
この機能により、コンテナや仮想マシンのためのブロックボリュームを生成できるようになります。通常、プライマリーコピーはインスタンスを実行しているサーバー上に存在し、レプリカはクラスター内の他のサーバーに存在します。
ドライバードキュメント : 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/
新しい MAC アドレスの範囲 ¶
LXC と Incus は、どちらも 00:16:3e
ではじまる MAC アドレスを使っています。
このアドレスは Xen プロジェクト由来であり、実際の物理デバイスの MAC アドレスと衝突する危険性はありません。しかし、LXC/Incus インスタンスと Xen で実行されているインスタンスを簡単に判別できないという欠点があります。
今後よりクリーンにするために、Zabbly は LXC と Incus 専用の MAC アドレス帯 10:66:6a
を IEEE から取得しました。
新しい範囲は、すべての新しいインスタンスとネットワークに自動的に使用されます。
既存のインスタンスとネットワークは変更されません。
VM 上の USB NIC ¶
新しく io.bus
設定キーを VM のネットワークインターフェースに追加しました。
この設定は 2 つの値をサポートします。virtio
(デフォルト)と usb
です。
io.bus=usb
と設定すると、ネットワークインターフェースは通常の PCI デバイスではなく、汎用の USB ネットワークアダプターとして現れます。
これにより、古いゲスト OS がネットワークに接続できるようになるだけでなく、新しいゲスト OS がオンラインになり virtio ドライバーを取得し、その後デフォルトの virtio
バスに戻すことができるようになります。
ドキュメント : https://linuxcontainers.org/incus/docs/main/reference/devices_nic/
VM 上の USB ディスク ¶
USB バス経由で VM にディスクをアタッチできるようになりました。
このようにすると、それらのディスクは汎用 USB 大容量ストレージデバイスとして出現します。
これは、ディスクデバイス上で io.bus=usb
と設定することで行われます。
ドキュメント : https://linuxcontainers.org/incus/docs/main/reference/devices_disk/
VM マシン定義のトラッキング ¶
Incus は起動時に正確に QEMU マシン定義をトラッキングするようになりました。これにより、ターゲットが同じ QEMU リリースか、それ以降のリリースである限り、QEMU バージョン間のライブマイグレーションが可能になります。
これは、新しく追加された volatile.vm.definition
設定キーを通して行われます。
設定可能な OCI エントリーポイント ¶
OCI コンテナのエントリーポイントが構成できるようになりました。
コンテナの作成時、エントリーポイントデータが OCI 設定から抽出され、コンテナ上で編集可能な設定に変換されます。
これは、次の 4 つの新しい設定オプションを通して行われます:
oci.entrypoint
oci.cwd
oci.uid
oci.gid
これらは、インスタンスの作成時に上書きすることも、あとで自由に変更することもできます。
stgraber@castiana:~$ incus launch oci-docker:nginx nginx Launching nginx stgraber@castiana:~$ incus config show nginx | grep oci\\. oci.cwd: / oci.entrypoint: /docker-entrypoint.sh nginx -g 'daemon off;' oci.gid: "0" oci.uid: "0"
ドキュメント : https://linuxcontainers.org/incus/docs/main/reference/instance_options/
OCI コンテナ内の非特権 ICMP(ping)¶
OCI コンテナは、一般ユーザーとして ICMP パケットを送れるようになりました。
これは、アプリケーションコンテナが単一のアプリケーションを実行するように設計されているので、これを root ユーザーに制限してもあまりメリットがないために許可されています。
OCI コンテナ内の非特権ローポート ¶
OCI コンテナは、一般ユーザーとしてローポートにバインドできるようになりました。
これは、アプリケーションコンテナが単一のアプリケーションを実行するように設計されているので、これを root ユーザーに制限してもあまりメリットがないために許可されています。
インスタンスステート API 内の割り当てられた CPU 時間 ¶
新たに allocated_time
という値が CPU インスタンス状態の情報の一部として提供されるようになりました。
これは、コンテナが許可されるだけの CPU 時間を使っている場合、1 秒あたりに消費される CPU 時間(ナノ秒単位)を報告するために使われます。
これにより、既知の期間における複数の CPU 使用率の計測値(data points)と組み合わせることで、コンテナの CPU 使用率を効果的に計算できるようになります。
stgraber@castiana:~$ incus query /1.0/instances/nginx/state | jq .cpu { "allocated_time": 1000000000, "usage": 163062000 }
設定可能な DNS サーバー ¶
bridge
と ovn
ネットワークの両方で、新たに dns.nameservers
設定オプションが利用できるようになりました。これは、コンマ区切りの DNS サーバーのリストを設定します。
これは、すべてのインスタンスで直接使う専用の DNS リゾルバーを実行する場合や、特定のネットワークで、すべてのローカルの名前解決をバイパスして代わりにパブリックなリゾルバーにアクセスするような環境で役立ちます。
ドキュメント (bridge): https://linuxcontainers.org/incus/docs/main/reference/network_bridge/
ドキュメント (OVN): https://linuxcontainers.org/incus/docs/main/reference/network_ovn/
DHCP 経由の追加 IPv4 ルート ¶
bridge
と ovn
ネットワークの両方で、新たに ipv4.dhcp.routes
設定オプションが利用できるようになりました。これにより、DHCP を通して追加のルートを広告できるようになります。
ドキュメント (bridge): https://linuxcontainers.org/incus/docs/main/reference/network_bridge/
ドキュメント (OVN): https://linuxcontainers.org/incus/docs/main/reference/network_ovn/
OVN での設定可能な IPv4 DHCP リース有効期限 ¶
ipv4.dhcp.expiry
設定オプションが OVN ネットワークでも利用可能になりました。
これにより、デフォルトの DHCP リース期間の増減ができるようになりました。
ドキュメント : https://linuxcontainers.org/incus/docs/main/reference/network_ovn/
OVN 論理スイッチ名がネットワーク状態の一部に ¶
OVN 論理スイッチ名が、OVN ネットワーク情報の一部として報告されるようになりました。
これにより、特に分離された(アップリンクがない)ネットワークで、論理ルーターが不足している可能性がある場合のデバッグがかなり簡単になります。
root@server01:~# incus network info default Name: default MAC address: 00:16:3e:54:62:a9 MTU: 1500 State: up Type: broadcast IP addresses: inet 10.104.61.1/24 (link) inet6 fd42:73ae:9013:c530::1/64 (link) OVN: Chassis: server01 Logical router: incus-net20-lr Logical switch: incus-net20-ls-int IPv4 uplink address: 172.31.254.10 IPv6 uplink address: fd00:1e4d:637d:1234:216:3eff:fe54:62a9
パッケージ作成者への注意 ¶
このリリースで、Incus は ACME を扱うために外部的に lego
ツールを使うようになりました。
これは、Incus 自身のバイナリーサイズを大幅に削減しますが、lego
を依存関係として追加する必要があることを意味します。
すべての変更点 ¶
このリリースのすべての変更のリストは次の通りです(翻訳なし):
すべてのChangeLogを見る
- doc: Clarify virtiofsd requirements
- incusd/instance/lxc: Allow unprivileged users to use ping in application containers
- incusd/instance/lxc: Allow unprivileged users in application containers to bind to all ports
- incusd/migration: Change field type of Snapshots in VolumeTargetArgs
- incusd: Adjust code for VolumeTargetArgs Snapshots type change
- incusd/instance/drivers: Adjust code for VolumeTargetArgs Snapshots type change
- incusd/storage: Adjust code for VolumeTargetArgs Snapshots type change
- incusd/db: Add missing go:generate directive
- incusd/db: Update generated code
- incusd/device/disk: Do not allow mounting of custom block volume snapshots
- generate-database: Abstract DB connection / DB transaction
- incusd/db: Update generated code
- lint: Add short import exception for *.mapper.go
- generate-database: Accept interface instead of concrete type for PrepareStmts
- incusd/db: Update generated code
- cmd/list: Simplify evaluateShorthandFilter by reducing nesting levels
- incusd/storage: Don't use sparse writer on thick LVM
- shared/util: Add IsTruthy
- generate-database: Validate struct tags
- generate-database: Add marshal=json
- generate-database: Update generated code
- incusd/instance/edk2: Fix typo in function name
- incusd/instance/edk2: Fix EDK2 path overwrite issue
- incusd/instance/qemu: Propagate errors from edk2
- incusd/instance_types: Introduce INCUS_SKIP_INSTANCE_TYPES
- doc/environment: Add INCUS_SKIP_INSTANCE_TYPES
- doc/environment: Sort the environment variables
- incusd/ip: Error message styling
- incusd/ip: Only parse MAC on ethernet links
- internal/instance: Clarify security.secureboot setting
- doc: Update configs
- incusd/network/ovn: Fallback to OVN router address as DNS server
- api: network_ipv4_dhcp_routes
- shared/validate: Add IsDHCPRouteList
- incusd/network/ovn: Add ipv4.dhcp.routes
- incusd/network/bridge: Add ipv4.dhcp.routes
- cmd/incusd/forknet: Add classless static route support to the forknet dhcp client
- tests: Add tests for ipv4.dhcp.routes
- doc: Add documentation for ipv4.dhcp.routes config
- github: Pass shell type to shellcheck
- incusd/instance: Revert on OCI creation failure
- generate-database: Handle constraint err in Create
- incusd/db: Update generated code
- generate-database: Check for tx if necessary
- incusd/db: Update generated code
- cmd/incus: Use the file extension of the edited file for the temp file, to help with syntax highlighting
- incusd/api_internal: Centralize all internal API endpoints
- tests: Update for re-organized internal endpoints
- incus/drivers: Fix ZFS CreateVolume deletes pre-existing data on failure
- incus/rebuild: Correct help message
- i18n: Update translation templates
- incusd/cluster/config: Set default value for acme.ca_url
- incusd/cluster/config: Return acme.provider.environment as a slice
- incusd/acme: Remove DNS-01 provider (now using lego externally)
- incusd/acme: Move DNS-01 to external lego binary
- incusd/api_1_0: Trigger ACME on all ACME config options
- gomod: Update dependencies
- incus/file: Always use 1MB chunks for SFTP
- incusd/instance/lxc: Fail immediately if no idmap found
- incusd/acme: use correct path
- incusd/bgp: Rework start/stop logic
- incusd/network/ovn: Skip existing static routes
- incusd/instance/qemu: Set caching-mode with intel-iommu
- incus-agent: Improve SFTP performance
- incusd/instance/qemu: Move Windows check to a function
- incusd/instance/qemu: Set RTC base to localtime on Windows
- doc/api-extensions: Fix formatting
- api: network_state_ovn_ls
- incusd/network/ovn: Export LogicalRouter and LogicalSwitch names as needed
- shared/api: Add LogicalSwitch to OVN state
- incus/network: Add Logical Switch for OVN
- i18n: Update translation templates
- incus/network: Better handle partial OVN state
- doc/rest-api: Refresh swagger YAML
- incus/network: Support for missing counters
- shared/api: Make NetworkStateCounters a pointer
- incusd/resources: Update for Counters being a pointer
- incus/copy: Clear full device when overriding with type=none
- doc/instance/create: Cover behavior on Windows
- api: network_dns_nameservers
- incusd/network/bridge: Add dns.nameservers
- incusd/network/ovn: Add dns.nameservers
- doc/network: Add dns.nameservers to bridge and OVN
- incusd/network/ovn: Correctly remove individual DHCP options from OVN when they are unset
- incusd/ports: Cleanup consts
- api: acme_http01_port
- incusd/cluster/config: Add acme.http.port
- doc/rest-api: Refresh swagger YAML
- incusd/acme: Use lego for HTTP-01
- gomod: Update dependencies
- incusd/instance/qmp: Add MachineDefinition function
- internal/instance: Add volatile.vm.definition
- doc: Update configs
- incusd/instance/qemu: Use saved machine definition when restoring running VM
- incusd/instance/qemu: Handle firmware vars name matching internal one
- incusd: Switch MAC generation to Zabbly prefix
- incusd: Switch to new MAC prefix
- doc: Switch to new MAC prefix
- incus: Switch to new MAC prefix
- lxc-to-incus: Switch to new MAC prefix
- shared/api: Switch to new MAC prefix
- tests: Switch to new MAC prefix
- doc/rest-api: Refresh swagger YAML
- i18n: Update translation templates
- client: Fix spelling errors found by codespell
- incusd/instance/edk2: Select SecureBoot capable firmware on Debian
- api: network_ovn_ipv4_dhcp_expiry
- incusd/network/ovn: Add option ipv4.dhcp.expiry for OVN networks
- doc/reference/network_ovn: Add ipv4.dhcp.expiry
- incusd/main_forknet: Remove unreachable code
- incusd/dns: Use shared mutex
- incusd/network/ovn: Add UpdateLogicalSwitchPortDHCP
- incusd/network/ovn: Reconfigure DHCP option on existing logical switch ports when DHCP is enabled on the network
- client: Fix gofumpt
- generate-config: Fix gofumpt
- lxd-to-incus: Fix gofumpt
- incus-agent: Fix gofumpt
- incus-benchmark: Fix gofumpt
- incus-migrate: Fix gofumpt
- incus-simplestreams: Fix gofumpt
- incus-user: Fix gofumpt
- lxc-to-incus: Fix gofumpt
- incus: Fix gofumpt
- incusd: Fix gofumpt
- shared/tls: Fix gofumpt
- shared/termios: Fix gofumpt
- shared/subprocess: Fix gofumpt
- shared/simplestreams: Fix gofumpt
- shared/logger: Fix gofumpt
- shared/idmap: Fix gofumpt
- shared/cliconfig: Fix gofumpt
- internal/version: Fix gofumpt
- internal/util: Fix gofumpt
- internal/usbid: Fix gofumpt
- internal/rsync: Fix gofumpt
- internal/linux: Fix gofumpt
- internal/io: Fix gofumpt
- incusd/storage: Fix gofumpt
- incusd/network: Fix gofumpt
- incusd/instance: Fix gofumpt
- incusd/apparmor: Fix gofumpt
- incusd/backup: Fix gofumpt
- incusd/cgroup: Fix gofumpt
- incusd/cluster: Fix gofumpt
- incusd/config: Fix gofumpt
- incusd/db: Fix gofumpt
- incusd/device: Fix gofumpt
- incusd/dnsmasq: Fix gofumpt
- incusd/endpoints: Fix gofumpt
- incusd/events: Fix gofumpt
- incusd/firewall: Fix gofumpt
- incusd/ip: Fix gofumpt
- incusd/metrics: Fix gofumpt
- incusd/operations: Fix gofumpt
- incusd/resources: Fix gofumpt
- incusd/scriptlet: Fix gofumpt
- incusd/seccomp: Fix gofumpt
- incusd/sys: Fix gofumpt
- incusd/util: Fix gofumpt
- Makefile: Switch to gofumpt
- golangci: Switch to gofumpt
- generate-config: Use RunE
- internal/linux: Fix missing export comments
- incusd/seccomp: Fix import shadowing
- incusd/cluster: Remove duplicate type declaration
- incusd/bgp: Fix comment
- incusd/network/ovn: Don't run bgpSetup twice
- incusd/network/physical: Do full start following change of parent
- incusd/apparmor: Move AppArmor profiles to separate files
- cmd: Fix spelling errors found by codespell
- doc: Fix spelling errors found by codespell
- internal: Fix spelling errors found by codespell
- shared: Fix spelling errors found by codespell
- tests: Fix spelling errors found by codespell
- lint: Run codespell automatically
- i18n: Update translation templates
- incusd/instance/common: Check PID validity
- incus/file: Properly handle relative source paths
- cmd/storage: Typo 'Examples:' create storage
- i18n: Update translation templates
- incusd/events: Don't open needless transactions
- incusd/instances: Re-order evacuated check to limit DB calls
- incusd: Limit calls to LocalNodeIsEvacuated
- incusd/instances_post: Move non-DB logic outside of transaction
- incusd/network/ovn: Fix default DNS IPv4 server
- shared/osarch: Extend OS detection logic
- incus-agent: Update for osarch change
- incusd: Update for osarch change
- internal/version: Update UserAgent logic for osarch change
- api: instance_state_cpu_time
- shared/api: Add AllocatedTime CPU field
- incusd/cgroup: Add GetCPUCfsLimit
- incusd/instance/lxc: Add AllocatedTime CPU field
- incusd/instance/qemu: Add AllocatedTime CPU field
- doc/rest-api: Refresh swagger YAML
- test: Check CPU allocated time
- incusd/certificates: Properly handle bad PEM data
- cmd/generate-database/lex: Fix pluralization
- cmd/generate-database/db: Consider marshal tagged fields as columns
- cmd/generate-database/db: Support multi-package parsing
- cmd/generate-database/db: Import entities from non-local packages
- cmd/generate-database/db: Add GetNames
- cmd/generate-database: Update docs
- cmd/generate-database/file/boilerplate: Use tx for multi-queries
- internal/server/db/cluster: Update generated code
- cmd/generate-database/db: Fix generator tests
- incusd/network/common: Handle missing BGP peer
- incusd/cluster/evacuate: Don't live-migrate stopped instances
- cmd/generate-database/db: Directly pass reference table and column names
- internal/server/db/cluster: Specify table name on method declarations
- internal/server/db/cluster: Update generated code
- cmd/incusd: Update calls to generated code
- cmd/generate-database/db: Make linter happy (defer loops)
- api: network_io_bus
- incusd/device/config: Add USB bus override
- incusd/instance: Add support for USB NICs
- incusd/device/nic: Add support for io.bus
- incusd/storage/s3 Fixed minio client mc too ambious issue
- doc/device/nic: Add support for io.bus
- incusd/instance/qemu enable s4 by default
- doc/instance_options: Updates raw.qemu.conf example
- incusd/networks: Validate configuration on join too
- Makefile: Bump base Go 1.23 version
- gomod: Update dependencies
- cmd/generate-database/db: Fix GetNames spacing
- github: Rework issue templates
- internal/server/storage/s3: Add
minio-client
to list of potential binary names - doc: Update Debian installation documentation
- internal/server/storage/s3: Update logic for checking MinIO version from multiple possible binary names
- incusd/auth: Tweak SQL queries
- incusd/auth: Properly handle network integrations
- incusd/db/cluster/entities: Sort maps
- doc/network-integration: Document properties
- incusd/instance/lxc: Cleanup OCI mount paths
- api: disk_io_bus_usb
- incusd/device/disk: Add support for USB bus
- incusd/instance/qemu: Add support for USB disks
- doc: Update configs
- golangci: Upgrade to version 2
- incusd/storage/s3 minio client check enhancement
- golangci: Disable STI005 error checks
- test: Fix deprecated chown syntax
- test: Fix test cleanup
- shared/validate: Add string length validator
- shared/validate: Add minimum duration validator
- incusd/sys: Add Hostname to OS struct
- incusd/instance/drivers: Populate StorageMove and StoragePool when migrating lxc instances
- incusd/storage: Populate StorageMove and StoragePool when migrating volumes
- incusd/storage: Add more parameters to MigrationTypes
- incusd/network/ovn: Remove internal routes to forward/load-balancers
- doc/ref/storage_ceph: Fix typo
- tests: Tweak volume sizes
- tests: Be more specific on selecting property
- incusd/instance/edk2: Always prefer the EDK2 override
- api: storage_driver_linstor
- doc: Linstor driver documentation
- incusd/cluster/config: Add cluster-level LINSTOR config options
- incusd/node/config: Add node-level LINSTOR config options
- incusd/migration: Add linstor to migration protobuf
- incusd/storage/linstor: Linstor client setup
- incusd/storage/linstor: Wrap golinstor logger
- incusd/state: Add Linstor client to server state
- incusd: Trigger Linstor client setup on server config changes
- incusd/storage/linstor: Storage pool creation and deletion
- incusd/storage/linstor: Volume creation and deletion
- incusd/storage: Implement the Filler function for Linstor volumes
- incusd/storage/linstor: Add mount and unmount support for volumes
- incusd/storage/linstor: Add trivial renaming support for volumes
- incusd/storage/linstor: Remove filesystem volume and mount path
- incusd/storage/linstor: Add common volume config validation
- incusd/storage/linstor: Copy volumes on the same pool
- incusd/storage/linstor: Add basic snapshot support
- incusd/storage/linstor: Add support for mounting and unmounting snapshot volumes
- incusd/storage/linstor: Add support for resizing volumes
- incusd/storage/linstor: Add basic support for same-pool migration
- incusd/storage/linstor: Add support for optimized images
- incusd/storage/linstor: List snapshots to support non optimized copying of volumes with snapshots
- incusd/storage/linstor: Implement GetResources
- incusd/storage/linstor: Add support for updating storage pool config
- incusd/storage/linstor: Add support for generic refreshing of volumes
- incusd/storage/linstor: Add support for fetching volume disk usage
- incusd/storage/linstor: Add support for non optimized backups
- incusd/storage/linstor: Encode snapshot names in metadata
- incusd/storage/linstor: Add support for listing volumes
- incusd/storage/linstor: Use aux property to map incus names to linstor resource definitions
- incusd/storage/linstor: Ensure volumes are available locally when retrieving device paths
- incusd/storage/linstor: Fallback to generic migration implementation
- incusd/storage/linstor: Freeze and sync filesystem when snapshotting volumes
- incusd/storage/linstor: Cleanup temporary resource definitions from snapshots
- incusd/storage/linstor: Delete diskless resources when unmounting volumes
- incusd/storage/linstor: Add drbd resource config options
- tests: Add standalone LINSTOR tests
- tests: Add clustered LINSTOR tests
- internal/migration: Update protobuf
- doc: Update configs
- gomod: Tidy dependencies and add LINSTOR
- github: Add LINSTOR CI tests
- incusd/storage/linstor: Add linstor.remove_snapshots config option
- doc: Document linstor.remove_snapshots config option
- test: Add tests for linstor.remove_snapshots config option
- doc/support: Update feature release version
- incusd/instance: Don't enforce device/config validation on snapshots
- gomod: Update dependencies
- api: instance_oci_entrypoint
- internal/instance: Add OCI entrypoint configuration
- incusd/instance/lxc: Add OCI entrypoint configuration
- incusd/instance: Set instance OCI config from OCI data
- doc: Update config
ドキュメント ¶
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.11.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
Incus 6.10 リリースのお知らせ¶
2025/02/28
はじめに ¶
Incus チームは、Incus 6.10 のリリースのアナウンスができてうれしいです!
このリリースでは、有効な HTTPS 証明書で Incus を実行する簡単な方法や、プロビジョニングデータを VM に送る新しい方法、とても歓迎される API の強化などが導入されています。
いつものように、オンラインでご自身で試せます: 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
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