the check_connection is done by querying the exports of the nfs server in question. With nfs v4 those exports aren't listed anymore since nfs v4 employs a pseudo-filesystem starting from root (/).
rpcinfo allows to query the existence of an nfs v4 service. Signed-off-by: Alwin Antreich <a.antre...@proxmox.com> --- Note: scan_nfs will not work with nfs v4 only, since it also employs showmount. The path has to be provided manually. PVE/Storage/NFSPlugin.pm | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/PVE/Storage/NFSPlugin.pm b/PVE/Storage/NFSPlugin.pm index e8e27c0..72e06c2 100644 --- a/PVE/Storage/NFSPlugin.pm +++ b/PVE/Storage/NFSPlugin.pm @@ -160,8 +160,16 @@ sub check_connection { my ($class, $storeid, $scfg) = @_; my $server = $scfg->{server}; - - my $cmd = ['/sbin/showmount', '--no-headers', '--exports', $server]; + my $opts = $scfg->{options}; + + my $cmd; + if (defined($opts) && $opts =~ /vers=4.*/) { + # nfsv4 uses a pseudo-filesystem always beginning with / + # no exports are listed + $cmd = ['/usr/sbin/rpcinfo', '-t', $server, 'nfs', '4']; + } else { + $cmd = ['/sbin/showmount', '--no-headers', '--exports', $server]; + } eval { run_command($cmd, timeout => 10, outfunc => sub {}, errfunc => sub {}) }; if (my $err = $@) { -- 2.27.0 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel