[pve-devel] [PATCH 8/8] When resizing a disk also resize the LUN.
mir at datanom.net
mir at datanom.net
Thu Jun 27 22:28:10 CEST 2013
From: Michael Rasmussen <mir at datanom.net>
Signed-off-by: Michael Rasmussen <mir at datanom.net>
---
PVE/Storage/ZFSPlugin.pm | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/PVE/Storage/ZFSPlugin.pm b/PVE/Storage/ZFSPlugin.pm
index a562635..c5bf8c4 100644
--- a/PVE/Storage/ZFSPlugin.pm
+++ b/PVE/Storage/ZFSPlugin.pm
@@ -33,6 +33,7 @@ sub zfs_request {
create_lu => 'create-lu',
delete_lu => 'delete-lu',
import_lu => 'import-lu',
+ modify_lu => 'modify-lu',
add_view => 'add-view',
list_view => 'list-view',
};
@@ -251,6 +252,15 @@ sub zfs_import_lu {
zfs_request($scfg, 'import_lu', "/dev/zvol/rdsk/$scfg->{pool}/$zvol");
}
+sub zfs_resize_lu {
+ my ($scfg, $zvol, $size) = @_;
+
+ my $luns = zfs_list_lun_mapping_entries($scfg, $zvol);
+ die "Could not find any LUN's" if (! defined($luns));
+
+ zfs_request($scfg, 'modify_lu', '-s', "${size}K", @$luns[0]->{lun});
+}
+
sub zfs_create_zvol {
my ($scfg, $zvol, $size) = @_;
@@ -605,8 +615,10 @@ sub volume_size_info {
sub volume_resize {
my ($class, $scfg, $storeid, $volname, $size, $running) = @_;
-
- zfs_request($scfg, 'set', 'volsize=' . ($size/1024) . 'k', "$scfg->{pool}/$volname");
+ my $new_size = ($size/1024);
+
+ zfs_request($scfg, 'set', 'volsize=' . $new_size . 'k', "$scfg->{pool}/$volname");
+ zfs_resize_lu($scfg, $volname, $new_size);
}
sub volume_snapshot {
--
1.8.3.1
More information about the pve-devel
mailing list