RFC: GEOM MULTIPATH rewrite

From: Alexander Motin <mav_at_FreeBSD.org>
Date: Mon, 31 Oct 2011 22:10:14 +0200
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
Received on Mon Oct 31 2011 - 19:10:19 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:19 UTC