It's a property string, because that avoids having an implicit
"enabled" as part of a 'fleecing-storage' property. And there likely
will be more options in the future, e.g. threshold/limit for the
fleecing image size.

Signed-off-by: Fiona Ebner <f.eb...@proxmox.com>
---
 src/PVE/VZDump/Common.pm | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/src/PVE/VZDump/Common.pm b/src/PVE/VZDump/Common.pm
index 5be87a0..60574e4 100644
--- a/src/PVE/VZDump/Common.pm
+++ b/src/PVE/VZDump/Common.pm
@@ -33,6 +33,7 @@ my $dowhash_to_dow = sub {
 };
 
 our $PROPERTY_STRINGS = {
+    'fleecing' => 'backup-fleecing',
     'performance' => 'backup-performance',
     'prune-backups' => 'prune-backups',
 };
@@ -79,6 +80,24 @@ sub parse_dow {
     return $res;
 };
 
+PVE::JSONSchema::register_format('backup-fleecing', {
+    enabled => {
+       description => "Enable backup fleecing. Cache backup data from blocks 
where new guest "
+           ."writes happen on specified storage instead of copying them 
directly to the backup "
+           ."target. This can help guest IO performance and even prevent 
hangs, at the cost of "
+           ."requiring more storage space.",
+       type => 'boolean',
+       default => 0,
+       optional => 1,
+       default_key => 1,
+    },
+    storage => get_standard_option('pve-storage-id', {
+       description => "Use this storage to storage fleecing images. Default is 
to use the same "
+           ."storage as the VM disk itself.",
+       optional => 1,
+    }),
+});
+
 PVE::JSONSchema::register_format('backup-performance', {
     'max-workers' => {
        description => "Applies to VMs. Allow up to this many IO workers at the 
same time.",
@@ -262,6 +281,12 @@ my $confdesc = {
        format => 'backup-performance',
        optional => 1,
     },
+    fleecing => {
+       type => 'string',
+       description => "Options for backup fleecing (VM only).",
+       format => 'backup-fleecing',
+       optional => 1,
+    },
     lockwait => {
        type => 'integer',
        description => "Maximal time to wait for the global lock (minutes).",
-- 
2.39.2



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to