Date: Mon, 27 Sep 2004 13:17:34 +0200 From: Pawel Jakub Dawidek <pjd@FreeBSD.org> To: Thomas Pornin <maillist+fc@bolet.org> Cc: freebsd-current@freebsd.org Subject: Re: Software RAID1 with atacontrol Message-ID: <20040927111734.GS9550@darkness.comp.waw.pl> In-Reply-To: <20040927094602.GA17898@gnah.bolet.org> References: <20040927094602.GA17898@gnah.bolet.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--N7HXVILz59yg1nI8 Content-Type: text/plain; charset=iso-8859-2 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Mon, Sep 27, 2004 at 11:46:03AM +0200, Thomas Pornin wrote: +> I then tried to simulate a crash by unplugging one disk (with the +> machine swtiched off). On reboot, the mirror could still be accessed +> under the name ar0s1d, and atacontrol reported one disk as READY and +> the other as DOWN. This is fine. I thus made some write accesses on the +> filesystem, switched off the machine, plugged back the missing disk and +> rebooted. There, things have gone amiss: the code did not detect that +> both disks were not synchronized, and happily mounted the filesystem. +> Bad errors then happend upon reading the disk ("ls" reporting "invalid +> file descriptor", and so on). I detached one disk (with "atacontrol +> detach") and attached it again, and then added it with "addspare"; then +> I rebuilt the array ("atacontrol rebuild") and all was fine again. +>=20 +> I then did a second test: I launched a process which wrote on the +> mirror filesystem ("dd if=3D/dev/random of=3Dfoo") and, which the system +> was writing on the disk, I hit the reset switch (thus simulating a +> power failure). Since the two disk writes cannot be guaranteed as +> simultaneous, the two disks cannot be synchronized. But, upon reboot, +> the system considered both disks to be READY. +>=20 +>=20 +> Therefore I think that there is something fishy here. Since the same +> code is used for Promise RAID cards, the support for those card may be +> "broken" as well (at least unreliable in case of a crash, which is a +> problem since RAID1 is meant to add reliability in case of a crash). +> What can I do to help debug this ? I can only suggest gmirror(8):) +> As a side note: I get the same read and write throughput on the mirror +> (about 20 MB/s for reading or writing -- this is what each disk can do +> alone). I expected a doubled throughput for reading (the disks are on +> two distinct ATA controllers). Maybe this is a symptom of something +> wrong elsewhere ? Random reads? Yes. Sequential read? No, because it isn't seqential from disk point of view. Compare how data are read from mirror and stripe. --=20 Pawel Jakub Dawidek http://www.FreeBSD.org pjd@FreeBSD.org http://garage.freebsd.pl FreeBSD committer Am I Evil? Yes, I Am! --N7HXVILz59yg1nI8 Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (FreeBSD) iD8DBQFBV/bOForvXbEpPzQRAnulAKDwBBoQ7WmA8lzS0SkK2/NWfncKzwCfUGyA 2Vei8cKwHj/CWRwEbj6lPbk= =WEAo -----END PGP SIGNATURE----- --N7HXVILz59yg1nI8--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040927111734.GS9550>