The following pull request was submitted through Github. It can be accessed and reviewed at: https://github.com/lxc/lxd/pull/8161
This e-mail was sent by the LXC bot, direct replies will not reach the author unless they happen to be subscribed to this list. === Description (from pull-request) ===
From 02249b25f207f647f1d63c7e60d919607ea81f0e Mon Sep 17 00:00:00 2001 From: Thomas Parrott <thomas.parr...@canonical.com> Date: Mon, 16 Nov 2020 11:27:07 +0000 Subject: [PATCH 1/7] lxd/device/nic/ovn: Removes unused Add function Same as common device's Add function. Signed-off-by: Thomas Parrott <thomas.parr...@canonical.com> --- lxd/device/nic_ovn.go | 5 ----- 1 file changed, 5 deletions(-) diff --git a/lxd/device/nic_ovn.go b/lxd/device/nic_ovn.go index 5eb94e5125..48bc65fd4d 100644 --- a/lxd/device/nic_ovn.go +++ b/lxd/device/nic_ovn.go @@ -212,11 +212,6 @@ func (d *nicOVN) CanHotPlug() (bool, []string) { return true, []string{} } -// Add is run when a device is added to an instance whether or not the instance is running. -func (d *nicOVN) Add() error { - return nil -} - // Start is run when the device is added to a running instance or instance is starting up. func (d *nicOVN) Start() (*deviceConfig.RunConfig, error) { err := d.validateEnvironment() From 86cf7529e400d342ef41e42eb967ac17d232f036 Mon Sep 17 00:00:00 2001 From: Thomas Parrott <thomas.parr...@canonical.com> Date: Mon, 16 Nov 2020 11:27:32 +0000 Subject: [PATCH 2/7] lxd/device/nic/bridged: Clarifies when device's Add function is called Signed-off-by: Thomas Parrott <thomas.parr...@canonical.com> --- lxd/device/nic_bridged.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lxd/device/nic_bridged.go b/lxd/device/nic_bridged.go index b6c339de3f..f4b6144adf 100644 --- a/lxd/device/nic_bridged.go +++ b/lxd/device/nic_bridged.go @@ -221,7 +221,7 @@ func (d *nicBridged) CanHotPlug() (bool, []string) { return true, []string{"limits.ingress", "limits.egress", "limits.max", "ipv4.routes", "ipv6.routes", "ipv4.address", "ipv6.address", "security.mac_filtering", "security.ipv4_filtering", "security.ipv6_filtering"} } -// Add is run when a device is added to an instance whether or not the instance is running. +// Add is run when a device is added to a non-snapshot instance whether or not the instance is running. func (d *nicBridged) Add() error { // Rebuild dnsmasq entry if needed and reload. err := d.rebuildDnsmasqEntry() From 656de3fac283129b9ee5a4d2927be6dafa375490 Mon Sep 17 00:00:00 2001 From: Thomas Parrott <thomas.parr...@canonical.com> Date: Mon, 16 Nov 2020 13:00:16 +0000 Subject: [PATCH 3/7] lxd/migrate/instance: Improves comments when instantiating migration.VolumeTargetArgs Signed-off-by: Thomas Parrott <thomas.parr...@canonical.com> --- lxd/migrate_instance.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lxd/migrate_instance.go b/lxd/migrate_instance.go index f633eae312..2f5f970818 100644 --- a/lxd/migrate_instance.go +++ b/lxd/migrate_instance.go @@ -872,10 +872,10 @@ func (c *migrationSink) Do(state *state.State, migrateOp *operations.Operation) volTargetArgs := migration.VolumeTargetArgs{ Name: args.Instance.Name(), MigrationType: respTypes[0], - Refresh: args.Refresh, // Indicate to receiver volume should exist. - TrackProgress: false, // Do not use a progress tracker on receiver. - Live: args.Live, // Indicates we will get a final rootfs sync. - VolumeSize: args.VolumeSize, + Refresh: args.Refresh, // Indicate to receiver volume should exist. + TrackProgress: false, // Do not use a progress tracker on receiver. + Live: args.Live, // Indicates we will get a final rootfs sync. + VolumeSize: args.VolumeSize, // Block size setting override. } // At this point we have already figured out the parent container's root @@ -1045,7 +1045,7 @@ func (c *migrationSink) Do(state *state.State, migrateOp *operations.Operation) Refresh: c.refresh, RsyncFeatures: rsyncFeatures, Snapshots: snapshots, - VolumeSize: offerHeader.GetVolumeSize(), + VolumeSize: offerHeader.GetVolumeSize(), // Block size setting override. } err = myTarget(fsConn, migrateOp, args) From 14ae58156cea7864c36880cb5356ac36b73b0577 Mon Sep 17 00:00:00 2001 From: Thomas Parrott <thomas.parr...@canonical.com> Date: Mon, 16 Nov 2020 13:00:52 +0000 Subject: [PATCH 4/7] lxd/storage/backend/lxd: Improves comments when instantiating migration.VolumeTargetArgs Signed-off-by: Thomas Parrott <thomas.parr...@canonical.com> --- lxd/storage/backend_lxd.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lxd/storage/backend_lxd.go b/lxd/storage/backend_lxd.go index 3d84d673ba..4f8b9cc948 100644 --- a/lxd/storage/backend_lxd.go +++ b/lxd/storage/backend_lxd.go @@ -757,8 +757,8 @@ func (b *lxdBackend) CreateInstanceFromCopy(inst instance.Instance, src instance Name: inst.Name(), Snapshots: snapshotNames, MigrationType: migrationTypes[0], - VolumeSize: srcVolumeSize, - TrackProgress: false, // Do not use a progress tracker on receiver. + VolumeSize: srcVolumeSize, // Block size setting override. + TrackProgress: false, // Do not use a progress tracker on receiver. }, op) if err != nil { @@ -2559,7 +2559,7 @@ func (b *lxdBackend) CreateCustomVolumeFromCopy(projectName string, volName stri MigrationType: migrationTypes[0], TrackProgress: false, // Do not use a progress tracker on receiver. ContentType: string(contentType), - VolumeSize: volSize, + VolumeSize: volSize, // Block size setting override. }, op) if err != nil { From 46671869a3191f6fc55daf1cfaf550e60656abec Mon Sep 17 00:00:00 2001 From: Thomas Parrott <thomas.parr...@canonical.com> Date: Mon, 16 Nov 2020 13:01:36 +0000 Subject: [PATCH 5/7] lxd/storage/backend/lxd: Reject custom volume config if supplied in CreateInstanceFromMigration Avoids confusion around where disk config is coming from. Signed-off-by: Thomas Parrott <thomas.parr...@canonical.com> --- lxd/storage/backend_lxd.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lxd/storage/backend_lxd.go b/lxd/storage/backend_lxd.go index 4f8b9cc948..c1b63dad58 100644 --- a/lxd/storage/backend_lxd.go +++ b/lxd/storage/backend_lxd.go @@ -1085,6 +1085,10 @@ func (b *lxdBackend) CreateInstanceFromMigration(inst instance.Instance, conn io logger.Debug("CreateInstanceFromMigration started") defer logger.Debug("CreateInstanceFromMigration finished") + if args.Config != nil { + return fmt.Errorf("Migration VolumeTargetArgs.Config cannot be set") + } + volType, err := InstanceTypeToVolumeType(inst.Type()) if err != nil { return err From 40a5c7521051e3d4ff8b95cd1618e3a40214df23 Mon Sep 17 00:00:00 2001 From: Thomas Parrott <thomas.parr...@canonical.com> Date: Mon, 16 Nov 2020 13:02:14 +0000 Subject: [PATCH 6/7] lxd/storage/drivers/driver/zfs/volumes: Use srcVol.NewVMBlockFilesystemVolume in CreateVolumeFromCopy Ensures VM filesystem volume has correct quota set. Signed-off-by: Thomas Parrott <thomas.parr...@canonical.com> --- lxd/storage/drivers/driver_zfs_volumes.go | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/lxd/storage/drivers/driver_zfs_volumes.go b/lxd/storage/drivers/driver_zfs_volumes.go index ce60248503..bb6ff607cc 100644 --- a/lxd/storage/drivers/driver_zfs_volumes.go +++ b/lxd/storage/drivers/driver_zfs_volumes.go @@ -444,19 +444,18 @@ func (d *zfs) CreateVolumeFromCopy(vol Volume, srcVol Volume, copySnapshots bool } // For VMs, also copy the filesystem dataset. - if vol.volType == VolumeTypeVM && vol.contentType == ContentTypeBlock { - fsVol := NewVolume(d, d.name, vol.volType, ContentTypeFS, vol.name, vol.config, vol.poolConfig) - fsSrcVol := NewVolume(d, d.name, srcVol.volType, ContentTypeFS, srcVol.name, srcVol.config, srcVol.poolConfig) + if vol.IsVMBlock() { + // For VMs, also copy the filesystem volume. + srcFSVol := srcVol.NewVMBlockFilesystemVolume() + fsVol := vol.NewVMBlockFilesystemVolume() - err := d.CreateVolumeFromCopy(fsVol, fsSrcVol, copySnapshots, op) + err := d.CreateVolumeFromCopy(fsVol, srcFSVol, copySnapshots, op) if err != nil { return err } // Delete on revert. - revert.Add(func() { - d.DeleteVolume(fsVol, op) - }) + revert.Add(func() { d.DeleteVolume(fsVol, op) }) } // Retrieve snapshots on the source. From 59f92e958736f266e7a4977bca2f3d820fee7bb4 Mon Sep 17 00:00:00 2001 From: Thomas Parrott <thomas.parr...@canonical.com> Date: Mon, 16 Nov 2020 13:03:41 +0000 Subject: [PATCH 7/7] lxd/storage/drivers/driver/zfs/volumes: Apply filesystem quota in CreateVolumeFromMigration Signed-off-by: Thomas Parrott <thomas.parr...@canonical.com> --- lxd/storage/drivers/driver_zfs_volumes.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lxd/storage/drivers/driver_zfs_volumes.go b/lxd/storage/drivers/driver_zfs_volumes.go index bb6ff607cc..e114c82e66 100644 --- a/lxd/storage/drivers/driver_zfs_volumes.go +++ b/lxd/storage/drivers/driver_zfs_volumes.go @@ -736,6 +736,12 @@ func (d *zfs) CreateVolumeFromMigration(vol Volume, conn io.ReadWriteCloser, vol if err != nil { return err } + + // Apply the size limit. + err = d.SetVolumeQuota(vol, vol.ConfigSize(), op) + if err != nil { + return err + } } return nil
_______________________________________________ lxc-devel mailing list lxc-devel@lists.linuxcontainers.org http://lists.linuxcontainers.org/listinfo/lxc-devel