[pve-devel] [PATCH] zfs: auto import after reboot
Wolfgang Link
w.link at proxmox.com
Tue Feb 3 12:59:08 CET 2015
this is necessary, because after a reboot all pools except rpool are gone
Signed-off-by: Wolfgang Link <w.link at proxmox.com>
---
PVE/Storage/ZFSPlugin.pm | 5 +++++
PVE/Storage/ZFSPoolPlugin.pm | 10 +++++++++-
2 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/PVE/Storage/ZFSPlugin.pm b/PVE/Storage/ZFSPlugin.pm
index 581ef6c..e885949 100644
--- a/PVE/Storage/ZFSPlugin.pm
+++ b/PVE/Storage/ZFSPlugin.pm
@@ -343,4 +343,9 @@ sub volume_has_feature {
return undef;
}
+sub activate_storage {
+ my ($class, $storeid, $scfg, $cache) = @_;
+ return 1;
+}
+
1;
diff --git a/PVE/Storage/ZFSPoolPlugin.pm b/PVE/Storage/ZFSPoolPlugin.pm
index 10da7f7..553a92b 100644
--- a/PVE/Storage/ZFSPoolPlugin.pm
+++ b/PVE/Storage/ZFSPoolPlugin.pm
@@ -154,7 +154,7 @@ sub zfs_request {
my $cmd = [];
if ($method eq 'zpool_list') {
- push @$cmd = 'zpool', 'list';
+ push @$cmd, 'zpool', 'list';
} else {
push @$cmd, 'zfs', $method;
}
@@ -419,6 +419,14 @@ sub volume_snapshot_rollback {
sub activate_storage {
my ($class, $storeid, $scfg, $cache) = @_;
+
+ my @param = ('-o', 'name', '-H');
+
+ my $text = zfs_request($class, $scfg, undef, 'zpool_list', @param);
+
+ if ($text !~ $scfg->{pool}) {
+ run_command("zpool import -d /dev/disk/by-id/ -a");
+ }
return 1;
}
--
1.7.10.4
More information about the pve-devel
mailing list