Can be use by lxc (but also qemu) Signed-off-by: Alexandre Derumier <aderum...@odiso.com> --- PVE/Storage/RBDPlugin.pm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+)
diff --git a/PVE/Storage/RBDPlugin.pm b/PVE/Storage/RBDPlugin.pm index 2c45a68..92df9eb 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; } -- 2.1.4 _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel