[pve-devel] [PATCH container] use monitor commands to freeze on pure-v2 setups

Wolfgang Bumiller w.bumiller at proxmox.com
Mon Jan 25 12:05:32 CET 2021


even an explicit query for the 'unified' cgroup hierarchy
does not work on lxc when run in a pure v2 environment via
the kernel options

    systemd.unified_cgroup_hierarchy=1 cgroup_no_v1=all

so let's use the freeze commands provided by lxc we already
have code for...

Signed-off-by: Wolfgang Bumiller <w.bumiller at proxmox.com>
See-also: https://forum.proxmox.com/threads/short-read-on-command-socket-error-when-running-backup-of-lxc-containers.82978/
---
 src/PVE/LXC.pm | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/src/PVE/LXC.pm b/src/PVE/LXC.pm
index e7a6951..7e84a0e 100644
--- a/src/PVE/LXC.pm
+++ b/src/PVE/LXC.pm
@@ -2463,12 +2463,20 @@ sub get_lxc_version() {
 
 sub freeze($) {
     my ($vmid) = @_;
-    PVE::LXC::CGroup->new($vmid)->freeze_thaw(1);
+    if (PVE::CGroup::cgroup_mode() == 2) {
+	PVE::LXC::Command::freeze($vmid, 30);
+    } else {
+	PVE::LXC::CGroup->new($vmid)->freeze_thaw(1);
+    }
 }
 
 sub thaw($) {
     my ($vmid) = @_;
-    PVE::LXC::CGroup->new($vmid)->freeze_thaw(0);
+    if (PVE::CGroup::cgroup_mode() == 2) {
+	PVE::LXC::Command::unfreeze($vmid, 30);
+    } else {
+	PVE::LXC::CGroup->new($vmid)->freeze_thaw(0);
+    }
 }
 
 1;
-- 
2.20.1






More information about the pve-devel mailing list