Date: Sat, 13 Jan 2007 11:40:34 +0100 From: Fluffles <etc@fluffles.net> To: freebsd-geom@freebsd.org Subject: Re: What is gstripe ? Message-ID: <45A8B722.7020302@fluffles.net> In-Reply-To: <45A85F40.7050703@centtech.com> References: <20070113004728.GQ2616@obiwan.tataz.chchile.org> <45A85F40.7050703@centtech.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Eric Anderson wrote: > On 01/12/07 18:47, Jeremie Le Hen wrote: >> Hi list, >> >> Please forgive me, I know this is a dumb question. I've checked the >> manpage, Wikipedia [1], Webopedia [2] and a few other documents, >> but I'm still not sure to fully understand the striping concept. >> >> gmirror(8) provides RAID-1 and is very easy to understand. >> gconcat(8) is easy to grasp as well. >> >> However, I'm experiencing some difficulties to understand gstripe(8). >> I would say it's a kind of smart disk concatenation which stores >> block X on disk (X % N), where N is the number of disk in the RAID-0. >> This permits faster read/write. >> >> Am I right ? >> >> [1] http://en.wikipedia.org/wiki/Data_striping >> [2] http://www.webopedia.com/TERM/R/RAID.html >> >> Thank you. >> Best regards, > > > Yea, that's pretty close! A stripe (RAID 0 - called that because it > really isn't redundant in any way) is just like you described. Write > one block to the first disk, then the next block to the next disk, > etc. It distributes your read/write activity to increase performance. > Sequential read/write performance may not be affected, but random IO > should get a nice boost. Both sequential and random I/O performance will be boosted. In fact, the sequential increase could be lineair; meaning that with twice the number of drives; twice the sequential transfer rate is achieved; if bus speed allows and the raid implementation is clean and efficient. The increase in random I/O is not always pronounced; only with a high concurrency a large performance increase in Random I/O is visible. Some benchmarks to illustrate this: Single drive (ad8) concurrency Performance in I/O's per sec. average 1 106 106 107 106 4 106 106 106 106 16 116 116 116 116 32 127 125 126 126 128 151 151 150 150 256 156 156 157 156 gstripe 4xad - 128KB stripe - FM off concurrency Performance in I/O's per sec. average 1 173 173 173 173 4 270 270 270 270 16 338 338 338 338 32 370 370 370 370 128 444 434 434 437 256 465 465 465 465 This comparison is a bit unfair since it's one disk versus 4, but the effect is clear; the largest performance increase happens with multiple concurrency. It's very important to select a high stripe size though; if you lower the stripesize to say 16KB the parallellisation effect will be almost gone: gstripe 4xad - 16KB stripe - FM off concurrency results (3 times) average 1 129 129 129 129 4 151 150 151 150 16 173 173 172 172 32 188 188 190 188 128 222 222 222 222 256 232 229 229 230 The increase in Sequential Transfer Rate (STR) is clearly visible here: -------Sequential Output-------- ---Sequential Input-- --Random-- -Per Char- --Block--- -Rewrite-- -Per Char- --Block--- --Seeks--- Machine MB K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU /sec %CPU 4096 104288 90.4 237690 74.4 71008 22.0 87837 91.9 250858 44.6 114.8 0.7 Here it shows 237MB/s write and 250MB/s read speed; which is almost lineair increase (4 x max STR). This, also, is with 4 drives. Compare with single drive: -------Sequential Output-------- ---Sequential Input-- --Random-- -Per Char- --Block--- -Rewrite-- -Per Char- --Block--- --Seeks--- Machine MB K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU /sec %CPU 4096 59391 50.7 59105 16.9 23664 7.0 62471 65.2 63045 10.0 103.7 0.6 Notice the big difference in rewrite-performance; that's a thing RAID0 is strong in. - Veronica
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?45A8B722.7020302>