All of lore.kernel.org
 help / color / mirror / Atom feed
From: Guan Junxiong <guanjunxiong@huawei.com>
To: Muneendra Kumar M <mmandala@Brocade.com>,
	Martin Wilck <mwilck@suse.com>,
	"dm-devel@redhat.com" <dm-devel@redhat.com>,
	"christophe.varoqui@opensvc.com" <christophe.varoqui@opensvc.com>
Cc: "chengjike.cheng@huawei.com" <chengjike.cheng@huawei.com>,
	"niuhaoxin@huawei.com" <niuhaoxin@huawei.com>,
	"shenhong09@huawei.com" <shenhong09@huawei.com>
Subject: Re: [PATCH V4 1/2] multipath-tools: intermittent IO error accounting to improve reliability
Date: Thu, 21 Sep 2017 18:04:38 +0800	[thread overview]
Message-ID: <658d39ce-5ac8-f102-96a8-c332da403e90@huawei.com> (raw)
In-Reply-To: <b9fadaaabca54790969d3b31ba9dddb8@BRMWP-EXMB12.corp.brocade.com>

Hi, Muneendra

  Thanks for your clarification. I adopt this renaming. If it is convenient for you, please review the V5 patch that I sent out 2 hours ago.

Regards,
Guan

On 2017/9/20 20:58, Muneendra Kumar M wrote:
> Hi Guan,
>>>> Shall we use existing PATH_SHAKY ?
> As the path_shaky Indicates path not available for "normal" operations we can use this state. That's  a good idea.
> 
> Regarding the marginal paths below is my explanation. And brocade is publishing couple of white papers regarding the same to educate the SAN administrators and the san community.
> 
> Marginal path:
> 
> A host, target, LUN (ITL path) flow  goes through SAN. It is to be noted that the for each I/O request that goes to the SCSI layer, it transforms into a single SCSI exchange.  In a single SAN, there are typically multiple SAN network paths  for a ITL flow/path. Each SCSI exchange  can take one of the various network paths that are available for the ITL path.  A SAN can be based on Ethernet, FC, Infiniband physical networks to carry block storage traffic (SCSI, NVMe etc.)
> 
> There are typically two type of SAN network problems that are categorized as marginal issues. These issues by nature are not permanent in time and do come and go away over time.
> 1) Switches in the SAN can have intermittent frame drops or intermittent frame corruptions due to bad optics cable (SFP) or any such wear/tear  port issues. This causes ITL flows that go through the faulty switch/port to intermittently experience frame drops.  
> 2) There exists SAN topologies where there are switch ports in the fabric that becomes the only  conduit for many different ITL flows across multiple hosts. These single network paths are essentially shared across multiple ITL flows. Under these conditions if the port link bandwidth is not able to handle the net sum of the shared ITL flows bandwidth going through the single path  then we could see intermittent network congestion problems. This condition is called network oversubscription. The intermittent congestions can delay SCSI exchange completion time (increase in I/O latency is observed).
> 
> To overcome the above network issues and many more such target issues, there are frame level retries that are done in HBA device firmware and I/O retries in the SCSI layer. These retries might succeed because of two reasons:
> 1) The intermittent switch/port issue is not observed
> 2) The retry I/O is a new  SCSI exchange. This SCSI exchange  can take an alternate SAN path for the ITL flow, if such an SAN path exists.
> 3) Network congestion disappears momentarily because the net I/O bandwidth coming from multiple ITL flows on the single shared network path is something the path can handle
> 
> However in some cases we have seen I/O retries don’t succeed because the retry I/Os hits a SAN network path that has  intermittent switch/port issue and/or network congestion. 
> 
> On the host  thus we see configurations two or more ITL path sharing the same target/LUN going through two or more HBA ports. These HBA ports are connected to two or more SAN to the same target/LUN.
> If the I/O fails at the multipath layer then, the ITL path is turned into Failed state. Because of the marginal nature of the network, the next Health Check command sent from multipath layer might succeed, which results in making the ITL path into Active state. You end up seeing the DM path state going  into Active, Failed, Active transitions. This results in overall reduction in application I/O throughput and sometime application I/O failures (because of timing constraints). All this can happen because of I/O retries and I/O request moving across multiple paths of the DM device. In the host it is  to be noted all I/O retries on a single path and I/O movement across multiple paths results in slowing down the forward progress of new application I/O. Reason behind, the above I/O  re-queue actions are given higher priority than the newer I/O requests coming from the application. 
> 
> The above condition of the  ITL path is hence called “marginal”.
> 
> What we desire is for the DM to deterministically  categorize a ITL Path as “marginal” and move all the pending I/Os from the marginal Path to an Active Path. This will help in meeting application I/O timing constraints. Also a capability to automatically re-instantiate the marginal path into Active once the marginal condition in the network is fixed.
> 
> 
> Based on the above explanation I want to rename the names as marginal_path_XXXX and this is irrespective of any storage network.
> 
> Regards,
> Muneendra.

--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel

  reply	other threads:[~2017-09-21 10:04 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-09-17  3:40 [PATCH V4 0/2] multipath-tools: intermittent IO error accounting to improve reliability Guan Junxiong
2017-09-17  3:40 ` [PATCH V4 1/2] " Guan Junxiong
2017-09-18 12:53   ` Muneendra Kumar M
2017-09-18 14:36     ` Guan Junxiong
2017-09-18 19:51       ` Martin Wilck
2017-09-19  1:32         ` Guan Junxiong
2017-09-19 10:59           ` Muneendra Kumar M
2017-09-19 12:53             ` Guan Junxiong
2017-09-20 12:58               ` Muneendra Kumar M
2017-09-21 10:04                 ` Guan Junxiong [this message]
2017-09-21 10:10                   ` Muneendra Kumar M
     [not found]                   ` <615cdd5a955944e49986dca01bf406a5@BRMWP-EXMB12.corp.brocade.com>
2017-10-09  0:42                     ` Guan Junxiong
2017-10-09 11:39                       ` Muneendra Kumar M
2017-10-12  6:35                       ` Muneendra Kumar M
2017-10-12  6:46                         ` Guan Junxiong
2017-10-12  6:59                           ` Muneendra Kumar M
2017-09-17  3:40 ` [PATCH V4 2/2] multipath-tools: discard san_path_err_XXX feature Guan Junxiong

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=658d39ce-5ac8-f102-96a8-c332da403e90@huawei.com \
    --to=guanjunxiong@huawei.com \
    --cc=chengjike.cheng@huawei.com \
    --cc=christophe.varoqui@opensvc.com \
    --cc=dm-devel@redhat.com \
    --cc=mmandala@Brocade.com \
    --cc=mwilck@suse.com \
    --cc=niuhaoxin@huawei.com \
    --cc=shenhong09@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.