Received: by 2002:a25:ab43:0:0:0:0:0 with SMTP id u61csp555181ybi; Fri, 31 May 2019 05:42:38 -0700 (PDT) X-Google-Smtp-Source: APXvYqzdOTZk0Vbv6fcgbxF8MRd9ZuIskIfAPgBym5XLPCAFO5B6DcMTvgryxYMkl/eancPOls/4 X-Received: by 2002:a17:90a:9b8b:: with SMTP id g11mr8766224pjp.103.1559306558557; Fri, 31 May 2019 05:42:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1559306558; cv=none; d=google.com; s=arc-20160816; b=gO9askYqrr/W5GgkIS/hU3yKDFWVOgtDPO88J/5QC3XOa4sEgElXJykKKuPxD7Xzym pJQS6vj6Y6O1HThYw2rZyKLeBooaKPPdJ9t2waedW9MRafwHrFhauHwsPUcuahAgqV0K ugtsGAlDXw17ulC30S8pqJbjIGDDU5nSciLYb6u61xlIl5WOQvgsn52dOY2omIOMGvb1 ZHnYhcdl70BRoi2Nug2/ao/gxRMqADIkTJD7AgTVpc+KdjdLp8Nc8sMwU9DMi8HYVjLR tjNdJPcA6JASb2it0QM94HkccuJ8LUI4RcKPe6ljvB0ApobZGxFBRxcMF0Y2iLeVeh4u L/QQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject; bh=KK99u4KZfes0Ripphg9WgZzqPbqB4sN1eV0D+fTUysI=; b=Vz901LaD9uqAHsyQnF53dUuPXoT9jVXdRWh4/fjqrSN3Ax97aFgOoDiGL1u8t71S6+ lzqDgtxQsb2XpoOEdkr2taWDbKv8LDMwn+B27wA7JnBTJuPx/DP3jSQX0XM5A5+t8/+Y W3giRx7N6TabjtAAJLSgaqIrFJlkg/hBOYZNOE38fvq9scktkLRPIkk8ozkt6oZPpErv eEY7hLhH+eqDYW9RrZOu6W9eMGhaxUnaDk1pEzyjb+wwiguguHdWNAJMZlcNpX8mX8hq suPix8w0pXegR/maiKju6+ks9ikUi24ApUZ4+jepYjgIpJ9CjoT1HaA5CvsQy9cHo8WK 5lRg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-nfs-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id l13si5665032pjq.69.2019.05.31.05.42.09; Fri, 31 May 2019 05:42:38 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-nfs-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-nfs-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726386AbfEaMmI (ORCPT + 99 others); Fri, 31 May 2019 08:42:08 -0400 Received: from p3plsmtpa12-09.prod.phx3.secureserver.net ([68.178.252.238]:41579 "EHLO p3plsmtpa12-09.prod.phx3.secureserver.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726330AbfEaMmI (ORCPT ); Fri, 31 May 2019 08:42:08 -0400 X-Greylist: delayed 309 seconds by postgrey-1.27 at vger.kernel.org; Fri, 31 May 2019 08:42:08 EDT Received: from [192.168.0.56] ([24.218.182.144]) by :SMTPAUTH: with ESMTPSA id Wgp6hEKUtP4EqWgp6hef4J; Fri, 31 May 2019 05:39:53 -0700 Subject: Re: [PATCH 0/9] Multiple network connections for a single NFS mount. To: NeilBrown , Olga Kornievskaia Cc: Chuck Lever , Schumaker Anna , Trond Myklebust , linux-nfs References: <155917564898.3988.6096672032831115016.stgit@noble.brown> <1df23ebc-ffe5-1a57-c40a-d5e9a45c8498@talpey.com> <9b64b9d9-b7cf-c818-28e2-58b3a821d39d@talpey.com> <87pnnztvo1.fsf@notabene.neil.brown.name> <87ef4fxsm1.fsf@notabene.neil.brown.name> From: Tom Talpey Message-ID: Date: Fri, 31 May 2019 08:39:51 -0400 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.7.0 MIME-Version: 1.0 In-Reply-To: <87ef4fxsm1.fsf@notabene.neil.brown.name> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-CMAE-Envelope: MS4wfBbeEY/qsg59fQP+U4sNvThsEdE0g2pslBA9vhP5eMeP3EHweah2KKO/D6QSVJhfkuNBnR7M76NorHLLN6aWSWeWHEsQ30QU5xeU8edL8c8t26+awbqZ +ruzeoDj24ngaaAgOkGk338os+t++MXCI0GMkSCqiDTKk0EqiC/L0WDk+rtw6Kj1gT6o7XHBDMT0h2GZmVwDBYN5i8IRSpddsaxa/e4O4r/K1WAE7kBJYEFB YkAnvYnv4I4CiGaHN0oNlQRWHGju9wj/Ab39OSJh+CB/9OSUJ5xbGaYnZUYSwSbdPi9rdmgllWCva6FccVN7qbSTyWN3iQFArVzs7UN/rV8= Sender: linux-nfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org On 5/30/2019 10:31 PM, NeilBrown wrote: > On Thu, May 30 2019, Tom Talpey wrote: > >> On 5/30/2019 6:38 PM, NeilBrown wrote: >>> On Thu, May 30 2019, Tom Talpey wrote: >>> >>>> On 5/30/2019 1:20 PM, Olga Kornievskaia wrote: >>>>> On Thu, May 30, 2019 at 1:05 PM Tom Talpey wrote: >>>>>> >>>>>> On 5/29/2019 8:41 PM, NeilBrown wrote: >>>>>>> I've also re-arrange the patches a bit, merged two, and remove the >>>>>>> restriction to TCP and NFSV4.x,x>=1. Discussions seemed to suggest >>>>>>> these restrictions were not needed, I can see no need. >>>>>> >>>>>> I believe the need is for the correctness of retries. Because NFSv2, >>>>>> NFSv3 and NFSv4.0 have no exactly-once semantics of their own, server >>>>>> duplicate request caches are important (although often imperfect). >>>>>> These caches use client XID's, source ports and addresses, sometimes >>>>>> in addition to other methods, to detect retry. Existing clients are >>>>>> careful to reconnect with the same source port, to ensure this. And >>>>>> existing servers won't change. >>>>> >>>>> Retries are already bound to the same connection so there shouldn't be >>>>> an issue of a retransmission coming from a different source port. >>>> >>>> So, there's no path redundancy? If any connection is lost and can't >>>> be reestablished, the requests on that connection will time out? >>> >>> Path redundancy happens lower down in the stack. Presumably a bonding >>> driver will divert flows to a working path when one path fails. >>> NFS doesn't see paths at all. It just sees TCP connections - each with >>> the same source and destination address. How these are associated, from >>> time to time, with different hardware is completely transparent to NFS. >> >> But, you don't propose to constrain this to bonded connections. So >> NFS will create connections on whatever collection of NICs which are >> locally, and if these aren't bonded, well, the issues become visible. > > If a client had multiple network interfaces with different addresses, > and several of them had routes to the selected server IP, then this > might result in the multiple connections to the server having different > local addresses (as well as different local ports) - I don't know the > network layer well enough to be sure if this is possible, but it seems > credible. > > If one of these interfaces then went down, and there was no automatic > routing reconfiguration in place to restore connectivity through a > different interface, then the TCP connection would timeout and break. > The xprt would then try to reconnect using the same source port and > destination address - it doesn't provide an explicit source address, but > lets the network layer provide one. > This would presumably result in a connection with a different source > address. So requests would continue to flow on the xprt, but they might > miss the DRC as the source address would be different. > > If you have a configuration like this (multi-homed client with > multiple interfaces that can reach the server with equal weight), then > you already have a possible problem of missing the DRC if one interface > goes down a new connection is established from another one. nconnect > doesn't change that. > > So I still don't see any problem. > > If I've misunderstood you, please provide a detailed description of the > sort of configuration where you think a problem might arise. You nailed it. But, I disagree that there won't be a problem. NFSv4.1 and up will be fine, but NFS versions which rely on a heuristic, space limited DRC, will not. Tom. > >> >> BTW, RDMA NICs are never bonded. > > I've come across the concept of "Multi-Rail", but I cannot say that I > fully understand it yet. I suspect you would need more than nconnect to > make proper use of multi-rail RDMA > > Thanks, > NeilBrown >