LXD 4.0 LTS リリースのお知らせ¶
31st of March 2020
はじめに ¶
LXD チームは、LXD 4.0 LTS のリリースをお知らせすることにとてもワクワクしています!
これは LXD の 3 つめの LTS リリースです。とても忙しく、そしてエキサイティングです!
あとの ChangeLog は、LXD 3.23 ユーザーと 3.0 ユーザーの両方が私たちが準備したものを見れるように分けています。
私たちの他の LTS リリースと同様に、このリリースも 5 年間(2025 年 6 月まで)サポートされます。その間に多数のバグフィックスとセキュリティのポイントリリースが行われます。
LXD 3.0 に関しては、残り 3 年間のセキュリティ fix のみのメンテナンスモードに入る前の近いうちに、最後のバグフィックスリリースを 3.0.5 としてリリースしたいと思っています。
Enjoy!
互換性のない変更 ¶
--container-only
の削除と、--instance-only
への置き換え ¶
このリリースでの CLI の互換性のない変更は --container-only
を --instance-only
に置き換えるものだけです。フィーチャーリリースでは数ヶ月の間は両方をサポートします。4.0 リリースでは、非推奨の機能は削除されます。
3.23 ユーザー向けのハイライト ¶
virtual machines: バックアップサポート(import/export)¶
lxc export
と lxc import
が仮想マシンで使えるようになりました。
しかし、注意点があります。仮想マシンはコンテナとは異なり、大きなブロックデバイスとしてしかアクセスできません。これは、VM 内で実際にどれだけの容量が使われていたとしても、数 GB のデーターを読み込み圧縮する必要があるということです。
つまりエクスポートもインポートも長い時間がかかる可能性があるということです。
ZFS のようなバックエンドで --optimized
オプションを使うと、同じタイプのストレージプールにインポートするなら、エクスポートの時間を大幅に短縮できるでしょう。
resources: リソース API の PCI、USB デバイス ¶
リソース API(/1.0/resources
)が拡張され、システム上の PCI、USB デバイスが表示されるようになりました。これは特に、仮想マシンで VFIO パススルーや、コンテナで USB デバイスを扱う場合に有用です。
stgraber@castiana:~$ lxc query /1.0/resources | jq .pci { "devices": [ { "driver": "skl_uncore", "driver_version": "5.4.0-18-generic", "numa_node": 0, "pci_address": "0000:00:00.0", "product": "Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers", "product_id": "5904", "vendor": "Intel Corporation", "vendor_id": "8086" }, { "driver": "i915", "driver_version": "5.4.0-18-generic", "numa_node": 0, "pci_address": "0000:00:02.0", "product": "HD Graphics 620", "product_id": "5916", "vendor": "Intel Corporation", "vendor_id": "8086" }, { "driver": "", "driver_version": "", "numa_node": 0, "pci_address": "0000:00:08.0", "product": "Xeon E3-1200 v5/v6 / E3-1500 v5 / 6th/7th/8th Gen Core Processor Gaussian Mixture Model", "product_id": "1911", "vendor": "Intel Corporation", "vendor_id": "8086" }, { "driver": "xhci_hcd", "driver_version": "5.4.0-18-generic", "numa_node": 0, "pci_address": "0000:00:14.0", "product": "Sunrise Point-LP USB 3.0 xHCI Controller", "product_id": "9d2f", "vendor": "Intel Corporation", "vendor_id": "8086" }, { "driver": "intel_pch_thermal", "driver_version": "5.4.0-18-generic", "numa_node": 0, "pci_address": "0000:00:14.2", "product": "Sunrise Point-LP Thermal subsystem", "product_id": "9d31", "vendor": "Intel Corporation", "vendor_id": "8086" }, { "driver": "mei_me", "driver_version": "5.4.0-18-generic", "numa_node": 0, "pci_address": "0000:00:16.0", "product": "Sunrise Point-LP CSME HECI #1", "product_id": "9d3a", "vendor": "Intel Corporation", "vendor_id": "8086" }, { "driver": "pcieport", "driver_version": "5.4.0-18-generic", "numa_node": 0, "pci_address": "0000:00:1c.0", "product": "Sunrise Point-LP PCI Express Root Port #1", "product_id": "9d10", "vendor": "Intel Corporation", "vendor_id": "8086" }, { "driver": "pcieport", "driver_version": "5.4.0-18-generic", "numa_node": 0, "pci_address": "0000:00:1c.2", "product": "Sunrise Point-LP PCI Express Root Port #3", "product_id": "9d12", "vendor": "Intel Corporation", "vendor_id": "8086" }, { "driver": "pcieport", "driver_version": "5.4.0-18-generic", "numa_node": 0, "pci_address": "0000:00:1c.4", "product": "Sunrise Point-LP PCI Express Root Port #5", "product_id": "9d14", "vendor": "Intel Corporation", "vendor_id": "8086" }, { "driver": "pcieport", "driver_version": "5.4.0-18-generic", "numa_node": 0, "pci_address": "0000:00:1d.0", "product": "Sunrise Point-LP PCI Express Root Port #9", "product_id": "9d18", "vendor": "Intel Corporation", "vendor_id": "8086" }, { "driver": "", "driver_version": "", "numa_node": 0, "pci_address": "0000:00:1f.0", "product": "Sunrise Point LPC Controller/eSPI Controller", "product_id": "9d4e", "vendor": "Intel Corporation", "vendor_id": "8086" }, { "driver": "", "driver_version": "", "numa_node": 0, "pci_address": "0000:00:1f.2", "product": "Sunrise Point-LP PMC", "product_id": "9d21", "vendor": "Intel Corporation", "vendor_id": "8086" }, { "driver": "snd_hda_intel", "driver_version": "5.4.0-18-generic", "numa_node": 0, "pci_address": "0000:00:1f.3", "product": "Sunrise Point-LP HD Audio", "product_id": "9d71", "vendor": "Intel Corporation", "vendor_id": "8086" }, { "driver": "i801_smbus", "driver_version": "5.4.0-18-generic", "numa_node": 0, "pci_address": "0000:00:1f.4", "product": "Sunrise Point-LP SMBus", "product_id": "9d23", "vendor": "Intel Corporation", "vendor_id": "8086" }, { "driver": "e1000e", "driver_version": "3.2.6-k", "numa_node": 0, "pci_address": "0000:00:1f.6", "product": "Ethernet Connection (4) I219-LM", "product_id": "15d7", "vendor": "Intel Corporation", "vendor_id": "8086" }, { "driver": "rtsx_pci", "driver_version": "5.4.0-18-generic", "numa_node": 0, "pci_address": "0000:02:00.0", "product": "RTS525A PCI Express Card Reader", "product_id": "525a", "vendor": "Realtek Semiconductor Co., Ltd.", "vendor_id": "10ec" }, { "driver": "iwlwifi", "driver_version": "5.4.0-18-generic", "numa_node": 0, "pci_address": "0000:04:00.0", "product": "Wireless 8265 / 8275", "product_id": "24fd", "vendor": "Intel Corporation", "vendor_id": "8086" }, { "driver": "nvme", "driver_version": "1.0", "numa_node": 0, "pci_address": "0000:05:00.0", "product": "SSD 600P Series", "product_id": "f1a5", "vendor": "Intel Corporation", "vendor_id": "8086" }, { "driver": "pcieport", "driver_version": "5.4.0-18-generic", "numa_node": 0, "pci_address": "0000:06:00.0", "product": "JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016]", "product_id": "15d3", "vendor": "Intel Corporation", "vendor_id": "8086" }, { "driver": "pcieport", "driver_version": "5.4.0-18-generic", "numa_node": 0, "pci_address": "0000:07:00.0", "product": "JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016]", "product_id": "15d3", "vendor": "Intel Corporation", "vendor_id": "8086" }, { "driver": "pcieport", "driver_version": "5.4.0-18-generic", "numa_node": 0, "pci_address": "0000:07:01.0", "product": "JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016]", "product_id": "15d3", "vendor": "Intel Corporation", "vendor_id": "8086" }, { "driver": "pcieport", "driver_version": "5.4.0-18-generic", "numa_node": 0, "pci_address": "0000:07:02.0", "product": "JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016]", "product_id": "15d3", "vendor": "Intel Corporation", "vendor_id": "8086" }, { "driver": "pcieport", "driver_version": "5.4.0-18-generic", "numa_node": 0, "pci_address": "0000:07:04.0", "product": "JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016]", "product_id": "15d3", "vendor": "Intel Corporation", "vendor_id": "8086" }, { "driver": "thunderbolt", "driver_version": "5.4.0-18-generic", "numa_node": 0, "pci_address": "0000:08:00.0", "product": "JHL6540 Thunderbolt 3 NHI (C step) [Alpine Ridge 4C 2016]", "product_id": "15d2", "vendor": "Intel Corporation", "vendor_id": "8086" }, { "driver": "pcieport", "driver_version": "5.4.0-18-generic", "numa_node": 0, "pci_address": "0000:09:00.0", "product": "JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016]", "product_id": "15d3", "vendor": "Intel Corporation", "vendor_id": "8086" }, { "driver": "pcieport", "driver_version": "5.4.0-18-generic", "numa_node": 0, "pci_address": "0000:0a:00.0", "product": "JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016]", "product_id": "15d3", "vendor": "Intel Corporation", "vendor_id": "8086" }, { "driver": "pcieport", "driver_version": "5.4.0-18-generic", "numa_node": 0, "pci_address": "0000:0a:01.0", "product": "JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016]", "product_id": "15d3", "vendor": "Intel Corporation", "vendor_id": "8086" }, { "driver": "pcieport", "driver_version": "5.4.0-18-generic", "numa_node": 0, "pci_address": "0000:0a:02.0", "product": "JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016]", "product_id": "15d3", "vendor": "Intel Corporation", "vendor_id": "8086" }, { "driver": "pcieport", "driver_version": "5.4.0-18-generic", "numa_node": 0, "pci_address": "0000:0a:04.0", "product": "JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016]", "product_id": "15d3", "vendor": "Intel Corporation", "vendor_id": "8086" }, { "driver": "ahci", "driver_version": "3.0", "numa_node": 0, "pci_address": "0000:0b:00.0", "product": "", "product_id": "0622", "vendor": "ASMedia Technology Inc.", "vendor_id": "1b21" }, { "driver": "xhci_hcd", "driver_version": "5.4.0-18-generic", "numa_node": 0, "pci_address": "0000:0c:00.0", "product": "FL1100 USB 3.0 Host Controller", "product_id": "1100", "vendor": "Fresco Logic", "vendor_id": "1b73" }, { "driver": "atlantic", "driver_version": "5.4.0-18-generic-kern", "numa_node": 0, "pci_address": "0000:0d:00.0", "product": "AQC107 NBase-T/IEEE 802.3bz Ethernet Controller [AQtion]", "product_id": "87b1", "vendor": "Aquantia Corp.", "vendor_id": "1d6a" } ], "total": 32 } stgraber@castiana:~$ lxc query /1.0/resources | jq .usb { "devices": [ { "bus_address": 1, "device_address": 4, "interfaces": [ { "class": "Wireless", "class_id": 224, "driver": "btusb", "driver_version": "0.8", "number": 0, "subclass": "Radio Frequency", "subclass_id": 1 }, { "class": "Wireless", "class_id": 224, "driver": "btusb", "driver_version": "0.8", "number": 1, "subclass": "Radio Frequency", "subclass_id": 1 } ], "product": "", "product_id": "0a2b", "speed": 12, "vendor": "Intel Corp.", "vendor_id": "8087" }, { "bus_address": 1, "device_address": 3, "interfaces": [ { "class": "Video", "class_id": 14, "driver": "uvcvideo", "driver_version": "1.1.1", "number": 0, "subclass": "Video Control", "subclass_id": 1 }, { "class": "Video", "class_id": 14, "driver": "uvcvideo", "driver_version": "1.1.1", "number": 1, "subclass": "Video Streaming", "subclass_id": 2 } ], "product": "Integrated Camera", "product_id": "b5ce", "speed": 480, "vendor": "Chicony Electronics Co., Ltd", "vendor_id": "04f2" }, { "bus_address": 3, "device_address": 2, "interfaces": [ { "class": "Audio", "class_id": 1, "driver": "snd-usb-audio", "driver_version": "5.4.0-18-generic", "number": 0, "subclass": "Control Device", "subclass_id": 1 }, { "class": "Audio", "class_id": 1, "driver": "snd-usb-audio", "driver_version": "5.4.0-18-generic", "number": 1, "subclass": "Streaming", "subclass_id": 2 }, { "class": "Audio", "class_id": 1, "driver": "snd-usb-audio", "driver_version": "5.4.0-18-generic", "number": 2, "subclass": "Streaming", "subclass_id": 2 }, { "class": "Human Interface Device", "class_id": 3, "driver": "usbhid", "driver_version": "5.4.0-18-generic", "number": 3, "subclass": "", "subclass_id": 0 } ], "product": "TX42C500", "product_id": "4933", "speed": 12, "vendor": "Realtek Semiconductor Corp.", "vendor_id": "0bda" }, { "bus_address": 3, "device_address": 13, "interfaces": [ { "class": "Video", "class_id": 14, "driver": "uvcvideo", "driver_version": "1.1.1", "number": 0, "subclass": "Video Control", "subclass_id": 1 }, { "class": "Video", "class_id": 14, "driver": "uvcvideo", "driver_version": "1.1.1", "number": 1, "subclass": "Video Streaming", "subclass_id": 2 }, { "class": "Audio", "class_id": 1, "driver": "snd-usb-audio", "driver_version": "5.4.0-18-generic", "number": 2, "subclass": "Control Device", "subclass_id": 1 }, { "class": "Audio", "class_id": 1, "driver": "snd-usb-audio", "driver_version": "5.4.0-18-generic", "number": 3, "subclass": "Streaming", "subclass_id": 2 } ], "product": "HD Pro Webcam C920", "product_id": "082d", "speed": 480, "vendor": "Logitech, Inc.", "vendor_id": "046d" }, { "bus_address": 3, "device_address": 16, "interfaces": [ { "class": "Human Interface Device", "class_id": 3, "driver": "usbhid", "driver_version": "5.4.0-18-generic", "number": 0, "subclass": "", "subclass_id": 0 }, { "class": "Chip/SmartCard", "class_id": 11, "driver": "usbfs", "driver_version": "5.4.0-18-generic", "number": 1, "subclass": "", "subclass_id": 0 } ], "product": "YubiKey FIDO+CCID", "product_id": "0406", "speed": 12, "vendor": "Yubico.com", "vendor_id": "1050" }, { "bus_address": 3, "device_address": 17, "interfaces": [ { "class": "Human Interface Device", "class_id": 3, "driver": "usbhid", "driver_version": "5.4.0-18-generic", "number": 0, "subclass": "Boot Interface Subclass", "subclass_id": 1 }, { "class": "Human Interface Device", "class_id": 3, "driver": "usbhid", "driver_version": "5.4.0-18-generic", "number": 1, "subclass": "Boot Interface Subclass", "subclass_id": 1 } ], "product": "ThinkPad Compact USB Keyboard with TrackPoint", "product_id": "6047", "speed": 12, "vendor": "Lenovo", "vendor_id": "17ef" } ], "total": 6 }
network: 複数の ipvlan NIC デバイスのサポート ¶
複数の ipvlan デバイスの ipv4.gateway
と ipv6.gateway
の両方もしくは片方が none
に設定されている場合、複数の ipvlan デバイスを同じコンテナに追加できるようになりました。
network: routed NIC のホスト側アドレス設定のサポート ¶
routed
NIC のホスト側のアドレスは ipv4.host_address
と ipv6.host_address
プロパティで設定できるようになりました。
clustering: クラスターロール編集のサポート ¶
新たに lxc cluster edit
コマンドでクラスターのロールを編集できるようになりました。
現時点では書き込みできるロールがないので意味がないのですが、近いうちにいくつかロールを追加し、API とコマンドで管理できるようになるにする予定です。
instances: カスタムボリュームのディスク使用量 ¶
カスタムボリュームをアタッチしているコンテナが、state API (と lxc info
)経由でボリュームの使用量をレポートするようになりました。
stgraber@castiana:~$ lxc launch images:ubuntu/bionic c1 Creating c1 Starting c1 stgraber@castiana:~$ lxc storage volume create default vol1 Storage volume vol1 created stgraber@castiana:~$ lxc storage volume create default vol2 Storage volume vol2 created stgraber@castiana:~$ lxc storage volume attach default vol1 c1 vol1 /mnt/vol1 stgraber@castiana:~$ lxc storage volume attach default vol2 c1 vol2 /mnt/vol2 stgraber@castiana:~$ lxc info c1 Name: c1 Location: none Remote: unix:// Architecture: x86_64 Created: 2020/04/01 00:00 UTC Status: Running Type: container Profiles: default Pid: 1439012 Ips: eth0: inet 10.166.11.66 veth12c5ea18 eth0: inet6 fd42:4c81:5770:1eaf:216:3eff:fee2:43b6 veth12c5ea18 eth0: inet6 fe80::216:3eff:fee2:43b6 veth12c5ea18 lo: inet 127.0.0.1 lo: inet6 ::1 Resources: Processes: 14 Disk usage: root: 1.11MB vol1: 98.30kB vol2: 98.30kB CPU usage: CPU usage (in seconds): 0 Memory usage: Memory (current): 46.94MB Network usage: eth0: Bytes received: 3.06kB Bytes sent: 2.93kB Packets received: 22 Packets sent: 28 lo: Bytes received: 0B Bytes sent: 0B Packets received: 0 Packets sent: 0
instances: スナップショットのディスク使用量 ¶
API でスナップショットごとのそれぞれのサイズを取得できるようになりました。
stgraber@castiana:~$ lxc snapshot c1 stgraber@castiana:~$ lxc query /1.0/instances/c1/snapshots/snap0 | jq .size 61440
これは再設計が済むとすぐに lxc info
で表示されるようになるでしょう。
auth: パスワード不要の PKI モードのサポート ¶
管理された PKI を使って LXD を使う場合、その CA が署名したクライアント証明書であれば自動的に信頼するように LXD を設定できるようになりました。
これは core.trust_ca_certificates
で設定します。
revoke を扱うため、server.ca
と同時に設定する server.crl
を CRL として受け入れます。
3.0 ユーザー向けのハイライト ¶
上記の機能と変更点に加えて、LXD 3.0 ブランチのユーザーは、以下の「新しい」機能が期待できるでしょう:
仮想マシン ¶
LXD はコンテナと仮想マシンの両方を実行できるようになりました。
デバイスや設定オプションによっては仮想マシンではまだ設定できないものがありますが、使い方や設定方法は同じように動作します。
操作によっては仮想マシン内で動作するエージェントが実行します(lxc exec
と lxc file
)。プロジェクトで作成したイメージのほとんどはエージェントがあらかじめインストールされています。
コンテナではなく仮想マシンを作成するのであれば、シンプルに lxc launch
に --vm
オプションを指定します。
VM イメージは主要なよく使われる Linux ディストリビューションのものが準備されており、将来的にも更に追加する予定です。
stgraber@castiana:~$ lxc launch images:centos/8 centos-8 --vm Creating centos-8 Starting centos-8 stgraber@castiana:~$ lxc info centos-8 Name: centos-8 Location: none Remote: unix:// Architecture: x86_64 Created: 2020/03/31 23:48 UTC Status: Running Type: virtual-machine Profiles: default Pid: 1426453 Ips: enp5s0: inet 10.166.11.125 enp5s0: inet6 fd42:4c81:5770:1eaf:1c5b:d0a1:d892:5464 enp5s0: inet6 fe80::9bbf:7460:2ad0:6a9 lo: inet 127.0.0.1 lo: inet6 ::1 Resources: Processes: 12 Disk usage: root: 6.65MB CPU usage: CPU usage (in seconds): 5 Memory usage: Memory (current): 123.94MB Memory (peak): 115.95MB Network usage: enp5s0: Bytes received: 2.55kB Bytes sent: 2.32kB Packets received: 21 Packets sent: 20 lo: Bytes received: 0B Bytes sent: 0B Packets received: 0 Packets sent: 0 stgraber@castiana:~$ lxc exec centos-8 bash [root@centos-8 ~]# cat /etc/redhat-release CentOS Linux release 8.1.1911 (Core) [root@centos-8 ~]# uname -a Linux centos-8 4.18.0-147.5.1.el8_1.centos.plus.x86_64 #1 SMP Thu Feb 6 10:31:58 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux [root@centos-8 ~]#
プロジェクト ¶
プロジェクトは LXD サーバーを分割する方法です。
プロジェクトはそれぞれ自身のインスタンス、イメージ、プロファイル、ストレージボリュームを持つことができます。
これらのさまざまな機能はプロジェクトごとに有効化・無効化できます。無効にした場合、プロジェクトは default
プロジェクトから継承します。
これに加え、プロジェクトは制約(restriction / 特定のデバイスタイプや特権コンテナの無効化など)と制限(limit / CPU、メモリー、インスタンス数の制限)をサポートしています。
インスタンス ¶
- コンテナ上でのシステムコールインターセプション
- 限られた
mknod
がコンテナ内で可能 - 限られた
setxattr
がコンテナ内で可能 - 特権が必要なファイルシステムのマウントを許可するために使用可能
- 一部のファイルシステムマウントを FUSE にリダイレクトするために使用可能
- バックアップ・リストア機能の追加(
lxc export
とlxc import
) - ストレージプール間のインスタンスのコピー・移動
lxc copy --refresh
を使った(ローカル、リモートの)インスタンスコピーのリフレッシュ(訳注: 差分コピー)- 予想外の削除や id シフトからの保護(
security.protection.delete
とsecurity.protection.shift
) shiftfs
のサポート追加。可能な場合にはshiftfs
を使用し従来の id シフトを置き換える- 自動化されたスナップショットと expire
- 新しい
unix-hotplug
デバイスタイプ(unix-char
やunix-block
と同様のもの) usb
デバイスの改良:- 追加・削除の uevent がコンテナに転送されるようになりました
- すべての USB デバイスを渡すことができます
proxy
デバイスの改良:- 特権を落とすオプション(
security.uid
andsecurity.gid
) - ソケットの所有権のオプション(
uid
,gid
,mode
) - HAProxy タイプヘッダーのサポート(
proxy_protocol
) - 使用可能な場合 NAT を使った高速なプロキシー(
nat
) - UDP、UNIX ソケットのサポート。UDP、TCP を使っている場合のポートの範囲
disk
デバイスの改良:- Ceph rbd/fs ディスクの直接コンテナへのアタッチ
- カスタムのマウントオプション
- コンテナが読めるものへの uid/gid の変換のための
shift
プロパティ nic
デバイスの改良:- 新しい
ipvlan
nic タイプ - 新しい
routed
nic タイプ ipv4.routes
とipv6.routes
プロパティ- 簡単に LXD が管理するネットワークに接続するための
network
プロパティ - セキュリティフィルタリングオプション
- SR-IOV デバイスでの VLAN と MAC フィルタリング
ネットワーク ¶
- 設定可能な NAT ソースアドレス(
ipv4.nat.address
andipv6.nat.address
) - DHCP リース API と
lxc network list-leases
コマンド - ネットワーク状態に関する API と
lxc network info
コマンド - LXD が管理するネットワークでの設定可能な MAC アドレス(
bridge.hwaddr
) - ファイアウォールのルール順がコントロール可能に(
ipv4.nat.order
andipv6.nat.order
)
ストレージ ¶
- スクラッチから書き直した新しい内部ストレージレイヤー
- 新しい
cephfs
ストレージバックエンド - バックアップとイメージをストレージプール内に保存可能に
- カスタムストレージボリュームのスナップショット(スケジューリングと expire 処理を含む)
- LVM ストライピングサポート
- Ceph でメタデータとデータプールの分離
dir
バックエンドで ext4/xfs の "project quotas" 機能を使ったクォータ- カスタムストレージボリュームの
security.shifted
プロパティ
イメージ ¶
- ネストした LXD でホストからイメージを取得するための API(
security.devlxd.images
) - 新たに作成するイメージで
squashfs
圧縮のサポート - プロファイルをイメージに結びつけることが可能に
- イメージの expire 時期を変更できるように
クラスターの改良 ¶
- スタンバイデータベースノードのサポート
- データベース数とスタンバイノードの数が設定可能
- アーキテクチャー混在のクラスターリング
- クラスターリングのロール
- 新たな簡素化されたクラスター追加 API
- クライアントとクラスター用トラフィックのアドレスの分離
- 自動イメージレプリケーション
CLI¶
lxc list
とlxc image list
の新しいカラム- 新たに
lxc alias
コマンドを追加 list
コマンド全体を通して--format
オプションをサポート- すべての
set
コマンドで複数のkey=value
を受け付けるように exec
コマンドが--uid
と--gid
と--cwd
オプションを受け付けるようにlxc copy
とlxc move
での設定の上書き- クラスターリングに対してより多くのコマンドでの
--target
サポート
将来的な保証 ¶
- xtables の代替として nftables をサポート
- cgroup v2 を使った制限のサポート
API¶
- Canonical RBAC 経由の RBAC (Role Based Access Control) サポート
- デフォルトの TLS キーの EC384 化
/1.0/containers
の置き換えとして/1.0/instances
エンドポイントの新設/1.0/instances
と/1.0/images
でのサーバーサイドのコレクションフィルタリングを追加/1.0/resources
でのより広範囲のリソース API- カーネルの機能が
/1.0
で取得可能に - LXC の機能が
/1.0
で取得可能に core.debug_address
経由でのビルトインデバッグサーバー(pprof)設定- 高需要エンドポイントでのバルククエリー(再帰)オプションの追加
- クラスター環境内のイベントとオペレーションが
Location
フィールドを持つように
完全な ChangeLog(翻訳なし) ¶
Here is a complete list of all changes in this release:
すべてのChangeLog を見る
- shared/version/api: Add trust_ca_certificates
- doc: Add core.trust_ca_certificates
- lxd/cluster/config: Add core.trust_ca_certificates
- *: Add parameters to CheckTrustState
- shared/cert: Add CRL to CertInfo
- lxd/util/http: Check CRL for revoked clients
- test: Extend PKI test
- lxd/etag: Quote generated etag values
- lxd/apparmor: Apparently the order matters
- shared/version/api: Add snapshot_disk_usage API extension
- doc: Add snapshot_disk_usage
- lxd/storage/drivers/btrfs: Fix quota
- lxd/backup: Removes Privileged field from backup.Info struct
- lxd/backup: Adds new fields in index.yaml
- lxd/instances/post: bInfo.OptimizedStorage pointer usage
- lxd/storage/backend/lxd: CreateInstanceFromBackup OptimizedStorage pointer usage
- lxd/backup: Updates backupWriteIndex index.yaml fields
- lxd/backup: Removes Project field from index.yaml
- test/suites/storage: Add btrfs quota tests
- shared/api: Add size to InstanceSnapshot
- lxd/instance/drivers: Get snapshot usage
- lxd/storage/drivers/btrfs: Don't destroy qgroups
- lxd/storage/drivers: Moves functions from generic.go to generic_vfs.go
- lxd/storage/drivers: Generic VFS function usage after move &rename
- lxd/instance/drivers: Add custom volumes to disk state
- lxd/instance/drivers: Fix lxd-agent running order
- lxc: Deprecate --container-only
- i18n: Update translation templates
- tests: Move away from container-only
- lxc: Drop flagContainerOnly
- lxd/storage/zfs: Fix deleted VM images restoration
- lxc/storage/drivers/driver/btrfs/volumes: CreateVolumeFromBackup to use tar reader for optimized volume restore
- lxc/storage/drivers/driver/zfs/volumes: CreateVolumeFromBackup to use tar reader for optimized volume restore
- shared/archive: Adds CompressedTarReader function
- lxd/backup/backup: shared.CompressedTarReader usage
- test/suites/static/analysis: Reinstates checks for shared/instancewriter
- lxd/instance/post: InstanceID usage
- lxd/db/containers: Renames ContainerID to InstanceID
- lxd/instances/post: Logging in createFromBackup
- lxd/instances/post: Logging message change from container to instance
- lxd/instances/post: Switches to revert package in createFromBackup
- lxd: Merges instanceCreateFromBackup into createFromBackup
- lxd/storage/drivers/utils: Adds blockDevSizeBytes function
- lxd/storage/drivers/driver/ceph/volumes: Updates SetVolumeQuota to use blockDevSizeBytes
- shared/instancewriter/instance/file/info: Adds FileInfo for os.FileInfo implementation
- shared/instancewriter/instance/tar/writer: Adds WriteFileFromReader function
- lxd/backup: Switches index.yaml file generation to use WriteFileFromReader in backupCreate
- lxd/api/internal: d.cluster.InstanceID usage
- lxd/storage/backend/lxd: Better error msg context in CreateInstanceFromBackup
- lxd/backup: Removes volume type restriction in backupCreate
- lxd/storage/drivers/generic/vfs: Adds VM support to genericVFSBackupVolume
- lxd/storage/drivers: Uses sourcePath logging for consistency in BackupVolume
- lxd/storage/drivers/driver/zfs/volumes: Adds optimised VM backup to BackupVolume
- lxd/storage/drivers/driver/btrfs/volumes: Adds optimised VM backup to BackupVolume
- lxd/storage/backend/lxd: Adds volume type logic for VMs to CreateInstanceFromBackup
- lxd/api/internal: makes internalImport VM aware
- lxd/storage/drivers/generic/vfs: Adds VM support to genericVFSBackupUnpack
- lxd/storage/drivers/driver/zfs/volumes: MountVolume comment improvements
- lxd/storage/drivers/driver/zfs/volumes: UnmountVolume improvements
- lxd/storage/drivers/driver/zfs/volumes: Adds VM support to generic mode in MigrateVolume
- lxd/storage/drivers/driver/zfs/volumes: Adds VM support to MountVolumeSnapshot
- lxd/storage/drivers/driver/zfs/volumes: Adds VM support to UnmountVolumeSnapshot
- lxd/storage/drivers/driver/zfs/volumes: Adds support for VM optimized backup restore
- lxd/storage/drivers: Adds existing volume check to optimized backup restore
- lxd/storage/drivers/driver/btrfs/volumes: Adds support for VM optimized backup restore
- lxd/storage/backend/lxd: Updates CheckInstanceBackupFileSnapshots to be VM aware
- lxd/storage/backend/lxd/patches: Ignores snapshots when retrieving list of custom volumes to be renamed
- lxd/containers: Emit lifecycle event on user shutdown
- lxd/storage/drivers: Adds OptimizedBackups driver Info flag
- lxd/backup: Ignore requests for optimized backups when pool driver doesn't support it
- lxd/instances/post: Ensure optimized backup imports only import into same storage driver pools
- lxd/instance/exec: Adds protection against clients reconnecting after exec has started
- doc: Fix escaping
- lxd/cluster: Tweak errors
- api: clustering_edit_roles
- shared/api: Add ClusterMemberPut
- lxd/cluster: Make ClusterMember editable
- client: Add UpdateClusterMember
- lxc/cluster: Add edit sub-command
- i18n: Update translation templates
- lxd/firewall/drivers/drivers/consts: Adds FilterIPv6All constant
- cgroup/init: close controllers file
- doc/networks: Add missing maas.subnet.ipv4/maas.subnet.ipv6
- scripts/bash: Add maas.subnet.ipv4/maas.subnet/ipv6 to network
- client: Fix bad description for UpdateClusterMember
- lxd/device/nic/bridged: Allow security.ipv6_filtering to be used on networks without IPv6
- lxd/firewall/drivers/drivers/xtables: Adds FilterIPv6All support
- lxd/firewall: Dont use compact function arg definitions
- lxd/firewall/drivers/drivers/nftables: Adds FilterIPv6All support
- lxd/network/network/utils: Adds support for bridged NIC network property when rebuilding dnsmasq static config
- lxd/network/network/utils: Comment consistency
- lxd/device/nic/bridged: Allow security.ipv4_filtering to be used on networks without IPv4
- lxd/firewall/drivers/drivers/consts: Adds FilterIPv4All constant
- lxd/firewall/drivers/drivers/xtables: Adds Adds FilterIPv4All support
- lxd/firewall/drivers/drivers/nftables: Adds FilterIPv4All support
- test: Adds bridged NIC tests for total protocol filtering
- lxd/device/nic: Adds ipv4.host_address and ipv6.host_address keys
- lxd/device/nic/routed: Adds ability to specify host-side veth interface IP address
- api: Adds container_nic_routed_host_address API extension
- doc/instances: Updates routed nic doc with ipv4.host_address and ipv6.host_address keys
- scripts/bash/lxd-client: Updates bash device keys for routed NIC
- lxd/device/nic/ipvlan: Adds ipv4.gateway and ipv6.gateway support
- api: Adds container_nic_ipvlan_gateway API extension
- doc/instances: Adds ipvlan ipv4.gateway and ipv6.gateway docs
- lxd/device/nic/routed: Sets accept_ra=0 on host interface
- lxc: Fix for current cobra
- lxd/device/nic_routed: Don't fail on missing IPv6
- lxd/device/nic_routed: Set rp_filter=1
- forkexec: rework
- forkexec: tweak
- lxd/firewall/firewall/interface: Adds InstanceSetupRPFilter and InstanceClearRPFilter
- lxd/firewall/drivers/drivers/xtables: Improves proxy NAT rule removal errors
- lxd/firewall/drivers/drivers/xtables: Renames iptablesConfig to iptablesAdd
- lxd/firewall/drivers/drivers/xtables: Implements reverse path filters
- lxd/device/nic/routed: Applies firewall based reverse path filter for IPv4 and IPv6
- lxd/storage/drivers/ceph: Re-create image snapshot
- lxd/storage/drivers: Update comment on readonly snapshot
- lxd/firewall/drivers/drivers/nftables: Implements reverse path filters
- shared/instancewriter/instance/tar/writer: Adds ignoreGrowth arg to WriteFile
- lxd/storage/drivers/generic/vfs: Sets ignoreGrowth arg true in WriteFile usage
- lxd: Existing WriteFile usage updated to set ignoreGrowth to false
- lxd/device/nic/bridged: Disables IPv6 on bridged host side interface
- lxd/exec: Fix forwarding for VMs
- lxd: Rename forwarding functions
- i18n: Update translations from weblate
- lxd/networks: Fix network leases list for instances using "network" option
- lxd/instance/drivers/driver/qemu: Restart on failure
- shared/idmap: Better root fallback
- lxd/instance/drivers/driver/qemu: Fixes dependencies for lxd-agent
- lxd-agent/main/agent: Better logging
- shared/version/api: Add resources_usb_pci API extension
- doc: Add resources_usb_pci
- shared/api: Add USB and PCI resources
- shared/usbid: Add USB vendor and devices
- lxd/resources: Add USB resource
- lxd/resources: Add PCI resource
- test/suites/static_analysis: Skip shared/usbid/load_data.go
試用環境 ¶
この新しい LXD リリースは私たちの デモサービス で利用できます。
ダウンロード ¶
このリリースの tarball は ダウンロードページ から取得できます。
ビルド済みバイナリーは次のように使えます:
- Linux: snap install lxd
- MacOS: brew install lxc
- Windows: choco install lxc