From owner-freebsd-geom@FreeBSD.ORG Mon Oct 31 20:10:19 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 102D11065674; Mon, 31 Oct 2011 20:10:19 +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 700598FC12; Mon, 31 Oct 2011 20:10:18 +0000 (UTC) Received: by faar19 with SMTP id r19so8417043faa.13 for ; Mon, 31 Oct 2011 13:10:17 -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 :content-type:content-transfer-encoding; bh=vxcFKLjoZvxph4J+RwapjBEIpTuVlaiOHm8Kq/NL7dg=; b=NaacfmOZjBzusl1ZCqq4xSodUs/7/4svyRLS00fUqVBq95G8eJkwprpa0cbc5T7BX9 jNuQq3wi8S7tR/UIsxCyNHn+KCgrZ22cyU2xuZzFQ0IEvnooFcv7RS7CPhkgvfdg+lg7 WbIfh1O4Q0q8QG7ZgD12OCF+tAtIZxVjFOCsM= Received: by 10.223.61.138 with SMTP id t10mr31505566fah.20.1320091817314; Mon, 31 Oct 2011 13:10:17 -0700 (PDT) Received: from mavbook2.mavhome.dp.ua (pc.mavhome.dp.ua. [212.86.226.226]) by mx.google.com with ESMTPS id o16sm39868369fag.21.2011.10.31.13.10.15 (version=TLSv1/SSLv3 cipher=OTHER); Mon, 31 Oct 2011 13:10:16 -0700 (PDT) Sender: Alexander Motin Message-ID: <4EAF00A6.5060903@FreeBSD.org> Date: Mon, 31 Oct 2011 22:10:14 +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 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: freebsd-geom@freebsd.org Subject: 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: Mon, 31 Oct 2011 20:10:19 -0000 Hi. 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. Latest patch can be found here: http://people.freebsd.org/~mav/gmultipath4.patch Feedbacks are welcome! Sponsored by: iXsystems, Inc. -- Alexander Motin