xapi-project / sm

Xapi Project storage managers
GNU Lesser General Public License v2.1
21 stars 91 forks source link

nfs sr-probe fails with QNAP NFS devices #511

Open olivierlambert opened 4 years ago

olivierlambert commented 4 years ago

Hi!

We had numerous reports of users having issues to create an NFS SR when using QNAP devices.

So it seems the problem is because the probe request (even on xe) doesn't return anything, eg:

xe sr-probe type=nfs device-config:server=192.168.0.15
Error code: SR_BACKEND_FAILURE_101
Error parameters: , The request is missing the serverpath parameter,

It should be:

xe sr-probe type=nfs device-config:server=192.168.0.15
Error code: SR_BACKEND_FAILURE_101
Error parameters: , The request is missing the serverpath parameter,
<nfs-exports>
    <Export>
        <Target>192.168.0.15</Target>
        <Path>/foo/bar</Path>
        <Accesslist>(everyone)</Accesslist>
    </Export>
</nfs-exports>

After some investigation, the common point was using a QNAP device, and having showmount to return share lists without any "permissions". Eg, an expected showmount would be:

# showmount -e 10.0.1.197
Export list for 10.0.1.197:
/mnt/tank/backups/Xen 10.0.1.0
/mnt/tank/ISO         10.0.1.1
/mnt/tank/home/kevdog 10.0.1.1

But with QNAP devices, for example:

# showmount -e 172.18.9.34
Export list for 172.18.9.34:
/vm      
/Public  
/Web     

I suppose this is the reason of the issue: in NFS probe function, it expects to have another row with the permission (IP or "everyone"). QNAP told us there's no possibility to modify permission for the NFS, so we can't test on that side.

Problem might be around here: https://github.com/xapi-project/sm/blob/46a8c7a597a3671c4120db68fcc7efe1c2bee35c/drivers/nfs.py#L187-L216

It might be doable to manage this case when there's no ACLs visible for a share. At least, that's my theory, your input is welcome :+1:

edwintorok commented 4 years ago

Which QNAP device model? IIRC we do have some QNAP devices internally that do work, and there is a list of tested QNAP devices here: http://hcl.xensource.com/storage/?vendor=65 Or is this due to a non-default configuration?

olivierlambert commented 4 years ago

Reports are coming (cf issues pointing to here) from QNAP TS-873U-RP (4.3.5.0760), and various QNAP OS version (QTS 4.4.1, and upper).

There's not a lot of NFS settings on their side, so there's nothing fancy in their config. Just seeing no ACLs whatsoever on the showmount command. Could it be the root cause of the issue? (parsing failing without this row)