From owner-svn-src-projects@FreeBSD.ORG Wed Jan 5 08:39:18 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E7000106566B; Wed, 5 Jan 2011 08:39:18 +0000 (UTC) (envelope-from pawel@dawidek.net) Received: from mail.garage.freebsd.pl (60.wheelsystems.com [83.12.187.60]) by mx1.freebsd.org (Postfix) with ESMTP id 876188FC17; Wed, 5 Jan 2011 08:39:17 +0000 (UTC) Received: by mail.garage.freebsd.pl (Postfix, from userid 65534) id 1F1AA45CD8; Wed, 5 Jan 2011 09:39:16 +0100 (CET) Received: from localhost (pdawidek.whl [10.0.1.1]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.garage.freebsd.pl (Postfix) with ESMTP id D46B945C8A; Wed, 5 Jan 2011 09:39:09 +0100 (CET) Date: Wed, 5 Jan 2011 09:39:06 +0100 From: Pawel Jakub Dawidek To: Warner Losh Message-ID: <20110105083906.GB1740@garage.freebsd.pl> References: <201101050019.p050Je5J059533@svn.freebsd.org> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="JP+T4n/bALQSJXh8" Content-Disposition: inline In-Reply-To: <201101050019.p050Je5J059533@svn.freebsd.org> User-Agent: Mutt/1.4.2.3i X-PGP-Key-URL: http://people.freebsd.org/~pjd/pjd.asc X-OS: FreeBSD 9.0-CURRENT amd64 X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on mail.garage.freebsd.pl X-Spam-Level: X-Spam-Status: No, score=-5.9 required=4.5 tests=ALL_TRUSTED,BAYES_00 autolearn=ham version=3.0.4 Cc: svn-src-projects@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r216984 - projects/graid/head/sys/geom/raid X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Jan 2011 08:39:19 -0000 --JP+T4n/bALQSJXh8 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wed, Jan 05, 2011 at 12:19:40AM +0000, Warner Losh wrote: > Author: imp > Date: Wed Jan 5 00:19:40 2011 > New Revision: 216984 > URL: http://svn.freebsd.org/changeset/base/216984 >=20 > Log: > First pass at error recovery: if the first disk that we get errors on > has a problem, try from the second one. Note info about possible bad > sector remap attempt through write, and some ideas on when to eject > the subdisk from the disk. My ideas what to do on I/O error mostly matches yours: - On read error, read from the other disk, write the data back to the first disk. Before you return the data up, you must wait for write to complete. If you won't wait, you can lose race with new write request going into the same area and you will overwrite new data with the old one. - Count read errors and mark disk as broken after some number of errors. If you get I/O errors because your requests time out you really want to disconnect the misbehaving disk or your entire array would suffer (read from the first disk, wait for timeout, read from the second disk). - On write error you want to mark disk as broken immediately, as from now on it has stale data and can't be trusted. How do you plan to detect if there was unclean shutdown and you need to synchronize the disks? Do you plan to support some kind of dirty bitmap to be able to optimize synchronization time after unclean shutdown? If you do, you might want to look at HAST. I implemented dirty bitmap handling based on DRBD ideas, which gives the lowest overhead I can think of. --=20 Pawel Jakub Dawidek http://www.wheelsystems.com pjd@FreeBSD.org http://www.FreeBSD.org FreeBSD committer Am I Evil? Yes, I Am! --JP+T4n/bALQSJXh8 Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.14 (FreeBSD) iEYEARECAAYFAk0kLikACgkQForvXbEpPzQBRwCeOrL55KLSL+mExanONmLPloRz QlMAn1EMxhj4I+CJSNy6jAYtB2agFsrB =zWkj -----END PGP SIGNATURE----- --JP+T4n/bALQSJXh8--