From owner-freebsd-geom@FreeBSD.ORG Wed Nov 2 19:37:33 2011 Return-Path: Delivered-To: freebsd-geom@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EE22F106566C; Wed, 2 Nov 2011 19:37:33 +0000 (UTC) (envelope-from mavbsd@gmail.com) Received: from mail-fx0-f54.google.com (mail-fx0-f54.google.com [209.85.161.54]) by mx1.freebsd.org (Postfix) with ESMTP id 4A6078FC1B; Wed, 2 Nov 2011 19:37:32 +0000 (UTC) Received: by faar19 with SMTP id r19so1159844faa.13 for ; Wed, 02 Nov 2011 12:37:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=sender:message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-type:content-transfer-encoding; bh=zI4YI/bG7QndiOFEvqrQgZeeknyW3LUaay8fbSSJ2A8=; b=jtcnQ8kGvTfonYmdRFbCfdErMYKL8gasU5zaoLkSvqKzP+NsTAyxKc9yQzTzCFNzB4 Xa3HbBlzI1EqRg3oGu6hrTq7kRhAVwz432oNyncOwHHWCRWPJy9nTmVcO9yVh/DHIaGZ Xg9qljrXGpNF1Dfcea+Gdh+i5MmzwstSh0lg8= Received: by 10.223.61.72 with SMTP id s8mr3994602fah.27.1320262574879; Wed, 02 Nov 2011 12:36:14 -0700 (PDT) Received: from mavbook2.mavhome.dp.ua (pc.mavhome.dp.ua. [212.86.226.226]) by mx.google.com with ESMTPS id i3sm7320419faf.0.2011.11.02.12.36.13 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 02 Nov 2011 12:36:13 -0700 (PDT) Sender: Alexander Motin Message-ID: <4EB19BAB.90801@FreeBSD.org> Date: Wed, 02 Nov 2011 21:36:11 +0200 From: Alexander Motin User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:7.0.1) Gecko/20111003 Thunderbird/7.0.1 MIME-Version: 1.0 To: freebsd-current@freebsd.org References: <4EAF00A6.5060903@FreeBSD.org> In-Reply-To: <4EAF00A6.5060903@FreeBSD.org> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: Dennis Koegel , freebsd-geom@freebsd.org Subject: Re: RFC: GEOM MULTIPATH rewrite X-BeenThere: freebsd-geom@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: GEOM-specific discussions and implementations List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Nov 2011 19:37:34 -0000 On 10/31/11 22:10, Alexander Motin wrote: > Attempt to fix some GEOM MULTIPATH issues made me almost rewrite it. So > I would like to present my results and request for testing and feedback. > > The main changes: > - Improved locking and destruction process to fix crashes in many cases. > - Improved "automatic" configuration method to make it safe by reading > metadata back from all specified paths after writing to one. > - Added provider size check to reduce chance of conflict with other > GEOM classes. > - Added "manual" configuration method without using on-disk metadata. > - Added "add" and "remove" commands to manage paths manually. > - Failed paths no longer dropped from GEOM, but only marked as FAIL and > excluded from I/O operations. > - Automatically restore failed paths when all others paths are marked > as failed, for example, because of device-caused (not transport) errors. > - Added "fail" and "restore" commands to manually control FAIL flag. > - GEOM is now destroyed on last provider disconnection. IMHO it is > right to do if device was completely removed. > - Added optional Active/Active mode support. Unlike Active/Passive > mode, load evenly distributed between all working paths. If supported by > device, it allows to significantly improve performance, utilizing > bandwidth of all paths. It is controlled by -A option during creation. > Disabled by default now. > - Improved `status` and `list` commands output. Here is slightly updated version: http://people.freebsd.org/~mav/gmultipath5.patch Changes from previous: - "label" command was made to check metadata on other specified devices after writing to the first one and warn if something wrong there. - "add" command was allowed for devices created using automatic method. It may be useful in cases when some paths are temporary not operational and can't even read metadata. In such case they could be added manually and marked failed until their time will come. - Load balancing in Active/Active mode slightly improved: if all paths have equal load, do round-robin between them. -- Alexander Motin