From 9f20a8a643aa30241b2be2d180fcf41ae53eda9b Mon Sep 17 00:00:00 2001 From: Alexandre Derumier Date: Thu, 30 Jul 2015 09:57:31 +0200 Subject: [PATCH] rbd: add support to krbd Can be use by lxc (but also qemu) Signed-off-by: Alexandre Derumier --- PVE/Storage/RBDPlugin.pm | 25 +++++++++++++++++++++++++ changelog.Debian | 2 ++ 2 files changed, 27 insertions(+) diff --git a/PVE/Storage/RBDPlugin.pm b/PVE/Storage/RBDPlugin.pm index 878fa16..785dca9 100644 --- a/PVE/Storage/RBDPlugin.pm +++ b/PVE/Storage/RBDPlugin.pm @@ -219,6 +219,10 @@ sub properties { description => "Authsupported.", type => 'string', }, + krbd => { + description => "Access rbd through krbd kernel module.", + type => 'boolean', + }, }; } @@ -230,6 +234,7 @@ sub options { pool => { optional => 1 }, username => { optional => 1 }, content => { optional => 1 }, + krbd => { optional => 1 }, }; } @@ -266,6 +271,8 @@ sub path { $path .= ":auth_supported=none"; } + $path = "/dev/rbd/$pool/$name" if $scfg->{krbd}; + return ($path, $vmid, $vtype); } @@ -481,11 +488,29 @@ sub deactivate_storage { sub activate_volume { my ($class, $storeid, $scfg, $volname, $exclusive, $cache) = @_; + + return 1 if !$scfg->{krbd}; + + my ($vtype, $name, $vmid) = $class->parse_volname($volname); + + my $cmd = &$rbd_cmd($scfg, $storeid, 'map', $name); + run_rbd_command($cmd, errmsg => "can't mount rbd volume $name"); + return 1; } sub deactivate_volume { my ($class, $storeid, $scfg, $volname, $exclusive, $cache) = @_; + + return 1 if !$scfg->{krbd}; + + my ($vtype, $name, $vmid) = $class->parse_volname($volname); + my $pool = $scfg->{pool} ? $scfg->{pool} : 'rbd'; + + my $path = "/dev/rbd/$pool/$name"; + my $cmd = &$rbd_cmd($scfg, $storeid, 'unmap', $path); + run_rbd_command($cmd, errmsg => "can't unmount rbd volume $name"); + return 1; } diff --git a/changelog.Debian b/changelog.Debian index f74ab63..bc9576e 100644 --- a/changelog.Debian +++ b/changelog.Debian @@ -2,6 +2,8 @@ libpve-storage-perl (4.0-14) unstable; urgency=medium * storage status API: allow to filter multiple content types + * rbd: add support to krbd + -- Proxmox Support Team Fri, 07 Aug 2015 09:45:18 +0200 libpve-storage-perl (4.0-13) unstable; urgency=medium