From owner-freebsd-geom@FreeBSD.ORG Fri Apr 23 14:44:59 2010 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 07052106566B for ; Fri, 23 Apr 2010 14:44:59 +0000 (UTC) (envelope-from scottl@samsco.org) Received: from pooker.samsco.org (pooker.samsco.org [168.103.85.57]) by mx1.freebsd.org (Postfix) with ESMTP id 9F7078FC16 for ; Fri, 23 Apr 2010 14:44:58 +0000 (UTC) Received: from [127.0.0.1] (pooker.samsco.org [168.103.85.57]) (authenticated bits=0) by pooker.samsco.org (8.14.3/8.14.3) with ESMTP id o3NENWOg082169; Fri, 23 Apr 2010 08:23:32 -0600 (MDT) (envelope-from scottl@samsco.org) Mime-Version: 1.0 (Apple Message framework v1078) Content-Type: text/plain; charset=us-ascii From: Scott Long In-Reply-To: <201004230950.33999.jhb@freebsd.org> Date: Fri, 23 Apr 2010 08:23:32 -0600 Content-Transfer-Encoding: quoted-printable Message-Id: References: <4BD06BD9.6030401@FreeBSD.org> <201004230950.33999.jhb@freebsd.org> To: John Baldwin X-Mailer: Apple Mail (2.1078) X-Spam-Status: No, score=-1.0 required=3.8 tests=ALL_TRUSTED, T_RP_MATCHES_RCVD autolearn=unavailable version=3.3.0 X-Spam-Checker-Version: SpamAssassin 3.3.0 (2010-01-18) on pooker.samsco.org Cc: Alexander Motin , freebsd-current@freebsd.org, freebsd-geom@freebsd.org Subject: Re: Switchover to CAM ATA? 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: Fri, 23 Apr 2010 14:44:59 -0000 On Apr 23, 2010, at 7:50 AM, John Baldwin wrote: > On Thursday 22 April 2010 11:31:37 am Alexander Motin wrote: >> If ataraid(4) should be reimplemented in GEOM, then how exactly? One >> more separate RAID infrastructure in GEOM (third?) looks excessive. >> Reuse gmirror, gstripe,... code would be nice, but will make them = more >> complicated and could be not easy for RAID0+1 (due to common = metadata) >> and RAID5 (due to lack of module in a base system). >=20 > Scott's view (which sounds good to me) is that GEOM should include a = library=20 > of routines for working with common transforms such as RAID1, = striping, etc. =20 > Each ATA RAID vendor format would then consist of a small GEOM module = that=20 > used the library routines to manage all the I/O and the bulk of the = module=20 > would be managing a specific metadata format. >=20 THIS It's hard for me to talk about RAID and FreeBSD without getting into a = long sermon, so I'll try to keep this short. RAID is about data = integrity, not about mirror/stripe/parity algorithms. Those algorithms = are just a small part of RAID, and are merely tools for achieving the = goals of RAID. But RAID !=3D algorithms. It's like how we use linked = lists extensively within the kernel, but the kernel !=3D linked lists. A well-designed software raid stack is going to be an engine that = manages topology, executes and rolls back I/O transactions, and handles = error recovery. On-disk metadata is again just an algorithm that is = part of this whole picture, and should be modularized as such along with = the transforms. And to be even more brief, the existing GEOM RAID modules are designed = in completely the wrong direction from this. Caveat Emptor. Scott