[lxc-devel] [linuxcontainers.org/master] Add Japanese release announcement of LXD 4.9

lxc-jp on Github lxc-bot at linuxcontainers.org
Tue Dec 22 14:40:44 UTC 2020


A non-text attachment was scrubbed...
Name: not available
Type: text/x-mailbox
Size: 316 bytes
Desc: not available
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20201222/799cb663/attachment-0001.bin>
-------------- next part --------------
From b670269e26fe758572f651bae7b0c6421a0c4401 Mon Sep 17 00:00:00 2001
From: KATOH Yasufumi <karma at jazz.email.ne.jp>
Date: Mon, 21 Dec 2020 23:12:13 +0900
Subject: [PATCH 1/3] Add Japanese release announcement of LXD 4.9

Signed-off-by: KATOH Yasufumi <karma at jazz.email.ne.jp>
---
 content/lxd/news.ja/lxd-4.9.yaml | 780 +++++++++++++++++++++++++++++++
 1 file changed, 780 insertions(+)
 create mode 100644 content/lxd/news.ja/lxd-4.9.yaml

diff --git a/content/lxd/news.ja/lxd-4.9.yaml b/content/lxd/news.ja/lxd-4.9.yaml
new file mode 100644
index 0000000..8a6b454
--- /dev/null
+++ b/content/lxd/news.ja/lxd-4.9.yaml
@@ -0,0 +1,780 @@
+title: LXD 4.9 リリースのお知らせ
+date: 2020/12/11 19:12
+origin: https://discuss.linuxcontainers.org/t/lxd-4-9-has-been-released/9673
+content: |-
+  ### はじめに <!-- Introduction -->
+  <!--
+  The LXD team is very excited to announce the release of LXD 4.9!
+  -->
+  LXD チームは LXD 4.9 のリリースをお知らせできることにとてもワクワクしています!
+  
+  <!--
+  This comes with a few contributions from students of the University of Texas in Austin:
+  -->
+  このリリースには、オースティンにあるテキサス大学の学生からの次のコントリビューションが含まれています:
+
+   - プロジェクトに対する `limits.instances` 設定 <!-- `limits.instances` project config key -->
+   - サーバー情報に qemu ドライバーとバージョンを表示 <!-- `qemu` driver and version listed in server environment -->
+   - リソース API 内に `IOMMU` グループを表示 <!-- `IOMMU` groups listed in the resources API -->
+   - サーバー設定内の `user.` 設定 <!-- `user.` config keys in the server config -->
+
+  <!--
+  On top of that, we're adding support for mediated devices GPU passthrough, some major improvements on lifecycle events, a few more additions to the resources API, zstd compression support and a variety of new options for those using OVN.
+  -->
+  それに加えて、GPU の媒介(mediated)デバイスのパススルーが使えるようになり、ライフサイクルイベントにいくつか改良をほどこし、リソース API へいくつか追加を行い、zstd 圧縮が使えるようになり、OVN ユーザーのための様々な新しいオプションを追加しています。
+
+  Enjoy!
+
+  ### 新機能とハイライト <!-- New features and highlights -->
+  #### 仮想マシンに対する GPU 媒介デバイス <!-- Mediated GPU devices for Virtual Machines -->
+  <!--
+  LXD now supports allocating mediated devices from GPUs supporting it and attaching the resulting device to a virtual machine.
+  -->
+  LXDで、媒介デバイス(mediated device)をサポートしているGPUから媒介デバイスを割り当てることができるようになり、それを仮想マシンにアタッチできるようになりました。
+
+  <!--
+  This is done through the introduction of a new `gputype` key for `gpu` devices which currently supports:
+  -->
+  これは、新たに導入された `gpu` のための設定 `gputype` によって行います。設定値は現時点では次の値をサポートしています:
+
+   - `physical` (全 GPU。従来のデフォルトの動作)<!-- `physical` (entire GPU, pre-existing default behavior) -->
+   - `mdev` プロファイルを指定するための追加の `mdev` キーと組み合わせて使います<!-- `mdev` compined with the additional `mdev` key to specify the profile -->
+
+  <!--
+  `lxc info --resources` also now lists `mdev` profiles.
+  -->
+  `lxc info --resources` でも `mdev` プロファイルが表示されるようになりました。
+
+      GPU:
+        NUMA node: 0
+        Vendor: Intel Corporation (8086)
+        Product: HD Graphics 620 (5916)
+        PCI address: 0000:00:02.0
+        Driver: i915 (5.8.0-29-generic)
+        DRM:
+          ID: 0
+          Card: card0 (226:0)
+          Control: controlD64 (226:0)
+          Render: renderD128 (226:128)
+        Mdev profiles:
+          - i915-GVTg_V5_4 (1 available)
+              low_gm_size: 128MB
+              high_gm_size: 512MB
+              fence: 4
+              resolution: 1920x1200
+              weight: 4
+          - i915-GVTg_V5_8 (2 available)
+              low_gm_size: 64MB
+              high_gm_size: 384MB
+              fence: 4
+              resolution: 1024x768
+              weight: 2
+
+  #### PCI デバイスの IOMMU グループ <!-- IOMMU groups for PCI devices -->
+  <!--
+  Each device in the `PCI` section of the resource API (`/1.0/resources`) now has an `iommu_group` key to indicate the ID of its IOMMU group.
+  -->
+  リソース API(`/1.0/resources`)の `PCI` セクションのデバイスそれぞれには、IOMMU グループの ID を示す `iommu_group` が表示されるようになりました。
+
+  <!--
+  This is quite useful to look at the IOMMU topology prior to adding passthrough network or GPU devices to a virtual machine.
+  -->
+  これは、パススルーネットワークや GPU デバイスを仮想マシンに追加する前に IOMMU トポロジーを確認するのにとても役立ちます。
+
+      stgraber at castiana:~$ lxc query /1.0/resources | jq .pci.devices[-1]
+      {
+        "driver": "xhci_hcd",
+        "driver_version": "5.8.0-29-generic",
+        "iommu_group": 16,
+        "numa_node": 0,
+        "pci_address": "0000:3c:00.0",
+        "product": "JHL6540 Thunderbolt 3 USB Controller (C step) [Alpine Ridge 4C 2016]",
+        "product_id": "15d4",
+        "vendor": "Intel Corporation",
+        "vendor_id": "8086"
+      }
+
+  #### サーバ環境情報内の QEMU バージョン表示 <!-- QEMU version in server environment information -->
+  <!--
+  The version of QEMU on the system is now included in the `driver` and `driver_version` fields as is visible in `lxc info`.
+  -->
+  次の `lxc info` の実行例に表示されているように、システムの QEMU のバージョンが `driver` と `driver_version` に含まれるようになりました。
+
+      stgraber at castiana:~$ lxc info | grep " driver"
+        driver: lxc | qemu
+        driver_version: 4.0.0 (devel) | 5.2.0
+
+  #### ライフサイクルイベントの改良 <!-- Improved lifecycle events -->
+  <!--
+  The set of `lifecycle` events has been reworked and expanded.
+  -->
+  ライフサイクルイベントを実装しなおして拡張しました。
+
+  <!--
+  The complete list supported at this point is:
+  -->
+  現時点の完全なリストは次のとおりです:
+
+   - instance-created
+   - instance-renamed
+   - instance-deleted
+   - instance-updated
+   - instance-started
+   - instance-stopped
+   - instance-shutdown
+   - instance-restarted
+   - instance-paused
+   - instance-resumed
+   - instance-snapshot-create
+   - instance-snapshot-renamed
+   - instance-snapshot-deleted
+   - instance-restored
+   - instance-backup-created (new)
+   - instance-backup-renamed (new)
+   - instance-backup-deleted (new)
+   - network-created (new)
+   - network-updated (new)
+   - network-renamed (new)
+   - network-deleted (new)
+
+  <!--
+  As you may notice, `instance` is now used consistently rather than mixing in legacy `container` and `virtual-machine` prefixes. Some gaps were filled around the lack of events for backups and initial coverage for network events was added too.
+  -->
+  お気づきのように、従来の `container` と `virtual-machine` のプレフィックスが混じった状態ではなく、一貫して `instance` が使われるようになりました。バックアップのためにイベントが不足していた問題がいくつか解消され、ネットワークイベントの初期カバレッジも追加されました。
+
+  #### `user.` キーがすべてのオブジェクトで使用可能に<!-- `user.` keys allowed on all objects -->
+  <!--
+  With this release, `user.` keys can now be used in every LXD object which holds configuration. Those keys are particularly useful for external orchestration or monitoring systems that need to store some additional context.
+  -->
+  このリリースで、設定を保持するすべての LXD オブジェクト内で `user.` キーが使えるようになりました。これらのキーは、追加のコンテキストを保存する必要がある外部のオーケストレーションシステムやモニタリングシステムで特に役に立ちます。
+
+  <!--
+  We had recently made those keys allowed on all objects except for the server itself, this has now been resolved.
+  -->
+  最近、これらのキーはサーバ自身を除くすべてのオブジェクトで使えましたが、これが解決されました。
+
+      stgraber at castiana:~$ lxc config set user.foo bar
+      stgraber at castiana:~$ lxc config get user.foo
+      bar
+
+  #### USB・ネットワークリソースの `usb_address` と `pci_address` プロパティ <!-- `usb_address` and `pci_address` properties in USB/network resources -->
+  <!--
+  A new `usb_address` field has now been added to both network and storage devices in the sources API. It will be populated by the `<bus>:<dev>` of the device when it's USB attached. This is very similar to `pci_address` for PCI devices.
+  -->
+  `usb_address` フィールドが、新たにソース API 内のネットワークとストレージデバイスの両方に追加されました。USB 接続がなされた際、デバイスの `<bus>:<dev>` で表示されます。これは PCI デバイスの `pci_address` にとても似ています。
+
+  <!--
+  At the same time, the missing `pci_address` field was added to storage devices.
+  -->
+  同時に、ストレージデバイスになかった `pci_address` フィールドも追加されました。
+
+      stgraber at castiana:~$ lxc query /1.0/resources | jq .storage.disks[-1]
+      {
+        "block_size": 512,
+        "device": "8:0",
+        "device_id": "usb-Kingston_DataTraveler_3.0_08606E6B6612BE50D7168119-0:0",
+        "device_path": "pci-0000:00:14.0-usb-0:1:1.0-scsi-0:0:0:0",
+        "firmware_version": "PMAP",
+        "id": "sda",
+        "model": "DataTraveler 3.0",
+        "numa_node": 0,
+        "partitions": [
+          {
+            "device": "8:1",
+            "id": "sda1",
+            "partition": 1,
+            "read_only": false,
+            "size": 7863254528
+          }
+        ],
+        "read_only": false,
+        "removable": true,
+        "rpm": 0,
+        "serial": "08606E6B6612BE50D7168119",
+        "size": 7864320000,
+        "type": "usb",
+        "usb_address": "2:7"
+      }
+
+  #### OVN ネットワークの `ipv4.dhcp` と `ipv6.dhcp` <!-- `ipv4.dhcp` and `ipv6.dhcp` on OVN networks -->
+  <!--
+  It's now possible to disable IPv4 and/or IPv6 DHCP on an OVN network.
+  -->
+  OVN ネットワークで IPv4 と IPv6 の DHCP をそれぞれ無効化できるようになりました。
+
+  <!--
+  This is done through the same `ipv4.dhcp` and `ipv6.dhcp` keys as used on traditional managed bridges.
+  -->
+  これは、従来のマネージドブリッジと同様に、`ipv4.dhcp` と `ipv6.dhcp` の設定により行います。
+
+  #### 物理ネットワーク上の `ovn.ingress_mode` <!-- `ovn.ingress_mode` on physical networks -->
+  <!--
+  When allocating external addresses or subnets to an OVN network, something needs to tell the upstream gateway that the particular OVN router is responsible for that traffic.
+  -->
+  OVN ネットワークに外部アドレスもしくはサブネットを割り当てる場合、特定の OVN ルーターがそのトラフィックを取り扱っていることを上流のゲートウェイに知らせる必要があります。
+
+  <!--
+  Up until now, we have been using an L2 proxy, effectively causing OVN to respond to ARP/NDP packets on the uplink network for any address that it is responsible for on its network and instances.
+  -->
+  これまでは、L2 プロキシーを使って行っており、事実上 OVN は、処理を行わなければいけないネットワークとインスタンス上で、アップリンクネットワーク上の ARP/NDP パケットに対して応答することになっています。
+
+  <!--
+  This works great in many cases and avoids having to externally setup routes, but it requires individual address records in OVN itself which doesn't scale particularly well on large subnets (think /24 IPv4 or /64 IPv6).
+  -->
+  これは多くのケースでうまく機能し、外部でルートを設定する必要はなくなります。しかし、OVN 自体で個別のアドレスレコードが必要となり、特に大きなサブネットではスケールしません(IPv4 での /24 や IPv6 での /64 を考えてみてください)。
+
+  <!--
+  For those cases, a new config key called `ovn.ingress_mode` has been added and can now be set to `routed`, indicating that the upstream router knows what subnet goes to what OVN router and OVN can therefore skip having to individually handle every single address.
+  -->
+  このようなケースのために、新たに `ovn.ingress_mode` という設定が追加され、`routed` と設定できるようになりました。これは上流のルーターが、どのサブネットがどの OVN ルーターにルーティングされるのかを知っているため、OVN が各単独のアドレスごとに個別に処理する必要がないことを示しています。
+
+  <!--
+  This can then be combined with something like https://github.com/stgraber/lxd-bgp to use a dynamic routing protocol with the upstream router to automatically setup the needed routes to the relevant OVN routers.
+  -->
+  これを https://github.com/stgraber/lxd-bgp のようなものと組み合わせて、上流のルーターのダイナミックなルーティング・プロトコルを使って、関連する OVN ルーターに対する必要なルートを自動的に設定できます。
+
+  #### 物理ネットワーク上の `ipv4.routes.anycast` と `ipv6.routes.anycast` <!-- `ipv4.routes.anycast` and `ipv6.routes.anycast` on physical networks -->
+  <!--
+  Somewhat related to the previous entry, two new keys have been added to allow bypassing a check that LXD performs on routed subnets.
+  -->
+  前のエントリーに関連して、LXD がルーティングされたサブネットに対して実行するチェックをバイパスするために、2つの新しい設定が追加されました。
+
+  <!--
+  Out of the box, we prevent a given subnet being used to back two networks or to be assigned to two instances at once. However, with support for external routing and dynamic routing comes the ability to do anycast.
+  -->
+  この設定だけで、ふたつのネットワークのバックで使われたり、同時にふたつのインスタンスに割り当てられたりするのを防ぎます。しかし、外部ルーティングとダイナミックルーティングをサポートすることで、anycast を行うことができるようになります。
+
+  <!--
+  In environment where this is supported, the `ipv4.routes.anycast` and `ipv6.routes.anycast` keys may now be set to `true`, bypassing the duplicate subnet check and allowing two instances to hold the same public address, leaving it up to the upstream router to decide which gets the traffic.
+  -->
+  これがサポートされている環境では、`ipv4.routes.anycast` と `ipv6.routes.anycast` を `true` に設定し、サブネットの重複チェックを回避し、ふたつのインスタンスが同じパブリックアドレスを保持できるようにし、トラフィックの取得の決定を蒸留ルーターに任せることができます。
+
+  #### `limits.instances` プロジェクトオプション <!-- `limits.instances` project option -->
+  <!--
+  A new limit now joins `limits.containers` and `limits.virtual-machines` on projects.
+  `limits.instances` allows setting an overall limit on the number of instances in a project, regardless of type.
+  -->
+  プロジェクトに設定できた `limits.containers` と `limits.virtual-machines` という制限に加えて、新たな制限が設定できるようになりました。
+  `limits.instances` を使って、プロジェクト内でタイプに関係なくインスタンス数を全体的に制限できます。
+
+  <!--
+  You can therefore now use:
+  -->
+  これに従って、次のように設定できます:
+
+   - limits.instances: 5
+   - limits.containers: 5
+   - limits.virtual-machines: 2
+
+  <!--
+  To allow a given project to have only up to 5 instances, all of which can be containers but only 2 of which can be virtual machines.
+  -->
+  これにより、設定したプロジェクトでは 5 インスタンスまで持つことができます。そのすべてをコンテナにできますが、仮想マシンにできるのは 2 つだけとなります。
+
+  #### イメージとバックアップの `zstd` 圧縮 <!-- `zstd` compression for images and backups -->
+  <!--
+  The `zstd` is now supported for both images and backups.
+  -->
+  イメージとバックアップで `zstd` が使えるようになりました。
+
+  <!--
+  This can be set through `images.compression_algorithm`, `backups.compression_algorithm` or be directly specified through `--compression` to `lxc publish` or `lxc export`.
+  -->
+  これは `images.compression_algorithm`と`backups.compression_algorithm`で設定するか、`lxc publish` や `lxc export` で直接 `--compression` を使って指定できます。
+
+  ### すべての変更点(翻訳なし)<!-- Complete changelog -->
+  <!--
+  Here is a complete list of all changes in this release:
+  -->
+  このリリースでの完全な変更点のリストは次のとおりです:
+
+   - lxd/api/project: Reject quotes in project names
+   - lxd/instance/drivers/driver/lxc: Updates initLXC to use project and instance name in callhook hook commands
+   - lxd/instance/drivers/driver/lxc: Updates startCommon to quote hook command arguments
+   - lxd/main/callhook: Updates cmdCallhook to support using project name and instance name in arguments
+   - lxd/api/internal: Adds support for using instance name and project name in container hook routes
+   - lxd/storage: Apply rename template
+   - lxd/patches: Adds patchVMRenameUUIDKey patch to rename config key from volatile.vm.uuid to volatile.uuid
+   - shared/validate: Adds IsUUID function
+   - shared/instance: Adds volatile.uuid key to instance validation
+   - shared/instance: Removes vm.uuid from instance validation in ConfigKeyChecker
+   - doc/instances: Replaces volatile.vm.uuid with volatile.uuid
+   - lxd/instance/drivers/driver/qemu: Updates Start to use and populate volatile.uuid instead of volatile.vm.uuid
+   - lxd/instance/drivers/driver/lxc: Generate instance UUID if not set in startCommon
+   - lxd/instance/drivers/driver/qemu: Makes UUID generation terminology consistent with container
+   - lxc/list: Fix typo in help
+   - i18n: Update translation templates
+   - lxc/list: Add two new columns (memory % and CPU)
+   - i18n: Update translation templates
+   - doc: fix typos in instances.md
+   - lxd/storage/drivers/driver/zfs/volumes: Remove workarounds for snapshot volume mounting
+   - lxd/refcount: Adds ref counting package
+   - lxd/storage/drivers/volume: Adds ref counting functions
+   - lxd/storage/drivers/volume: Updates MountTask to use new MountVolume signature
+   - lxd/storage/pool/interface: Removes OurMount from MountInfo struct
+   - lxd/storage/pool/interface: Removes "our mount" bool return value from MountCustomVolume
+   - lxd/storage/drivers/interface: Removes "our mount" bool return value from MountVolume
+   - lxd/storage/drivers/errors: Adds ErrInUse error
+   - lxd/storage/drivers/drivers/mock: Updates MountVolume signature
+   - lxd/storage/drivers/utils: Error quoting in shrinkFileSystem
+   - lxd/storage/drivers/driver/btrfs/volumes: Updates MountVolume signature
+   - lxd/storage/drivers/driver/ceph/volumes: Adds ref counting to MountVolume and UnmountVolume
+   - lxd/storage/drivers/driver/cephfs/volumes: Updates MountVolume signature
+   - lxd/storage/drivers/driver/dir/volumes: Updates MountVolume signature
+   - lxd/storage/drivers/driver/lvm/volumes: Adds ref counting to MountVolume and UnmountVolume
+   - lxd/storage/drivers/driver/zfs/volumes: Adds ref counting to MountVolume and UnmountVolume
+   - lxd/storage/drivers/generic/vfs: Updates genericVFSBackupUnpack to use new MountVolume signature
+   - lxd/storage/utils: Adds InstanceMount and InstanceUnmount and updates InstanceDiskBlockSize to use them
+   - lxd/storage/backend/mock: Removes OurMount
+   - lxd/storage/backend/mock: Removes "our mount" bool return value from MountCustomVolume
+   - lxd/storage/backend/lxd: Updates mount functions to remove OurMount and use new MountVolume signature
+   - lxd/storage/backend/lxd/patches: b.driver.MountVolume usage
+   - lxd/instance/drivers/driver: Unexports common restart function
+   - lxd/instance/instance/interface: Removes deprecated StorageStart and StorageStop functions
+   - lxd/instance/drivers/driver/common: Import ordering
+   - lxd/instance/drivers/driver/lxc: Updates mount usage with ref counting in mind
+   - lxd/instance/drivers/driver/lxc: Removes deprecated StorageStart and StorageStop
+   - lxd/instance/drivers/driver/qemu: Updates mount usage with ref counting in mind
+   - lxd/instance/drivers/driver/qemu: Implements RegisterDevices
+   - lxd/instance/drivers/driver/qemu: Removes deprecated StorageStart and StorageStop
+   - lxd/patches: Updates instance mount usage
+   - lxd/instance/metadata: Removes use of c.StorageStart and c.StorageStop
+   - lxd/instance/test: Removes use of StorageStart
+   - lxd/instance: Updates instanceCreateAsSnapshot to use updated mount functions
+   - lxd/devices: Register devices on all instance types
+   - lxd/device/disk: Implements Register function
+   - lxd/device/disk: Updates mount function usage in mountPoolVolume
+   - lxd/instance/drivers/driver/qemu: mount fixes
+   - lxd/storage/backend/lxd: Adds revert to MountInstance
+   - lxd/storage/drivers/driver/ceph/volumes: Adds revert to MountVolume
+   - lxd/storage/drivers/driver/lvm/volumes: Adds revert to MountVolume
+   - lxd/storage/drivers/driver/zfs/volumes: Adds revert to CreateVolumeFromBackup
+   - lxd/storage/drivers/driver/zfs/volumes: Adds revert to MountVolume
+   - lxd/storage/drivers/driver/zfs/volumes: Simplifies MountVolumeSnapshot and adds revert for parent volume mount
+   - lxd/storage/drivers/generic/vfs: Adds revert to genericVFSBackupUnpack
+   - lxd/api/internal: Adds internalImportFromRecovery function for instance recovery import
+   - lxd/instances/post: Updates createFromBackup to use updated internalImport signature
+   - lxd/device/disk comments
+   - test/suites/backup: Updates lxd import tests to expect instance to be unmounted after import
+   - lxd/instance/drivers/driver/lxc: Moves instance mount before idmap related var loading
+   - lxd/instance/drivers/driver/lxc: Rotate log file same stage as VM for consistency
+   - lxd/instance/drivers/driver/qemu: Use instance.LoadByProjectAndName in getMonitorEventHandler
+   - test: Updates container_import tests to remove lxd import followed by kill and start test
+   - lxd/storage/backend/lxd: Detect unsupported live copy of VMs and fail with clear message
+   - lxd/instance/lxc: Add extra check for devpts_fd
+   - lxd/device/nic/ovn: Removes unused Add function
+   - lxd/device/nic/bridged: Clarifies when device's Add function is called
+   - lxd/migrate/instance: Improves comments when instantiating migration.VolumeTargetArgs
+   - lxd/storage/backend/lxd: Improves comments when instantiating migration.VolumeTargetArgs
+   - lxd/storage/backend/lxd: Reject custom volume config if supplied in CreateInstanceFromMigration
+   - lxd/storage/drivers/driver/zfs/volumes: Use srcVol.NewVMBlockFilesystemVolume in CreateVolumeFromCopy
+   - lxd/storage/drivers/driver/zfs/volumes: Apply filesystem quota in CreateVolumeFromMigration
+   - lxd/storage/drivers/driver/btrfs/volumes: Apply quota in CreateVolumeFromMigration
+   - lxd/storage/drivers/driver: Makes size update consistent with other drivers in UpdateVolume
+   - lxd/storage/drivers/driver/cephfs/volumes: Use vol.ConfigSize() rather than vol.ExpandedConfig("size") for consistency with other drivers
+   - lxd/storage/drivers/driver/cephfs/volumes: Makes CreateVolumeFromMigration volume quota setting consistent with other non-block-backed drivers
+   - lxd/ap/internal: Improved error messages from instanceCreateInternal
+   - lxd/instance: Improved error messages from instanceCreateInternal
+   - lxd/instances/post: Improved error messages from instanceCreateInternal
+   - lxd/migrate/instance: Improved error messages from instanceCreateInternal
+   - lxd/device/disk: Only validate external disk source paths when real instance is loaded
+   - lxd/instance/drivers/driver/lxc: Remove user facing reference to "common start logic" in error
+   - lxd/instance/drivers/driver: Just log device add failures when adding device in non-user requested context
+   - lxd/instance/drivers/driver/lxc: Pass existing isRunning to c.updateDevices to avoid extra call to IsRunning()
+   - shared: Allow volatile uuid config keys
+   - lxd/instance/drivers: Support vgpu in qemu template
+   - lxd/instance/drivers: Support vgpu in VMs
+   - lxd/device/nic/sriov: Don't fail when resetting VF MAC to 00:00:00:00:00:00
+   - lxd/device/config: Allow gputype property
+   - lxd/device: Support mdev GPUs
+   - doc: Document mdev config key
+   - api: Add gpu_mdev
+   - lxc/info: Show mdev profiles
+   - po: Update translation
+   - lxd/images: Replace fp with fingerprint in logs
+   - lxd/daemon/images: Add contextual logging and use "fingerprint" rather than "image" for consistency with other code areas
+   - lxd/profiles/utils: Remove container references, improve comments
+   - lxd/db/profiles: Updates GetInstancesWithProfile to return all instance types, not just containers
+   - shared/instance: Improves comments
+   - lxd/project/project: Adds ProfileProject and ProfileProjectFromRecord functions
+   - lxd/profiles: Use project.ProfileProject instead of tx.ProjectHasProfiles
+   - test/suites/projects: Fix bug in test that assumed project wasnt checked for existance
+   - lxd/profiles/utils: Updates doProfileUpdate and doProfileUpdateCluster to return project and instance name in error
+   - lxd/device/device/interface: Moves updatable fields from CanHotPlug() into UpdatableFields()
+   - lxd/device/errors: Adds ErrCannotUpdate error
+   - lxd/device/device/common: Updates common implementation of CanHotPlug() and UpdatableFields()
+   - lxd/device/disk: Adds UpdatableFields function based on instance type
+   - lxd/device/disk: Only apply running IO limits to containers in Update
+   - lxd/device/nic/bridged: Adds UpdatableFields function and removes custom CanHotPlug function
+   - lxd/device/nic/ipvlan: Updates CanHotPlug function
+   - lxd/device/nic/ovn: Removes custom CanHotPlug function
+   - lxd/device/nic/p2p: Removes custom CanHotPlug function and adds UpdatableFields function
+   - lxd/device/nic/routed: Splits CanHotPlug function into new CanHotPlug and UpdatableFields functions
+   - lxd/instance/drivers/driver/lxc: Updates device management functions to use new CanHotPlug and UpdatableFields functions
+   - lxd/instance/drivers/driver/qemu: Updates device management functions to use new CanHotPlug and UpdatableFields functions
+   - lxd/device/config/devices/sort: Improves comments in Less
+   - lxd/device/disk: Removes use of global logger and use device contextual logger
+   - lxd/device/disk: Rework volatile apply_quota key handling to support virtual machines
+   - lxd/refcount: Adds Get function
+   - lxd/storage/backend/lxd: Removes dependence on RunningQuotaResize in SetInstanceQuota
+   - lxd/storage/backend/lxd: Removes dependence on RunningQuotaResize in UpdateCustomVolume
+   - lxd/storage/errors: Removes ErrRunningQuotaResizeNotSupported
+   - lxd/storage/drivers/volume: Adds MountInUse function
+   - lxd/storage/drivers/utils: Adds vol.MountInUse usage to ensureVolumeBlockFile
+   - lxd/storage/drivers/utils: Adds filesystemTypeCanBeShrunk and updates shrinkFileSystem to use it
+   - lxd/storage/drivers/utils: Updates growFileSystem to use DefaultFilesystem
+   - lxd/storage/drivers/driver/types: Removes RunningQuotaResize
+   - lxd/storage/drivers: Renames drivers_mock.go to driver_mock.go to align with other driver naming
+   - lxd/storage/drivers/driver/mock: Removes RunningQuotaResize
+   - lxd/storage/drivers/driver/btrfs: Updates BTRFS to use ensureVolumeBlockFile's in-use detection
+   - lxd/storage/drivers/driver/dir: Updates to use ensureVolumeBlockFile's in-use detection
+   - lxd/storage/drivers/driver/ceph/utils: Adds resizeVolume function
+   - lxd/storage/drivers/driver/ceph: Removes RunningQuotaResize
+   - lxd/storage/drivers/driver/ceph/volumes: Reworks SetVolumeQuota to be more aligned with LVM driver structure
+   - lxd/storage/drivers/driver/cephfs: Removes RunningQuotaResize
+   - lxd/storage/drivers/driver/lvm: Removes RunningQuotaResize
+   - lxd/storage/drivers/driver/lvm/volumes: Updates SetVolumeQuota to use Volume's in-use detection
+   - lxd/storage/drivers/driver/zfs: Removes RunningQuotaResize
+   - lxd/storage/drivers/driver/zfs/volumes: Updates SetVolumeQuota to use Volume's in-use detection
+   - lxd/storage/utils: Updates validatePoolCommonRules to differentiate VM volumes and filesystem volumes
+   - lxd/instance: Error quoting and logging improvements in instanceCreateInternal
+   - lxd/instance/drivers/driver/lxc: Adds revert to lxcCreate
+   - lxd/instance/drivers/driver/qemu: Adds revert to qemuCreate
+   - lxd/storage/backend/lxd: Set the correct volume content type for custom volumes
+   - lxc/info: Extend mdev details
+   - i18n: Update translation templates
+   - lxd/device/disk: Ignore ErrNotRunning for virtfs-proxy-helper
+   - lxd/patches/utils: Adds legacy volumeFillDefault function for patches
+   - lxd/patches: Updates patches to switch from driver.VolumeFillDefault to volumeFillDefault
+   - lxd/storage/drivers/interface: Adds FillVolumeConfig
+   - lxd/storage/drivers/driver/common: Adds FillVolumeConfig no-op for common drivers
+   - lxd/storage/drivers/driver/{ceph,lvm}: Adds FillVolumeConfig function to populate default filesystem settings
+   - lxd/storage/utils: Updates VolumeDBCreate to accept a Pool and call driver.FillVolumeConfig
+   - lxd/storage/backend/lxd: VolumeDBCreate usage
+   - lxd/storage/utils: Removes VolumeFillDefault and VolumeValidateConfig
+   - lxd/storage/pool/interface: Adds FillInstanceConfig
+   - lxd/storage/backend/lxd: Implements FillInstanceConfig
+   - lxd/storage/backend/mock: Adds FillInstanceConfig
+   - lxd/instance/drivers/driver/lxc: Updates lxcCreate to use storagePool.FillInstanceConfig
+   - lxd/instance/drivers/driver/qemu: Updates qemuCreate to use storagePool.FillInstanceConfig
+   - lxd/instance/drivers: Better errors in instance create functions
+   - lxd/storage/backend/mock: Return storage pool ID 1 rather than -1 to allow tests to run
+   - lxd/network/openvswitch/ovs: Adds InterfaceAssociatedOVNSwitchPort function
+   - lxd/network/driver/ovn: Updates Instance port functions to use instance UUID rather than instance ID
+   - lxd/network/driver/ovn: Updates InstanceDevicePortDelete to accept an instance UUID and a ovsExternalOVNPort hint
+   - lxd/device/nic/ovn: Update ovnNet interface to use instance UUIDs.
+   - lxd/device/nic/ovn: Use volatile.uuid instance UUID rather than instance ID for OVN switch port name
+   - lxd/device/nic/ovn: No need for intermediate v variable
+   - lxd/device/nic/ovn: Updates Stop to pass instance UUID and an OVS external OVN switch port hint to InstanceDevicePortDelete
+   - lxd/instance/qemu: Always render disk
+   - Support zstd compression.
+   - api: add resources_pci_iommu extension
+   - lxd-agent: Don't rely on systemd for rebooting
+   - lxd/instance: Move id field to common
+   - lxd/instance/common: Use 'd' as main variable
+   - lxd/instance/qemu: Rename d to dev
+   - lxd/instance/qemu: Replace vm with d
+   - lxd/instance/lxc: Rename d to dev
+   - lxd/instance/lxc: Replace c with d
+   - lxd/isntance: Move most properties to common
+   - lxd/instance: Move common functions to drive_common
+   - shared/instance: golint fixes
+   - shared/instance: Adds ConfigVolatilePrefix constant
+   - shared/instance: ConfigVolatilePrefix usage
+   - shared/instance: Adds InstanceIncludeWhenCopying function
+   - lxd/copy: shared.InstanceIncludeWhenCopying usage in copyInstance
+   - lxc: shared.ConfigVolatilePrefix usage
+   - lxd: shared.ConfigVolatilePrefix usage
+   - lxd/instances/post: shared.InstanceIncludeWhenCopying usage in createFromCopy
+   - lxd/storage: Add volatile idmap setting debug log to resetContainerDiskIdmap
+   - lxd/device/disk: Include network-config in cidata
+   - lxd/resources: Add GetNetworkState and GetNetworkCounters
+   - shared/api: Add IOMMUGroup field to ResourcesPCIDevice
+   - Add IOMMU group value to PCI devices
+   - lxd/storage/pools/utils: Updates comment and error for storagePoolCreateLocal
+   - lxd/storage/pools: Error quoting
+   - lxd/db/cluster: Adds state column to networks_nodes table and set existing rows to state=1 (created)
+   - lxd/db/networks: Populate node state column in NetworkNodeJoin
+   - lxd/db/networks: Populate node state column in CreatePendingNetwork
+   - lxd/db/networks: Adds networkNodeState and NetworkNodeCreated functiond
+   - lxd/db/networks: Comments
+   - lxd/db/networks: Populate node state column in CreateNetwork
+   - lxd/network/driver: Remove check that prevents starting network in pending state
+   - lxd/networks: Whitespace
+   - lxd/network/network/interface: Updates init to take api.Network and network nodes map
+   - lxd/network/network/interface: Adds LocalStatus
+   - lxd/network/network/load: Updates LoadByName to pass network nodes from s.Cluster.GetNetworkInAnyState to init()
+   - lxd/db/networks: Adds NetworkState type and uses it in place of int
+   - lxd/db/networks: Renames networkFillStatus to NetworkStateToAPIStatus
+   - lxd/db/networks: Adds NetworkNode type
+   - lxd/db/networks: Exports NetworkNodes and updates to return map of NetworkNodes
+   - lxd/db/networks: Updates GetNonPendingNetworks usage of NetworkNodes()
+   - lxd/db/networks: Modifies getNetwork and GetNetworkInAnyState to return map of NetworkNodes for network
+   - lxd/db/networks: Exports NetworkNodes
+   - lxd/db/networks: c.GetNetworkInAnyState usage
+   - lxd/db/networks: Updates comments to reference state constants
+   - lxd/patches: d.cluster.GetNetworkInAnyState usage
+   - lxd/api/cluster: d.cluster.GetNetworkInAnyState usage
+   - lxd/api/project: s.Cluster.GetNetworkInAnyState usage
+   - lxd/device/nic: d.state.Cluster.GetNetworkInAnyState usage
+   - lxd/network/driver/ovn: n.state.Cluster.GetNetworkInAnyState usage
+   - lxd/network/driver/common: Adds LocalStatus function and store node info inside network via init()
+   - lxd/network/driver/bridge: Only perform local date if local status is api.NetworkStatusCreated
+   - lxd/network/driver/ovn: Only perform local date if local status is api.NetworkStatusCreated
+   - lxd/network/driver/physical: Only perform local date if local status is api.NetworkStatusCreated
+   - lxd/networks: Updates doNetworksCreate to skip creation if node is already marked created
+   - lxd/networks: d.cluster.GetNetworkInAnyState usage
+   - lxd/networks: Don't skip network clean up if network is pending in networkDelete()
+   - lxd/networks: d.cluster.GetNetworkInAnyState usage
+   - lxd/networks: Updates networksPostCluster to only mark global network states as created once all nodes created
+   - lxd/db/migration/test: cluster.GetNetworkInAnyState usage
+   - lxd/network/network/interface: Adds IsManaged function
+   - lxd/network/driver/common: Adds IsManaged function and associated internal variable
+   - lxd/networks: Prevent rename of pending networks
+   - lxd/networks: Reduce duplicate query loading network in networkPut and doNetworkUpdate
+   - lxd/networks: Prevent update of global network config when network is pending in networkPut
+   - lxd/network/driver/bridge: Adds some basic revert to setup()
+   - lxd/network/driver/bridge: Only initialise revert if config has changed
+   - lxd/network/driver: Only apply local DB change in Update() when local node is in pending state
+   - lxd/network/driver/bridge: Fix incorrect return value
+   - test/suites/clustering: Add network node state tests for bridge networking
+   - lxd/instance: Use revert package in instanceCreateFromImage
+   - lxd/storage/backend/lxd: Remove revert from CreateInstanceFromImage
+   - lxd/storage/drivers/driver/common: Enable unsafe resize mode in runFiller when unpacking into image volumes
+   - lxd/storage/drivers/driver/ceph/volume: Allow image resize when in unsafe mode in SetVolumeQuota
+   - lxd/storage/drivers/driver/zfs/volume: Allow image resize when in unsafe mode in SetVolumeQuota
+   - lxd/storage/backend/lxd: Log new volume size in CreateInstanceFromImage
+   - lxd/instance/qemu: Follow symlink to lxd-agent
+   - lxd/instance/qemu: Fix GPU passthrough
+   - lxd/instance/operations: Allow Wait/Done on nil struct
+   - lxd/instance/lxc: Improve use of operations
+   - lxd/instance/lxc: Improve locking on file ops
+   - lxd/instance/operations: Introduce CreateWaitGet
+   - lxd/instance: Introduce restart tracking
+   - Makefile: Fix golint URL
+   - lxd/network/driver/bridge: Improve IP parsing errors
+   - lxd/network/driver/bridge: Don't fill default config on update
+   - lxd/network/driver/ovn: Improve IP parsing errors
+   - lxd/network/driver/ovn: Don't fill default config on update
+   - lxd/network/driver/bridge: Regenerate auto values on update
+   - lxd/network/driver/ovn: Regenerate auto values on update
+   - test/suites/network: Adds test for unsetting ipv4.address and ipv6.address
+   - test/suites/network: Adds test for regeneration of auto values
+   - doc/networks: Clarify bridge default auto values
+   - doc/networks: Clarifies default values for ovn ranges settings
+   - doc/networks: Clarify ovn default auto values
+   - lxd/device/disk: Only validate disk source pool when an actual instance is set
+   - test/suites/migration: Adds tests for copying instance with snapshots containing invalid disk devices
+   - lxc-to-lxd: Fix handling on snap
+   - lxd/instance: Bypass delete protection for internal calls
+   - lxd/instance/qemu: Improve state handling
+   - lxd/instance/operationlock: Allow Reset
+   - lxd/instance/qemu: Stretch start/stop timeout
+   - lxd/instance/qemu: Increase virtiofsd timeout to 10s
+   - lxd/instance/qemu: Move more logic into qemuArchConfig
+   - lxd/instance: Add Info function
+   - lxd/instance: Add SupportedInstanceDrivers
+   - lxd/instance: Add driver cache
+   - lxd/api: Show all instance drivers
+   - lxd/qemu: Don't stop processing events on shutdown
+   - lxd/rbac: Improve access to user information
+   - lxd/daemon: Improve request context
+   - lxd/rbac: Move userIsAdmin and userHasPermission
+   - lxd: Move to new RBAC helpers
+   - lxd/storage/volumes: Replace hardcoded "filesystem" with db.StoragePoolVolumeContentTypeNameFS in storagePoolVolumesTypePost
+   - lxd/storage/volumes: Error quoting in storagePoolVolumesTypePost
+   - lxd/storage/volumes: Fixes misleading comment in storagePoolVolumesPost
+   - lxd/storage/volumes: Set default volume content type to filesystem in storagePoolVolumesPost
+   - lxd/storage/volumes: Error quoting in storagePoolVolumesPost
+   - lxd/storage/utils: Align error returned from VolumeContentTypeNameToContentType with similar functions
+   - lxd/storage/volumes: Removes stuttering in errors in storagePoolVolumesTypePost
+   - lxd/networks: Use SmartError for response when loading networks
+   - lxd/project: Add new FilterUsedBy helper
+   - lxd: Filter all UsedBy based on RBAC
+   - lxd/images: Fix incorrect RBAC on push
+   - lxc/file: Fix typo in fileGetWrapper
+   - i18n: Update translation templates
+   - lxc/restore: Fix typo in help
+   - i18n: Update translation templates
+   - lxd/networks: Fix bad logging level
+   - lxd/daemon: Fix bad permission check
+   - lxd/storage/drivers/generic: Fix VM rename with ZFS
+   - lxd/instance: Remove duplicate event
+   - lxd/instance/common: Implement lifecycle wrapper
+   - lxd/instance/lxc: Port to new wrapper
+   - lxd/instance/lxc: Lock restore operations
+   - lxd/instance/qemu: Port to new wrapper
+   - lxd/instance/qemu: Lock restore operations
+   - lxd/backup: Add lifecycle events
+   - lxd/network: Add lifecycle function
+   - lxd/network: Implement create wrapper
+   - lxd/network: Add lifecycle events
+   - lxd/cluster/request/clienttype: Moves client type constants and helper into own package
+   - lxd/cluster/connect: Removes client type constants and helper
+   - lxd: Updates use of ClientType now moved to cluster/request package
+   - lxd/networks: Ensure etag generation uses its own copy of config in networkPut
+   - lxd/network/driver: Takes NetworkStatus safety patch from stable-4.0 and applies to master
+   - lxd/networks: Comment in networksPostCluster
+   - lxd/networks: Corrects log level in networksPostCluster
+   - lxd/networks: golint fix
+   - lxd/db/networks: Removes unused NetworkErrored function
+   - lxd/db/networks: Updates network state comments to indicate node usage
+   - lxd/instance: Adds per-struct contextual logger.
+   - lxd/instance/drivers: Fixes instanceType in instance logger
+   - lxd/db/cluster: Adds state column to storage_pools_nodes table and set existing rows to state=1 (created)
+   - lxd/db/storage/pools: Updates storage pool state comments to indicate node usage
+   - lxd/db/storage/pools: Replace use of networkCreated with storagePoolCreated in getStoragePool
+   - lxd/db/storage/pools: Set storage pool node state to created in UpdateStoragePoolAfterNodeJoin
+   - lxd/db/storage/pools: Set storage pool node state to pending in CreatePendingStoragePool
+   - lxd/db/storage/pools: Adds StoragePoolNodeCreated and storagePoolNodeState functions
+   - lxd/db/storage/pools: Set storage pool node state to pending in CreateStoragePool
+   - lxd/storage/pools/utils: Consistent commnent endings
+   - lxd/storage/pools/utils: Fix comment in storagePoolCreateLocal
+   - lxd/storage/pools: Add logging for storage pool state updates in storagePoolsPostCluster
+   - lxd/storage/pools/utils: Updates storagePoolCreateLocal to mark local node state as created
+   - lxd/db/storage/pools: Removes unused function StoragePoolErrored
+   - lxd/db/storage/pools: Updates comment on StoragePoolCreated
+   - lxd/storage/pools: Fix copy paste error in comment
+   - lxd/storage/load: Updates GetPoolByName to use state.Cluster.GetStoragePoolInAnyState
+   - lxc/storage: Adds --target flag support to cmdStorageSet
+   - lxd/storage/pools: Adds doStoragePoolUpdate function
+   - lxd/db/storage/pools: Adds StoragePoolState type and updates state constants to be of that type
+   - lxd/db/storage/pools: Adds StoragePoolNode type
+   - lxd/db/storage/pools: StoragePoolState usage
+   - lxd/db/storage/pools: Adds storagePoolNodes function
+   - lxd/db/storage/pools: Updates storage pool load functions to return nodes
+   - lxd/db/storage/pools: Updates storagePoolNodes to return map of StoragePoolNode
+   - lxd/db/storage/pools: c.GetStoragePoolInAnyState usage
+   - shared/api/storage/pool: Adds storage pool status contants
+   - lxd/db/storage/pools: Adds StoragePoolStateToAPIStatus and updates getStoragePool to use it
+   - lxd/patches: d.cluster.GetStoragePoolInAnyState usage
+   - lxd/api/cluster: d.cluster.GetStoragePoolInAnyState usage
+   - lxd/backup/backup/config: c.GetStoragePool usage
+   - lxd/daemon/storage: s.Cluster.GetStoragePool usage
+   - lxd/device/disk: d.state.Cluster.GetStoragePool usage
+   - lxd/instance/post: d.cluster.GetStoragePool usage
+   - lxd/instances/post: d.cluster.GetStoragePoolInAnyState usage
+   - lxd/storage/pools: d.cluster.GetStoragePoolInAnyState usage
+   - lxd/storage/volumes: GetStoragePoolInAnyState usage
+   - lxd/storage/volumes/backup: d.cluster.GetStoragePool usage
+   - lxd/storage/volumes/snapshot: d.cluster.GetStoragePool usage
+   - lxd/storage/pool/interface: Adds Description, Status and LocalStatus functions to definition
+   - lxd/storage/backend/mock: Adds Description, Status and LocalStatus functions
+   - lxd/storage/backend/lxd: Adds Description, Status, LocalStatus functions and adds nodes property
+   - lxd/storage/load: state.Cluster.GetStoragePoolInAnyState usage and populates pool nodes in GetPoolByName
+   - lxd/storage/pool/interface: Adds IsUsed and Create functions
+   - lxd/storage/backend/lxd: Exports Create and adds IsUsed
+   - lxd/storage/backend/mock: Adds IsUsed and Create
+   - lxd/storage/load: Deprecates CreatePool
+   - lxd/storage/load: Updates CreatePool to initialise empty node list
+   - lxd/storage/pools/utils: Updates storagePoolCreateLocal to use GetPoolByName
+   - lxd/storage/pools: Reworks storagePoolDelete to only delete locally if node has created state
+   - lxd/db/migration/test: cluster.GetStoragePool usage
+   - lxd/storage/pools: Reworks storagePoolPut and calls storagePoolPut from storagePoolPatch
+   - lxd/storage/pools: Removes unused storagePoolValidateClusterConfig, storagePoolClusterConfigForEtag, storagePoolClusterFillWithNodeConfig functions
+   - lxd/storage/pools/utils: Removes unused storagePoolUpdate
+   - lxd/storage/backend/lxd: Reworks Update to only apply changes to local node if not pending
+   - lxd/api/cluster: Updates client type usage to new package
+   - lxd/storage/load: Updates deprecated CreatePool to use client type
+   - lxd/patches: storagePools.CreatePool usage
+   - lxd/storage/pool/interface: Replaces localOnly and driverOnly indicators with clientType
+   - lxd/storage/backend/lxd: Replace localOnly and driverOnly with clientType
+   - lxd/storage/backend/mock: Replace localOnly and driverOnly with clientType
+   - lxd/storage/drivers/driver/ceph: Simplify Delete logic
+   - lxd/storage/pools: Switch to clientType
+   - lxd/storage/pools/utils: Switch to clientType
+   - lxd/api/cluster: Removal special casing for ceph/cephfs
+   - lxd/storage/backend/lxd: Adds protection against using a pending pool
+   - lxd/storage: Adds target support to cmdStorageGet
+   - lxd/storage/pools: Updates storagePoolsPostCluster to only forward non-node specific config
+   - test/suites/clustering: Add pool node state tests
+   - lxd/apparmor/qemu: Allow some more files
+   - lxd/storage/drivers/drivers/zfs/volumes: Fixes 10s delay when using VMs with ZFS in snap
+   - shared: Add IsUserConfig() utility function
+   - lxd/config: Allow user keys in server config
+   - lxd/storage/backend/lxd: Comment typo fix
+   - lxd/storage/drivers/driver/btrfs/volumes: Enable allowUnsafeResize in CreateVolume when creating initial image volume
+   - lxd/storage/drivers/utils: Updates ensureVolumeBlockFile to return unsupported when trying to resize image volume without allowUnsafeResize enabled
+   - lxd/storage/utils: Ensure pool's volume.size is checked when unpacking images to pools that use file based images
+   - lxd/instance/qemu: Deref OVMF path
+   - lxc: Clarify --compression option
+   - doc/image-handling: Update compression details
+   - i18n: Update translation templates
+   - lxd/rbac: Fix checks by matching proper name
+   - api: Add resources_network_usb and resources_disk_address
+   - shared/api: Add PCIAddress/USBAddress on network and storage
+   - lxd/resources: Add PCIAddress/USBAddress for networks and disks
+   - lxd/storage/drivers/utils: Modifies roundVolumeBlockFileSizeBytes to round up
+   - lxd/storage/drivers/utils: roundVolumeBlockFileSizeBytes usage
+   - lxd/storage/drivers/driver/zfs/utils: Use roundVolumeBlockFileSizeBytes in createVolume
+   - lxd/storage/drivers/driver/zfs/volumes: Use roundVolumeBlockFileSizeBytes in CreateVolume
+   - lxd/storage/drivers/driver/zfs/volumes: Use roundVolumeBlockFileSizeBytes in SetVolumeQuota
+   - lxd/storage/backend/lxd: Use revert in CreateInstanceFromCopy
+   - lxd/storage/backend/lxd: Don't fail in DeleteInstance if DB record already removed
+   - lxd/instance: Use revert in instanceCreateAsCopy
+   - lxd/storage/drivers/driver/ceph/volumes: Whitespace
+   - lxd/storage/drivers/driver/ceph/volumes: Adds a hasVolume function that accepts an RBD volume name
+   - lxd/storage/drivers/driver/ceph/volumes: Fixes issue in DeleteVolume that prevented image volume deletion if no readonly snapshot existed
+   - lxd/storage/backend/lxd: Return error in EnsureImage when cannot delete orphaned volume
+   - lxd/network/driver/ovn: Improve error message
+   - lxd/network/driver/physical: Adds ovn.ingress_mode config key
+   - lxd/network/driver/ovn: Updates uplinkRoutes to accept an *api.Network argument
+   - lxd/network/driver/ovn: n.uplinkRoutes usage
+   - lxd/network/driver/ovn: Moves subnet size validation into InstanceDevicePortValidateExternalRoutes
+   - lxd/network/driver/ovn: Updates InstanceDevicePortAdd to only publish external IPs using DNAT when uplink l2proxy mode enabled
+   - lxd/device/nic/ovn: Removes external subnet validation
+   - doc/networks: Adds ovn.ingress_mode to physical networks
+   - api: Adds network_physical_ovn_ingress_mode extensions
+   - lxd/network/network/utils: Don't reference ourselves in UsedBy
+   - lxd/network/driver/ovn: Only delete DNAT rules in InstanceDevicePortDelete if ingress mode is l2proxy
+   - lxd/network/openvswitch/ovn: Exports LogicalSwitchDHCPOptionsDelete and adds optional UUID filter for deletion
+   - lxc/network/driver/ovn: Adds ipv4.dhcp and ipv6.dhcp boolean settings
+   - lxc/network/driver/ovn: Modifies setup to only activate DHCP/RA if its enabled on network
+   - lxd/network/driver/ovn: Updates InstanceDevicePortAdd to respect DHCP options on network
+   - lxd/network/driver/ovn: Updates DHCPv4Subnet and DHCPv6Subnet to use IP helper functions
+   - api: Adds network_ovn_dhcp extension
+   - doc/networks: Adds ipv4.dhcp and ipv6.dhcp docs for OVN networks
+   - doc/networks: Mention DNSSEC setting
+   - doc/networks: Adds ipv4.routes.anycast and ipv6.routes.anycast to physical networks
+   - lxd/network/driver/physical: Adds ipv4.routes.anycast and ipv6.routes.anycast options
+   - lxd/network/driver/ovn: Adds uplinkHasIngressRoutedAnycastIPv4 and uplinkHasIngressRoutedAnycastIPv6 functions
+   - lxc/network/driver/ovn: Skip overlap detection of networks external subnets when uplink is in anycast routed ingress mode
+   - lxd/network/driver/ovn: Skip NIC external route overlap detection when uplink is in anycast routed ingress mode
+   - api: Adds network_physical_routes_anycast extension
+   - tests: Add test for import after deleted snapshot
+   - lxd/instances: Update backup file when deleting a snapshot
+   - lxd/instance/lxc: Fix backup.yaml delete logic to trigger properly
+   - lxd/instance/qemu: Also update backup.yaml on snapshot delete
+   - lxd/instance/qemu: Update backup.yaml on startup
+   - lxd/db/storage/pools: Comment wrapping
+   - lxd/storage/backend/lxd: Prevent modification of source field on non-pending nodes
+   - lxd/storage/drivers/driver/lvm: Comment typo
+   - lxd/network/driver/ovn: Only add default route and SNAT rules to router after adding external router port
+   - i18n: Update translations from weblate
+   - doc/networks: Add missing escaping
+   - lxd/apparmor/qemu: Allow ceph snap paths
+   - doc: Adds limits.instances key description.
+   - lxd/project: Adds 'limits.instances' configuration key
+   - api: Add projects_limits_instances extension
+   - doc/api-extensions: Fix escaping
+
+  ### 試用環境 <!-- Try it for yourself -->
+  <!--
+  This new LXD release is already available for you to try on our [demo service](https://linuxcontainers.org/lxd/try-it/).
+  -->
+  この新しい LXD リリースは私たちの [デモサービス](https://linuxcontainers.org/ja/lxd/try-it/) で利用できます。
+
+  ### ダウンロード <!-- Downloads -->
+  <!--
+  The release tarballs can be found on our [download page](https://linuxcontainers.org/lxd/downloads/).
+  -->
+  このリリースの tarball は [ダウンロードページ](https://linuxcontainers.org/lxd/downloads/) から取得できます。
+
+  <!--
+  Binary builds are also available for:
+  -->
+  ビルド済みバイナリーは次のように使えます:
+
+   - **Linux:** snap install lxd
+   - **MacOS:** brew install lxc
+   - **Windows:** choco install lxc

From a1ff021a3dce1adc5986d4d3500e8457b4b7fe91 Mon Sep 17 00:00:00 2001
From: KATOH Yasufumi <karma at jazz.email.ne.jp>
Date: Mon, 21 Dec 2020 23:15:08 +0900
Subject: [PATCH 2/3] Update Japanese introduction page for 4.0 releases

I forgot to translate it.

Signed-off-by: KATOH Yasufumi <karma at jazz.email.ne.jp>
---
 content/lxd/introduction.ja.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/content/lxd/introduction.ja.md b/content/lxd/introduction.ja.md
index 3ed4d40..4f4d0a4 100644
--- a/content/lxd/introduction.ja.md
+++ b/content/lxd/introduction.ja.md
@@ -145,10 +145,10 @@ LXD には二種類のリリースがあります:
  * Feature (新機能) リリース <!-- Feature releases -->
 
 <!--
-The current LTS is LXD 3.0 which is supported until June 2023 and gets frequent bugfix and security updates
+The current LTS is LXD 3.0 which is supported until June 2025 and gets frequent bugfix and security updates
 but does not receive any feature addition.
 -->
-現在の LTS は LXD 3.0 で、2023 年 6 月までサポートされます。LTS ではバグフィックスとセキュリティアップデートを受けられますが、機能の追加は行われません。
+現在の LTS は LXD 4.0 で、2025 年 6 月までサポートされます。LTS ではバグフィックスとセキュリティアップデートを受けられますが、機能の追加は行われません。
 
 <!--
 Feature releases are pushed out every month or so and contain new features as well as bugfixes.

From f7448a75840a6925158197a43587e5bf2ec23158 Mon Sep 17 00:00:00 2001
From: KATOH Yasufumi <karma at jazz.email.ne.jp>
Date: Tue, 22 Dec 2020 23:36:28 +0900
Subject: [PATCH 3/3] fix typo in Japanese LXD 4.9 announcement

Signed-off-by: KATOH Yasufumi <karma at jazz.email.ne.jp>
---
 content/lxd/news.ja/lxd-4.9.yaml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/content/lxd/news.ja/lxd-4.9.yaml b/content/lxd/news.ja/lxd-4.9.yaml
index 8a6b454..3d056f5 100644
--- a/content/lxd/news.ja/lxd-4.9.yaml
+++ b/content/lxd/news.ja/lxd-4.9.yaml
@@ -247,7 +247,7 @@ content: |-
   <!--
   In environment where this is supported, the `ipv4.routes.anycast` and `ipv6.routes.anycast` keys may now be set to `true`, bypassing the duplicate subnet check and allowing two instances to hold the same public address, leaving it up to the upstream router to decide which gets the traffic.
   -->
-  これがサポートされている環境では、`ipv4.routes.anycast` と `ipv6.routes.anycast` を `true` に設定し、サブネットの重複チェックを回避し、ふたつのインスタンスが同じパブリックアドレスを保持できるようにし、トラフィックの取得の決定を蒸留ルーターに任せることができます。
+  これがサポートされている環境では、`ipv4.routes.anycast` と `ipv6.routes.anycast` を `true` に設定し、サブネットの重複チェックを回避し、ふたつのインスタンスが同じパブリックアドレスを保持できるようにし、トラフィックの取得の決定を上流ルーターに任せることができます。
 
   #### `limits.instances` プロジェクトオプション <!-- `limits.instances` project option -->
   <!--


More information about the lxc-devel mailing list