Received: by 2002:a05:6a10:a841:0:0:0:0 with SMTP id d1csp426398pxy; Wed, 21 Apr 2021 06:25:44 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz6W2hWqsT1dRGC7Ghv+L0km1qH+gCDv63lpdOFc6nIFcX9DS+LKw60PsxPckR1HazQNR5A X-Received: by 2002:a17:90a:730c:: with SMTP id m12mr11046623pjk.111.1619011544089; Wed, 21 Apr 2021 06:25:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1619011544; cv=none; d=google.com; s=arc-20160816; b=umtZLSGl6iVfQOKNZvHEmzXU3AAJROL1b35i1uDxo3gVW/yUtGETAONlGv1DoTx5Sm mus/Jw8s/qy4oOSxtdU9N04862+sQn/3C0nfDZaADgQnchAMpzxcxU2MuWHvEA2Xeg9j C/swozqifW/CNM7I7K8h0i1GF+5DpKKNlYIixyOjms4h8HyPZqkoNREAP0zAdJg/0mLN h/9+e+7hVclez+h/oWX1YOiu958VhCqY2URAybbPo42Rp9ZyKqQ5QuNYqsHDLExCF6j/ 6HMmbtS4e8oUgTvrLta3vTxM7UBpGzGvklApka7tAj9Kuv6yxre9bDJR00zfDd5GdKuz F8gw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=kn2XNLw03foYr2odvIZOoau0/B6Wl4jSakj8XYK+lMc=; b=jGbX8cCuF/U1K8EA7ww6fjn5MZB6367l/5QuH7oRnCsDAq0gG/LJuNwxm27EgL9eFs ruD+t6XfnNuzHSqFSiQor0w1EcKY6CYbBux+XTsvJNVnG1IaL8BB8/vRnrz+y5eyU79p 6hEA04iG5PSA2Dok3FoHOV1hCkonkcxh6S44S1vRGPoZJJNQVC20RsERWaYiCNtvGrRR LpsSG5lWQ9R/sSl+QOZssGN9rs1IcLoO1WUyXf8TUSkfPfSaRmGB7+OIa0cMIqXN8o0v QGM6hD8pPxVoStEKQadb9HQNCJinCCPub3lgh/mKzVAcAcPA2CVg2aSGFDqT9MTA1PuB 4Zdg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@umich.edu header.s=google-2016-06-03 header.b="asVUn/wZ"; spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=umich.edu Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id j20si2281803pfe.165.2021.04.21.06.25.30; Wed, 21 Apr 2021 06:25:44 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@umich.edu header.s=google-2016-06-03 header.b="asVUn/wZ"; spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=umich.edu Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241227AbhDUNZU (ORCPT + 99 others); Wed, 21 Apr 2021 09:25:20 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42654 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S242225AbhDUNXl (ORCPT ); Wed, 21 Apr 2021 09:23:41 -0400 Received: from mail-ej1-x631.google.com (mail-ej1-x631.google.com [IPv6:2a00:1450:4864:20::631]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E868DC06134B for ; Wed, 21 Apr 2021 06:21:46 -0700 (PDT) Received: by mail-ej1-x631.google.com with SMTP id u21so63508642ejo.13 for ; Wed, 21 Apr 2021 06:21:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=umich.edu; s=google-2016-06-03; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=kn2XNLw03foYr2odvIZOoau0/B6Wl4jSakj8XYK+lMc=; b=asVUn/wZ8VmMEFkuadq4OSIPvvmQdwrTHC6+E94p8YUmHkKClFtxxqz0b7i5V+m9hv wxMssoEAQP5L1QIJDE/fDpykk7PyGc89UgoVR4N8DQbQVhJovYlrENgG5PAZ1P3nA3oA NJd+wX4mpEY08l/ODzVEdls5XbpByhqQbthHQJz1fLtGpPa9Wxzt8HJGrYgp+VlTGqvV 9YFADtVHl1aOadOHY6ba74uEOUVIcennj7qU13dJPa5t8Wl+uyGGA/ts6yOnd/zsqaV8 42jbtY4tCxSlL1Bq6w/nywFLWsjBE+Vm+VF4UmI9/RyWSrjsaZ9x51uydh21LxGQvjgm qK9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=kn2XNLw03foYr2odvIZOoau0/B6Wl4jSakj8XYK+lMc=; b=S4DGwtsFjKIVmzn/uuHNtbzpJ+lqVpbW4X6/aSECSM85/D62YQgt8mL+SJ1PrBSer/ qeWLAkosUpZBu9ZZc5ie96KDeiXHz+2NwQVDSACARKeUmyVy4jyiNdyNcHegHsWXebOj EeF65e26EHwQC+q6QG46aVGKoZXjEYLtzKNmGJcK7xc/JMdllleXAY7zkVRxq8fl141A 8Ty7ZMhNBbTd1q60lpEyNcnQGF8irXFv2ihkx39f3pU3CI6M3ev78pgTV5ukcHvpPoIC jcdavIbhXa0MOXLzCBZow609rbJ5FSTMywvm/djaiZMKi2QOBwe9douP8O83LbmgzOEE 3BHQ== X-Gm-Message-State: AOAM530A2v++g9dLv34PgZqhVcEW6WLZ9HFfT+cnrTlu/ctVussKYhot Hi3OQ4BUSa2m1hYA2xaTLF2PAWDLEwjobW7zyb5SA88l X-Received: by 2002:a17:906:a0d4:: with SMTP id bh20mr32816972ejb.348.1619011305552; Wed, 21 Apr 2021 06:21:45 -0700 (PDT) MIME-Version: 1.0 References: <061a976c-2082-bb86-91ec-f0f97a73e1ac@vastdata.com> <4999b214-db58-a5ab-3097-523cf9a51c75@vastdata.com> In-Reply-To: <4999b214-db58-a5ab-3097-523cf9a51c75@vastdata.com> From: Olga Kornievskaia Date: Wed, 21 Apr 2021 09:21:34 -0400 Message-ID: Subject: Re: Linux NFS4.1 client's "server trunking" seems to do the opposite of what the name implies To: guy keren Cc: linux-nfs Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org On Wed, Apr 21, 2021 at 3:28 AM guy keren wrote: > > > hi Olga, thanks for the response. more comments/questions below: > > On 4/21/21 2:28 AM, Olga Kornievskaia wrote: > > On Tue, Apr 20, 2021 at 4:59 PM guy keren wrote: > > Hi, > > when attempting to make two NFS 4.1 mounts from a linux NFS client, to > two IP addresses belonging to two different hosts in the same cluster > (i.e. the server major id in the EXCHANGE_ID response is the same) - the > linux NFS4.1 client discards the new TCP connection (to the 2nd IP) and > instead decides to use the first client connection for both mounts. this > seems to be handled in a hard-coded inside the function named > "nfs41_discover_server_trunking", and leads to reduced performance, > relative to using NFS3 (which will use two different TCP connections to > the two different hosts in the storage cluster). > > i was under the impression that (client_id) trunking is supposed to > allow to multiplex commands over multiple TCP connections - not to > consolidate different workloads onto the same TCP connection. > > is there a way to avoid this behaviour, other then faking that the > "server major id" is different on each node in the cluster? (this is > what appears to be done by NetApp, for instance). > > Hi Guy, > > Current implementation of the linux client does not support session > trunking to the MDS (nor does it support client id trunking). I'm > hoping session trunking support comes in the near future. Clientid > trunking might not be something that's supported unless we'll have a > clustered NFS server out there that can utilize that behaviour. > > > i see. > > > Btw you can do multipath NFS flows by using the combination of > nconnect and the newly proposed sysfs interface (still in review) that > can manipulate server endpoints. > > > the problem with nconnect is that although we will have multiple TCP conn= ections, they will all utilize the same session, which limits the requests = parallelism that can be achieved (since the slot table size is the limiting= factor for the number of in-flight commands). > > > the same problem will also exist with session trunking - while when doing= only client-id trunking (with a separate NFS4.1 session per TCP connection= ) - the number of in-flight commands can be increased linearly to the numbe= r of TCP connections. > > > is there any way to work around that? > > > > p.s. is there anyone actively working on session trunking support, or is = it just a "future roadmap item: with no concrete plans? It has been on my todo list but I've been having a hard time finding enough time to focus on this. I do believe that having a proper session trunking implementation (where the client discovers server's session trunking abilities via FS_LOCATIONS) to achieve multipathing is the way to go and sysfs was never the intention to provide multipathing (at least not in my goals) but rather a way to manager transports in situations we don't have a good way of dealing with otherwise. I think the current maximum number of concurrent v4.1+ requests in 1024, is that a too low of a number? Btw, I'm not aware of any servers that can do more than that (but my server implementations knowledge is limited). If that is so, then perhaps the focus should be on allowing for a larger slot table? > > > thanks, > > --guy keren > > Vast Data.