Arxius

Comparativa de velocitat de RAID per programari

Escrit al 2005-11-09 00:00:00 per cpina

A molts llocs d'Internet es comenta que el RAID 1 Mirroring és molt lent, a vegades sembla que no sigui ni utilitzable. I també es comenta que el RAID 0 Striped és molt més ràpid, però no sol aparèixer "com de més ràpid?"

A l'article s'analitzen les velocitats, comparant dos discs durs fent operacions "cotidianes" però mesurables. A continuació es fa el mateix amb RAID 0 Linear, RAID 0 Striped i RAID 1 Mirroring. S'intenta treure'n unes conclusions, analitzant els resultats de la comparativa, etc.

Índex



  • Introducció
  • Breu repàs de RAID
  • Informació de les proves
  • Resultats
  • Conclusions
  • Annex


    Punts principals: Resultats i conclusions.

    Introducció


    Ja fa un temps que volia muntar un RAID Mirall (Mirroring) en alguns ordinadors, utilitzant Linux. Ara fa dies que vaig començar a buscar informació.
    Evidentment el primer que vaig intentar decidir és si faria RAID per maquinari o bé per programari. Quins avantatges, inconvenients té cada un? Una petita enumeració de les avantatges principals de cada un podria ser:
    Maquinari (hardware RAID):

  • Teòricament més ràpid
  • Es diu que falla menys, pot ser més fiable


    Programari (software RAID):

  • Molta més flexibilitat quan es configura (discs durs diferents sense problemes, ja que normalment es fa a nivell de partició)
  • Més econòmic, no cal comprar cap dispositiu
  • No es depén d'una tarja RAID, que també es pot espatllar
  • fama de gran lentitud


    Tot i tenir fama de ser més lent, la pregunta era... El sistema amb RAID 1 serà massa lent? Quant més lent respecte no tenir RAID?. De fet hi ha gent que diu al revés, que tenir RAID 1 (tot i ser per programari) és molt més ràpid. En tot cas, qui té raó?

    Per tant principalment s'intentarà respondre la pregunta de si el RAID per programari és molt més lent que un disc normal. Més endavant potser es repetirà la comparativa amb RAID per programari Vs. RAID per maquinari.
    L'única referència trobada sobre aquest tema, és el Capítol 9 Perfomance dins el RAID Howto, però no era suficientment complet.

    Breu repàs de RAID


    No és intenció d'aquest article explicar la configuració de RAID, ni com funcionen internament. Però sí que es farà una petita anotació per refrescar-ho.
    RAID és un sistema de gestió de discs durs (normalment, ja que amb RAID per programari es pot fer un RAID entre un Pendrive i un fitxer en el disc, entre moltes altres combinacions). RAID permet varies configuracions de treball, com poden ser:

  • RAID 0 Linear: una partició de 20 GB, junt amb una altra de 20 GB faran una partició de 40 GB com si estiguessin de costat. Internament els fitxers van "a continuació"
  • RAID 0 Striped: igual que en el cas anterior, 20 GB + 20 GB = 40 GB. Però amb la diferència que un fitxer de 10 MB segurament tindrà 5 MB en una partició i els altres 5 MB en l'altre partició. En teoria molt òptim per temes de velocitat d'accés a fitxers
  • RAID 1 Mirroring: 20 GB + 20 GB = 20 GB, però en aquest cas si un disc falla "no passa res", ja que es gestiona, treballa amb el bo i ens avisa que hem de canviar el disc. Es poden afegir més discs: 20 GB + 20 GB + 20 GB, per si dos fallen
  • RAID 5: 20 GB + 20 GB + 20 GB = 40 GB, i un disc dur pot fallar (no dos). No s'han fet proves amb aquesta configuració

    La motivació de configurar un sistema RAID pot ser molt diversa. Podem dir que és per seguretat de no perdre les dades (RAID 1 i RAID 5), o bé per tenir un sol volum amb molta capacitat i més ràpid (RAID 0)

    Informació de les proves


    Les proves


    S'ha intentat que les proves siguin mínimament realistes i variades. Per tant, cada persona pot veure quina part de les proves li interessa més per extreure'n els seus les seves conclusions.

    S'ha fet una primera prova amb el programari bonnie++. Aquest fa una sèrie d'operacions sobre el directori que se li indica. Primerament fa una simulació com si fos una base de dades per accedir-hi a continuació (mitjançant escriptura de caràcters, blocs, lectures, en ordre, desordre, etc.). Després, crea, llegeix i elimina molts fitxers petits com si un programa com Squid o Postfix. Bonnie facilita els resultats per cada apartat (p. ex. en KB/s) però en aquesta comparativa només s'agafa el temps total de tot el procés. Més endavant és possible que es faci un annex amb aquesta informació.
    A continuació es fa un dd de /dev/zero a fitxers sobre el RAID. Intenta veure realment quina és la velocitat d'escriptura cap al RAID.
    Després fa el mateix a l'invers: llegir del RAID els fitxers ja copiats de /dev/zero i s'envien a /dev/null. Intenta veure quant són d'eficient les lectures.

    A continuació es fa una altra prova, la qual consisteix en fer cat /no_raid/linux-2.6.13.tar > /dev/null (per tal de tenir-ho en buffers i cache) i després copiar-ho al RAID (escriptures un altre cop)

    Després, es descomprimeix amb tar -xf linux.tar dins el RAID (majoritàriament fa escriptures, ja que l'hem copiat i el sistema té prou memòria RAM i per tan bona part del fitxer ja s'hi trobarà.
    Per acabar fa un cp -rf linux-2.6.13 prova/, amb la qual cosa copia tot l'arbre del Kernel de Linux, que són gairebé 300 MB.

    RESUMINT

  • Bonnie++ (operacions variades)
  • dd /dev/zero fitxer: escriptura
  • cp fitxer /dev/null: lectura
  • cat /noraid/linux.tar > /dev/null; cp /noraid/linux.tar /raid/linux.tar: escriptura, però poc. Fitxer massa petit per grans conclusions... (el cat previ és perquè el fitxer es trobi ja en memòria RAM)
  • tar -xf linux.tar: són uns 300 MB. Lectures/escriptures
  • cp -rf linux/ directori: 300 MB de copia. Lectures/escriptures


    Cal comentar que en tot moment s'ha pres com a mesura el "real time". De totes maneres s'ha pogut observar que el "user time" i "system time" no tenen diferències significatives entre un disc dur sol o configuracions en RAID. Hi hauria d'haver un consum superior de CPU perquè es fa el RAID via Kernel i no a les controladores. En les proves fetes no ha estat crític ni limitador, només quan sincronitza el sistema RAID 1 mirroring (normalment, quan se sincronitza el RAID per primera vegada) utilitza molta CPU, en altres casos no hauria de ser crític i menys amb les capacitats actuals de CPU.

    Concurrència


    Aquí hi ha una clau de l'article. Què passa quan hi ha més d'un procés accedint al RAID? Va més lent o més ràpid que en un sol disc dur? En quins RAIDs?
    S'han realitzat les proves amb un procés a la vegada, dos, tres i quatre processos concurrents. Pot semblar poc interessant per entorns domèstics, però són casos habituals en servidors (varies bases de dades accedint simultàniament, servidors de fitxers, Webs, etc.). S'han vist aspectes prou interessants, en relació a velocitats, concurrència, RAID 0, RAID 1, etc.

    Repetició de les proves


    Del conjunt de proves descrit anteriorment, s'ha repetit 4 vegades (amb l'excepció del de 4 processos, que s'ha repetit 3 vegades) i s'han extret els resultats fent les mitges. Les proves han estat automatitzades mitjançant un script, així es garanteix que sempre se seguien els mateixos passos.

    Resultats


    Taules amb els temps


    Comentar que el temps total és poc significatiu: només que hagués copiar més o menys MB podria haver invertit els resultats del millor al pitjor. Un ha de pensar quines operacions acostuma a fer, intentar veure quines s'hi assemblen i veure'n els resultats particulars.


    Resum table times            
                 
    1 Process (average)            
      Single disk 1 Single disk 2 Disks average RAID 0 Linear RAID 0 Striped RAID 1
    Bonnie 07:08 07:06 07:07 07:03 06:31 07:35
    dd zero 7000M 02:39 02:39 02:39 02:41 02:05 04:01
    cp 7000M null 03:15 03:19 03:17 03:18 02:38 03:32
    cp linux.tar to RAID 00:04 00:05 00:04 00:04 00:05 00:05
    tar -xf linux.tar 00:29 00:27 00:28 00:25 00:25 00:31
    cp -rf linux test 00:58 00:57 00:57 00:49 00:50 01:01
    Total time 00:14:32 00:14:31 00:14:32 00:14:19 00:12:34 00:16:44
    % more slow 0,06% -0,06% 0,00% -1,46% -13,56% 15,17%
                 
                 
    2 Processes (average)            
      Single disk 1 Single disk 2 Disks average RAID 0 Linear RAID 0 Striped RAID 1
    Bonnie 15:29 15:57 15:43 13:39 13:52 15:02
    dd zero 7000M 05:34 05:41 05:38 05:37 04:01 07:57
    cp 7000M null 06:00 07:54 06:57 07:12 06:33 05:39
    cp linux.tar to RAID 00:09 00:17 00:13 00:14 00:12 00:20
    tar -xf linux.tar 02:26 01:15 01:50 00:56 00:56 01:09
    cp -rf linux test 03:04 02:45 02:55 02:00 02:08 02:07
    Total time 00:32:41
    ALIGN=RIGHT SDVAL="0,0234852430555556" SDNUM="1027;0;HH:MM:SS">00:33:49
    00:33:15 00:29:38 00:27:42 00:32:13
    % more slow -1,70% 1,70% 0,00% -10,87% -16,70% -3,11%
                 
                 
    3 Processes (average)            
      Single disk 1 Single disk 2 Disks average RAID 0 Linear RAID 0 Striped RAID 1
    Bonnie 23:52 24:58 24:25 20:54 20:42 22:10
    dd zero 7000M 08:24 08:52 08:38 08:45 06:01 11:51
    cp 7000M null 09:30 12:56 11:13 12:38 09:25 08:12
    cp linux.tar to RAID 00:14 00:23 00:19 00:23 00:20 00:27
    tar -xf linux.tar 01:49 01:42 01:45 01:25 01:22 01:44
    cp -rf linux test 05:15 04:53 05:04 03:12 03:47 03:18
    Total time 00:49:04 00:53:45 00:51:25 00:47:18 00:41:36 00:47:43
    % more slow -4,55% 4,55% 0,00% -7,99% -19,08% -7,19%
                 
                 
    4 Processes (average)            
      Single disk 1 Single disk 2 Disks average RAID 0 Linear RAID 0 Striped RAID 1
    Bonnie 32:44 34:07 33:25 28:02 27:5329:54
    dd zero 7000M 11:11 11:56 11:33 11:49 08:04 15:47
    cp 7000M null 12:47 17:35 15:11 17:23 12:36 10:02
    cp linux.tar to RAID 00:21 00:34 00:28 00:32 00:27 00:40
    tar -xf linux.tar 02:28 02:08 02:18 01:51 01:46 02:18
    cp -rf linux test 05:56 05:36 05:46 03:11 04:16 03:50
    Total time 01:05:26 01:11:55 01:08:41 01:02:48 00:55:02 01:02:31
    % more slow -4,72% 4,72% 0,00% -8,55% -19,86% -8,97%


    Taules amb percentatges


    L'última fila de cada taula és el mitjana dels percentatges. No es fa el percentatge sobre els temps ja que així és independent de si les proves han estat més llargues o més curtes.



    Resume table 2            
                 
    1 Proces (average)            
      Single disk 1 Single disk 2 Disks average RAID 0 Linear RAID 0 Striped RAID 1
    Bonnie 0,29% -0,29% 0,00% -1,00% -8,32% 6,50%
    dd zero 7000M -0,08% 0,08% 0,00% 1,18% -21,20% 52,09%
    cp 7000M null -0,95% 0,95% 0,00% 0,57% -19,87% 7,56%
    cp linux.tar to RAID -5,88% 5,88% 0,00% 0,00% 5,88% 23,53%
    tar -xf linux.tar 2,68% -2,68% 0,00% -11,61% -9,82% 9,82%
    cp -rf linux test 1,31% -1,31% 0,00% -14,41% -13,10% 5,68%
    Total time 00:14:32 00:14:31 00:14:32 00:14:19 00:12:34 00:16:44
    % slower 0,06% -0,06% 0,00% -1,46% -13,56% 15,17%
    % average slower -0,44% 0,44%0,00% -4,21% -11,07% 17,53%
                 
    2 Proceses (average)            
      Single disk 1 Single disk 2 Disks average RAID 0 Linear RAID 0 Striped RAID 1
    Bonnie -1,46% 1,46% 0,00% -13,15% -11,77% -4,39%
    dd zero 7000M -1,06% 1,06% 0,00% -0,28% -28,49% 41,34%
    cp 7000M null -13,72% 13,72% 0,00% 3,76% -5,77% -18,70%
    cp linux.tar to RAID -32,04% 32,04% 0,00% 6,80% -6,80% 53,40%
    tar -xf linux.tar 32,12% -32,12% 0,00% -49,24% -49,69% -37,45%
    cp -rf linux test 5,26% -5,26% 0,00% -31,04% -26,53% -27,39%
    Total time 00:32:41 00:33:49 00:33:15 00:29:38 00:27:42 00:32:13
    % more slow -1,70% 1,70% 0,00% -10,87% -16,70% -3,11%
    % average slower -1,81% 1,81% 0,00% -13,86% -21,51% 1,14%
                 
    3 Proceses (average)            
      Single disk 1 Single disk 2 Disks average RAID 0 Linear RAID 0 Striped RAID 1
    Bonnie -2,25% 2,25% 0,00% -14,39% -15,26% -9,22%
    dd zero 7000M -2,72% 2,72% 0,00% 1,31% -30,41% 37,18%
    cp 7000M null -15,30% 15,30% 0,00% 12,71% -16,04% -26,92%
    cp linux.tar to RAID -25,39% 25,39% 0,00% 25,39%8,76% 45,62%
    tar -xf linux.tar 3,13% -3,13% 0,00% -19,43% -22,36% -0,83%
    cp -rf linux test 3,60% -3,60% 0,00% -36,90% -25,51% -34,79%
    Total time 00:49:04 00:53:45 00:51:25 00:47:18 00:41:36 00:47:43
    % slower -4,55% 4,55% 0,00% -7,99% -19,08% -7,19%
    % average slower -6,49% 6,49% 0,00% -5,22% -16,80% 1,84%
                 
    4 Proceses (average)            
      Single disk 1 Single disk 2 Disks average RAID 0 Linear RAID 0 Striped RAID 1
    Bonnie -2,08% 2,08% 0,00% -16,10% -16,55% -10,54%
    dd zero 7000M -3,21% 3,21% 0,00% 2,20% -30,23% 36,65%
    cp 7000M null -15,85% 15,85% 0,00% 14,51% -16,97% -33,93%
    cp linux.tar to RAID -22,24% 22,24% 0,00% 17,40% -0,76% 46,44%
    tar -xf linux.tar 7,26%-7,26% 0,00% -19,30% -23,23% 0,18%
    cp -rf linux test 2,84% -2,84% 0,00% -44,82% -26,01% -33,57%
    Total time 01:05:26 01:11:55 01:08:41 01:02:48 00:55:02 01:02:31
    % slower -4,72% 4,72% 0,00% -8,55% -19,86% -8,97%
    % average slower -5,55% 5,55% 0,00% -7,69% -18,96% 0,87%


    Gràfics

    Els gràfics són respecte les mitjanes dels percentatges, al considerar-se més representatives que el temps.






    Conclusions



    Es poden treure moltes conclusions, però principalment es pot destacar:
  • RAID 1 Mirroring, 1 procés. És en conjunt el més lent. Un 17.5%, fent la mitjana dels percentatges parcials. Pot valer la pena bescanviar aquest increment de temps per la seguretat que ens dona en cas que un disc dur resulti malmès. L'increment de temps depen força de quina operació s'està fent. Les escriptures (dd /dev/null fitxer) el penalitzen molt (50% més lent). L'altre punt de lentitud (cp /home/carles/linux.tar /mnt/md0) pot ser poc significatiu perquè el procés és massa curt. Es pot comprovar que si no s'haguessin fet les proves del dd o del cp resultaria tan sols entre un 5 i un 10% més lent (que concorda amb el resultat global del Bonnie, un 6% més lent) També afegir que si és un servidor de fitxers per xarxa, Web sense Base de Dades, etc. és possible que la velocitat de la xarxa sigui inferior a la velocitat del disc dur (és habitual). En aquests casos la penalització de temps no es veurà reflexada a l'usuari (en excepció de Bases de Dades, que poden fer un ús molt intensiu del disc per acabar enviant per xarxa molt poca informació).
  • RAID 1 Mirroring, però amb 2, 3 i 4 processos simultanis. La velocitat tendeix a igualar-se (amb 2 i 3 processos està sobre un 1 o 2% més lent, amb 4 processos per sota de l'1%). Sembla que les operacions d'escriptura són les més penalitzades. Cal pensar i reflexionar... en el nostre sistema, tenim més escriptures o lectures? En general hi ha moltes més lectures (consultes) que escriptures. Normalment, una dada s'escriu una vegada però es llegeix moltes vegades. També veure com a moltes proves (totes menys la del dd i cp) és més ràpid que un disc dur sol. És a dir, ens pot augmentar la velocitat. Si fem cas a Bonnie++, que fa ell mateix unes proves equilibrades, és un 9% més ràpid.
  • RAID 0 Striped. Tal com era d'esperar, molt més ràpid en quasi totes les operacions (amb més d'un procés, en absolutament totes). Si volem, tan sols, incrementar la velocitat del nostre sistema pot ser una bona solució: fer RAID 0 Striped. Per exemple, és prou utilitzat en entorns d'edició de video, on es gestionen grans fitxers. La bona notícia és que no fa falta que sigui RAID per maquinari per tal d'accelerar, tal com es comenta normalment, sinó que via programari és suficient i podem guanyar fàcilment fins un 20% global (que en algunes operacions, en 2 processos, és fins un 50% més ràpid)
  • Raid 1 Mirroring VS Raid 0 Striped. Es pot veure fàcilment que les operacions d'escriptura castiguen molt més el RAID 1 Mirroring que el RAID 0 Striped. En canvi, en les de lectura amb varis processos el RAID 1 arriba a millorar el RAID 0.

    Annex

    La relativitat del les comparatives

    Qualsevol comparativa (entenent-se com a benchmark) és totalment relativa, i s'ha de llegir amb molt de compte. De fet, és possible que en qualsevol comparativa guanyi el producte/configuració/programa A en tots els apartats menys en un, que guanyi el B. Globalment A serà millor, però es pot donar el cas que només ens interessa l'apartat que guanya el B. Se n'ha de ser conscient. No hi ha cap comparativa que acabi traient una veritat absoluta, és tant sols una simple guia perquè cada persona avaluï activament els productes exposats, i en sigui crític amb el mètode. En el cas particular, s'hauria de veure si els resultats tenen alguna relació amb el maquinari en concret. Si es modifica la RAM, canviaran els resultats? No té perquè, però s'ha de pensar. I el nostre cas d'ús, s'assembla amb aquest? En quins apartats? Com a últim comentari, i de forma molt clara, pot ser possible que canviant la mida dels chunk del RAID, o bé canviant senzillament el sistema de fitxers, els resultats siguin diferents. Així que s'han de prendre com una mera orientació. Hi ha tantes configuracions particulars com usos té el sistema, per tant seria més fàcil quan es té la configuració desitjada fer-ne les proves, si cal, que no intentar endevinar totes les configuracions (feina que no s'acabaria mai)

    El maquinari


    El maquinari emprat per fer les proves és un Pentium 3 a 860 MHz, amb 756 MB de RAM i un Kernel 2.6.12. La distribució és Debian Sarge.

    Un disc dur és un Western Digital de 80 GB, configurat amb UDMA 5 com a master del canal IDE primari (hda). L'altre disc dur és un Seagate de 120 GB, configurat també amb UDMA 5 i com a master del canal IDE secundari (hdc). Pot semblar estrany tenir dos discs durs diferents en un RAID, en tot cas, segurament acaba sent més normal tenir-ne dos diferents que no exactament el mateix model.

    Enllaços


    Entre les pàgines Web consultades segurament es pot destacar:

  • Gentoo Install on Software RAID
  • Software RAID Howto


    Les dades


    Es pot descarregar la fulla de càlcul amb el conjunt de dades.
  • Categories: Articles, Servidor


    Comentaris

    • Rthrhrt Mnfioejwrjio redhotchilipeppersslanecastlexu redhotchilipepperscan3ftstopxu redhotchilipepperscityofangelsongtextxu redhotchilipeppersoffiziellwebsitexu redhotchilipepperspragxu californicationredhotchilipeppersxu redhotchilipeppersfanclubxu redhotchilipepperslogoxu redhotchilipeppersidolxu redhotchilipepperskartexu redhotchilipepperskonzertberlinxu redhotchilipeppersneualbumxu redhotchilipepperssongtextxu redhotchilipepperstourdatumxu redhotchilipeppersunderthebridgeonlinevideoxu redhotchilipepperscalifornicationcoverxu redhotchilipepperscalifornicationvideoxu redhotchilipepperschordsxu redhotchilipeppersloverollercoasterxu redhotchilipeppersothersidevideoxu ticketredhotchilipepperssitzplatzxu lyricsredhotchilipeppersxu redhotchilipeppersallaroundtheworldxu redhotchilipepperskonzertticketxu redhotchilipeppersliveatslanexu redhotchilipeppersstadiumarcadiumxu redhotchilipepperscalifornicationwhichsonggotkickedisno1downloadnowxu redhotchilipepperskarteberlinxu redhotchilipepperskonzertkartexu redhotchilipeppersothersidelyricsxu redhotchilipeppersourmediaxu redhotchilipeppersvideoxu songtextredhotchilipeppersxu ticketredhotchilipeppersberlinxu tourdatumredhotchilipeppersxu gitarrennoteredhotchilipeppersxu muenchenredhotchilipeppersxu redhotchilipeppersbythewaylyricsxu redhotchilipeppersdortmundticketxu redhotchilipeppersdosedxu redhotchilipeppersfortunefadedxu redhotchilipeppersliveatslanecastlexu redhotchilipeppersroadtrippinxu redhotchilipeppersticketberlinxu redhotchilipepperstourxu californiacationredhotchilipeppersxu pepperschiliredhotxu redhotchilipeppersaroundtheworldxu redhotchilipeppersautogrammxu redhotchilipepperscalifornicationlyricsxu redhotchilipeppersdanicaliforniaxu redhotchilipeppershamburgxu redhotchilipeppershomepagexu redhotchilipeppersicouldxu redhotchilipeppersinspirationxu redhotchilipeppersliveparisxu redhotchilipeppersmyfriendxu redhotchilipeppersnewsxu redhotchilipepperssimpsonsxu redhotchilipepperstattooxu redhotchilipepperswallpaperxu karteredhotchilipeppersxu konzertticketredhotchilipeppersxu redhotchilipeppersalbumxu redhotchilipeppersberlinticketxu redhotchilipeppersbloodsexsugarmagixxu redhotchilipepperscaliforniacationxu redhotchilipepperscityofangelxu redhotchilipepperscoverxu redhotchilipepperseverybodyxu un73xu un71a73xu unutobahna73xu ebersdorfa73xu un73beicoburgxu galleryxu geburtstaggalleryxu freesexgalleryxu xxxgalleryxu bondagegalleryxu babesgalleryxu freehardcoregalleryxu unbbywintersgalleryxu fetishgalleryxu porngalleryxu groupsexgalleryxu maturegalleryxu sexgalleryxu lingeriegalleryxu unrtgalleryxu hentaigalleryxu shemalegalleryxu teengalleryxu freexxxgalleryxu freeporngalleryxu gaygalleryxu onlineartgalleryxu hotlingeriegalleryxu pantyhosegalleryxu untkgalleryxu

      Escrit al 2007-05-29 19:16:23 per Kuigr

    Arxius