[pnfs] create session on data server
Garth Goodson
Garth.Goodson at netapp.com
Tue Jan 30 13:07:52 EST 2007
This is a similar problem we ran into. We had to add a specific flag to
our data servers saying that they are DSs, but this, I believe is an
artifact of our implementation. We also ran into problems trying to
determine which role the CREATE_SESSION is for in the case of a DS and
MDS running on the same node (with the same interface).
The same clientid is to be used on the MDS and DS. The only solution at
this time is for the MDS to push the clientid to the DS (as Andy just
suggested), and let the CREATE_SESSION proceed at the DS.
-Garth
Marc Eshel wrote:
> I am not sure how to do it without a file handle. The file handle tells us
> that this id a pNFS request and also provides us with the MDS id so we
> know who to ask for the state.
>
>
>
>
> "William A. (Andy) Adamson" <andros at citi.umich.edu>
> Sent by: androsadamson at gmail.com
> 01/30/2007 09:30 AM
>
> To
> "Marc Eshel" <eshel at almaden.ibm.com>
> cc
> pnfs at linux-nfs.org
> Subject
> create session on data server
>
>
>
>
>
>
> The non-sessions server code uses the file handle to determine if an
> incoming request is a pNFS request, and therefore this server is acting as
> a data server. Now, in the sessions version the data-server needs to
> respond to a CREATE_SESSION with no preceeding EXCHANGE_ID, and no
> filehandle.
>
> Can we use the existing get_state() interface? When the data server gets a
> clientid it doesn't know about, it calls get_state() with just the
> pnfs_get_state.clid field stuffed. How does the cluster fs know which node
> is the MDS? Is there some info in the clientid? If the cluster fs can
> determine the MDS, then the MDS can check that the clientid is confirmed,
> and return the pnfs_get_state.clid with the clientid, and the
> pnfs_get_state.devid with the MDS devid.
>
> This is similar to how the data server gets stateids.
>
>
> /* pNFS Metadata to Data server state communication*/
> struct pnfs_get_state {
> u32 devid; /* request */
> stateid_t stid; /* request;response */
> clientid_t clid; /* response */
> u32 access; /* response */
> u32 stid_gen; /* response */
> u32 verifier[2]; /* response */
> };
>
> -->Andy
>
> _______________________________________________
> pNFS mailing list
> pNFS at linux-nfs.org
> http://linux-nfs.org/cgi-bin/mailman/listinfo/pnfs
More information about the pNFS
mailing list