Re: managing trunking

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Feb 28, 2022 at 3:03 PM Trond Myklebust <trondmy@xxxxxxxxxxxxxxx> wrote:
>
> On Mon, 2022-02-28 at 13:58 -0500, Olga Kornievskaia wrote:
> > Hello folks,
> >
> > I would like to ask for what would be an acceptable solution to deal
> > with created trunking connections when there is a change in trunking
> > membership, specifically when a connection (ie., its endpoint) no
> > longer is part of the same group. An inaction on the client's part
> > would lead to unusable client.
> >
> > Would a proposal to destroy trunking connections in as part of
> > DESTROY_SESSION be acceptable? The logic behind this solution is that
> > trunking membership was established as a part of a session, each
> > connection was tested to belong to trunkable server and added to that
> > session. Once the session is destroy and new created there is no
> > guarantee that the connections are to the same server that the new
> > session is created for. Trunking membership can be re-established at
> > a
> > later time. I have some code that implements this solution but still
> > needs some testing.
> >
> > Alternatively, if we keep connections past DESTROY_SESSION, then we
> > need a way to test that the same connections belong to the new
> > session
> > that has been created, meaning that a probe for each connection on
> > create_session to see if they still belong to the same server as the
> > new session is created. Is that preferred over simply destroying
> > connections? I'm going to work on implementing this too and posting
> > as
> > an alternative.
> >
> > It has been expressed several times that the ultimate goal is to do
> > transport management in userspace so does it mean the solution to
> > this
> > is also in userspace? Should there be upcalls to user land on
> > DESTROY_SESSION and CREATE_SESSION to destroy/create trunking
> > respectively but triggered via user land. But in this approach, while
> > this happens at user land speed,  will we be allowing the client to
> > get into a state where it's unusable (because its connections are
> > talking to servers that don't belong to the same trunking group)? Or
> > to prevent this, will we be allowing the userland to pause activities
> > in the kernel until the transports are squared away? I just don't see
> > how out-sourcing trunking membership changes to the user land is
> > better than handling it in the kernel when no operations can proceed
> > until trunking membership is corrected.
> >
> > Any feedback on the approaches or its alternatives would be much
> > appreciated.
> >
> > Thank you for the feedback.
> >
> > Thank you.
>
> Right now, we only call DESTROY_SESSION on the final unmount of the
> volumes on a given server, just before calling DESTROY_CLIENTID to
> destroy the lease. So the point is really moot within the current
> framework.
>
> Is it therefore your intention to change when we call DESTROY_SESSION?

No I do not propose to change the when we call destroy_session.
Destroy_session is triggered when the client receives a BAD_SESSION
error.

I'm not a fan of this approach. I think the 2nd approach that tests
the connections is a better one.


>
> --
> Trond Myklebust
> Linux NFS client maintainer, Hammerspace
> trond.myklebust@xxxxxxxxxxxxxxx
>
>



[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux