From 93e34f7259787a8b5704a4cdbdd16e962af0573a Mon Sep 17 00:00:00 2001 From: Fiona Ebner Date: Fri, 28 Apr 2023 14:32:09 +0200 Subject: [PATCH] rbd: volume resize: avoid passing floating point value to rbd which causes an error "the argument for option '--size' is invalid". Just round up to the nearest integer to have at least the requested size. This is similar to what is done for ZFS with d3e3e5d ("When resizing a ZFS volume, align size to 1M") and makes commands like 'qm resize 102 scsi1 +0.01G' work. Signed-off-by: Fiona Ebner --- src/PVE/Storage/RBDPlugin.pm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/PVE/Storage/RBDPlugin.pm b/src/PVE/Storage/RBDPlugin.pm index 9d59a14..c9e70a2 100644 --- a/src/PVE/Storage/RBDPlugin.pm +++ b/src/PVE/Storage/RBDPlugin.pm @@ -7,6 +7,7 @@ use Cwd qw(abs_path); use IO::File; use JSON; use Net::IP; +use POSIX qw(ceil); use PVE::CephConfig; use PVE::Cluster qw(cfs_read_file);; @@ -779,7 +780,7 @@ sub volume_resize { my ($vtype, $name, $vmid) = $class->parse_volname($volname); - my $cmd = $rbd_cmd->($scfg, $storeid, 'resize', '--size', ($size/1024/1024), $name); + my $cmd = $rbd_cmd->($scfg, $storeid, 'resize', '--size', ceil($size/1024/1024), $name); run_rbd_command($cmd, errmsg => "rbd resize '$volname' error"); return undef; }