[Gluster-devel] Re-exporting NFS to vmware

Gordan Bobic gordan at bobich.net
Thu Jan 6 14:33:41 UTC 2011


沈允中 wrote:

> And now I know that it's impossible for nfsd to re-export a FUSE mounted filesystem.
> But the workflow of the gluster native nfsd is not smart just as the white paper mentioned.
> Gluster will act stupid when not using glusterfs protocol.
> 1. A client asks server A for a file but server A doesn't have it.
> 2. Server A finds server B has the file.
> 3. Server B transfers the file to the server A.
> 4. Server A transfers the file to the client.
> 
> So step 3 is a stupid and time-wasting process.
> How do you solve this problem when you have to use nfs protocol?

There is no way to solve this with NFS. The protocol doesn't understand 
the concept of multiple servers.

Depending on how far you were prepared to go with cheating and forging 
network packets, however, you might be able to do something like this:

1) Request comes in to server A. Server A doesn't have the file.
2) Server A notifies server B, which has the file, that client C wants 
the file.
3) Server B hand-crafts network packets to make them look like they are 
coming from server A, and server A continues getting responses, which it 
continues passing to server B. Server B uses this information to 
continue sending "forged" packets with the file data to client C.

If you are using UDP for NFS, you could plausibly do something like 
this. You'd still need server A to pass ACKs to server B. Server B would 
effectively be performing a man-in-the-middle sort of attack to 
facilitate the bulk of the data going straight from A to C.

Of course, nothing like this is implemented, so I guess it depends on 
how desperate you are for such a feature.

Gordan




More information about the Gluster-devel mailing list