From owner-freebsd-scsi Fri Oct 12 16:30:29 2001 Delivered-To: freebsd-scsi@freebsd.org Received: from mass.dis.org (mass.dis.org [216.240.45.41]) by hub.freebsd.org (Postfix) with ESMTP id 2F2F637B407 for ; Fri, 12 Oct 2001 16:30:26 -0700 (PDT) Received: from mass.dis.org (localhost [127.0.0.1]) by mass.dis.org (8.11.6/8.11.3) with ESMTP id f9CNbUk05018; Fri, 12 Oct 2001 16:37:30 -0700 (PDT) (envelope-from msmith@mass.dis.org) Message-Id: <200110122337.f9CNbUk05018@mass.dis.org> To: Scott Long Cc: Alexey Koptsevich , scsi@freebsd.org, msmith@mass.dis.org Subject: Re: Adaptec 3210S: RAID5 performance and bus throughput In-Reply-To: Message from Scott Long of "Fri, 12 Oct 2001 16:56:03 MDT." <20011012165603.D469@hollin.btc.adaptec.com> Date: Fri, 12 Oct 2001 16:37:30 -0700 From: Mike Smith Sender: owner-freebsd-scsi@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org > > RAID5 read performance will be almost identical to RAID0 read performance. > Write performace will be considerably less because it involves more than > just writing to one disk; if you are writing a piece of data that is less > than the size of a full stripe, you will also have to read the parity > disk, compute the parity, and then write out the data plus the parity. This is (often but not always) correct, but misleading. RAID5 parity is typically byte-parallel, ie. if you have N disks and you are writing one byte, you only actually *need* to read N-1 bytes (one from each of the disks to which you are not writing) to compute the parity, and write 2 bytes. The read/write stripe size issue arises from the way that internal caching is often handled; many adapters will only *ever* do I/O in terms of a stripe-sized block. This is feature of the adapter, not a RAID5 requirement. Some adapters don't behave like this; eg. Mylex use a tunable cache line size which is always an integral fraction of the stripe size and do all their I/Os in terms of multiples of the cache line size (typically 8k). Again, for an write of size X on N disks, you need to do at most N-1 reads of size X, and two writes of size X. This still bites, of course, and it's why stripe size is still an important factor. HTH Mike To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-scsi" in the body of the message