El mié, 31-12-2008 a las 11:38 -0300, Aldrin Martoq escribió: > On Wed, 2008-12-31 at 10:09 -0300, Marcelo Espinosa Alliende wrote: > > El mar, 30-12-2008 a las 17:52 -0300, Aldrin Martoq escribió: > > > Haz la prueba, de hecho en el primer link que mandaste el tipo muestra > > > la conversa en una lista y del primer link: > > > http://lists.us.dell.com/pipermail/linux-poweredge/2007-December/034160.html > > > > > > 10GB file: > > > * RAID5 : 255MB/s > > > * RAID10 : 224MB/s (???) > > > > > > 2 x 10GB file (simultaneos) > > > * RAID5 : 2 x 36MB/s > > > * RAID10 : 2 x 31MB/s (ouch!) > > esos datos muestran que la controladora es deficiente, los datos > > resultantes lo avalan, de hecho el mismo autor lo declara, no debieras > > poner esto como ejemplo. > > Bueno, lo puse porque es similar a lo que obtuve yo en mis pruebas... y > en tal caso es lo que importa, al fin y al cabo es lo que se va a usar. > > > > el problema de raid 5 es que no escala bien con las escrituras... como > > lo mencionó Horst, el número IO's que raid 5 es capaz de manejar se > > determina por la formula siguiente: > > [ IO_lecturas + (4 * IO_escrituras) ] / n°_discos > > en el caso de raid 10 es > > [ IO_lecturas + (2 * IO_escrituras)] / n°_discos > > al incrementar el nº de discos mejora considerablemente la lectura > > (analogía de los platos que mencionas) , y en el caso de la escritura > > gana raid10 pues sólo se duplica la operación, no cuadriplica como en el > > caso de raid5. > > Tienes razon en que me he fijado solo en la lectura. Ahora, esta parte > no la entiendo, porque 4* y 2* ?
eso es solo para el caso de la escritura. en raid_5 debes leer el stripe (1 "io"), más la paridad (otra "io"), ahí tienes 2 IOs, luego modificas parte de la data, calculas la nueva paridad y luego debes escribir el nuevo stripe más paridad, 2 IOs nuevamente, ojo, no se hace todo junto, son operaciones separadas. en raid_10 es "2" basicamente por que toda la data se duplica en su espejo, osea 2 operaciones IO's por cada escritura. > > Si tienes 4 discos, escribir un stripe: > - en raid5: significa leer 2 y escribir 2 stripes. no... el stripe es único, y la operación está explicado arriba. > - en raid10: significa escribir 4 stripes. tampoco, es "1" stripe que cruza 2 discos, más su espejo (2 discos). recuerda que el stripe cruza todos los discos. En el caso de raid 5 el stripe ocupa N-1 discos y la paridad es distribuida. > > La penalidad de raid5 es que primero leo y luego escribo, mientras que > en raid10 solo escribo. No veo la duplicidad ni cuadriplicidad _en > tiempo_ de la operacion, estoy asumiendo que escribo/leo al mismo tiempo > en todos los discos (como si fueran platos extras). explicado arriba, ojo que aquí estamos mirando desde la controladora hacia adentro. Efectivamente los discos leen y escriben en paralelo y en el caso de raid10 las controladoras decentes utilizan el espejo además para las lecturas (no está ahí sólo por si acaso falla un disco). > > > > Tambien hay algo extran~o en la formula, por lo siguiente: > > > un ejemplo para ilustrar lo anterior. > > > > carga de 500 I/Os con 10 discos para RAID5 > > > > Lecturas Escrituras I/Os RAID_5 > > ---------------------------------------------------------- > > 100,00% 0,00% (500 + 0) / 10 = 50 > > 90,00% 10,00% (450 + 200) / 10 = 65 > > 75,00% 25,00% (375 + 500) /10 = 87,5 > > 50,00% 50,00% (250 + 1000) / 10 = 125 > > 0,00% 100,00% (0 + 2000) / 10 = 200 > > > > > > Lecturas Escrituras I/Os RAID_10 > > ---------------------------------------------------------- > > 100,00% 0,00% (500 + 0) /10 = 50 > > 90,00% 10,00% (450 + 100) / 10 = 55 > > 75,00% 25,00% (375 + 250) / 10 = 62.5 > > 50,00% 50,00% (250 + 500) / 10 = 75 > > 0,00% 100,00% (0 + 1000) / 10 = 100 > > Con 10 discos y solo lectura deberias tener performance de 9x para > raid-5 y 5x para raid-10; pero tus calculos no muestran eso. no, el comportamiento en operaciones de IO es igual para ambos, aquí lo que te dice es que cada disco va a manejar ese volumen de IOs y punto. la comparación que haces no es justa, pues raid10 tendría que tener 20 discos (para hacer equivalentes los "stripes") y ahí claramente gana raid10 (a un costo mas alto, claro). > > Me parece que estas calculando la carga que lleva cada disco (divides > por el numero de discos) en vez del rendimiento (yo usaria alguna medida > de ancho de banda, como KiB/s) para el conjunto en total. aquí esta tu error... el tema se reduce a un sistema mecánico (discos) que son capaces de realizar un numero finito (pequeño) de operaciones, y eso limita el rendimiento del sistema RAID en concordancia con el nivel seleccionado(0,1,5,10...), esto es independiente del ancho de banda, para usar otra medida como BW entran otros factores a jugar (cache de disco y de controladora, read ahead, write-caching, etc). los datos y formulas muestran el comportamiento de cada nivel y su escalabilidad, nada mas que eso. por mucho cache que le pongas a la controladora, si tienes más de un 10% de escrituras raid10 se va a comportar mejor que raid 5 y punto... -- Marcelo Espinosa Alliende, mailto:marc...@ubiobio.cl Jefe Depto de Servicios Computacionales Dirección de Informática - Universidad del Bío-Bio fono: +56 (41) 2731531, http://marcelo.ubb.cl