÷ƒ’À;è TeX output 2003.11.26:1336‹ÿÿÿÿ Û_2 ý ~? ÕÁ ýZݺóþÖëI½q½qecss2074¼Soft–ÿwmw“a“re-RAID‘fÑHO“WTOŽ¤ ®„ØcÕÁGŽŽ¡ó 1ê± ecrm1000¹Linas–U V‘ÿ*¸epstas,“óqLË ectt1000ºlinas@linas.org’Ùô“¹v0.54“21“No•¸èv“em“bre‘U 1998Ž¡Ÿ&°óŒ6 ecss1000½RAID‘”õsta–•%pšGer“"Redundant“Arra¸èy“of“Inexp˜ensive“Disks",‘»‹un“mo˜do“p˜er“crea¸ère“un“sottosistema“di“dischi“velo˜ce“e“ad-Ž¡abile–À`da“una“serie“di“dischi“singoli.‘?ëRAID‘À:pu€ò“pš¸èroteggere“da“un“malfunzionamento“del“disco“e“pu€ò“anche“miglio˜ra˜reŽ¡la–­situazione“di“un“solo“disco“in“caso“di“un“malfunzionamento.‘yZQuesto“doGcumento“€è“un“tuto•¸èrial/HO“WTO/F‘ÿ*¸A“QŽ¡pšGer–¯gli“utenti“delle“estensioni“MD‘Ÿdel“k¸èernel“di“Linux,‘!’dei“to˜ols“ad“esse“asso˜ciati,‘!’e“del“lo¸èro“uso.‘\Le“estensioni“MDŽ¡implementano–YíRAID-0“(striping),›[ RAID-1“(mirro¸èring),˜RAID-4“e“RAID-5“tramite“soft•¸èw“a“re.‘çCos€ì,˜con–Yíle“MD,“nonŽ¡sono–´Ðrichiesti“ha•¸èrdw“a“re–´Ðo“controller“spšGeciali“p˜er“ottenere“molti“dei“b˜eneci“della“tecnologia“RAID.“Do˜cumentazioneŽ¡tradotta–Øda“Maš¸èrco“Meloni“-“eventuali“suggerimenti“o“co˜rrezioni“della“traduzione“italiana“e“contributi“in“italianoŽ¡pšGer–U l'auto¸ère“p˜ossono“essere“inviati“al“tradutto¸ère:‘q€º(–?¬óqLË ecit1000¾tonno@stud.unipg.it“º)ŽŸ(Àœó&Lt$ffffecbx1440ÀIndiceŽ¤Øó]fŒ ecbx1000Á1Ž‘ÿIn®>troQÂduzione’€Ó2ŽŽ¡2Ž‘ÿConsiderazioni–Õsu“RAID’F%ý4ŽŽ¡3Ž‘ÿConsiderazioni–Õsul“setup“e“sull'installazione’ç7ŽŽ¡4Ž‘ÿRiparare–Õgli“errori’^ìC14ŽŽ¡5Ž‘ÿRisoluzione–Õdei“problemi“di“installazione’ïÀ¹19ŽŽ¡6Ž‘ÿHardwš®>are–Õ&“Soft˜w˜are“SuppQÂortato’†o22ŽŽ¡7Ž‘ÿMoQÂdicare–Õuna“installazione“preesisten®>te’îiW23ŽŽ¡8Ž‘ÿDomande–Õsulle“pšQÂerformance,“sui“to˜ol“e“domande“stupide“in“genere‘mv¼26ŽŽ¡9Ž‘ÿRAID–Õad“Alta“Adabilit€à’7O33ŽŽ¡10Ž‘ÿDomande–Õc®>he“attendono“rispQÂosta’#34ŽŽ¡11Ž‘ÿDesiderata–Õdi“MD“e“del“relativš®>o“soft˜w˜are’í€Ý34ŽŽŸؼPream®>bQÂoloŽŽŽŸ®‘¹(la–U licenza“viene“ripGortata“anc¸èhe“in“inglese.‘q€ndt)Ž¤ ®‘Questo–¶hdoGcumenš¸èto“€è“cop˜yrigh˜t“di“Linas“V‘ÿ*¸epstas“(“ó½HЃ ecti1000Âlinas@linas.or‘ÿ}/g“¹)“e“viene“distribuito“nei“terminiŽ¡‘della–x·licenza“GPL.“Il“pšGermesso“di“usare,–copiare,“distribuire–x·questo“do˜cumen¸èto“p˜er“qualsiasi“utilizzo“€èŽ¡‘concesso–„Da“patto“cš¸èhe“il“nome“dell'autore“e“dell'editore“e“questo“pream˜bGolo“appaiano“in“ogni“copia“e/oŽ¡‘doGcumen•¸èto,‘Ï@e›¶Óc“he˜una˜v“ersione˜non˜mo•Gdicata˜di˜questo˜do“cumen¸èto˜sia˜resa˜lib“eramen¸ète˜disp“onibile.Ž¡‘Questo–eOdošGcumen¸èto“€è“distribuito“nella“sp˜eranza“c¸èhe“sia“utile“ma“SENZA–eALCUNA“GARANZIA“n€éŽ¡‘espressa–¼fn€é“implicita.‘>˜Anc¸èhe“se“ogni“sforzo“€è“stato“fatto“pGer“assicurare“la“accuratezza“delle“informazioniŽ¡‘došGcumen¸ètate–#qui“di“seguito,‘¤l'autore“/“editore“/“curatore“NON–SI“ASSUME“RESPONSABILIT‘ÿ*¸€À“p˜erŽ¡‘qualsiasi–³aerrore,›Ó»o“pGer“qualsiv¸èoglia“danno,˜diretto“o“consequenziale“risultan¸ète“dall'uso“delle“informazioniŽŽŽŒ‹* Û_2 ý ~?Ÿ„€ÕÁGŽÁ1.‘ñ8In®>troQÂduzione’~¯œ¹2ŽŽ ÕÁ ýV¯‘con•¸èten“ute–U in“questo“doGcumen¸èto.Ž¤ ®‘This–ÍzdoGcumenš¸èt“is“GPL'ed“b˜y“Linas“V‘ÿ*¸epstas“(linas@linas.org).‘ÚP˜ermission“to“use,–+cop˜y‘ÿ*¸,“distributeŽ¡‘this–¨doGcumenš¸èt“for“an˜y“purpGose“is“hereb˜y“gran˜ted,‘ýhpro˜vided“that“the“author's“/“editor's“name“andŽ¡‘this–‚“notice“appšGear“in“all“copies“and/or“supp˜orting“do˜cumen¸èts;‘™Land“that“an“unmo˜died“v¸èersion“of“thisŽ¡‘doGcumenš¸èt–Çis“made“freely“a˜v‘ÿqÐailable.‘ÑuThis“doGcumen˜t“is“distributed“in“the“hopšGe“that“it“will“b˜e“useful,Ž¡‘but›ì®WITHOUT–ì”ANY“W‘þã ARRANTY,˜either˜expressed˜or˜implied.‘N°While˜ev•¸èery˜eort˜has˜bGeen˜tak“en˜toŽ¡‘ensure–‡the“accuracy“of“the“information“doGcumenš¸èted“herein,‘“‹the“author“/“editor“/“main˜tainer“assumesŽ¡‘NO–{ÁRESPONSIBILITY“for–{Ëanš¸èy“errors,‘…uor“for“an˜y“damages,‘…udirect“or“consequen˜tial,‘…uas“a“result“of“theŽ¡‘use–U of“the“information“doGcumen¸èted“herein.ŽŸJž‘RAID,–Žancš¸èhe“se“concepito“pGer“aumen˜tare“l'adabilit€à“del“sistema“tramite“la“ridondanza,‘/)pu€ò“anc˜heŽ¡‘pGortare–Ë\ad“un“falso“senso“di“sicurezza“e“condenza“quando“usato“impropriamen¸ète.‘Ô3Questa“falsa“con-Ž¡‘denza–¹}pu€ò“pšGortare“a“disastri“ancora“maggiori.‘ž—Si“noti“in“particolare“c¸èhe“RAID‘¹!€è“progettato“p˜erŽ¡‘proteggere–Ûin“caso“di“un“funzionamen¸èto“anomalo“*del“disco*,‘non“in“caso“di“un“calo“di“tensione“o“di“unŽ¡‘errore–DYdell'opšGeratore.‘kèCali“di“tensione,‘G´k¸èernel“di“svilupp˜o“con•¸ètenen“ti–DYerrori“o“op˜eratori/amministratoriŽ¡‘di–yªsistema“pšGossono“p˜ortare“ad“un“danneggiamen¸èto“non“recup˜erabile“dei“dati!‘ßRAID‘y¡*non*“sostituisceŽ¡‘il–¨Ùnormale“bacš¸èkup“del“sistema.‘l¬Quindi“sappiate“cosa“state“facendo,‘½Èfate“sempre“delle“pro˜v˜e,‘½Èstate“sulŽ¡‘c•¸èhi‘U viv“e!ŽŸ(jüÀ1Ž‘ÁInctropœduzioneŽŸ1‘ 9b¹1.ŽŽŽ‘ÁD¹:–U Cosa“€è“RAID?Ž©ç(‘=ÿÁR¹:–<¼RAID‘<€sta“pGer“Redundanš¸èt“Arra˜y“of“InexpGensiv˜e“Disks,‘v£un“mošGdo“p˜er“creare“un“sot-Ž¡‘/tosistema–Kdi“discš¸èhi“v˜eloGce“e“adabile“da“una“serie“di“disc˜hi“singoli.‘SaNel“mondo“dei“PC‘JÖIŽ¡‘/€è›®”div•¸èen“tata˜iniziale˜di˜IndipGenden“t,‘Äñmen“tre˜il˜mercato˜con“tin“ua˜a˜dierenziare˜IDE‘®}e˜SCSI.Ž¡‘/Nel–µ4suo“signicato“originale“I‘µsignicaš¸èv‘ÿqÐa“InexpGensiv˜e“(a“basso“costo.‘‘¼ndt)“se“comparato“adŽ¡‘/un–TXmainframe“3380“Dš¸èASD“grande“quan˜to“un“refrigeratore,‘T€dei“driv˜e“mostruosi“c˜he“facev‘ÿqÐanoŽ¡‘/sem•¸èbrare›U economic“he˜le˜b•Gelle˜case˜e˜rob“etta˜gli˜anelli˜di˜diaman¸ète.Ž¦‘ 9b2.ŽŽŽ‘ÁD¹:–U Cos'€è“questo“doGcumen¸èto?Ž¦‘=ÿÁR¹:–ßöQuesto“doGcumenš¸èto“€è“un“tutorial/HO˜WTO/F‘þã A˜Q‘ßØpGer“gli“uten˜ti“delle“estensioni“MD‘ßØdelŽ¡‘/kš¸èernel–£di“Lin˜ux,‘Þdei“tošGols“ad“esse“asso˜ciati“e“sul“loro“uso.‘º Le“estensioni“MD‘‡implemen¸ètanoŽ¡‘/RAID-0– .(striping),›8±RAID-1“(mirroring),˜RAID-4“e“RAID-5“tramite“soft•¸èw“are.‘“©Con– .le“MD,Ž¡‘/non–d6sono“cos€ì“ricš¸èhiesti“hardw˜are“o“con˜troller“spšGeciali“p˜er“ottenere“molti“dei“b˜eneci“dellaŽ¡‘/tecnologia–ÉRAID.“Questo“doGcumenš¸èto“ÁNON‘yÀȑµ¹un'in˜troGduzione“alla“tecnologia“RAID;“questaŽ¡‘/doš¸èvrete–U cercarla“da“qualc˜he“altra“parte.Ž¦‘ 9b3.ŽŽŽ‘ÁD¹:–U Quali“livš¸èelli“di“RAID“implemen˜ta“il“k˜ernel“di“Lin˜ux?Ž¦‘=ÿÁR¹:–èvStriping“(RAID-0)“e“la“concatenazione“lineare“sono“parte“dei“k¸èernel“della“serie“2.x.‘MGLaŽ¡‘/qualit€à–ƒödi“questo“cošGdice“€è“buona“(pro˜duction“qualit¸èy);‘›a€è“b˜en“compreso“e“b˜en“aggiornato.‘þ€ÈŽ¡‘/usato–U in“divš¸èersi“grandi“USENET“news“serv˜er.Ž¡‘=ÿRAID-1,‘ ^RAID-4–²e“RAID-5“sono“parte“del“kš¸èernel“dalla“v˜ersione“2.1.63“in“pGoi.‘ˆ|P˜er“iŽ¡‘/kš¸èernel–ƒdelle“serie“2.0.x“e“2.1.x“,‘Œœvi“sono“patc˜h“c˜he“forniscono“questa“funzione.‘öªNon“sen˜titeviŽ¡‘/obbligati–e»ad“aggiornare“il“kš¸èernel“alla“v˜ersione“2.1.63;‘n l'aggiornamen˜to“del“k˜ernel“€è“dicile;‘n €èŽ¡‘/*molto*–ùàpi€ù“facile“applicare“una“patcš¸èh“ad“un“k˜ernel“preceden˜te.‘SLa“maggioranza“degli“uten˜tiŽ¡‘/di–qßRAID‘qØutilizza“kš¸èernel“2.0.x,‘yed“€è“su“queste“v˜ersioni“c˜he“si“€è“fošGcalizzato“lo“svilupp˜o“storicoŽ¡‘/della–ÕŒtecnologia“RAID.“Al“momenš¸èto“queste“implemen˜tazioni“sono“da“considerarsi“in“stadioŽ¡‘/di–žicošGdice“quasi“di“buona“qualit€à;‘à non“ci“sono“bug“noti“ma“ci“sono“dei“lati“p˜o˜co“sosticati“eŽ¡‘/dei–âåsetup“di“sistema“non“testati.‘KmSono“comš¸èunque“molti“gli“uten˜ti“c˜he“usano“il“Soft˜w˜are“RAIDŽ¡‘/in–U un“am•¸èbien“te–U di“la•¸èv“oro.ŽŽŽŒ‹ … Û_2 ý ~?Ÿ„€ÕÁGŽÁ1.‘ñ8In®>troQÂduzione’~¯œ¹3ŽŽ ÕÁ ýV¯‘=ÿLa–™:funzionalit€à“RAID-1“hot“reconstruction“€è“stata“recen•¸ètemen“te›™:in“troGdotta˜(Agosto˜1997)Ž¤ ®‘/e–ÄØdev¸èe“essere“considerata“in“stadio“di“alfa“testing.‘AhLa“funzionalit€à“RAID-5“hot“reconstructionŽ¡‘/sar€à–U in“alfa“test“prima“o“pGoi.Ž¡‘=ÿUna–4parola“v‘ÿqÐa“spšGesa“sulla“prudenza“da“usare“con“i“k¸èernel“di“svilupp˜o“della“serie“2.1.x:Ž¡‘/questi– cmmi10µ<“Âulmo@Q.Net“µ>Ž¦‘7³2¸ŽŽŽ‘A³3¹Luca–U Berra“µ<“Âbluc–ÿ}/a@c“ome“dia.it‘U µ>ŽŽŽŒ‹à Û_2 ý ~?Ÿ„€ÕÁGŽÁ2.‘ñ8Considerazioni–Õsu“RAID’D‘¹4ŽŽ ÕÁ ýV¯‘7³2¸ŽŽŽ‘A³3¹Brian–U Candler“µ<“ÂB.Cand‘‚Ðler@p–ÿ}/ob“ox.c“om‘U µ>Ž¤š‘7³2¸ŽŽŽ‘A³3¹Boh¸èumil–U Chalupa“µ<“Âb–ÿ}/o“chal@ap“ol‘‚Ðlo.karlov.m.cuni.cz‘U µ>Ž¡‘7³2¸ŽŽŽ‘A³3¹Rob–U Hagopian“µ<“Âhagopiar@vu.union.e‘ÿ}/du“µ>Ž¡‘7³2¸ŽŽŽ‘A³3¹An•¸èton›U Hristozo“v˜µ<˜Âanton@intr–ÿ}/ansc“o.c“om˜µ>Ž¡‘7³2¸ŽŽŽ‘A³3¹Miguel–U de“Icaza“µ<“Âmiguel@luthien.nucle‘ÿ}/cu.unam.mx“µ>Ž¡‘7³2¸ŽŽŽ‘A³3¹Marco–U Meloni“µ<“Âtonno@stud.unip‘ÿ}/g.it“µ>Ž¡‘7³2¸ŽŽŽ‘A³3¹Ingo–U Molnar“µ<“Âmingo@p‘ÿ}/c7537.hil.siemens.at“µ>Ž¡‘7³2¸ŽŽŽ‘A³3¹Alvin–U Oga“µ<“Âalvin@planet.fef.c‘ÿ}/om“µ>Ž¡‘7³2¸ŽŽŽ‘A³3¹Gadi–U Oxman“µ<“Âgadio@netvision.net.il“µ>Ž¡‘7³2¸ŽŽŽ‘A³3¹V‘ÿ*¸aughan–U Pratt“µ<“Âpr–ÿ}/att@cs.Stanfor“d.EDU‘U µ>Ž¡‘7³2¸ŽŽŽ‘A³3¹Stev¸èen–U A.“Reisman“µ<“Âsar@pr–ÿ}/essenter.c“om‘U µ>Ž¡‘7³2¸ŽŽŽ‘A³3¹Mic•¸èhael›U Robin“ton˜µ<˜Âmichael@bzs.or‘ÿ}/g˜µ>Ž¡‘7³2¸ŽŽŽ‘A³3¹Martin›U Sc•¸èh“ulze˜µ<˜Âjo–ÿ}/ey@nlandia.info“dr“om.north.de˜µ>Ž¡‘7³2¸ŽŽŽ‘A³3¹Geo–U Thompson“µ<“Âge‘ÿ}/ot@cs.waikato.ac.nz“µ>Ž¡‘7³2¸ŽŽŽ‘A³3¹Edw¸èard–U W‘ÿ*¸elbGon“µ<“Âwelb–ÿ}/on@b“ga.c“om‘U µ>Ž¡‘7³2¸ŽŽŽ‘A³3¹RoGd–U Wilk¸èens“µ<“Ârwilkens@b–ÿ}/or“der.net‘U µ>Ž¡‘7³2¸ŽŽŽ‘A³3¹Johan–U Wiltink“µ<“Âj.m.wiltink@pi.net“µ>Ž¡‘7³2¸ŽŽŽ‘A³3¹Leonard–U N.“Zubk¸èo“µ<“Âlnz@dandelion.c‘ÿ}/om“µ>Ž¡‘7³2¸ŽŽŽ‘A³3¹Marc–U ZYNGIER“µ<“Âzyngier@ufr-info-p7.ibp.fr“µ>Ž¡‘=ÿÁCop•®>yrigh“tŽ¡‘7³2¸ŽŽŽ‘A³3¹Cop•¸èyrigh“t–U (C)“1994-96“Marc“ZYNGIERŽ¡‘7³2¸ŽŽŽ‘A³3¹Cop•¸èyrigh“t–U (C)“1997“Gadi“Oxman,“Ingo“Molnar,“Miguel“de“IcazaŽ¡‘7³2¸ŽŽŽ‘A³3¹Cop•¸èyrigh“t–U (C)“1997,“1998“Linas“V‘ÿ*¸epstasŽ¡‘7³2¸ŽŽŽ‘A³3¹Secondo–ÈJle“leggi“sul“cop•¸èyrigh“t,‘%i›ÈJcop“yrigh“t˜sulle˜rimanen“ti˜parti˜sono˜implicitamen“teŽ¤ ®‘A³3di–ôcoloro“cš¸èhe“hanno“con˜tribuito“a“questo“doGcumen˜to“e“c˜he“sono“stati“preceden˜temen˜teŽ¡‘A³3menzionati.ŽŸš‘=ÿGrazie–U a“tutti“di“essere“qui!ŽŸ(¦`À2Ž‘ÁConsiderazioni–G\su“RAIDŽŸv‘ 9b¹1.ŽŽŽ‘ÁD¹:–U Cosa“€è“RAID?“P•¸èerc“h€é–U mai“do¸èvrei“usarlo?ŽŸq!‘=ÿÁR¹:–®JRAID‘® €è“una“maniera“pGer“comš¸èbinare“div˜ersi“disk“driv˜e“in“una“singola“unit€à,‘Ϩin“moGdo“daŽ¡‘/aumenš¸ètare–˜le“prestazioni“e/o“l'adabilit€à.‘:$Vi“sono“div˜ersi“tipi“e“implemen˜tazioni“di“RAID,Ž¡‘/ognš¸èuna–æ¯con“i“suoi“v‘ÿqÐan˜taggi“e“sv‘ÿqÐan˜taggi.‘&,P˜er“esempio,‘ mettendo“una“copia“degli“stessi“datiŽ¡‘/su–vdue“discš¸èhi“(cosa“c˜hiamata“Ádisk‘¡mirroring¹,‘2Ëo“RAID‘Hliv˜ello“1),‘2Ële“prestazioni“in“letturaŽ¡‘/pGossono–nßessere“migliorate“leggendo“alternativ‘ÿqÐamen¸ète“da“ogni“disco“nel“sistema“di“mirror.‘¾¾InŽ¡‘/media–Yogni“disco“€è“meno“ošGccupato“p˜oicš¸èh€é“eettua“solo“1/2“(nel“caso“di“2“disc˜hi)“o“1/3“(nelŽ¡‘/caso–°wdi“tre“discš¸èhi“e“cos€ì“via)“delle“letture“ric˜hieste.‘:In“pi€ù“un“sistema“di“mirror“pu€ò“aumen˜tareŽ¡‘/l'adabilit€à:‘Ð se–„fun“disco“si“rompGe,‘7gli“altri“discš¸èhi“con˜tengono“una“copia“dei“dati.‘ÿRDieren˜tiŽ¡‘/maniere–di“comš¸èbinare“pi€ù“disc˜hi“in“uno,‘‰|dette“Áliv®>elli‘DRAID¹,“pšGossono“fornire“una“sup˜erioreŽ¡‘/capacit€à–kdi“immagazzinamen¸èto“dei“dati“del“semplice“mirroring,‘(o“pGossono“alterare“i“tempi“diŽ¡‘/attesa–¤(tempi“di“accesso),›·Ño“il“throughput“(transfer“rate),˜nella“lettura“o“scrittura,˜orendoŽ¡‘/comš¸èunque–Sla“ridondanza“c˜he“risulta“utile“in“caso“di“malfunzionamen˜ti.‘ÁAnc®>he–ž“se“RAIDŽ¡‘/pu€ò–µIproteggere“da“ev•®>en“tuali›µImalfunzionamen“ti˜del˜disco,‘»¥non˜protegge˜da˜erroriŽ¡‘/dell'opQÂeratore–®-e“dell'“amministratore“(errori“umani),‘µõo“da“errori“do®>vuti“a“bug“diŽ¡‘/programmazione–S@(forse“doš®>vuti“anc˜he“ad“errori“nello“stesso“soft˜w˜are“RAID).“LaŽŽŽŒ‹-  Û_2 ý ~?Ÿ„€ÕÁGŽÁ2.‘ñ8Considerazioni–Õsu“RAID’D‘¹5ŽŽ ÕÁ ýV¯‘/Árete–BabbQÂonda“di“storie“tragicš®>he“di“amministratori“di“sistema“c˜he“hanno“installatoŽ¤ ®‘/RAID›/ôe–0hanno“pQÂerso“tutti“i“loro“dati.‘å"RAID˜non“sostituisce“un“bacš®>kup“frequen˜teŽ¡‘/e–Õregolarmen®>te“programmato.Ž¡‘=ÿ¹RAID‘Zpu€ò–‡essere“implemenš¸ètato“via“hardw˜are,‘0aattra˜v˜erso“spGeciali“con˜troller“di“disc˜hi,‘0aoŽ¡‘/via›k¯soft•¸èw“are,‘±Rcome˜un˜moGdulo˜del˜k“ernel˜c“he˜si˜in“terpGone˜tra˜i˜driv“er˜di˜basso˜liv“ello˜deiŽ¡‘/discš¸èhi–¾e“il“le“system.‘¬!L'hardw˜are“RAID‘½åconsiste“com˜unque“di“un“con˜troller“di“disc˜hi,‘Ø8unaŽ¡‘/pšGeriferica–¯alla“quale“si“p˜ossono“collegare“i“disk“driv•¸èe.‘*[Usualmen“te–¯si“presenš¸èta“come“una“sc˜hedaŽ¡‘/cš¸èhe–=si“pu€ò“connettere“su“uno“slot“ISA/EISA/PCI/S-Bus/MicroChannel.‘®ØT‘ÿ*¸utta˜via“qualc˜heŽ¡‘/conš¸ètroller–˜JRAID‘˜9€è“fatto“pGer“connettersi“a“met€à“del“ca˜v˜o“c˜he“collega“il“normale“con˜troller“aiŽ¡‘/discš¸èhi.‘F?Quelli–ñ`piccoli“pGossono“en˜trare“nell'alloggiamen˜to“di“un“driv˜e;‘?€quelli“grandi“pGossonoŽ¡‘/essere–Œùinstallati“in“un“loro“cabinet“con“i“loro“alloggiamenš¸èti“pGer“disc˜hi“e“una“loro“alimen˜tazione.Ž¡‘/Il–Òîpi€ù“recenš¸ète“hardw˜are“RAID‘ÒÍusato“con“le“ultime“e“pi€ù“v˜eloGci“CPU‘ÒÍfornir€à“probabilmen˜teŽ¡‘/la–Ø\migliore“pšGerformance,‘9+ad“un“prezzo“com¸èunque“abbastanza“alto.‘û4Questo“p˜erc¸èh€é“moltiŽ¡‘/con•¸ètroller›YQRAID‘Y con“tengono˜un˜DSP‘Y e˜della˜memoria˜cac“he˜c“he˜pGermette˜di˜togliere˜unaŽ¡‘/fetta–pçconsiderev¸èole“di“carico“alla“CPU,“e“pGermettono“un“alto“transfer“rate“grazie“alla“ampiaŽ¡‘/memoria–Ð9cacš¸èhe“del“con˜troller.‘âÊIl“v˜ecc˜hio“hardw˜are“RAID‘Ðpu€ò“agire“come“freno“del“sistemaŽ¡‘/se–ŸÑusato“con“le“n•¸èuo“v“e–ŸÑCPU:“i“v•¸èecc“hi–ŸÑDSP‘Ÿ{e“memorie“cac¸èhe“fanno“da“collo“di“bGottiglia“eŽ¡‘/la–a«pšGerformance“globale“€è“sp˜esso“sup˜erata“da“quella“del“semplice“RAID‘a¨soft•¸èw“are–a«e“dai“n•¸èuo“vi,Ž¡‘/normalissimi,‘º†con•¸ètroller.‘1Il›“ßRAID‘“®implemen“tato˜via˜hardw“are˜pu€ò˜essere˜v‘ÿqÐan“taggioso˜rispGettoŽ¡‘/a–âÌquello“via“soft•¸èw“are–âÌse“pu€ò“far“uso“della“sincronizzazione“dei“disc¸èhi“e“pu€ò“sapšGere“la“p˜osizioneŽ¡‘/della–Òxtestina“del“disco“rispšGetto“al“blo˜cco“del“disco“desiderato.‘釀ȑÒWv¸èero“p˜er€ò“cš¸èhe“molti“disc˜hiŽ¡‘/moGderni–}©(a“basso“costo)“non“orono“questi“livš¸èelli“di“informazione“e“con˜trollo“sulla“loro“attivit€àŽ¡‘/e–—quindi“molto“hardwš¸èare“RAID‘ˆnon“ne“trae“v‘ÿqÐan˜taggio.‘]¨L'hardw˜are“RAID‘ˆdi“div˜erse“marc˜he,Ž¡‘/vš¸èersioni–Æ”e“moGdelli“€è“normalmen˜te“incompatibile.‘AüSe“un“con˜troller“RAID‘Æpsi“rompGe,‘ãdev˜e“essereŽ¡‘/rimpiazzato–|¼da“un“altro“conš¸ètroller“dello“stesso“tipGo.‘èSAl“momen˜to“della“stesura“di“questoŽ¡‘/doGcumenš¸èto–é€(giugno“1998)“un'ampia“gamma“di“con˜troller“hardw˜are“funzioner€à“sotto“Lin˜ux;Ž¡‘/in–ñtogni“caso“nessuno“di“questi“viene“vš¸èenduto“con“delle“utilit€à“di“congurazione“e“gestione“c˜heŽ¡‘/funzionino–U sotto“Lin¸èux.Ž¡‘=ÿSoft•¸èw“are-RAID‘„`€è–„®formato“da“un“set“di“moGduli“del“k•¸èernel,‘Бcom“binato–„®con“delle“utilit€àŽ¡‘/di–ˆ¤gestione“cš¸èhe“implemen˜tano“RAID‘ˆ—solamen˜te“tramite“soft˜w˜are“e“non“ric˜hiedono“hardw˜areŽ¡‘/spGeciale.‘.gIl–”sottosistema“RAID‘”di“Linš¸èux“€è“implemen˜tato“come“strato“del“k˜ernel“c˜he“si“pGoneŽ¡‘/tra– Pi“drivš¸èer“a“basso“liv˜ello“dei“disc˜hi“(pGer“disc˜hi“IDE,“SCSI‘ to“della“stesura“di“questo“testo“(giugno“1998)“la“gestione“del“RAIDŽ¡‘/sotto–t«Linš®>ux“non“€è“aatto“banale,‘œed“€è“una“buona“pro˜v‘ÿ\|a“anc˜he“pšQÂer“degli“esp˜er-Ž¡‘/ti–‰'amministratori“di“sistema.›8LLa“teoria“delle“opQÂerazioni“€è“complessa.˜I‘ˆøtoQÂol“diŽ¡‘/sistema–Šjricš®>hiedono“moQÂdic˜he“agli“script“di“a˜vvio.‘<Riprendere“il“con˜trollo“dellaŽ¡‘/situazione–!dopšQÂo“un“malfunzionamen®>to“del“disco“€è“un'op˜erazione“complessa“c®>heŽ¡‘/agevš®>ola–,l'errore“umano.‘ "…RAID‘,7non“€è“pQÂer“i“no˜vizi,‘‚med“ogni“bQÂenecio“c˜he“pu€òŽ¡‘/appQÂortare–<ôall'adabilit€à“e“alle“prestazioni“pu€ò“essere“facilmenš®>te“con˜trobilanciatoŽŽŽŒ‹<œ Û_2 ý ~?Ÿ„€ÕÁGŽÁ2.‘ñ8Considerazioni–Õsu“RAID’D‘¹6ŽŽ ÕÁ ýV¯‘/Áda–ÇŽuna“maggiore“complessit€à.‘ó‚In“realt€à“i“moQÂderni“discš®>hi“sono“incredibilmen˜teŽ¤ ®‘/adabili–Ãe“le“moQÂderne“CPU‘“e“i“conš®>troller“sono“v˜eramen˜te“pQÂoten˜ti.‘ÜYSi“pQÂossono“ot-Ž¡‘/tenere–Èpi€ù“facilmenš®>te“i“liv˜elli“di“prestazione“e“l'adabilit€à“desiderate“acquistandoŽ¡‘/hardwš®>are–Õdi“alta“qualit€à“e/o“pi€ù“v˜eloQÂceŽ¤®‘ 9b¹2.ŽŽŽ‘ÁD¹:–U Cosa“sono“i“livš¸èelli“RAID?“P˜erc˜h€é“cos€ì“tan˜ti?‘q€Cosa“li“distingue?Ž¡‘=ÿÁR¹:–ÈÆDierenš¸èti“liv˜elli“RAID‘È£hanno“prestazioni,–äØridondanza,“capacit€à–ÈÆdi“immagazzinamen˜to,Ž¤ ®‘/adabilit€à–œõe“costi“dieren¸èti.‘IMolti,›îëma“non“tutti,˜i“liv¸èelli“RAID‘œ¡orono“ridondanza“pGerŽ¡‘/cautelarsi–âšconš¸ètro“i“malfunzionamen˜ti“dei“disc˜hi.‘ïDi“quelli“c˜he“implemen˜tano“la“ridondanzaŽ¡‘/RAID-1–'þe“RAID-5“sono“i“pi€ù“p•Gop“olari.‘buRAID-1–'þore“migliori“prestazioni“men¸ètre“RAID-5“unŽ¡‘/uso–íopi€ù“ecienš¸ète“dello“spazio“disco“a“dispGosizione.‘NðCom˜unque“cercare“la“migliore“prestazioneŽ¡‘/€è–ˆuna“cosa“completamenš¸ète“dieren˜te“pGoic˜h€é“la“pšGerformance“dip˜ende“fortemen¸ète“da“un'ampiaŽ¡‘/gamma–£Ûdi“fattori,›÷Šdal“tipGo“di“applicazione“alle“dimensioni“delle“strisce,˜dei“bloGcc¸èhi“e“deiŽ¡‘/le.‘½ÛGli–>aspšGetti“pi€ù“dicoltosi“della“ricerca“della“migliore“p˜erformance“sono“rimandati“adŽ¡‘/una–¥sezione“di“questo“HO•¸èWTO‘šc“he›¥v“edremo˜dopGo.‘ñQuan“to˜segue˜descriv“e˜i˜dieren“ti˜liv“elliŽ¡‘/RAID–U nel“conš¸ètesto“dell'implemen˜tazione“su“Lin˜ux“del“Soft˜w˜are“RAID.ŽŸ®‘7³2¸ŽŽŽ‘A³3ÁRAID-linear–N¹€è“una“semplice“concatenazione“di“partizioni“c¸èhe“creano“una“pi€ù“ampiaŽ¡‘A³3partizione–ÚÄvirtuale.‘k€È‘Ú¡utile“se“si“ha“un“certo“nš¸èumero“di“piccoli“disc˜hi“e“si“vuole“creareŽ¡‘A³3una–Ýunica,‘ŸÍgrande“partizione.‘$¸Questa“concatenazione“non“ore“ridondanza“ed“in“eettiŽ¡‘A³3dimin¸èuisce–ÕCl'adabilit€à“globale;‘•Tla“partizione“cos€ì“creata“smetter€à“di“funzionare“nonŽ¡‘A³3appGena–U un“solo“disco“si“ro¸èvina.Ž©®‘7³2¸ŽŽŽ‘A³3ÁRAID-1–Ú¼¹€è“cš¸èhiamato“anc˜he“mirroring.‘H´Due“(o“pi€ù)“partizioni,‘ó7tutte“della“stessa“grandez-Ž¡‘A³3za,‘˜ëconš¸ètengono–X)ciascuna“una“copia“degli“stessi“dati“c˜he“risultano“dispGosti“nella“stessaŽ¡‘A³3maniera–³sulle“due“partizioni“(in“inglese“disk-bloGcš¸èk“b˜y“disk-bloGc˜k.–\ndt).“Il–³mirroring“oreŽ¡‘A³3una–íforte“protezione“conš¸ètro“i“malfunzionamen˜ti“dei“disc˜hi:‘Tæse“un“disco“si“rompGe“se“ne“haŽ¡‘A³3un–¨altro“con“gli“stessi“dati.‘jVIl“mirroring“pu€ò“anc¸èhe“migliorare“le“prestazioni“in“sistemiŽ¡‘A³3I/O‘Ñladen–â(con“grossi“caricš¸èhi“di“input-output.‘[ndt)“pGoic˜h€é“le“ric˜hieste“di“lettura“pGossonoŽ¡‘A³3essere–œÚdivise“su“pi€ù“disc•¸èhi.‘H¯Sfortunatamen“te–œÚil“mirroring“€è“il“meno“ecien¸ète“in“materiaŽ¡‘A³3di–Ž8capacit€à“di“immagazzinamen¸èto:‘ã°due“partizioni“in“mirroring“pGosso“immagazzinare“gliŽ¡‘A³3stessi–U dati“di“una.Ž¦‘7³2¸ŽŽŽ‘A³3ÁStriping–;¹€è“l'idea“cš¸èhe“sta“dietro“a“tutti“gli“altri“liv˜elli“RAID.“Una“striscia“(in“ingleseŽ¡‘A³3stripšGe–c×da“cui“il“nome“di“striping.‘¦ndt)“€è“una“sequenza“con•¸ètin“ua–c×di“blo˜cc¸èhi“del“disco.Ž¡‘A³3Una– striscia“pu€ò“essere“cos€ì“corta“da“conš¸ètenere“un“solo“bloGcco“disco“o“pu€ò“con˜tenerneŽ¡‘A³3cen•¸ètinaia.‘`ÉI›"îdriv“er–"ûRAID˜dividono“le“partizioni“in“strisce;‘3²i“v‘ÿqÐari“liv¸èelli“RAID˜dierisconoŽ¡‘A³3nella–maniera“di“organizzare“le“strisce“e“nei“dati“c¸èhe“vi“memorizzano.‘Ã$Il“rappGorto“traŽ¡‘A³3le–9dimensioni“delle“strisce,‘?la“grandezza“pi€ù“ricorren¸ète“dei“le“nel“le“system“e“la“loroŽ¡‘A³3dispGosizione–1 nel“disco“€è“quello“c¸èhe“determina“le“prestazioni“globali“di“un“sottosistemaŽ¡‘A³3RAID.Ž¦‘7³2¸ŽŽŽ‘A³3ÁRAID-0–bV¹€è“molto“simile“a“RAID-linear,‘e¤tranne“pGer“il“fatto“cš¸èhe“le“partizioni“c˜he“lo“com-Ž¡‘A³3pGongono–s%v¸èengono“divise“in“strisce“e“quindi“suddivise.‘ËCome“nel“caso“del“RAID-linear“ilŽ¡‘A³3risultato– €è“una“singola“partizione“virtuale.‘Y~Ancora“come“RAID-linear,‘RAID-0“non“oreŽ¡‘A³3ridondanza–"}diminš¸èuendo“quindi“l'adabilit€à“globale:‘X/il“malfunzionamen˜to“di“un“solo“dis-Ž¡‘A³3co–2¼mette“fuori“uso“tutto.‘f SpšGesso“si“crede“c¸èhe“RAID-0“abbia“prestazioni“migliori“risp˜ettoŽ¡‘A³3a– ©RAID-linear.‘ÔQuesto“pu€ò“essere“o“non“essere“vš¸èero,‘SŒdipGendendo“dalle“caratteristic˜heŽ¡‘A³3del–CŠle“system,‘Gdalla“grandezza“pi€ù“frequen¸ète“dei“le“comparata“con“la“dimensione“delleŽ¡‘A³3strisce–a‰e“dal“tipšGo“di“carico“a“cui“€è“sottop˜osto.‘–¼Il“le“system“ºext2fs“¹disp˜one“i“le“inŽ¡‘A³3una–ªpartizione“in“moGdo“da“diminš¸èuire“la“frammen˜tazione.‘WYCos€ì,›[pGer“semplicit€à,˜ogni“datoŽ¡‘A³3accesso–ånpu€ò“essere“indirizzato“ad“uno“o“pi€ù“disc¸èhi“e“quindi“la“suddivisione“delle“strisce“suŽ¡‘A³3pi€ù–& discš¸èhi“non“ore“un“v‘ÿqÐan˜taggio“apparen˜te.‘aÏCom˜unque“sia“vi“sono“delle“dierenze“nelleŽ¡‘A³3prestazioni,–U dipGendenš¸èti“dai“dati,“dal“carico“di“la˜v˜oro“e“dalla“dimensione“delle“strisce.ŽŽŽŒ‹R{ Û_2 ý ~?Ÿ„€ÕÁGŽÁ3.‘ñ8Considerazioni–Õsul“setup“e“sull'installazione’äõª¹7ŽŽ ÕÁ ýV¯‘7³2¸ŽŽŽ‘A³3ÁRAID-4–a¹suddivide“in“strisce“come“RAID-0,‘¯rma“ricš¸èhiede“una“partizione“aggiun˜tiv‘ÿqÐa“pGerŽ¤ ®‘A³3memorizzare–‚le“informazioni“sulla“parit€à.‘‚¦La“parit€à“€è“usata“pGer“orire“ridondanza“suiŽ¡‘A³3dati:‘[se–(/un“disco“si“roš¸èvina“i“dati“sui“disc˜hi“rimanen˜ti“pšGossono“essere“usati“p˜er“ricostruireŽ¡‘A³3quelli–spcš¸èhe“erano“sul“disco“rotto.‘ÌqDati“N‘shdisc˜hi“di“dati“e“un“disco“di“parit€à,‘{la“striscia“diŽ¡‘A³3parit€à–¶§€è“computata“prendendo“una“striscia“da“ognš¸èuno“dei“disc˜hi“di“dati“ed“eettuandoŽ¡‘A³3un–^ Xš¸èOR‘^ tra“di“esse.‘ŒFQuindi“la“capacit€à“di“memorizzazione“di“una“serie“di“(N+1)“disc˜hiŽ¡‘A³3RAID-4–¡.€è“N,“molto“meglio“del“mirroring“di“(N+1)“disc¸èhi“e“buona“come“un“setup“RAID-0,Ž¡‘A³3pšGer–ÎMN‘Î+grande.‘DDa“notare“c¸èhe“p˜er“N=1“vi“€è“un“disco“di“dati“e“un“disco“di“parit€à“e“RAID-4Ž¡‘A³3somiglia–œ¸molto“al“mirroring,‘Á™nel“quale“ognš¸èuno“dei“due“disc˜hi“€è“la“copia“dell'altro.‘4RAID-4Ž¡‘A³3ÁNON‘£u¹ore–£‰le“prestazioni“in“lettura/scrittura“del“mirroring“ed“anzi“la“sua“pGerformanceŽ¡‘A³3in–†”scrittura“€è“considerev•¸èolmen“te–†”pGeggiore.‘ÛIn“brevš¸èe“questo“accade“a“causa“del“fatto“c˜heŽ¡‘A³3l'aggiornamenš¸èto–¨Üdella“parit€à“ric˜hiede“la“lettura“della“v˜ecc˜hia“parit€à“prima“c˜he“la“n˜uo˜v‘ÿqÐaŽ¡‘A³3parit€à–PÔvš¸èenga“calcolata“e“scritta.‘pIn“am˜bien˜ti“con“un“grosso“carico“di“scrittura“il“disco“diŽ¡‘A³3parit€à–ûpu€ò“div•¸èen“tare–ûun“collo“di“bšGottiglia“p˜oic¸èh€é“ogni“pro˜cesso“di“scrittura“dev¸èe“accedereŽ¡‘A³3al–U disco“di“parit€à.Ž©®‘7³2¸ŽŽŽ‘A³3ÁRAID-5–û¹evita“il“collo“di“bGottiglia“in“scrittura“di“RAID-4“memorizzando“la“striscia“diŽ¡‘A³3parit€à–FUsu“ognš¸èuno“dei“disc˜hi.‘l’Ovviamen˜te“la“prestazione“in“scrittura“non“€è“ancora“buonaŽ¡‘A³3come–6quella“del“mirroring,‘P{visto“cš¸èhe“la“striscia“di“parit€à“dev˜e“anc˜he“qui“essere“letta“eŽ¡‘A³3devš¸èe–<esservi“eettuato“lo“X˜OR‘;ãprima“c˜he“sia“scritta.‘&{Anc˜he“la“prestazione“in“letturaŽ¡‘A³3non–›€è“buona“come“quella“del“mirroring“p•Goic¸èh€é,›¬dop“o–›tutto,˜vi“€è“una“sola“copia“dei“datiŽ¡‘A³3e–TÌnon“due“o“pi€ù.‘qdIl“v‘ÿqÐanš¸ètaggio“principale“di“RAID-5“sul“mirroring“€è“c˜he“ore“ridondanzaŽ¡‘A³3e–Šnprotezione“nel“caso“di“malfunzionamen¸èto“di“un“solo“disco,‘—Áe“allo“stesso“tempGo“ha“unaŽ¡‘A³3capacit€à–U di“memorizzazione“molto“pi€ù“alta“quando“€è“usato“con“tre“o“pi€ù“driv¸èe.Ž¦‘7³2¸ŽŽŽ‘A³3ÁRAID-2–‰òe“RAID-3–ǹsono“usati“raramenš¸ète,‘ Ùe“sono“stati“in“qualc˜he“maniera“resi“obsoletiŽ¡‘A³3dalla–àýmoGderna“tecnologia“dei“disc¸èhi.‘RAID-2“€è“simile“a“RAID-4,‘ôma“memorizza“infor-Ž¡‘A³3mazioni–ß)ECC‘ß al“pšGosto“della“parit€à.‘J.P•¸èoic“h€é–ß)tutti“i“disc¸èhi“mo˜derni“incorp˜orano“sotto“sottoŽ¡‘A³3un–ÊÔconš¸ètrollo“ECC,“il“v‘ÿqÐan˜taggio“€è“minimo.‘Ò›RAID-2“pu€ò“dare“una“maggiore“coGerenza“aiŽ¡‘A³3dati–ú)se“viene“a“mancare“la“correnš¸ète“men˜tre“€è“in“corso“un'opšGerazione“di“scrittura;‘{p˜er€ò“unŽ¡‘A³3gruppGo–ŒDdi“con•¸ètin“uit€à–ŒDe“uno“sh•¸èutdo“wn–ŒDpulito“danno“gli“stessi“v‘ÿqÐan¸ètaggi.‘ëRAID-3“€è“simileŽ¡‘A³3a–aURAID-4“tranne“pšGer“il“fatto“c¸èhe“usa“la“minore“grandezza“p˜ossibile“p˜er“le“strisce.‘–IlŽ¡‘A³3risultato–Lm€è“cš¸èhe“ogni“opGerazione“di“lettura“in˜teressa“tutti“i“disc˜hi,‘N*facendo“div˜en˜tare“di-Ž¡‘A³3cile/imp•Gossibile› so“ddisfare˜ric•¸èhieste˜di˜I/O‘ õcon“tempGoranee.‘YxP“er˜evitare˜il˜ritardo˜do“vutoŽ¡‘A³3alla–ãlatenza“rotazionale“RAID-3“ricš¸èhiede“c˜he“la“rotazione“di“tutti“i“disc˜hi“pGossa“essereŽ¡‘A³3sincronizzata.‘?¯Molto–™Úhardw¸èare“mošGderno“non“disp˜one“della“capacit€à“di“sincronizzazioneŽ¡‘A³3o,›:Jse–3•ne“dispGone,˜mancano“i“connettori“necessari,˜i“caš¸èvi“e“la“doGcumen˜tazione“di“c˜hi“lo“haŽ¡‘A³3prošGdotto.‘¢®N€é–/RAID-2“n€é“RAID-3“sono“liv¸èelli“RAID‘ÿsupp˜ortati“dai“drivš¸èer“di“Soft˜w˜areŽ¡‘A³3RAID–U pGer“Lin¸èux.Ž¦‘7³2¸ŽŽŽ‘A³3ÁAltri–ñliv®>elli“RAID‘2¹sono–Astati“deniti“da“v‘ÿqÐari“ricercatori“e“proGduttori.‘âMolti“di“questiŽ¡‘A³3non–€Âsono“altro“cš¸èhe“la“so˜vrappšGosizione“di“un“tip˜o“di“raid“su“un“altro.‘ôgQualcuno“ric¸èhiedeŽ¡‘A³3dell'hardwš¸èare–“²spGeciale“e“altri“sono“protetti“da“brev˜etto.‘-6Non“vi“€è“una“nomenclaturaŽ¡‘A³3univ•¸èersalmen“te–¥accettata“pGer“questi“altri“liv•¸èelli.‘]A‘–v“olte–¥i“v‘ÿqÐan¸ètaggi“di“questi“altri“sistemiŽ¡‘A³3sono–Xšpiccoli“o“almeno“non“appaiono“ncš¸èh€é“il“sistema“non“€è“sottopGosto“ad“un“alto“liv˜elloŽ¡‘A³3di–nstress.‘]ïEccettuata“la“soš¸èvrappGosizione“di“RAID-1“su“RAID-0/linear,‘&+il“Soft˜w˜are“RAIDŽ¡‘A³3pGer–U Linš¸èux“non“consen˜te“nessuna“di“queste“altre“v‘ÿqÐariazioni.ŽŸ(ÀœÀ3Ž‘ÁConsiderazioni–G\sul“setup“e“sull'installazioneŽŸ”’‘ 9b¹1.ŽŽŽ‘ÁD¹:–U Quale“€è“il“moGdo“migliore“di“congurare“Soft•¸èw“are‘U RAID?ŽŽŽŒ‹f¹ Û_2 ý ~?Ÿ„€ÕÁGŽÁ3.‘ñ8Considerazioni–Õsul“setup“e“sull'installazione’äõª¹8ŽŽ ÕÁ ýV¯‘=ÿÁR¹:›ÙCon•¸ètin“uamen“te˜riscopro˜il˜fatto˜c“he˜la˜pianicazione˜del˜le-system˜€è˜uno˜dei˜la“v“oriŽ¤ ®‘/pi€ù–U dicili“sotto“Unix.‘q€P¸èer“rispšGondere“alla“domanda,“p˜osso“descriv¸èere“cosa“si“pu€ò“fare.Ž¡‘=ÿSuppGoniamo–U il“setup“c¸èhe“segue:Ž©®‘7³2¸ŽŽŽ‘A³3¹2–U disc¸èhi“EIDE,“da“2.1“Gb“ciascuno.ŽŸŠ=‘R³2óqLË ectt0900Ädisco–¹Npartizione“montata“su‘+êdimensione‘å8dispositivoŽ¤ Š=‘\%Î1‘WÔ1‘!"/‘PN.300M‘+ê/dev/hda1Ž¡‘\%Î1‘WÔ2‘!"swap‘FÛ’64M‘+ê/dev/hda2Ž¡‘\%Î1‘WÔ3‘!"/home‘=hö800M‘+ê/dev/hda3Ž¡‘\%Î1‘WÔ4‘!"/var‘B"D900M‘+ê/dev/hda4Ž¡¡‘\%Î2‘WÔ1‘!"/root‘=hö300M‘+ê/dev/hdc1Ž¡‘\%Î2‘WÔ2‘!"swap‘FÛ’64M‘+ê/dev/hdc2Ž¡‘\%Î2‘WÔ3‘!"/home‘=hö800M‘+ê/dev/hdc3Ž¡‘\%Î2‘WÔ4‘!"/var‘B"D900M‘+ê/dev/hdc4Ž¡¦‘7³2¸ŽŽŽ‘A³3¹Ogni–`§disco“€è“su“un“conš¸ètroller“(e“ca˜v˜o)“separato.‘ La“mia“teoria“€è“c˜he“un“guasto“al“con˜trollerŽ¤ ®‘A³3o–ç£al“ca•¸èv“o–ç£non“mander€à“in“tilt“tutti“e“due“i“discš¸èhi.‘)Questo“pGermette“un“miglioramen˜toŽ¡‘A³3delle–U pšGerformance“risp˜etto“alla“gestione“di“op˜erazioni“paralleleŽ¦‘7³2¸ŽŽŽ‘A³3¹Installare–¡°Lin¸èux“su“(º/¹)“della“partizione“º/dev/hda1¹.‘W1Marcare“questa“partizione“comeŽ¡‘A³3a¸èvviabile.Ž¦‘7³2¸ŽŽŽ‘A³3º/dev/hdc1–Ï,¹con¸èterr€à“una“copia“fredda‘¤tdi“º/dev/hda1¹.‘ߤQuesta“non“€è“una“copia“RAID,Ž¡‘A³3€è–rŠproprio“una“semplice“copia.‘ɾServš¸èe“solamen˜te“nel“caso“c˜he“il“primo“disco“si“rompa;Ž¡‘A³3si–àçpu€ò“usare“un“disco,›Ùdi“recupGero,˜marcare“º/dev/hdc1“¹come“a¸èvviabile,˜e“usare“questaŽ¡‘A³3partizione–ÞÇpGer“con•¸ètin“uare–ÞÇa“la•¸èv“orare–ÞÇsenza“do•¸èv“er–ÞÇreinstallare“il“sistema.‘J Pu€ò“anc¸èhe“essereŽ¡‘A³3utile–þmettere“una“copia“del“k¸èernel“di“º/dev/hdc1“¹su“LILO‘ýÿpšGer“semplicare“il“b˜o˜ot“in“casoŽ¡‘A³3di‘U malfunzionamen¸èto.Ž¡‘A³3Qui–èsi“suppGone“cš¸èhe“nel“caso“di“un“gra˜v˜e“malfunzionamen˜to“si“pGossa“ancora“far“partireŽ¡‘A³3il–ØBsistema“senza“preošGccupazioni“riguardan¸èti“la“corruzione“dei“sup˜erblo˜c¸èk“raid“o“di“altriŽ¡‘A³3errori–U del“raid“c¸èhe“non“si“capiscono.Ž¦‘7³2¸ŽŽŽ‘A³3º/dev/hda3–U ¹e“º/dev/hdc3“¹saranno“il“mirror“º/dev/md0¹.Ž¦‘7³2¸ŽŽŽ‘A³3º/dev/hda4–U ¹e“º/dev/hdc4“¹saranno“il“mirror“º/dev/md1¹.Ž¦‘7³2¸ŽŽŽ‘A³3¹abbiamo–Üâsceltoº/var“¹e“º/home“¹pGer“essere“mirrorate“in“partizioni“separate,‘ôïseguendo“questaŽ¡‘A³3logicaŽ¦‘GóŽÁŽŽŽ‘R³2º/–‡6¹(la“partizione“roGot)“conš¸èterr€à“dati“relativ‘ÿqÐamen˜te“statici,‘°enon“soggetti“a“cam˜biamen˜ti.Ž¡‘R³2Aš¸èd–Яogni“eetto“sar€à“si“sola“lettura“anc˜he“se“non“sar€à“impGostata“e“mon˜tata“v˜eramen˜teŽ¡‘R³2in–U sola“letturaŽ¦‘GóŽÁŽŽŽ‘R³2º/home–U ¹conš¸èterr€à“i“dati“c˜he“cam˜biano“len˜tamen˜te.Ž¦‘GóŽÁŽŽŽ‘R³2º/var–U8¹conš¸èterr€à“i“dati“c˜he“cam˜biano“rapidamen˜te,›U>inclusi“i“mail“sp•Go“ol,˜i–U8database“ed“iŽ¡‘R³2log–U del“wš¸èeb“serv˜er.Ž¦‘A³3L'idea–/Jcš¸èhe“sta“dietro“all'uso“di“pi€ù“partizioni“separate“€è“c˜he“Áse¹,‘eÕpGer“qualc˜he“bizzarra,Ž¡‘A³3ragione–Îhc¸èhe“sia“un“errore“umano,›éZun“calo“di“tensione,˜o“altro“il“sistema“opGerativ¸èo“impazz-Ž¡‘A³3isce,‘Ýil–ýLdanno“€è“limitato“ad“una“sola“partizione.‘T:In“un“caso“tipico“vi“€è“un“calo“di“tensioneŽ¡‘A³3menš¸ètre– Ýil“sistema“sta“scriv˜endo“sul“disco.‘·Questo“lascer€à“sicuramen˜te“il“le“system“inŽ¡‘A³3uno–Kstato“di“in¸èutilizzabilit€à,‘M a“cui“sar€à“pšGosto“rimedio“da“ºfsck“¹nel“b˜o˜ot“seguen•¸ète.‘n"Anc“heŽ¡‘A³3se–@nºfsck“¹far€à“del“suo“meglio“pšGer“rimettere“a“p˜osto“la“situazione“evitando“di“fare“ulterioriŽ¡‘A³3danni,‘âg€è–Æ&confortanš¸ète“sapGere“c˜he“ogni“danno“€è“stato“limitato“ad“una“sola“partizione.‘Ä’InŽ¡‘A³3un–Kóaltro“caso“tipico“l'amministratore“di“sistema“fa“un“errore“duran¸ète“le“opGerazioni“diŽ¡‘A³3recupšGero–Y‰del“le“system,‘š¤cosa“c¸èhe“p˜orta“alla“cancellazione“o“alla“distruzione“dei“dati.Ž¡‘A³3L'uso–%„delle“partizioni“pu€ò“aiutare“a“con¸ètenere“le“ripšGercussioni“degli“errori“dell'op˜eratore.ŽŽŽŒ‹ z> Û_2 ý ~?Ÿ„€ÕÁGŽÁ3.‘ñ8Considerazioni–Õsul“setup“e“sull'installazione’äõª¹9ŽŽ ÕÁ ýV¯‘7³2¸ŽŽŽ‘A³3¹Un'altra–|Åscelta“ragionev¸èole“pšGer“la“disp˜osizione“delle“partizioni“p˜otrebb˜e“essere“quella“diŽ¤ ®‘A³3º/usr–Ž¹o“di“º/opt¹.‘ÈIn“eetti,‘œéº/opt“¹e“º/home“¹sono“una“buona“scelta“come“partizioni“RAID-Ž¡‘A³35,‘§se–óòsi“hanno“pi€ù“hard“disk.‘M÷Una“parola“sulla“prudenza“da“utilizzare:‘¯%ÁNON‘óɹmettereŽ¡‘A³3º/usr–/¨¹in“una“partizione“RAID-5.‘Se“si“a•¸èv“esse–/¨un“gra•¸èv“e›/¨malfunzionamen“to˜si˜p•Gotrebb“eŽ¡‘A³3scoprire–¯Öcš¸èhe“non“si“pu€ò“mon˜tare“º/usr¹,‘ƃe“c˜he“si“ha“bisogno“di“qualc˜he“strumen˜to“c˜he“viŽ¡‘A³3risiede–Zb(ad“es.›Ei“programmi“pGer“la“rete,‘›²o“il“compilatore.)˜Con“RAID-1,‘›²se“si“ha“unŽ¡‘A³3malfunzionamenš¸èto–Oze“RAID‘O9smette“di“funzionare,‘Žsi“pu€ò“almeno“mon˜tare“uno“dei“dueŽ¡‘A³3mirror.‘iúLa–ýIstessa“cosa“non“si“pu€ò“fare“con“ogni“altro“liv¸èello“RAID‘ý(RAID-5,‘'Sstriping,Ž¡‘A³3linear‘U RAID).Ž¤®‘=ÿCos€ì,–U pšGer“risp˜ondere“alla“domanda:Ž¡‘7³2¸ŽŽŽ‘A³3¹installare–U il“S.O.“sul“disco“1,“partizione“1.‘q€NON“mon¸ètare“altre“partizioni.Ž¡‘7³2¸ŽŽŽ‘A³3¹installare–U RAID“seguendo“le“istruzioni.Ž¡‘7³2¸ŽŽŽ‘A³3¹congurare–U ºmd0“¹e“ºmd1¹.Ž¡‘7³2¸ŽŽŽ‘A³3¹conš¸èvincersi–ídel“fatto“c˜he“si“sa“c˜he“cosa“fare“in“caso“di“malfunzionamen˜to“del“disco!‘9XSiŽ¤ ®‘A³3scoprano–¢þgli“errori“dell'amministratore“di“sistema“adesso,‘Æžnon“non“duranš¸ète“una“v˜era“crisi!Ž¡‘A³3SpGerimenš¸ètate!‘ØÀ(noi–Ìàabbiamo“tolto“corren˜te“duran˜te“l'attivit€à“del“disco,‘êÐp•Go“co‘Ìàorto“dossoŽ¡‘A³3ma–U fa“imparare“molto).Ž©®‘7³2¸ŽŽŽ‘A³3¹eettuate–+Äuna“successione“di“moun•¸èt/cop“y/unmoun“t/rename/reb•Go“ot›+Äp“er˜m•¸èuo“v“ere˜º/varŽ¡‘A³3¹su–U º/dev/md1¹.‘q€F‘ÿ*¸atelo“atten•¸ètamen“te,–U non“€è“pGericoloso.Ž¦‘7³2¸ŽŽŽ‘A³3¹goGdetevi–U il“tutto!Ž¤®‘ 9b2.ŽŽŽ‘ÁD¹:–U Quale“€è“la“dierenza“tra“i“comandi“ºmdadd¹,“ºmdrun¹,“Âetc.‘q€¹e“quelli“ºraidadd¹,“ºraidrun¹?Ž¡‘=ÿÁR¹:–Š I‘‰½nomi“dei“toGol“sono“stati“camš¸èbiati“dalla“v˜ersione“0.5“del“pacc˜hetto“raidtoGols.‘DLaŽ¤ ®‘/con•¸èv“enzione›ñtc“he˜v“olev‘ÿqÐa˜c“he˜i˜comandi˜iniziassero˜pGer˜ºmd˜¹era˜usata˜nella˜v“ersione˜0.43˜e˜prece-Ž¡‘/den•¸èti,‘{ÿmen“tre–t8quella“n•¸èuo“v‘ÿqÐa›t8c“he˜fa˜iniziare˜i˜comandi˜pGer˜ºraid˜¹viene˜usata˜nella˜v“ersione˜0.5Ž¡‘/e‘U successiv¸èe.Ž©®‘ 9b3.ŽŽŽ‘ÁD¹:–!V‘ÿ*¸orrei“utilizzare“RAID-Linear/RAID-0“presenš¸ète“nel“k˜ernel“2.0.34.‘ÕLV‘ÿ*¸orrei“non“applicare“la“patc˜hŽ¡‘raid,‘w-pGoicš¸èh€é–p]non“sono“ric˜hieste“pGer“RAID-0/Linear.‘Ã8Do˜v˜e“pšGosso“pro˜curarmi“i“to˜ol“RAID‘pVp˜er“gestire“ilŽ¡‘sistema?Ž¦‘=ÿÁR¹:–ÚQuesta“€è“una“bšGella“domanda,‘ûRp˜oicš¸èh€é“i“pi€ù“n˜uo˜vi“toGol“raid“abbisognano“c˜he“le“patc˜hŽ¡‘/RAID-1,4,5–siano“state“applicate“al“kš¸èernel“pGer“compilarsi.‘VÕNon“conosco“v˜ersioni“binarie,‘pre-Ž¡‘/compilate–, dei“tošGol“raid“disp˜onibili“in“questo“momen•¸èto.‘öCom“unque‘, sia,‘aàesp˜erimen“ti‘, hannoŽ¡‘/dimostrato–ëæcš¸èhe“i“le“binari“dei“toGol“raid,‘ñcompilati“su“un“k˜ernel“2.1.100,‘ñsem˜brano“funzionareŽ¡‘/abbastanza–ÎbGene“nella“creazione“di“una“partizione“RAID-0/linear“sotto“2.0.34.‘D|Un'anima“im-Ž¡‘/paš¸èvida–Rme“li“ha“c˜hiesti“ed“io“ho“ÁtempQÂoraneamen®>te“¹reso“dispGonibili“i“binari“di“mdadd,‘…ámdcre-Ž¡‘/ate,–`ecc,“su›]âh•¸èttp://linas.org/lin“ux/Soft“w“are-RAID/˜A‘þã vrete˜bisogno˜delle˜pagine˜di˜man“uale,Ž¡‘/ecc.‘q€cš¸èhe–U si“tro˜v‘ÿqÐano“nel“pacc˜hetto“standard“dei“raid-toGols.Ž¦‘ 9b4.ŽŽŽ‘ÁD¹:–;QPš¸èosso“mettere“in“strip/mirror“la“partizione“di“roGot“(º/¹)?‘ $P˜erc˜h€é“non“pGosso“far“partire“Lin˜uxŽ¡‘direttamenš¸ète–U dai“disc˜hi“ºmd¹?ŽŸ®‘=ÿÁR¹:–@ßSia“LILO‘@¢cš¸èhe“Loadlin“hanno“bisogno“di“una“partizione“c˜he“non“sia“in“strip/mirrorŽ¡‘/p•Ger›MKp“otervi˜leggere˜l'immagine˜del˜k•¸èernel.‘ZSe˜v“olete˜mettere˜in˜strip/mirror˜la˜partizioneŽ¡‘/di–ì÷roGot“(º/¹),‘ìaš¸èvrete“bisogno“di“creare“una“partizione“c˜he“non“sia“in“strip/mirror“do˜v˜e“pGoterŽ¡‘/mettere–˜9il“k•¸èernel.›:ËTipicamen“te–˜9questa“partizione“viene“c¸èhiamata“º/boot¹.˜F‘ÿ*¸atto“questo“siŽ¡‘/pu€ò–†Rquindi“usare“o“il“suppšGorto“p˜er“il“ramdisk“iniziale“(initrd)“o“le“patcš¸èh“di“Harald“Ho˜y˜er“µ<Ž¡‘/ÂHarryH@R‘ÿ}/oyal.Net– Wµ>“¹cš¸èhe“consen˜tono“ad“una“partizione“in“strip/mirror“di“essere“usata“comeŽ¡‘/roGot.‘q€(Aš¸èdesso–U queste“patc˜h“sono“una“parte“standard“dei“recen˜ti“k˜ernel“2.1.x)ŽŽŽŒ‹ ŠO Û_2 ý ~?Ÿ„€ÕÁGŽÁ3.‘ñ8Considerazioni–Õsul“setup“e“sull'installazione’ßõú¹10ŽŽ ÕÁ ýV¯‘=ÿSi–n\pšGossono“usare“appro˜cci“div¸èersi.‘½5Uno“€è“do˜cumenš¸ètato“dettagliatamen˜te“nel“BoGotableŽ¤ ®‘/RAID‘U mini-HO¸èWTO:Ž¡‘=ÿºftp://ftp.bizsystems.com/pub/raid/bootable-‘€raid‘U ¹.Ž¡‘=ÿIn–Îalternativ‘ÿqÐa,‘ìXsi“pu€ò“usare“ºmkinitrd“¹pšGer“costruire“un'immagine“p˜er“il“ramdisk,‘ìXv¸èedereŽ¡‘/di‘U seguito.Ž¡‘=ÿEdw¸èard–U W‘ÿ*¸elbGon“µ<“Âwelb–ÿ}/on@b“ga.c“om–U µ>“¹ha“scritto:ŽŸ—?‘7³2¸ŽŽŽ‘A³3¹...‘óØtutto–€“quello“cš¸èhe“serv˜e“€è“uno“script“c˜he“gestisca“il“setup“di“b•Go“ot.‘óØP˜er–€“mon˜tare“un“leŽ¡‘A³3system–q<ºmd“¹come“roGot,‘xBla“cosa“principale“da“fare“€è“costruire“un'immagine“iniziale“del“leŽ¡‘A³3system–è­c¸èhe“abbia“i“mošGduli“e“i“to˜ol“md“necessari“p˜er“far“partire“ºmd¹.‘,(Io“ho“un“sempliceŽ¡‘A³3script–U c¸èhe“fa“tutto“ci€ò.Ž©€i‘7³2¸ŽŽŽ‘A³3¹Come–XûsuppšGorto“p˜er“il“b˜o˜ot“utilizzo“un“piccolo“ed“Áeconomico“¹disco“SCSI–Xú(170MB“lo‘XûhoŽ¡‘A³3preso–3˜usato“pšGer“$20).‘fSIl“disco“€è“collegato“ad“un“AHA1452,‘:Mma“a¸èvrebb˜e“p˜otuto“essere“unŽ¡‘A³3disco–ÿmIDE‘ÿAa“buon“prezzo“sull'inš¸èterfaccia“nativ‘ÿqÐa“IDE.“Non“c'€è“bisogno“c˜he“sia“un“discoŽ¡‘A³3molto–U v¸èelošGce“p˜oicš¸èh€é“serv˜e“solamen˜te“pšGer“il“b˜o˜ot.Ž¦‘7³2¸ŽŽŽ‘A³3¹Questo–l&disco“conš¸ètiene“un“piccolo“le“system“do˜v˜e“tro˜v‘ÿqÐa“pGosto“il“k˜ernel“e“l'immagine“delŽ¡‘A³3le–&ësystem“pGer“ºinitrd¹.‘bL'immagine“iniziale“del“le“system“con¸ètiene“abbastanza“roba“daŽ¡‘A³3pšGermettermi–÷di“caricare“il“mo˜dulo“driv¸èer“p˜er“il“disp˜ositiv¸èo“raid“SCSI‘Ée“p˜oter“accedereŽ¡‘A³3alla–U partizione“cš¸èhe“div˜err€à“roGot.‘q€P˜oi“eseguo“unŽŸsh‘R³2Äecho–¹N0x900“>“/proc/sys/kernel/real-root-devŽŸ Š=Ÿ—?‘A³3¹(º0x900–3‘¹€è“pšGer“º/dev/md0¹)“e“esco“da“ºlinuxrc¹.‘fPIl“b˜o˜ot“pro˜cede“normalmen¸ète“da“qui“in“p˜oi.Ž¦‘7³2¸ŽŽŽ‘A³3¹Ho–ù_compilato“molti“driv¸èer“come“mošGduli“eccetto“quello“p˜er“l'AHA1452“cš¸èhe“serv˜e“pGer“ilŽ¡‘A³3le–.system“ºinitrd¹.‘Š©Il“kš¸èernel“c˜he“uso“€è“cos€ì“molto“piccolo.‘Š©Il“metošGdo“€è“p˜erfettamen¸èteŽ¡‘A³3adabile,‘P5lo–Nústo“usando“sin“da“prima“della“vš¸èersione“2.1.26“e“non“ho“mai“a˜vuto“un“prob-Ž¡‘A³3lema–ß'cš¸èhe“non“sia“riuscito“a“risolv˜ere“facilmen˜te.‘J-Il“le“system“€è“addirittura“sopra˜vvissutoŽ¡‘A³3a–U divš¸èersi“crash“dei“k˜ernel“2.1.4[45]“senza“reali“dicolt€à.Ž¦‘7³2¸ŽŽŽ‘A³3¹Una–¬vš¸èolta“a˜v˜ev˜o“partizionato“i“disc˜hi“raid“in“maniera“tale“c˜he“i“cilindri“iniziali“del“primoŽ¡‘A³3disco–#raid“conš¸ètenev‘ÿqÐano“il“k˜ernel“e“i“cilindri“iniziali“del“secondo“disco“raid“con˜tenev‘ÿqÐanoŽ¡‘A³3l'immagine–Pªiniziale“del“le“system,‘QŽadesso“in•¸èv“ece–Pªho“messo“la“sw¸èap“nei“primi“cilindri“deiŽ¡‘A³3discš¸èhi–U raid“pGoic˜h€é“questi“sono“i“pi€ù“v˜elošGci“(p˜erc¸èh€é“sprecarli“nel“b˜o˜ot?).Ž¦‘7³2¸ŽŽŽ‘A³3¹La–išcosa“bšGella“dell'a•¸èv“ere–išun“disp˜ositivš¸èo“c˜he“costa“p•Go“co–išdedicato“al“b•Go“ot–iš€è“c˜he“€è“facileŽ¡‘A³3eettuarne–´Mil“b•Go“ot–´Me“c¸èhe“risulta“utile“come“disco“di“recupGero“se“necessario.‘Se“sieteŽ¡‘A³3in¸èteressati,‘g‚pšGotete–cÕdare“un'o˜ccš¸èhiata“allo“script“c˜he“genera“l'immagine“iniziale“pGer“il“ramŽ¡‘A³3disk–U e“c¸èhe“quindi“fa“partire“ºLILO¹.Ž¤—?‘R³2Ähttp://www.realtime.net/~welbon/initrd.md.tar.gzŽ¡‘A³3¹Pš¸èer–Ùadesso“€è“abbastanza“pGer“fare“quello“c˜he“serv˜e.‘H&Non“€è“spGecicamen˜te“bšGello“e“p˜otrebb˜eŽ¤ ®‘A³3sicuramen¸ète–ÅÔcostruire“un'immagine“del“le“system“molto“pi€ù“piccola“pGer“il“ram“diskŽ¡‘A³3iniziale.‘SNDoš¸èvrebbGe–ú‹essere“facile“renderlo“pi€ù“ecien˜te.‘SNMa“del“resto“usa“ºLILO‘út¹cos€ì“com'€è.Ž¡‘A³3Se–U gli“appGortate“dei“miglioramen¸èti“vi“prego“di“mandarmene“una“copia.‘q€8-)ŽŸi”‘ 9b5.ŽŽŽ‘ÁD¹:–`Ho“senš¸ètito“dire“c˜he“si“pu€ò“usare“il“mirroring“sullo“striping“RAID.“€È‘_ýv˜ero?‘’P˜osso“usare“il“mirroringŽ¡‘sul–U dispšGositiv¸èo“di“lo˜opbac¸èk?ŽŸ€i‘=ÿÁR¹:–šCSi,‘«Œma“non“il“conš¸ètrario.‘@éSi“pu€ò“mettere“una“striscia“su“pi€ù“disc˜hi“e“pGoi“eettuarne“ilŽ¡‘/mirroring.‘q€Com¸èunque–U sia“lo“striping“non“pu€ò“essere“messo“al“di“sopra“del“mirroring.Ž¡‘=ÿPš¸èer–¥%darne“una“brev˜e“spiegazione“tecnica“si“pu€ò“dire“c˜he“le“pGersonalit˜y“linear“e“stripGe“usanoŽ¡‘/la–*½routine“ºll_rw_blk“¹pšGer“gli“accessi.‘òWLa“routine“ºll_rw_blk“¹mappa“disp˜ositivi“di“disc¸èhi“eŽ¡‘/settori,‘unon›CÊblo•Gcc¸èhi.‘=I‘Cdisp“ositivi˜a˜blo“cc¸èhi˜p“ossono˜essere˜straticati˜uno˜sull'altro;‘»ma˜iŽ¡‘/dispGositivi–#Ocš¸èhe“eettuano“un“accesso“al“disco“diretto,‘-Ea“basso“liv˜ello,‘-Ecome“fa“ºll_rw_blk“¹nonŽ¡‘/pšGossono–U essere“so¸èvrapp˜osti.ŽŽŽŒ‹ œ< Û_2 ý ~?Ÿ„€ÕÁGŽÁ3.‘ñ8Considerazioni–Õsul“setup“e“sull'installazione’ßõú¹11ŽŽ ÕÁ ýV¯‘=ÿIn–90questo“momenš¸èto“(No˜v˜em˜bre“1997)“RAID‘8énon“pu€ò“funzionare“sui“dispšGositivi“di“lo˜opbac¸èk,Ž¤ ®‘/ancš¸èhe–U se“questo“do˜vrebbšGe“essere“p˜ossibile“a“brev¸èe.Ž©®‘ 9b6.ŽŽŽ‘ÁD¹:–‘iHo“due“piccoli“discš¸èhi“e“tre“disc˜hi“pi€ù“grandi.‘&ZP˜osso“concatenare“i“due“disc˜hi“piccoli“con“RAID-0“eŽ¡‘quindi–U creare“una“partizione“RAID-5“con“questi“e“quelli“pi€ù“grandi?Ž¦‘=ÿÁR¹:–=In“questo“momenš¸èto“(No˜v˜em˜bre“1997),‘wnon“si“pu€ò“creare“una“partizione“RAID-5“inŽ¡‘/questa–U maniera.‘q€Si“pu€ò“farlo“solo“con“RAID-1“al“di“sopra“della“concatenazione“dei“driv¸èe.Ž¦‘ 9b7.ŽŽŽ‘ÁD¹:–nwQuale“€è“la“dierenza“tra“RAID-1“e“RAID-5“pGer“una“congurazione“cš¸èhe“prev˜ede“due“disc˜hi“(cioG€è“laŽ¡‘dierenza–U tra“una“serie“di“due“discš¸èhi“RAID-1“e“una“serie“di“due“disc˜hi“RAID-5)?Ž¦‘=ÿÁR¹:–ïtNon“c'€è“dierenza“nella“capacit€à“di“immagazzinamen¸èto.‘@}Non“si“pGossono“aggiungereŽ¡‘/discš¸èhi–a“nessuno“dei“due“sottosistemi“pGer“aumen˜tarne“la“capacit€à“(v˜edi“la“domanda“qui“diŽ¡‘/seguito–U pGer“i“dettagli).Ž¡‘=ÿRAID-1–Çèore“un“v‘ÿqÐanš¸ètaggio“nella“prestazione“in“lettura:‘*äil“driv˜er“RAID-1“usa“la“tecnologiaŽ¡‘/distributed-read–R>(lettura“distribuita.‘pŠndt)“pšGer“leggere“con•¸ètemp˜oraneamen“te–R>due“settori,‘RÒunoŽ¡‘/da–U ogni“disco,“raddoppiando“la“pGerformance“in“lettura.Ž¡‘=ÿIl–Yšdrivš¸èer“RAID-5,‘š¸anc˜he“se“fortemen˜te“ottimizzato,‘š¸attualmen˜te“(Settem˜bre“1997)“nonŽ¡‘/considera–Áàil“fatto“cš¸èhe“il“disco“di“parit€à“€è“una“copia“del“disco“dati.‘@kQuindi“le“letture“a˜vv˜engonoŽ¡‘/in–U maniera“seriale.Ž¦‘ 9b8.ŽŽŽ‘ÁD¹:–U Come“pGosso“proteggermi“dal“malfunzionamenš¸èto“di“due“disc˜hi?Ž©®‘=ÿÁA¹:–ÏÎQualcuno“degli“algoritmi“RAID‘Ϭprotegge“da“un“malfunzionamenš¸èto“m˜ultiplo“dei“disc˜hi,Ž¡‘/ma–Vhnessuno“di“questi“algoritmi“€è“attualmenš¸ète“implemen˜tato“da“Lin˜ux.‘uWDetto“ci€ò“il“Soft˜w˜areŽ¡‘/RAID‘K¨pšGer–KªLin¸èux“pu€ò“essere“utilizzato“p˜er“proteggersi“da“un“malfunzionamenš¸èto“di“pi€ù“disc˜hiŽ¡‘/straticando–éáQuindi“queste“tre“serie“pGossono“a“loro“v¸èolta“essere“legate“assieme“inŽ¡‘/una–žsingola“serie“di“disc¸èhi“RAID-5.‘4|In“eetti“questo“tipGo“di“congurazione“arriv‘ÿqÐa“a“proteggereŽ¡‘/da–t]un“malfunzionamenš¸èto“di“tre“disc˜hi.‘Ï8V‘ÿ*¸a“notato“il“fatto“c˜he“una“grande“quan˜tit€à“di“spazioŽ¡‘/disco–U v‘ÿqÐa“p•Gersa‘*hp“er–U la“ridondanza“delle“informazioni.ŽŸŠ=‘T˜kÄPer–¹Nuna“serie“di“NxN“dischi“raid-5Ž¤ Š=‘T˜kN=3,–¹N5“dischi“su“9“sono“usati“per“la“parit€à“(=55%)Ž¡‘T˜kN=4,–¹N7“dischi“su“16Ž¡‘T˜kN=5,–¹N9“dischi“su“25Ž¡‘T˜k...Ž¡‘T˜kN=9,–¹N17“dischi“su“81“(=~20%)Ž¡Ÿ®‘=ÿ¹In–·generale,‘Ï—una“serie“di“MxN‘¶ÿdiscš¸èhi“user€à“MxN-1“disc˜hi“pšGer“la“parit€à.‘—jLo“spazio“p˜ersoŽ¤ ®‘/€è–5ïminimo“quando“M=N.“Un'altra“alternativ‘ÿqÐa“€è“quella“di“creare“una“serie“RAID-1“con“treŽ¡‘/discš¸èhi.‘‚V‘ÿ*¸a–ÛËnotato“il“fatto“c˜he“pGoic˜h€é“tutti“e“tre“i“disc˜hi“con˜tengono“dati“iden˜tici,‘ýv2/3“delloŽ¡‘/spazio–U v‘ÿqÐanno“sprecati.Ž¦‘ 9b9.ŽŽŽ‘ÁD¹:–ÄÚMi“piacerebbšGe“capire“come“€è“p˜ossibile“c¸èhe“ci“sia“un“programma“tip˜o“ºfsck¹:‘Póse“la“partizione“non“€èŽ¡‘stata–sZsmonš¸ètata“in“maniera“ortoGdossa,‘zèºfsck“¹in˜terviene“e“riaggiusta“il“lesystem“da“solo“in“pi€ù“del“90%Ž¡‘dei›Zcasi.‘ÇP•¸èoic“h€é˜la˜macc“hina˜€è˜capace˜di˜p•Gorsi˜rimedio˜da˜sola˜con˜ºckraid‘?¬fix¹,‘›èp“erc¸èh€é˜non˜farloŽ¡‘div•¸èen“tare‘U automatico?Ž¦‘=ÿÁR¹:–U Si“pu€ò“ottenere“ci€ò“aggiungendo“linee“come“le“seguen¸èti“a“º/etc/rc.d/rc.sysinit¹:ŽŸ®‘Cþ²ºmdadd–?¬/dev/md0“/dev/hda1“/dev/hdc1“||“{Ž¡‘Xýbckraid–?¬--fix“/etc/raid.usr.confŽ¡‘Xýbmdadd–?¬/dev/md0“/dev/hda1“/dev/hdc1ŽŽŽŒ‹ ®ä Û_2 ý ~?Ÿ„€ÕÁGŽÁ3.‘ñ8Considerazioni–Õsul“setup“e“sull'installazione’ßõú¹12ŽŽ ÕÁ ýV¯‘Cþ²º}Ž© ®¤n8‘=ÿ¹oŽ¡‘Cþ²ºmdrun–?¬-p1“/dev/md0Ž¦‘Cþ²if–?¬[“$?“-gt“0“]“;“thenŽ¦‘mückraid–?¬--fix“/etc/raid1.confŽ¦‘mümdrun–?¬-p1“/dev/md0Ž¦‘Cþ²fiŽ¦¡‘=ÿ¹Prima–¿di“presenš¸ètare“uno“script“pi€ù“completo“e“adabile,‘Zksolo“alcuni“dei“discš¸èhi“di“mirror“e“al“prossimo“b•Go“ot–>ki“mirror“non“con˜terranno“pi€ù`“gli“stessiŽ¡‘/dati.Ž¡‘=ÿSe–æOsi“ignorassero“le“dierenze“dei“mirror,‘J›il“coGdice“di“bilanciamen¸èto“della“lettura“deiŽ¡‘/raidto•Gols-0.36.3› 1p“otrebb“e˜scegliere˜di˜leggere˜i˜suddetti˜dati˜da˜uno˜qualsiasi˜dei˜disc¸èhi˜di˜mir-Ž¡‘/ror,‘gfcosa–c¾cš¸èhe“p•Gorterebb“e–c¾ad“un“compGortamen˜to“incoGeren˜te“(pGer“esempio,‘gfl`output“di“ºe2fsckŽ¡‘/-n‘?¬/dev/md0›U ¹p•Gotrebb“e˜essere˜dieren•¸ète˜di˜v“olta˜in˜v“olta).Ž¡‘=ÿP•¸èoic“h€é–]žRAID‘]Znon“protegge“dagli“sh•¸èutdo“wn›]žspGorc“hi,‘Ÿ½usualmen“te˜non˜c`e`˜un˜moGdo˜si-Ž¡‘/curamenš¸ète–±bcorretto‘†ªdi“correggere“le“dierenze“nei“disc˜hi“di“mirror“e“il“danneggiamen˜to“delŽ¡‘/lesystem.Ž¡‘=ÿPš¸èer–ˆŽesempio“il“compGortamen˜to“predenito“di“ºckraid‘?¬fix“¹sar€à“quello“di“scegliere“il“primoŽ¡‘/disco–¤ådi“mirror“opGerativš¸èo“e“aggiornare“gli“altri“disc˜hi“di“mirror“con“il“suo“con˜ten˜uto.‘6ÂT‘ÿ*¸utta˜via,Ž¡‘/a–Œseconda“della“situazione“dei“discš¸èhi“al“momen˜to“del“bloGcco,‘"Ci“dati“negli“altri“disc˜hi“di“mirrorŽ¡‘/p•Gotrebb“ero–Sessere“pi€ù“recenš¸èti“e“si“p•Gotrebb“e–Sscegliere“di“copiare“i“dati“da“quei“disc˜hi“o“forse“diŽ¡‘/usare–U un“metošGdo“dieren¸ète“p˜er“riparare“le“cose.Ž¡‘=ÿLo–3)script“c¸èhe“segue“denisce“una“delle“pi€ù“robuste“sequenze“di“b•Go“ot.‘ ›In–3)particolare“siŽ¡‘/cautela–@'dalle“lunghe“ripGetizioni“dell`esecuzione“di“ºckraid“¹quando“si“ha“a“cš¸èhe“fare“con“disc˜hi,Ž¡‘/conš¸ètroller–nÕo“driv˜er“dei“con˜troller“c˜he“non“co•Gop“erano.‘$½Lo–nÕsi“moGdic˜hi“in“moGdo“da“adeguarlo“allaŽ¡‘/propria–oëcongurazione,‘ve“lo“si“copi“su“ºrc.raid.init¹.‘ÁàQuindi“si“esegua“ºrc.raid.init“¹dopGoŽ¡‘/cš¸èhe–EÑla“partizione“di“roGot“€è“stata“con˜trollata“da“fsc˜k“e“mon˜tata“in“lettura/scrittura“ma“primaŽ¡‘/cš¸èhe–r^le“rimanen˜ti“partizioni“siano“con˜trollate“da“fsc˜k.‘É;Assicurarsi“c˜he“la“directory“attuale“siaŽ¡‘/nel–U pGercorso“di“ricerca.ŽŸn8‘Cþ²ºmdadd–?¬/dev/md0“/dev/hda1“/dev/hdc1“||“{Ž¡‘Xýbrm–?¬-f“/fastboot‘D;¼#“forza“l`esecuzione“di“fsckŽ¡‘Xýbckraid–?¬--fix“/etc/raid.usr.confŽ¡‘Xýbmdadd–?¬/dev/md0“/dev/hda1“/dev/hdc1Ž¡‘Cþ²}ŽŽŽŒ‹ ¾Ÿ Û_2 ý ~?Ÿ„€ÕÁGŽÁ3.‘ñ8Considerazioni–Õsul“setup“e“sull'installazione’ßõú¹13ŽŽ ÕÁ ýV¯‘Cþ²º#–?¬se“il“sistema“si“bloccasse“pi€ù“avanti“durante“questo“processo“di“bootŽ¤ ®‘Cþ²#–?¬vorremmo“che“almeno“questo“dispositivo“md“non“ne“risentisse.Ž¡‘I>^/sbin/mdstop‘?¬/dev/md0Ž¡¡‘Cþ²mdadd–?¬/dev/md1“/dev/hda2“/dev/hdc2“||“{Ž¡‘Xýbrm–?¬-f“/fastboot‘D;¼#“forza“l`esecuzione“di“fsckŽ¡‘Xýbckraid–?¬--fix“/etc/raid.home.confŽ¡‘Xýbmdadd–?¬/dev/md1“/dev/hda2“/dev/hdc2Ž¡‘Cþ²}Ž¡‘Cþ²#–?¬se“il“sistema“si“bloccasse“pi€ù“avanti“durante“questo“processo“di“bootŽ¡‘Cþ²#–?¬vorremmo“che“almeno“questo“dispositivo“md“non“ne“risentisse.Ž¡‘Cþ²/sbin/mdstop‘?¬/dev/md1Ž¡¡‘Cþ²mdadd–?¬/dev/md0“/dev/hda1“/dev/hdc1Ž¡‘Cþ²mdrun–?¬-p1“/dev/md0Ž¡‘Cþ²if–?¬[“$?“-gt“0“]“;“thenŽ¡‘Xýbrm–?¬-f“/fastboot‘D;¼#‘ Xforza“l`esecuzione“di“fsckŽ¡‘Xýbckraid–?¬--fix“/etc/raid.usr.confŽ¡‘Xýbmdrun–?¬-p1“/dev/md0Ž¡‘Cþ²fiŽ¡‘Cþ²#–?¬se“il“sistema“si“bloccasse“pi€ù“avanti“durante“questo“processo“di“bootŽ¡‘Cþ²#–?¬vorremmo“che“almeno“questo“dispositivo“md“non“ne“risentisse.Ž¡‘Cþ²/sbin/mdstop‘?¬/dev/md0Ž¡¡‘Cþ²mdadd–?¬/dev/md1“/dev/hda2“/dev/hdc2Ž¡‘Cþ²mdrun–?¬-p1“/dev/md1Ž¡‘Cþ²if–?¬[“$?“-gt“0“]“;“thenŽ¡‘Xýbrm–?¬-f“/fastboot‘D;¼#‘¿forza“l`esecuzione“di“fsckŽ¡‘Xýbckraid–?¬--fix“/etc/raid.home.confŽ¡‘Xýbmdrun–?¬-p1“/dev/md1Ž¡‘Cþ²fiŽ¡‘Cþ²#–?¬se“il“sistema“si“bloccasse“pi€ù“avanti“durante“questo“processo“di“bootŽ¡‘Cþ²#–?¬vorremmo“che“almeno“questo“dispositivo“md“non“ne“risentisse.Ž¡‘Cþ²/sbin/mdstop‘?¬/dev/md1Ž¡¡‘Cþ²#–?¬OK,“adesso“con“i“soli“comandi“md.“Se“ci“fossero“stati“erroriŽ¡‘Cþ²#–?¬i“controlli“precedenti“dovrebbero“aver“rimesso“tutto“a“posto.Ž¡‘Cþ²/sbin/mdadd–?¬/dev/md0“/dev/hda1“/dev/hdc1Ž¡‘Cþ²/sbin/mdrun–?¬-p1“/dev/md0Ž¡¡‘Cþ²/sbin/mdadd–?¬/dev/md12“/dev/hda2“/dev/hdc2Ž¡‘Cþ²/sbin/mdrun–?¬-p1“/dev/md1Ž¡¡©®‘=ÿ¹In–Îêaggiunš¸èta“a“questo“si“do˜vr€à“creare“un“le“ºrc.raid.halt“¹c˜he“do˜vrebbGe“apparire“comeŽ¡‘/questo:Ž¦‘Cþ²º/sbin/mdstop‘?¬/dev/md0Ž¡‘Cþ²/sbin/mdstop‘?¬/dev/md1Ž¡ŽŽŒ‹Í© Û_2 ý ~?Ÿ„€ÕÁGŽÁ4.‘ñ8Riparare–Õgli“errori’]ˆË¹14ŽŽ ÕÁ ýV¯‘=ÿAssicuratevi–2®di“a•¸èv“er–2®mošGdicato“sia“ºrc.sysinit“¹c¸èhe“ºinit.d/halt“¹p˜er“far“eseguire“questaŽ¤ ®‘/proGcedura–f da“qualsiasi“parte“il“lesystem“vš¸èenga“smon˜tato“prima“di“un“halt/reb•Go“ot.‘¤C(Si‘f notiŽ¡‘/cš¸èhe–U ºrc.sysinit“¹smon˜ta“ed“eettua“un“reb•Go“ot–U se“ºfsck“¹termina“l`esecuzione“con“un“errore.)Ž©•ë‘9²10.ŽŽŽ‘ÁD¹:–¾Pš¸èosso“congurare“met€à“di“un“mirror“RAID-1“con“il“solo“disco“c˜he“ho“adesso“e“pšGoi“dop˜o“aggiungerviŽ¡‘semplicemen¸ète–U un“altro“disco?Ž¦‘=ÿÁR¹:–ó¤Con“gli“strumen¸èti“di“adesso“no,‘#almeno“non“in“maniera“semplice.‘QIn“particolare“non“siŽ¡‘/pu€ò–À"solamenš¸ète“copiare“il“con˜ten˜uto“di“un“disco“su“un“altro“e“pGoi“appaiarli.‘?ÖQuesto“a“causa“delŽ¡‘/fatto–¯„cš¸èhe“i“driv˜er“RAID‘¯musano“un“p•Go“co–¯„di“spazio“alla“ne“della“partizione“pGer“memorizzareŽ¡‘/i›^)sup•Gerblo“c•¸èk.‘ŒœQuesto˜dimin“uisce˜leggermen“te˜lo˜spazio˜disp•Gonibile˜p“er˜il˜lesystem;‘b®ma˜se˜siŽ¡‘/proš¸èv‘ÿqÐasse–41a“forzare“una“partizione“RAID-1“su“una“partizione“con“un“lesystem“preesisten˜te,‘:ÇiŽ¡‘/sup•Gerblo“c•¸èk›c.so“vrascriv“erebbGero˜una˜parte˜del˜lesystem˜confondendo˜i˜dati.‘›«P“oic“h€é˜il˜lesys-Ž¡‘/tem–Wƒext2fs“distribuisce“i“le“in“maniera“casuale“su“una“partizione“(pGer“evitarne“la“frammen-Ž¡‘/tazione),‘©£con–e‰grossa“probabilit€à“qualcš¸èhe“le“risieder€à“alla“ne“della“partizione“anc˜he“se“ilŽ¡‘/disco–U non“€è“pieno.Ž¡‘=ÿSe–asiete“abili,‘’FsuppšGongo“c¸èhe“p˜ossiate“calcolarvi“quan¸èto“spazio“il“sup˜erblo˜c¸èk“RAID‘aRo˜ccup˜er€àŽ¡‘/e–0‹quindi“rendere“il“lesystem“leggermen¸ète“pi€ù“piccolo,‘7Üin“moGdo“da“lasciare“lo“spazio“di“cui“laŽ¡‘/memorizzazione–V]del“sup•Gerblo“cš¸èk–V]RAID“a˜vr€à“bisogno“in“seguito.‘u8Ma,›V­se“siete“cos€ì“abili,˜sareteŽ¡‘/quindi–abbastanza“bra¸èvi“da“mošGdicare“i“to˜ol“in“mo˜do“tale“cš¸èhe“lo“facciano“automaticamen˜teŽ¡‘/(i–U toGol“non“sono“terribilmen¸ète“complessi).Ž¡‘=ÿÁNota:‘/¹il–4 lettore“attenš¸èto“a˜vr€à“pGensato“c˜he“il“trucco“seguen˜te“p•Gotrebb“e‘4 funzionare;‘£ŸnonŽ¡‘/l'ho–"fproš¸èv‘ÿqÐato“n€é“v˜ericato:‘X#Eseguite“ºmkraid“¹con“º/dev/null“¹come“uno“dei“dispGositivi.‘`—QuindiŽ¡‘/eseguite–=ººmdadd‘?¬-r“¹sul“solo“v¸èero“disco“(non“eseguite“mdadd“º/dev/null¹).‘i³Il“comando“ºmkraidŽ¡‘/¹do•¸èvrebbGe›|Ta“v“er˜congurato˜con˜successo˜il˜sistema˜raid,‘Æ!e˜il˜comando˜mdadd˜serv“e˜solo˜aŽ¡‘/forzare–il“funzionamen¸èto“del“sistema“in“mošGdalit€à“degradata“(in“inglese“degraded“mo˜de.‘Vwndt),Ž¡‘/come–U se“uno“dei“due“disc¸èhi“fosse“rotto.ŽŸ(&ÀÀ4Ž‘ÁRiparare–G\gli“erroriŽŸáÚ‘ 9b¹1.ŽŽŽ‘ÁD¹:›KFLa•¸èv“oro˜con˜un˜dispGositiv“o˜RAID-1˜(mirroring)˜e˜la˜corren“te˜€è˜andata˜via˜men“tre˜il˜disco˜era˜inŽ¡‘attivit€à.‘q€Cosa–U dev¸èo“fare?Ž¦‘=ÿÁR¹:–T¢La“ridondanza“cš¸èhe“i“liv˜elli“RAID‘Torono“serv˜e“a“proteggere“nei“confron˜ti“di“unŽ¡‘/malfunzionamenš¸èto–U del“Ádisco¹,“non“con˜tro“un“difetto“di“Áalimen®>tazione¹.Ž¡‘=ÿVi–U sono“div¸èersi“mošGdi“di“rimettere“le“cose“a“p˜osto“in“questa“situazione.ŽŸH£‘7³2¸ŽŽŽ‘A³3¹MetošGdo–(1):‘BUsare“i“to˜ol“raid.‘Ï#Questi“p˜ossono“essere“usati“p˜er“rimettere“in“sincroniaŽ¡‘A³3il–Žsistema“raid.‘£ÊI‘^danni“al“lesystem“non“vš¸èengono“corretti;‘nEdopGo“c˜he“il“sistema“raid“€èŽ¡‘A³3stato–êrimesso“in“sincronia,‘:il“lesystem“devš¸èe“ancora“essere“riparato“con“fsc˜k.‘0%I‘éÛsistemiŽ¡‘A³3RAID‘ÜpšGossono–Ü:essere“con¸ètrollati“con“ºckraid‘?¬/etc/raid1.conf“¹(p˜er“RAID-1,‘ôhaltrimen¸ètiŽ¡‘A³3º/etc/raid5.conf¹,‘U etc.)Ž¡‘A³3Eseguendo›pºckraid–?¬/etc/raid1.conf“fix˜¹il˜programma˜sceglier€à˜uno˜dei˜disc¸èhi˜dellaŽ¡‘A³3serie–É°(usualmen¸ète“il“primo),›æÔe“user€à“questo“come“copia“master,˜copiando“i“suoi“bloGcc¸èhiŽ¡‘A³3su–øYquelli“degli“altri“discš¸èhi“nel“mirror.‘[*P˜er“designare“un“disco“da“utilizzare“come“copiaŽ¡‘A³3master–£si“pu€ò“usare“l'opzione“ºforce-source¹:‘ FpGer“esempio,‘¶|ºckraid‘?¬/etc/raid1.confŽ¡‘A³3fix–?¬force-source“/dev/hdc3–[s¹.‘GIl“comando“c¸èkraid“pu€ò“essere“lanciato“senza“l'opzioneŽ¡‘A³3ºfix–Pä¹pGer“vš¸èericare“il“sistema“RAID‘P£inattiv˜o“senza“appšGortargli“mo˜dic¸èhe.‘dÍQuando“viŽ¡‘A³3senš¸ètirete–U a“v˜ostro“agio“con“le“moGdic˜he“propšGoste,“p˜otrete“aggiungere“l'opzione“ºfix¹.ŽŸû\‘7³2¸ŽŽŽ‘A³3¹Meto•Gdo‘…0(2):‘ ˆP¸èaranoico,›®Æsp“enditemp“o,˜non–…0molto“migliore“del“primo“metoGdo.‘,0AssumiamoŽ¡‘A³3cš¸èhe–?-la“serie“di“disc˜hi“RAID‘>çsia“formata“da“due“disc˜hi,‘vÄe“consista“delle“partizioni“º/dev/hda3Ž¡‘A³3¹e–U º/dev/hdc3¹.‘q€Pš¸èotete“pro˜v‘ÿqÐare“ci€ò“c˜he“segue:ŽŽŽŒ‹ÕÑ Û_2 ý ~?Ÿ„€ÕÁGŽÁ4.‘ñ8Riparare–Õgli“errori’]ˆË¹15ŽŽ ÕÁ ýV¯‘@ìâ(a)ŽŽŽ‘R³2ºfsck‘?¬/dev/hda3Ž¤¨è‘@^²¹(b)ŽŽŽ‘R³2ºfsck‘?¬/dev/hdc3Ž¡‘A{¹(c)ŽŽŽ‘R³2si–Édecida“quale“delle“due“partizioni“ha“meno“errori“o“do•¸èv“e–Ési“pGossano“aggiustareŽ¤ ®‘R³2meglio–-šo“do•¸èv“e–-šsono“i“dati“cš¸èhe“vi“in˜teressano.‘úíScegliete“l'una“o“l'altra“come“n˜uo˜v‘ÿqÐaŽ¡‘R³2copia–U master.‘q€Diciamo“cš¸èhe“a˜v˜ete“scelto“º/dev/hdc3¹.Ž¤¨è‘@^²(d)ŽŽŽ‘R³2ºdd–?¬if=/dev/hdc3“of=/dev/hda3Ž¡‘A{¹(e)ŽŽŽ‘R³2ºmkraid–?¬raid1.conf“-f“only-superblockŽ¡‘A³3¹Al–'pšGosto“degli“ultimi“due“passi,‘p˜otete“eseguire“ºckraid–?¬/etc/raid1.conf“fixŽ© ®‘A³3force-source‘?¬/dev/hdc3–U ¹cš¸èhe“do˜vrebbGe“essere“leggermen˜te“pi€ù“v˜eloGce.Ž¡‘7³2¸ŽŽŽ‘A³3¹MetošGdo–H(3):‘jþV‘ÿ*¸ersione“del“meto˜do“preceden¸ète“p˜er“pigri.‘m)Se“non“a•¸èv“ete›Hv“oglia˜di˜aspGettareŽ¦‘A³3cš¸èhe–¾-il“lungo“con˜trollo“di“fsc˜k“v˜enga“completato,‘Øpv‘ÿqÐa“bGene“anc˜he“saltare“i“primi“tre“passiŽ¦‘A³3illustrati–³_sopra“e“andare“direttamenš¸ète“agli“ultimi“due.‘Œ>Assicuratevi“solamen˜te“c˜he“v˜en-Ž¦‘A³3ga–PÅeseguito“ºfsck‘?¬/dev/md0“¹dopGo“cš¸èhe“a˜v˜ete“fatto.‘doIl“metošGdo“(3)“€è“solo“il“meto˜do“(1)Ž¦‘A³3tra•¸èv“estito.ŽŸ£¼‘=ÿIn– dogni“caso“i“passi“preceden¸èti“serviranno“solo“a“sincronizzare“i“sistemi“raid.‘šMIl“lesys-Ž¦‘/tem–Bprobabilmenš¸ète“a˜vr€à“ancora“bisogno“di“riparazioni:‘ÉÄpGerci€ò“fsc˜k“do˜vr€à“essere“eseguito“sulŽ¦‘/dispGositivš¸èo–U md“quando“esso“€è“attiv˜o“e“non“€è“stato“mon˜tato.Ž¦‘=ÿCon–™tuna“serie“di“tre“disc¸èhi“RAID-1,‘ê‰vi“sono“pi€ù“pGossibilit€à“come“quella“di“usare“dueŽ¦‘/discš¸èhi–¨ÅpGer“v˜otare‘~ una“rispšGosta“a“maggioranza.‘lnI‘¨¯to˜ol“p˜er“automatizzare“questa“pro˜ceduraŽ¦‘/attualmen•¸ète›U (Settem“bre˜97)˜non˜esistono.Ž¤ž‘ 9b2.ŽŽŽ‘ÁD¹:–•Ho“un“sistema“RAID-4“o“RAID-5“(parit€à)“e“la“correnš¸ète“€è“andata“via“men˜tre“i“disc˜hi“erano“in“attivit€à.Ž¦‘Cosa–U dev¸èo“fare“adesso?Ž¡‘=ÿÁR¹:–T¢La“ridondanza“cš¸èhe“i“liv˜elli“RAID‘Torono“serv˜e“a“proteggere“nei“confron˜ti“di“unŽ¦‘/malfunzionamenš¸èto–U del“Ádisco¹,“non“con˜tro“un“difetto“di“Áalimen®>tazione¹.Ž¦‘=ÿP•¸èoic“h€é–Öi“discš¸èhi“forman˜ti“una“serie“RAID-4“o“RAID-5“non“con˜tengono“un“lesystem“c˜heŽ¦‘/fscš¸èk–ë½pu€ò“leggere“vi“sono“meno“scelte“nella“riparazione.‘N_Non“si“pu€ò“usare“fsc˜k“pGer“un“con˜trolloŽ¦‘/o–U una“riparazione“preliminare;“si“devš¸èe“usare“prima“c˜kraid.Ž¦‘=ÿIl–ðâcomando“ºckraid“¹pu€ò“essere“eseguito“in“mošGdalit€à“sicura“senza“l'opzione“ºfix“¹p˜er“v¸èeri-Ž¦‘/care–WÔil“sistema“RAID‘WÓsenza“appGortargli“cam•¸èbiamen“ti.‘yœQuando–WÔvi“senš¸ètirete“a“v˜ostro“agio“conŽ¦‘/i›U cam•¸èbiamen“ti˜propGosti˜baster€à˜aggiungere˜l'opzione˜ºfix¹.Ž¦‘=ÿSe–ψsi“vuole“si“pu€ò“proš¸èv‘ÿqÐare“designando“uno“dei“dei“disc˜hi“come“disco“rotto.‘à¹F‘ÿ*¸atelo“conŽ¦‘/l'opzione–ÒOºsuggest-failed-disk-mask“¹(in“inglese“suona“come“suggerisci-masc¸èhera-disco-Ž¦‘/rotto.‘q€ndt).Ž¦‘=ÿUn–4solo“bit“doš¸èvr€à“essere“indicato“nell'opzione:‘/lRAID-5“non“pu€ò“recupGerare“due“disc˜hiŽ¦‘/non–U funzionanš¸èti.‘q€La“masc˜hera“€è“una“masc˜hera“binaria:‘q€quindi:Ž¤¨è‘Cþ²º0x1–?¬==“primo“discoŽ¦‘Cþ²0x2–?¬==“secondo“discoŽ¦‘Cþ²0x4–?¬==“terzo“discoŽ¦‘Cþ²0x8–?¬==“quarto“disco,“etc.Ž¦¡‘=ÿ¹In–êalternativ‘ÿqÐa“si“pu€ò“scegliere“di“moGdicare“i“settori“di“parit€à“usando“l'opzioneŽ¦‘/ºsuggest-fix-parity¹.‘q€Questa–U far€à“si“cš¸èhe“la“parit€à“v˜enga“ricalcolata“dagli“altri“settori.Ž¦‘=ÿLe–Æopzioni“ºsuggest-failed-disk-mask“¹e“ºsuggest-fix-parity“¹pGossono“essere“usateŽ¦‘/senza–àŸproblemi“pGer“la“sola“vš¸èerica.‘þNon“v˜engono“appGortati“cam˜biamen˜ti“se“l'opzione“ºfixŽ¦‘/¹non–U €è“stata“spšGecicata.‘q€Quindi“p˜otete“sp˜erimenš¸ètare“sc˜hemi“dieren˜ti“di“riparazione.ŽŸž‘ 9b3.ŽŽŽ‘ÁD¹:–ÿòIl“mio“dispGositiv¸èo“RAID-1,‘j¦º/dev/md0“¹€è“formato“da“due“partizioni“di“hard“disk:‘Ç$º/dev/hda3“¹eŽ¦‘º/dev/hdc3¹.‘ÓªRecen•¸ètemen“te,‘¾il–uÙdisco“cš¸èhe“con˜tenev‘ÿqÐa“º/dev/hdc3“¹si“€è“rotto,‘¾ed“€è“stato“rimpiazzato“daŽŽŽŒ‹è Û_2 ý ~?Ÿ„€ÕÁGŽÁ4.‘ñ8Riparare–Õgli“errori’]ˆË¹16ŽŽ ÕÁ ýV¯‘un›4bn•¸èuo“v“o˜disco.‘f–Il˜mio˜migliore˜amico,‘:îc“he˜non˜conosce˜RAID,˜dice˜c“he˜la˜cosa˜corretta˜da˜fare˜adessoŽ¤ ®‘€è›U ‘ÕHºdd–?¬if=/dev/hda3“of=/dev/hdc3¹.‘q€Ho˜pro•¸èv‘ÿqÐato˜a˜farlo,˜ma˜le˜cose˜con“tin“uano˜a˜non˜funzionare.ŽŸ¬à‘=ÿÁR¹:–ãIl“tuo“migliore“amico“doš¸èvrebbGe“rimanere“alla“larga“dal“tuo“computer.‘K}F‘ÿ*¸ortunatamen˜teŽ¡‘/non–U vi“sono“stati“danni“gra¸èvi.‘q€Si“pu€ò“riaggiustare“il“tutto“eseguendo:Ž©‰Ö‘A³3Ämkraid–¹Nraid1.conf“-f“--only-superblockŽŸ Š=Ÿ­­‘=ÿ¹Usando–IѺdd¹,‘Lsono“state“create“due“copie“iden•¸ètic“he–IÑdella“partizione.‘m»Questo“v‘ÿqÐa“quasi“bGene,Ž¡‘/tranne–·pGer“il“fatto“cš¸èhe“le“estensioni“RAID-1“del“k˜ernel“si“aspGettano“c˜he“i“sup•Gerblo“c˜k‘·RAIDŽ¡‘/siano–dierenš¸èti.‘öÌCos€ì,‘̪quando“si“pro˜v›ÿqÐa“a“riattiv˜are“RAID,“il“soft•¸èw“are–nota“il“problema“eŽ¡‘/disattiv‘ÿqÐa–ŠÌuna“delle“due“partizioni.‘ƒRicreando“i“sup•Gerblo“c•¸èk,‘Ø6si›ŠÌdo“vrebbGe˜a“v“ere˜un˜sistemaŽ¡‘/pGerfettamen•¸ète‘U funzionan“te.ŽŸ¬ß‘ 9b4.ŽŽŽ‘ÁD¹:–U La“mia“vš¸èersione“di“ºmkraid“¹non“ha“un'opzione“ºonly-superblock“¹.‘q€Che“dev˜o“fare?ŽŸ­F‘=ÿÁR¹:›*ªI‘)kn•¸èuo“vi˜to•Gol˜non˜supp“ortano˜questa˜opzione,‘ ` c¸èhe˜€è˜stata˜rimpiazzata˜daŽ¡‘/ºforce-resync¹.‘Tрȑþüstato–ÿriferito“cš¸èhe“la“seguen˜te“sequenza“di“comandi“funziona“con“gli“ultimiŽ¡‘/toGol–U e“soft•¸èw“are:Ž¦‘K%ÏÄumount–¹N/web“(dove“/dev/md0“€è“stata“montata)Ž¤ Š=‘K%Ïraidstop‘¹N/dev/md0Ž¡‘K%Ïmkraid–¹N/dev/md0“--force-resync“--really-forceŽ¡‘K%Ïraidstart‘¹N/dev/md0Ž¡©­­‘=ÿ¹DopšGo–°#questo,‘äun“ºcat‘?¬/proc/mdstat“¹do¸èvrebb˜e“dare“ºresync–?¬in“progress¹,‘äe–°#a“questoŽ¤ ®‘/pun•¸èto›U do“vrebb•Ge˜essere˜p“ossibile˜eettuare˜un˜ºmount‘?¬/dev/md0¹.ŽŸ­F‘ 9b5.ŽŽŽ‘ÁD¹:–IpIl“mio“dispGositiv¸èo“RAID-1,‘KǺ/dev/md0“¹€è“formato“da“due“partizioni:‘k¨º/dev/hda3“¹e“º/dev/hdc3¹.‘m›Il“mioŽ¡‘migliore–ܸamico/a“(in“inglese“My“bGest“(girl)friend“NdT),“c¸èhe“non“conosce“RAID,“ha“eseguito“ºfsck“¹suŽ¡‘º/dev/hda3–U ¹menš¸ètre“io“non“guarda˜v˜o“e“adesso“RAID“ha“smesso“di“funzionare.‘q€Cosa“dev˜o“fare?ŽŸ¬à‘=ÿÁR¹:–™Il“concetto“di“migliore“amico“andrebbšGe“riesaminato.‘ ëIn“generale,‘ž7ºfsck“¹non“do¸èvrebb˜eŽ¡‘/essere–êÞmai“eseguito“su“una“singola“partizione“facen¸ète“parte“di“un“sistema“RAID.“PresumendoŽ¡‘/cš¸èhe–ýVnessuna“partizione“sia“stata“fortemen˜te“danneggiata“non“sono“andati“pGersi“dati“e“ilŽ¡‘/dispšGositiv¸èo–U RAID-1“pu€ò“essere“recup˜erato“come“segue:Ž¦‘/ìã(a)ŽŽŽ‘A³3eettuare–U un“bac¸èkup“del“lesystem“di“º/dev/hda3Ž¦‘/^³¹(b)ŽŽŽ‘A³3ºdd–?¬if=/dev/hda3“of=/dev/hdc3Ž¦‘0{¹(c)ŽŽŽ‘A³3ºmkraid–?¬raid1.conf“-f“only-superblockŽ¦‘=ÿ¹Questo–U do¸èvrebbšGe“rip˜ortare“al“funzionamen¸èto“il“disp˜ositiv¸èo“di“mirror.ŽŸ¬ß‘ 9b6.ŽŽŽ‘ÁD¹:›U P•¸èerc“h€é˜la˜proGcedura˜preceden“te˜funziona?Ž©­F‘=ÿÁR¹:›åRP•¸èerc“h€é˜ogni˜partizione˜compGonen“te˜un˜mirror˜RAID-1˜€è˜una˜copia˜pGerfettamen“teŽ¡‘/v‘ÿqÐalida–ËÍdel“lesystem.‘ÕˆA¸èddirittura“il“mirroring“pu€ò“essere“disabilitato“e“una“delle“partizioniŽ¡‘/pu€ò–·vš¸èenire“mon˜tata“e“funzioner€à“senza“problemi“come“un“lesystem“normale,‘Ï‚senza“RAID.Ž¡‘/Quando–l/si“€è“pronš¸èti“a“ripartire“con“RAID-1,‘qòsi“smon˜ti“la“partizione“e“si“seguano“le“istruzioniŽ¡‘/sopracitate–äÊpšGer“far“ripartire“il“mirror.‘LSi“noti“c¸èhe“le“istruzioni“di“cui“sopra“v‘ÿqÐalgono“SOLO‘ä®p˜erŽ¡‘/RAID-1–U e“pGer“nessun“altro“liv¸èello.Ž¡‘=ÿVi›Œpp•Gotrebb“e˜far˜sen•¸ètire˜pi€ù˜a˜v“ostro˜agio˜l'in“v“ertire˜la˜direzione˜della˜copia˜di˜cui˜sopra:Ž¡‘/copiare–œ«Ádal“¹disco“cš¸èhe“non“€è“stato“toGccato“Áa“¹quello“c˜he“lo“€è“stato.‘H!Solo“assicuratevi“c˜he“allaŽ¡‘/ne–U vš¸èenga“eseguito“fsc˜k“sul“risultan˜te“dispGositiv˜o“md.Ž¦‘ 9b7.ŽŽŽ‘ÁD¹:–Mi“sen¸èto“un“pšGo'“confuso“dalle“domande“rip˜ortate“sopra,‘;ma“ancora“non“mollo.‘WKMa“€è“sicuro“eseguireŽ¡‘ºfsck‘?¬/dev/md0‘U ¹?ŽŽŽŒ‹øç Û_2 ý ~?Ÿ„€ÕÁGŽÁ4.‘ñ8Riparare–Õgli“errori’]ˆË¹17ŽŽ ÕÁ ýV¯‘=ÿÁR¹:–´ŽSi,‘Ô«€è“una“cosa“sicura“l'esecuzione“di“ºfsck“¹sui“dispGositivi“ºmd¹.‘;úIn“eetti“questo“€è“ºl'unicoŽ¤ ®‘/¹pGosto–U sicuro“do•¸èv“e–U eseguire“ºfsck¹.Ž©®‘ 9b8.ŽŽŽ‘ÁD¹:– LSe“un“disco“si“sta“deteriorando“len•¸ètamen“te,‘7—sar€à› Lo“vvio˜scoprire˜quale˜sia?‘‘Sono˜preoGccupato˜dalŽ¡‘fatto–Ϫc¸èhe“non“lo“sia,‘îLe“questa“confusione“p•Gotrebb“e›Ϫp“ortare˜a˜qualc¸èhe˜decisione˜p“ericolosa˜da˜parte˜diŽ¡‘un–U amministratore“di“sistema.Ž¦‘=ÿÁR¹:–¸6Una“vš¸èolta“c˜he“un“disco“si“rompšGe,‘טun“co˜dice“di“errore“viene“trasmesso“dal“driv¸èer“a“bassoŽ¡‘/livš¸èello–Ÿal“driv˜er“RAID.“Il“driv˜er“RAID‘”marc˜her€à“questo“disco“come“cattiv˜o‘Tçnei“sup•Gerblo“c˜kŽ¡‘/dei–ôLdiscš¸èhi“buoni‘É”(in“questa“maniera“pi€ù“a˜v‘ÿqÐan˜ti“sapremo“quale“dei“disc˜hi“di“mirror“sia“buonoŽ¡‘/e–U quale“non)“e“con•¸ètin“uer€à–U le“opGerazioni“RAID“sui“rimasti“discš¸èhi“funzionan˜ti.Ž¡‘=ÿQuesto,›–{v‘ÿqÐa–‰ida“s€é,˜d€à“pGer“certo“cš¸èhe“il“disco“ed“i“driv˜er“di“basso“liv˜ello“pGossano“accorgersiŽ¡‘/di–„zun“errore“in“lettura/scrittura“e“c¸èhe,›ÐPpGer“esempio,˜non“con•¸ètin“uino–„za“danneggiare“i“datiŽ¡‘/in–+›silenzio.‘ôòQuesto“€è“vš¸èero“pGer“i“driv˜er“attuali“(sc˜hemi“di“rilev‘ÿqÐazione“dell'errore“sono“usatiŽ¡‘/in•¸èternamen“te)–U ed“€è“base“delle“opGerazioni“RAID.Ž¦‘ 9b9.ŽŽŽ‘ÁD¹:–U E“sulla“riparazione“a“caldo?Ž¦‘=ÿÁR¹:–Si“sta“la•¸èv“orando–pGer“completare“la“ricostruzione“a“caldo.‘[xCon“questa“funzionalit€à,‘ @siŽ¡‘/pGossono–ƒ”aggiungere“dei“discš¸èhi“spare‘XÜal“set“RAID‘ƒˆ(sia“esso“di“liv˜ello“1“o“4/5),‘0e“quando“unŽ¡‘/disco–)asmette“di“funzionare“i“dati“con•¸èten“uti–)ain“esso“saranno“ricostruiti“su“uno“dei“disc¸èhi“spareŽ¡‘/duranš¸ète–U l'attivit€à,“senza“nemmeno“a˜v˜er“bisogno“di“fermare“il“set“RAID.Ž¡‘=ÿT‘ÿ*¸utta¸èvia,›ÑpGer–°usare“questa“funzionalit€à,˜il“disco“spare“devš¸èe“essere“stato“dic˜hiarato“duran˜teŽ¡‘/il›)²b•Go“ot,‘2ao˜esso˜do•¸èvr€à˜essere˜aggiun“to˜a˜caldo,‘2acosa˜c“he˜ric“hiede˜l'uso˜di˜connettori˜e˜cabinetŽ¡‘/spGeciali–U cš¸èhe“consen˜tano“di“aggiungere“un“disco“senza“togliere“corren˜te.Ž¡‘=ÿDa–U Ottobre“97“esiste“una“vš¸èersione“bGeta“di“MD“c˜he“consen˜te:Ž¤®‘7³2¸ŽŽŽ‘A³3¹la–U ricostruzione“dei“livš¸èelli“RAID“1“e“5“su“disc˜hi“spareŽ¡‘7³2¸ŽŽŽ‘A³3¹la–U ricostruzione“della“parit€à“di“RAID-5“dopšGo“uno“sh•¸èutdo“wn‘U sp˜orcoŽ¡‘7³2¸ŽŽŽ‘A³3¹l'aggiunš¸èta–U a“caldo‘*hdi“disc˜hi“spare“ad“una“serie“gi€à“in“funzione“di“disc˜hi“RAID“1“o“4/5.Ž¡‘=ÿCome–„·predenizione,‘Ðœla“ricostruzione“automatica“€è“in“questo“momenš¸èto“(Dicem˜bre“97)Ž¤ ®‘/disabilitata–Ãa“causa“della“natura“ancora“spGerimenš¸ètale“di“questo“la˜v˜oro.‘V Pu€ò“com˜unque“essereŽ¡‘/abilitata–U cam¸èbiando“il“v‘ÿqÐalore“di“ºSUPPORT_RECONSTRUCTION“¹in“ºinclude/linux/md.h¹.Ž¡‘=ÿSe– €i“driv¸èe“spare“sono“stati“congurati“su“un“sistema“raid“quando“esso“€è“stato“creato“eŽ¡‘/la–Q]ricostruzione“€è“stata“attiv‘ÿqÐata“nel“kš¸èernel,‘Ri“driv˜e“spare“con˜terranno“da“subito“il“sup•Gerblo“c˜kŽ¡‘/RAID‘½Ø(scritto–¾5da“ºmkraid¹),‘{e“il“kš¸èernel“sar€à“capace“di“ricostruire“il“con˜ten˜uto“in“manieraŽ¡‘/automatica–U (senza“bisogno“degli“usuali“passi“ºmdstop¹,“camš¸èbia“il“driv˜e,ºckraid¹,“ºmdrun¹).Ž¡‘=ÿSe–Æ non“a•¸èv“ete–Æ congurato“la“ricostruzione“automatica“e“non“a•¸èv“ete–Æ congurato“un“dis-Ž¡‘/co–ï/spare,‘•²la“proGcedura“descritta“da“Gadi“Oxman“µ<“Âgadio@netvision.net.il“µ>“¹€è“quellaŽ¡‘/raccomandata:Ž©®‘7³2¸ŽŽŽ‘A³3¹Pš¸èer–­Zadesso,‘Ãhuna“v˜olta“c˜he“il“primo“disco“€è“stato“rimosso,‘Ãhil“sistema“RAID‘­Ccon˜tin˜uer€à“aŽ¡‘A³3funzionare–åiin“mošGdalit€à“degradata.‘LCP¸èer“rip˜ortarlo“alla“piena“funzionalit€à“a¸èvrete“bisognoŽ¡‘A³3di:Ž¦‘GóŽÁŽŽŽ‘R³2¹fermare–U il“sottosistema“RAID“(ºmdstop‘?¬/dev/md0¹)Ž¦‘GóŽÁŽŽŽ‘R³2¹rimpiazzare–U il“disco“rottoŽ¦‘GóŽÁŽŽŽ‘R³2¹eseguire–U ºckraid‘?¬raid.conf“¹pGer“ricostruire“il“suo“con•¸èten“utoŽ¦‘GóŽÁŽŽŽ‘R³2¹far–U ripartire“RAID“(ºmdadd¹,“ºmdrun¹).Ž¦‘A³3A‘ʤquesto–Ëpunš¸èto,‘(}nel“sistema“funzioneranno“di“n˜uo˜v˜o“tutti“i“disc˜hi,‘(}garan˜tendoGci“dalŽ¡‘A³3malfunzionamen¸èto–U di“uno“di“essi.Ž¦‘=ÿPš¸èer–î’adesso“non“€è“pGossibile“assegnare“singoli“disc˜hi“spare“a“div˜erse“serie“RAID.“OgniŽ¡‘/sottosistema–U ric¸èhieder€à“il“proprio“disco“spare.ŽŽŽŒ‹ø Û_2 ý ~?Ÿ„€ÕÁGŽÁ4.‘ñ8Riparare–Õgli“errori’]ˆË¹18ŽŽ ÕÁ ýV¯‘9²10.ŽŽŽ‘ÁD¹:–ŸBV‘ÿ*¸orrei“c¸èhe“ci“fosse“un“allarme“udibile“pšGer“ehi“tu,‘±Ësi“€è“rotto“un“disco“nel“mirror‘tŠin“mo˜do“tale“c¸èheŽ¤ ®‘ancš¸èhe–U il“no˜v˜ello“amministratore“di“sistema“pšGossa“sap˜ere“c¸èhe“c'€è“un“problema.Ž©®‘=ÿÁR¹:–uÜUn“ev•¸èen“to–uÜcome“questo“viene“segnalato“nei“log“di“sistema“dal“k¸èernel“con“la“prior-Ž¡‘/it€à–¬f‘ÕHºKERN_ALERT¹.“Vi“sono“divš¸èersi“pacc˜hetti“soft˜w˜are“c˜he“con˜trollano“i“le“log“di“sistemaŽ¡‘/e–xfanno“emettere“un“bip“allo“spGeak¸èer“del“PC,“eseguono“un“pager,‘’mandano“e-mail“ecc.Ž¡‘/automaticamen¸ète.Ž¦‘9²11.ŽŽŽ‘ÁD¹:–ZTCome“pšGosso“fare“a“far“partire“RAID-5“in“mo˜dalit€à“degradata“(con“un“disco“rotto“e“non“ancoraŽ¡‘rimpiazzato)?Ž¦‘=ÿÁR¹:–1YGadi“Oxman“µ<“Âgadio@netvision.net.il“µ>“¹ha“scritto:‘_Normalmen¸ète,‘8pGer“far“funzionareŽ¡‘/un–U set“di“n“discš¸èhi“RAID-5“si“dev˜e“eseguire:Ž©Š=‘A³3Ämdadd–¹N/dev/md0“/dev/disk1“...“/dev/disk(n)Ž¤ Š=‘A³3mdrun–¹N-p5“/dev/md0Ž¡Ÿ®‘=ÿ¹Ancš¸èhe–aìse“uno“dei“disc˜hi“€è“rotto,‘esi“dev˜e“com˜unque“eseguire“ºmdadd“¹su“quel“disco,‘ecome“seŽ¤ ®‘/tutto–U fosse“normale.–q€(??“proš¸èv‘ÿqÐare–U a“usare“/dev/n˜ull“al“pšGosto“del“disco“rotto“???‘q€o˜cc¸èhio)Ž¡‘=ÿQuindi,Ž¡‘=ÿIl–œ‰sistema“RAID‘œwfunzioner€à“in“moGdalit€à“degradata“con“(n“-“1)“disc¸èhi.‘G»Se“l'esecuzione“diŽ¡‘/‘ÕHºmdrun¹‘<non–f¹v‘ÿqÐa“a“buon“ne,‘k il“kš¸èernel“ha“notato“un“errore“(pGer“esempio“div˜ersi“disc˜hi“rotti“oŽ¡‘/uno›ˆ‰sh•¸èutdo“wn˜sp•Gorco).‘ »Si˜usi˜‘ÕHºdmesg¹‘]Ñp“er˜visionare˜i˜messaggi˜di˜errore˜del˜k¸èernel˜generatiŽ¡‘/dall'esecuzione–·Adi“‘ÕHºmdrun¹.‘—ãSe“il“set“raid-5“€è“ro¸èvinato“a“causa“di“un“calo“di“tensione,‘ÏÉe“nonŽ¡‘/a–ZŸcausa“della“rottura“di“un“disco,‘›þsi“pu€ò“tenš¸ètare“di“recupGerare“il“tutto“creando“un“n˜uo˜v˜oŽ¡‘/sup•Gerblo“c¸èk‘U RAID:Ž¦‘A³3Ämkraid–¹N-f“--only-superblock“raid5.confŽŸ Š=©®‘=ÿ¹Una–£Òserie“di“discš¸èhi“RAID‘£¥non“fornisce“protezione“alcuna“con˜tro“i“difetti“dell'alimen˜tazioneŽ¡‘/o–Qªconš¸ètro“un“bloGcco“del“k˜ernel“e“quindi“non“pu€ò“nemmeno“garan˜tire“un“corretto“recupGero“deiŽ¡‘/dati.‘ž]La–¹jricostruzione“del“sup•Gerblo“c¸èk–¹jservir€à“solo“a“far“ignorare“al“sistema“la“condizione“inŽ¡‘/cui–U si“troš¸èv‘ÿqÐa“marcando“tutti“i“driv˜e“come“OK‘*hcome“se“nien˜te“fosse“accaduto.Ž¤®‘9²12.ŽŽŽ‘ÁD¹:–U Come“funziona“RAID-5“nel“caso“c¸èhe“un“disco“smetta“di“funzionare?Ž¡‘=ÿÁR¹:–U Uno“scenario“tipico“€è“il“seguen¸ète:Ž¦‘7³2¸ŽŽŽ‘A³3¹Una–U serie“di“disc¸èhi“RAID-5“€è“attiv‘ÿqÐa.Ž¦‘7³2¸ŽŽŽ‘A³3¹Un–U disco“si“rompGe“men¸ètre“la“serie“€è“attiv‘ÿqÐa.Ž¦‘7³2¸ŽŽŽ‘A³3¹Il›õ´rm•¸èw“are˜del˜disco˜e˜i˜driv“er˜di˜basso˜liv“ello˜del˜disco/con“troller˜si˜accorgono˜delŽ¤ ®‘A³3malfunzionamenš¸èto–U e“in˜viano“un“messaggio“di“errore“al“driv˜er“MD.Ž¦‘7³2¸ŽŽŽ‘A³3¹Il–»¼drivš¸èer“MD‘»•con˜tin˜ua“a“fornire“un“dispGositiv˜o“º/dev/md0“¹priv˜o“di“errori“ai“driv˜er“di“liv˜elloŽ¡‘A³3pi€ù–U alto“(ancš¸èhe“se“con“pGerformance“ridotte)“usando“i“rimanen˜ti“driv˜e“opGerativi.Ž¦‘7³2¸ŽŽŽ‘A³3¹L'amministratore–2Ädi“sistema“pu€ò“quindi“eseguire“ºumount›?¬/dev/md0“¹e“ºmdstop˜/dev/md0Ž¡‘A³3¹come–U al“solito.Ž¦‘7³2¸ŽŽŽ‘A³3¹Se–Ë·il“disco“rotto“non“viene“rimpiazzato,‘é]l'amministratore“di“sistema“pu€ò“com¸èunque“farŽ¡‘A³3partire–U il“sistema“raid“in“moGdalit€à“degradata“come“al“solito“eseguendo“ºmdadd“¹e“ºmdrun¹.Ž©®‘9²13.ŽŽŽ‘ÁD¹:–ç®Ho“appšGena“sostituito“un“disco“rotto“in“un“sistema“RAID-5.‘ ))Dop˜o“a•¸èv“er–ç®ricostruito“il“sistema,Ž¡‘l'esecuzione–U di“ºfsck“¹mi“d€à“molti,“molti“errori.‘q€€È“normale?Ž¦‘=ÿÁR¹:–WcNo.‘xHE,“a“meno“cš¸èhe“fsc˜k“non“sia“stato“eseguito“in“moGdalit€à“v˜erify“only;‘X„do“not“upGdateŽ¡‘/(v•¸èerica›…¾solamen“te;‘ž non˜aggiornare.‘Yndt),‘‘å€è˜del˜tutto˜pGossibile˜c“he˜abbiate˜ro“vinato˜i˜v“ostriŽŽŽŒ‹© Û_2 ý ~?Ÿ„€ÕÁGŽÁ5.‘ñ8Risoluzione–Õdei“problemi“di“installazione’î]A¹19ŽŽ ÕÁ ýV¯‘/dati.‘U Sfortunatamenš¸ète,‘³ðuno– úscenario“non“p•Go“co– úraro“€è“quello“nel“quale“si“cam˜bia“acciden˜tal-Ž¤ ®‘/menš¸ète–ù{l'ordine“dei“disc˜hi“in“una“serie“di“disc˜hi“RAID-5,‘ ÏdopGo“a˜v˜erne“rimpiazzato“uno.‘RôAnc˜heŽ¡‘/se–Y÷il“sup•Gerblo“cš¸èk–Y÷RAID‘Yömemorizza“l'ordine“corretto,‘[-non“tutti“i“toGol“tengono“con˜to“di“questaŽ¡‘/informazione.‘::In–˜ particolare,‘¨Ãla“v¸èersione“attuale“di“ºckraid“¹user€à“le“informazioni“spGecicateŽ¡‘/nell'opzione–ZϺ-f“¹(usualmenš¸ète“il“le“º/etc/raid5.conf¹)“al“pGosto“di“quelle“con˜ten˜ute“nel“su-Ž¡‘/p•Gerblo“c¸èk.‘ofSe–ÿl'ordine“spGecicato“non“€è“quello“corretto“il“disco“rimpiazzato“sar€à“ricostruitoŽ¡‘/in–Ú½maniera“errata.‘VSinš¸ètomo“di“questo“tipGo“di“sbaglio“sem˜brano“essere“i“pGesan˜ti“e“n˜umerosiŽ¡‘/errori–U di“ºfsck¹.Ž¡‘=ÿE,–ÖOnel“caso“siate“mera¸èvigliati,–ï¬Ás€ì¹,“qualcuno–ÖOha“pGerso“Átutti“¹i“suoi“dati“commettendo“questoŽ¡‘/sbaglio.‘ äM€È‘%—Áfortemen®>te‘ëÄraccomandato–&¹un“bac¸èkup“su“nastro“di“Átutti“¹i“dati“prima“diŽ¡‘/ricongurare–U una“serie“di“disc¸èhi“RAID.Ž©®‘9²14.ŽŽŽ‘ÁD¹:Ž¤®‘=ÿÁR¹:Ž¡‘9²15.ŽŽŽ‘ÁD¹:›U P•¸èerc“h€é˜non˜vi˜€è˜una˜domanda˜n“umero˜13?Ž¦‘=ÿÁA¹:–Se“siete“scettici“sul“RAID,“sull'Alta“Adabilit€à“e“UPS‘éprobabilmen¸ète“€è“una“buonaŽ¤ ®‘/idea–U l'essere“anc¸èhe“supGerstiziosi.‘q€Male“non“pu€ò“fare,“no?Ž¦‘9²16.ŽŽŽ‘ÁD¹:–o Il“Quicš¸èkStart“dice“c˜he“ºmdstop“¹serv˜e“solo“ad“essere“sicuri“c˜he“i“disc˜hi“siano“in“sincronia.‘ ¿>€ÈŽ¡‘REALMENTE–U necessario?‘q€Non“€è“abbastanza“smon¸ètare“il“lesystem?Ž¦‘=ÿÁR¹:–U Il“comando“ºmdstop‘?¬/dev/md0¹:Ž©®‘7³2¸ŽŽŽ‘A³3¹lo–Ì marcš¸èher€à“come“pulito.‘Ö€Questo“ci“consen˜te“di“rilev‘ÿqÐare“gli“sh˜utdo˜wn“spGorc˜hi“do˜vuti,Ž¡‘A³3pšGer–U esempio,“ad“un“blo˜cco“del“kš¸èernel“o“ad“un“malfunzionamen˜to“nell'alimen˜tazione.Ž¦‘7³2¸ŽŽŽ‘A³3¹metter€à–«Œin“sincronia“i“discš¸èhi“del“dispGositiv˜o.‘tÃQuesta“€è“una“cosa“meno“impGortan˜te“delloŽ¡‘A³3smonš¸ètare–Qgil“lesystem“ma“€è“impGortan˜te“se“l'accesso“a“º/dev/md0“¹a˜vviene“direttamen˜teŽ¡‘A³3in•¸èv“ece›U c“he˜attra“v“erso˜un˜lesystem˜(ad˜esempio˜come˜nel˜caso˜di˜ºe2fsck¹).ŽŸ(ÀœÀ5Ž‘ÁRisoluzione–G\dei“problemi“di“installazioneŽŸ”’‘ 9b¹1.ŽŽŽ‘ÁD¹:–U Quale“€è“attualmenš¸ète“la“patc˜h“pi€ù“stabile“e“conosciuta“pGer“RAID“nei“k˜ernel“della“serie“2.0.x?Ž©®‘=ÿÁR¹:–PAl“28“Settemš¸èbre“1997“€è“(ripGorto“letteralmen˜te.‘#ndt)“2.0.30“+“pre-9“2.0.31“+“W‘ÿ*¸ernerŽ¡‘/Fink's–U swš¸èapping“patc˜h“+“the“alpha“RAID“patc˜h.‘q€A“No˜v˜em˜bre“1997,“€è“2.0.31“+“...‘q€!?Ž¦‘ 9b2.ŽŽŽ‘ÁD–U ¹Le“patcš¸èh“pGer“il“RAID“non“v˜engono“correttamen˜te“installate.‘q€Do˜v'€è“l'errore?Ž©®‘=ÿÁR¹:–îKAssicuratevi“cš¸èhe“º/usr/include/linux“¹sia“un“link“sim˜bGolico“aŽ¡‘/º/usr/src/linux/include/linux¹.Ž¡‘=ÿAssicuratevi–h—cš¸èhe“i“n˜uo˜vi“les“ºraid5.c¹,‘muetc.›«åsiano“stati“copiati“nei“pGosti“giusti.˜A‘h’v¸èolte“ilŽ¡‘/comando–U patcš¸èh“non“crea“n˜uo˜vi“les.‘q€Pro˜v‘ÿqÐate“con“l'opzione“º-f“¹del“comando“ºpatch¹.Ž¦‘ 9b3.ŽŽŽ‘ÁD¹:–XIDuran¸ète“la“compilazione“di“raidtošGols“0.42,‘Ùil“compilatore“si“blo˜cca“men¸ètre“cerca“di“includereŽ¡‘µ<¹pthread.hµ>–U ¹ma“questo“le“non“esiste“nel“mio“sistema.‘q€Come“pGosso“correggere“questo“errore?Ž©®‘=ÿÁR¹:–U raidtoGols-0.42“ricš¸èhiede“lin˜uxthreads-0.6“da:Ž¡‘=ÿºftp://ftp.inria.fr/INRIA/Projects/cristal/Xavier.LeroyŽ¡‘=ÿ¹In–U alternativ‘ÿqÐa“si“pšGossono“usare“le“glib˜c“v2.0.Ž¦‘ 9b4.ŽŽŽ‘ÁD¹:–U Ottengo“il“messaggio:‘q€ºmdrun–?¬-a“/dev/md0:‘ XInvalid“argumentŽŽŽŒ‹*g Û_2 ý ~?Ÿ„€ÕÁGŽÁ5.‘ñ8Risoluzione–Õdei“problemi“di“installazione’î]A¹20ŽŽ ÕÁ ýV¯‘=ÿÁR¹:–õ>Si“devš¸èe“usare“ºmkraid“¹pGer“inizializzare“il“set“RAID‘õ&prima“c˜he“v˜enga“usato“pGer“la“primaŽ¤ ®‘/vš¸èolta.‘l\ºmkraid–¨¿¹si“assicura“del“fatto“c˜he“il“sistema“RAID‘¨©sia“inizialmen˜te“in“uno“stato“di“co-Ž¡‘/erenza–ÖÂcancellando“le“partizioni“RAID.“In“aggiunš¸èta,ºmkraid“¹si“o•Gccup“er€à–ÖÂdi“creare“i“sup•Gerblo“c˜kŽ¡‘/RAID.ŽŸDº‘ 9b5.ŽŽŽ‘ÁD¹:–U Ottengo“il“messaggio:‘q€ºmdrun–?¬-a“/dev/md0:‘ XInvalid“argument–U ¹La“proGcedura“di“setup“€è“stata:ŽŸgØ‘%¸ŽŽŽ‘/¹compilazione–U di“raid“come“moGdulo“del“k¸èernelŽ¤gØ‘%¸ŽŽŽ‘/¹€è–U stata“seguita“la“normale“proGcedura“di“installazione“...‘q€mdcreate,“mdadd,“etc.Ž¡‘%¸ŽŽŽ‘/¹il–U comando“ºcat‘?¬/proc/mdstat“¹proGduce“questo“output:Ž©gØ‘Cþ²ºPersonalities‘?¬:Ž¤ ®‘Cþ²read_ahead–?¬not“setŽ¡‘Cþ²md0–?¬:“inactive“sda1“sdb1“6313482“blocksŽ¡‘Cþ²md1–?¬:“inactiveŽ¡‘Cþ²md2–?¬:“inactiveŽ¡‘Cþ²md3–?¬:“inactiveŽ¡¦‘%¸ŽŽŽ‘/ºmdrun›?¬-a–U ¹genera“il“messaggio“di“errore“º/dev/md0:‘ XInvalid˜argumentŽŸDº‘=ÿÁR¹:–NSSi“pro¸èvi“ad“eseguire“ºlsmod“¹(o,›ŒŸin“alternativ‘ÿqÐa,˜ºcat‘?¬/proc/modules¹)“pGer“v¸èedere“se“iŽ¡‘/mošGduli–raid“sono“stati“caricati.‘I|Se“non“lo“sono“stati,‘ïp˜ossono“essere“caricati“in“manieraŽ¡‘/esplicita–ü_con“i“comandi“ºmodprobe›?¬raid1“¹o“ºmodprobe˜raid5¹.‘g=In“alternativ‘ÿqÐa,‘&/se“usate“l'au-Ž¡‘/toloader–_e“se“credete“c¸èhe“ºkerneld“¹debba“caricarli“e“non“lo“fa,‘,np•Gotrebb“e–_essere“a“causa“delŽ¡‘/fatto–÷cš¸èhe“il“loader“manca“delle“informazioni“c˜he“serv˜ono“pšGer“caricare“i“mo˜duli.‘XÇMo˜dicateŽ¡‘/º/etc/conf.modules–U ¹aggiungendo“le“linee“seguen¸èti:Ž¦‘Cþ²ºalias–?¬md-personality-3“raid1Ž¡‘Cþ²alias–?¬md-personality-4“raid5Ž¡©Dº‘ 9b¹6.ŽŽŽ‘ÁD¹:–ůDuran¸ète“l'esecuzione“del“comando“ºmdadd›?¬-a“¹si“ha“l'errore:‘ Ržº/dev/md0:‘ XNo˜such˜file˜orŽ¡‘directory¹.‘q€Semš¸èbra–U pGer€ò“c˜he“non“vi“siano“º/dev/md0“¹da“nessuna“parte.‘q€E“adesso?Ž¦‘=ÿÁR¹:–ÝIl“pac¸èk‘ÿqÐage“raid-tošGols“crea“questi“disp˜ositivi“quando“viene“eseguito“il“comando“ºmakeŽ¡‘/install–U ¹come“uten¸ète“roGot.‘q€In“alternativ‘ÿqÐa,“si“pu€ò“fare“cos€ì:ŽŸŠö‘Cþ²ºcd‘?¬/devŽ¡‘Cþ²./MAKEDEV‘?¬mdŽ¡¦‘ 9b¹7.ŽŽŽ‘ÁD¹:– -¡DopGo“a•¸èv“er– -¡creato“un“sistema“raid“su“º/dev/md0¹,‘ £Âpro•¸èv“o– -¡a“mon¸ètarlo“ma“ottengo“ilŽ¡‘seguen¸ète‘x²errore:‘ ¸£ºmount:‘ Xwrong–?¬fs“type,“bad“option,“bad“superblock“on“/dev/md0,“or“tooŽ¡‘many–?¬mounted“file“systems¹.‘q€Cosa–U c'€è“c¸èhe“non“v‘ÿqÐa?Ž©gØ‘=ÿÁR¹:–GSi“devš¸èe“creare“un“le“system“su“º/dev/md0“¹prima“c˜he“sia“pGossibile“mon˜tarlo.‘ºöUsareŽ¡‘/ºmke2fs¹.Ž¦‘ 9b8.ŽŽŽ‘ÁD¹:–U T›ÿ*¸ruxton“F˜ulton“ha“scritto:Ž¦‘=ÿSul–ecmio“sistema“Linš¸èux“2.0.30,‘©tmen˜tre“eseguiv˜o“ºmkraid“¹su“un“dispGositiv˜o“RAID-1,‘©tdu-Ž¡‘/ranš¸ète–:óla“pulizia“delle“due“distin˜te“partizioni“ho“visto“apparire“sulla“console“gli“errori“º-Ž¡‘/Cannot–?¬allocate“free“page–Ôp¹e“altri“errori“ºUnable–?¬to“handle“kernel“paging“requestŽ¡‘/at–?¬virtual“address“...›TŽ¹risulta¸èv‘ÿqÐano–þJnel“log“di“sistema.˜A‘þ4questo“punš¸èto“il“sistema“€è“div˜en-Ž¡‘/tato–ÙpressoGcš¸èh€é“in˜utilizzabile,‘´ma“si“€è“pšGoi“ristabilito“dop˜o“un“p˜o'.‘WL'op˜erazione“sem¸èbra“essersiŽŽŽŒ‹91 Û_2 ý ~?Ÿ„€ÕÁGŽÁ5.‘ñ8Risoluzione–Õdei“problemi“di“installazione’î]A¹21ŽŽ ÕÁ ýV¯‘/conclusa–$£senza“errori“e“adesso“utilizzo“senza“problemi“il“mio“dispGositivš¸èo“RAID-1.‘aVCom˜unqueŽ¤ ®‘/quegli–U errori“con•¸ètin“uano–U a“sconcertarmi.‘q€Qualc¸èhe“idea?Ž©M‘=ÿÁR¹:–Û7Questo“era“un“bug“bGen“conosciuto“nei“kš¸èernel“2.0.30.‘H݀ȑÛstato“corretto“nel“k˜ernel“2.0.31;Ž¡‘/in–U alternativ‘ÿqÐa“si“pu€ò“tornare“al“2.0.29.ŽŸM‘ 9b9.ŽŽŽ‘ÁD¹:––Non“riesco“ad“eseguire“ºmdrun“¹su“un“dispGositivš¸èo“RAID-1,‘¦?RAID-4“o“RAID-5.‘40Se“pro˜v˜o“ad“eseguireŽ¡‘ºmdrun–Ðh¹su“un“dispGositivš¸èo“aggiun˜to“con“ºmdadd“¹mi“viene“dato“il“messaggio“‘ÕHºinvalid–?¬raid“superblockŽ¡‘magic¹.Ž¦‘=ÿÁR¹:–È Assicurarsi“cš¸èhe“sia“stata“seguita“la“parte“della“proGcedura“di“installazione“do˜v˜e“vieneŽ¡‘/utilizzato‘U ºmkraid¹.ŽŸM‘9²10.ŽŽŽ‘ÁD¹:–7øQuando“accedo“a“º/dev/md0“¹il“k¸èernel“se“ne“esce“con“molti“errori“tipGo“ºmd0:‘ Xdevice–?¬not“running,Ž¡‘giving–?¬up“!›q€¹e‘U ºI/O“error...¹.˜Ho–U aggiun¸èto“con“successo“i“miei“dispšGositivi“al“disp˜ositiv¸èo“virtuale.Ž¦‘=ÿÁR¹:–6×Pš¸èer“essere“utilizzabile“un“dispGositiv˜o“dev˜e“essere“in“funzione.‘ghSi“usi“il“comando“ºmdrunŽ¡‘/-px‘?¬/dev/md0›U ¹do•¸èv“e˜x˜€è˜1˜p•Ger˜linear,˜0˜p“er˜RAID-0˜o˜1˜p“er˜RAID-1,˜etc.ŽŸM‘9²11.ŽŽŽ‘ÁD¹:–F7Ho“creato“un“dispšGositiv¸èo“md“lineare“con“2“disp˜ositivi.‘Dƺcat‘?¬/proc/mdstat“¹mi“dice“la“grandezzaŽ¡‘totale–U del“dispGositivš¸èo“ma“ºdf“¹mi“fa“v˜edere“solo“le“dimensioni“del“primo“dispGositiv˜o“sicoŽ¦‘=ÿÁR¹:–GqSi“devš¸èe“eseguire“ºmkfs“¹su“un“n˜uo˜v˜o“dispGositiv˜o“md“prima“di“usarlo“pGer“la“prima“v˜olta,Ž¡‘/in–U mošGdo“tale“c¸èhe“il“lesystem“copra“tutto“il“disp˜ositiv¸èo.ŽŸM‘9²12.ŽŽŽ‘ÁD¹:–­ëHo“congurato“º/etc/mdtab“¹usando“mdcreate,›Äho“pGoi“eseguito“ºmdadd¹,˜ºmdrun“¹e“ºfsck“¹sulle“mie“dueŽ¡‘partizioni–H?º/dev/mdX¹.“Prima“del“reb•Go“ot–H?sem¸èbra“tutto“a“p•Gosto.‘àApp“ena–H?eettuo“il“reb•Go“ot–H?ºfsck“¹mi“d€à“erroriŽ¡‘su–l“tutte“e“due“le“partizioni:‘ fºfsck.ext2:‘ XAttempt–?¬to“read“block“from“filesystem“resulted“inŽ¡‘short–?¬read“while“trying“too“open“/dev/md0¹.›q€P•¸èerc“h€é?!˜Come–U pGosso“fare“a“correggerlo?!Ž¦‘=ÿÁR¹:–÷>Duran¸ète“il“prošGcesso“di“b˜o˜ot,‘_Æle“partizioni“RAID‘öÒdev¸èono“essere“messe“in“funzioneŽ¡‘/prima–Ç cš¸èhe“v˜engano“con˜trollate“da“ºfsck¹.‘ÇQuesto“dev˜e“essere“fatto“in“uno“degli“script“diŽ¡‘/b•Go“ot.‘d'In–ûXqualc¸èhe“distribuzione“ºfsck“¹€è“eseguito“da“º/etc/rc.d/rc.S¹,“in“altre“€è“eseguito“daŽ¡‘/º/etc/rc.d/rc.sysinit¹.‘› Si–c+mošGdic¸èhino“questi“le“in“mo˜do“da“eseguire“ºmdadd‘?¬-ar“¹*prima*Ž¡‘/di–9ºfsck‘?¬-A¹.“Ancora“meglio,‘r¼suggerisco“cš¸èhe“v˜enga“eseguito“ºckraid“¹se“ºmdadd“¹restituisce“unŽ¡‘/coGdice–ƒ$di“errore.‘ûŒCome“fare“ci€ò“€è“discusso“in“maggiore“dettaglio“nella“domanda“14“dellaŽ¡‘/sezione–‰ßRiparare“gli“errori.‘-À(Qui“l'originale“inglese“semš¸èbra“incoGeren˜te,‘²…in“quan˜to“la“domandaŽ¡‘/14–¹jdella“sezione“menzionata“non“€è“attinenš¸ète.‘ž]La“domanda“pi€ù“attinen˜te“sem˜bra“essere“la“7Ž¡‘/della–U sezione“Considerazioni“sul“setup“e“sull'installazione.‘q€ndt)ŽŸM‘9²13.ŽŽŽ‘ÁD¹:–z”Quando“pro•¸èv“o–z”a“far“funzionare“un“serie“di“partizioni“pi€ù“grandi“di“4“GB‘zŠmi“viene“dato“il“seguen¸èteŽ¡‘messaggio:‘q€ºinvalid–?¬raid“superblock“magicŽ¦‘=ÿÁR¹:–årQuesto“bug“€è“stato“corretto.‘"w(Settemš¸èbre“97)“Assicuratevi“di“a˜v˜ere“l'ultima“v˜ersioneŽ¡‘/del–U coGdice“RAID.ŽŸM‘9²14.ŽŽŽ‘ÁD¹:–,Quando“pro•¸èv“o–,ad“eseguire“mk¸èe2fs“su“una“partizione“pi€ù“grande“di“2“GB‘, mi“viene“dato“il“messaggioŽ¡‘ºWarning:‘ Xcould–?¬not“write“8“blocks“in“inode“table“starting“at“2097175Ž¦‘=ÿÁR¹:–0ûQuesto“semš¸èbra“essere“un“problema“con“ºmke2fs“¹(No˜v˜em˜bre“97)“Un“rimedio“tem-Ž¡‘/pšGoraneo–ãconsiste“nel“pro˜curarsi“il“co˜dice“di“mk¸èe2fs“e“aggiungere“º#undef‘?¬HAVE_LLSEEK‘â±¹aŽ¡‘/ºe2fsprogs-1.10/lib/ext2fs/llseek.c–t»¹subito“prima“del“primo“º#ifdef‘?¬HAVE_LLSEEK‘t/¹eŽ¡‘/quindi–U ricompilare“mk¸èe2fs.ŽŸM‘9²15.ŽŽŽ‘ÁD¹:–U ºckraid“¹non“riesce“a“leggere“º/etc/mdtabŽŽŽŒ‹Fœ Û_2 ý ~?Ÿ„€ÕÁGŽÁ6.‘ñ8Hardwš®>are–Õ&“Soft˜w˜are“SuppQÂortato’"÷¹22ŽŽ ÕÁ ýV¯‘=ÿÁR¹:–¬Il“formato“del“le“di“congurazione“usato“pGer“RAID0/linear“in“º/etc/mdtab“¹€è“obsoleto,Ž¤ ®‘/anc¸èhe–‘mse“sar€à“suppšGortato“ancora“p˜er“un“p˜o'.‘&gI‘‘]le“di“congurazione“usati“attualmen¸ète“sonoŽ¡‘/c¸èhiamati–U º/etc/raid1.conf¹,“etc.Ž©¦÷‘9²16.ŽŽŽ‘ÁD¹:–AxI‘@ùmošGduli“delle“p˜ersonalitš¸èy“(ºraid1.o¹)“non“v˜engono“caricati“automaticamen˜te;‘7¤si“dev˜e“eseguireŽ¡‘mo•Gdprob“e›U man•¸èualmen“te˜prima˜di˜eseguire˜mdrun.‘q€Come˜pGosso˜o“vviare˜all'incon“v“enien“te?ŽŸ¦ö‘=ÿÁR¹:–òûPš¸èer“il“caricamen˜to“automatico“dei“mošGduli,‘rsi“p˜ossono“aggiungere“le“seguen¸èti“linee“aŽ¡‘/º/etc/conf.modules¹:ŽŸ«µ‘Cþ²ºalias–?¬md-personality-3“raid1Ž¡‘Cþ²alias–?¬md-personality-4“raid5Ž¡¦‘9²¹17.ŽŽŽ‘ÁD¹:–™EHo“aggiun¸èto“con“ºmdadd“¹13“dispGositivi“e“adesso“sto“cercando“di“eseguire“ºmdrun–?¬-p5“/dev/md0¹,‘ªNmaŽ¡‘mi–U viene“dato“il“messaggio:‘q€º/dev/md0:‘ XInvalid‘?¬argumentŽŸ¦ö‘=ÿÁR¹:– La“congurazione“predenita“di“soft•¸èw“are› RAID‘rprev“ede˜8˜dispGositivi˜reali.‘‹ÿEditareŽ¡‘/ºlinux/md.h¹,‘¾[moGdicare–˜©º#define‘?¬MAX_REAL=8“¹con“un“nš¸èumero“pi€ù“alto“e“ricompilare“il“k˜ernel.Ž¦‘9²18.ŽŽŽ‘ÁD¹:–õöNon“riesco“a“far“funzionare“ºmd“¹su“delle“partizioni“nella“nostra“ultima“SP‘ÿ*¸AR¸èCstation“5.‘TSospGettoŽ¡‘cš¸èhe–U sia“qualcosa“c˜he“ha“a“c˜he“fare“con“le“etic˜hette“di“v˜olume.Ž©¦ö‘=ÿÁR¹:–ƒLe“eticš¸èhette“di“v˜olume“Sun“risiedono“nel“primo“1K‘Pdi“una“partizione.‘Á©P˜er“RAID-1Ž¡‘/le–Þ—eticš¸èhette“di“v˜olume“Sun“non“sono“un“problema“pGoic˜h€é“ºext2fs“¹salter€à“l'etic˜hetta“di“ogniŽ¡‘/mirror.‘²Pš¸èer–j gli“altri“liv˜elli“RAID‘j›(0,‘plinear“e“4/5)“questo“sem˜bra“essere“un“problema;‘u`non“siŽ¡‘/€è–U arriv‘ÿqÐati“ancora“ad“una“causa“certa“(Dicem¸èbre“97).ŽŸ(¾‘À6Ž‘ÁHardwšcare–G\&“Soft˜w˜are“SupppœortatoŽŸ’3‘ 9b¹1.ŽŽŽ‘ÁD¹:–ÊHo“un“adattatore“SCSI›™della“marca“XYZ˜(con“o“senza“divš¸èersi“canali)“e“disc˜hi“di“marc˜he“PQR‘™eŽ¡‘LMN,–U funzioneranno“con“md“pšGer“creare“una“p˜ersonalit¸èy“linear/stripp˜ed/mirrored?Ž¦‘=ÿÁR¹:›ýSi!‘LSoft•¸èw“are˜RAID‘êfunzioner€à˜con˜ogni˜con“troller˜di˜disc“hi˜(IDE–êo˜SCSI)“e˜con˜ogniŽ¡‘/disco.‘W9Non–÷c'€è“bisogno“cš¸èhe“i“disc˜hi“siano“iden˜tici“e“nemmeno“i“con˜troller.‘W9P˜er“esempio“unŽ¡‘/mirror–ï2RAID›ï pu€ò“essere“creato“una“met€à“con“disc¸èhi“SCSI˜e“l'altra“met€à“con“disc¸èhi“IDE.“IŽ¡‘/discš¸èhi–Xnon“dev˜ono“neppure“essere“delle“stesse“dimensioni.‘_“Non“ci“sono“restrizioni“nella“sceltaŽ¡‘/e–U dispGosizione“dei“discš¸èhi“e“dei“con˜troller.Ž¡‘=ÿQuesto–oäa“causa“del“fatto“cš¸èhe“Soft˜w˜are“RAID‘oÝla˜v˜ora“con“le“partizioni“e“non“direttamen˜teŽ¡‘/con– ›il“disco.‘ŽòLa“sola“raccomandazione“da“fare“pGer“il“RAID‘ mlivš¸èelli“1“e“5“€è“c˜he“le“partizioniŽ¡‘/dei–æödiscš¸èhi“c˜he“do˜vranno“essere“usate“insieme“siano“delle“stesse“dimensioni.‘'Se“le“partizioniŽ¡‘/cš¸èhe–ÄcompGongono“una“serie“di“disc˜hi“RAID‘³1“o“5“non“sono“delle“stesse“dimensioni“lo“spazio“inŽ¡‘/eccesso–U nella“partizione“pi€ù“grande“andr€à“pGerduto.ŽŸ¦÷‘ 9b2.ŽŽŽ‘ÁD¹:–° Ho“un“BT-952“a“doppio“canale,‘ÆÆe“la“confezione“asserisce“cš¸èhe“suppGorta“il“RAID‘¯ôhardw˜are“liv˜elli“0,Ž¡‘1–e e“0+1.‘¡>Ho“messo“su“un“set“RAID‘econ“due“discš¸èhi,‘ila“sc˜heda“sem˜bra“riconoscerli“duran˜te“l'esecuzioneŽ¡‘delle–æ-routine“di“aš¸èvvio“del“suo“BIOS.“Ho“letto“il“coGdice“sorgen˜te“del“driv˜er“ma“non“ho“tro˜v‘ÿqÐato“riferimen˜tiŽ¡‘ad–U un“suppšGorto“p˜er“il“RAID“hardwš¸èare.‘q€Qualcuno“ci“sta“la˜v˜orando?Ž¦‘=ÿÁR¹:– aLe“scš¸èhede“Mylex/BusLogic“FlashP˜oin˜t“con“RAIDPlus“sono“in“eetti“RAID‘ Osoft˜w˜are“eŽ¡‘/pGer–ünš¸èulla“RAID‘ìhardw˜are.‘\RAIDPlus“€è“suppGortato“solo“su“Windo˜ws“95“e“Windo˜ws“NT,“nonŽ¡‘/su›{åNet•¸èw“are˜o˜su˜piattaforma˜Unix.‘åÎEsclusi˜il˜b•Go“ot˜e˜la˜congurazione˜la˜gestione˜del˜RAIDŽ¡‘/aš¸èvviene–U tramite“driv˜er“del“S.O.ŽŽŽŒ‹WO Û_2 ý ~?Ÿ„€ÕÁGŽÁ7.‘ñ8MoQÂdicare–Õuna“installazione“preesisten®>te’íß¹23ŽŽ ÕÁ ýV¯‘=ÿAnc¸èhe–Áse“in“teoria“il“suppšGorto“p˜er“RAIDPlus“sia“p˜ossibile“in“Lin•¸èux,‘Oêl'implemen“tazioneŽ¤ ®‘/del–ìrRAID-0/1/4/5“nel“kš¸èernel“di“Lin˜ux“€è“molto“pi€ù“essibile“e“do˜vrebbGe“a˜v˜ere“pGerformanceŽ¡‘/supšGeriori,–U quindi“ci“sono“p˜o˜c¸èhe“ragioni“p˜er“decidere“di“supp˜ortare“direttamen¸ète“RAIDPlus.ŽŸ®‘ 9b3.ŽŽŽ‘ÁD¹:–U V›ÿ*¸oglio“installare“RAID“su“un“computer“SMP˜.“RAID“€è“adatto“a“SMP?ŽŸ®‘=ÿÁR¹:–¯ÜP¸èenso“di“si“€è“la“migliore“rispšGosta“disp˜onibile“al“momenš¸èto“(Aprile“98).‘´Div˜ersi“uten˜tiŽ¡‘/dicono– ˜di“a•¸èv“er– ˜usato“RAID› …con“SMP˜pGer“circa“un“anno“senza“problemi.‘XSCom¸èunque“alla“dataŽ¡‘/di–U Aprile“98“(circa“kš¸èernel“2.1.9x),“i“seguen˜ti“problemi“sono“stati“notati“sulla“mailing“list:Ž©®‘7³2¸ŽŽŽ‘A³3¹I‘cbdriv•¸èer›cŸA“daptec˜AIC7xxx˜SCSI–cbnon˜sono˜del˜tutto˜adatti˜a˜SMP“(nota˜generica:‘øÀgli˜adat-Ž¡‘A³3tatori––Aš¸èdaptec“hanno“una“lunga“storia“di“problemi“e“disfunzionamen˜ti.‘1ÌAnc˜he“se“sem˜bra-Ž¡‘A³3no–„«essere“gli“adattatori“SCSI‘„wpi€ù“dispGonibili,‘®\diusi“e“a“buon“mercato“gli“A¸èdaptec“andreb-Ž¡‘A³3b•Gero›—Æevitati.‘9rDop“o˜a•¸èv“er˜calcolato˜il˜temp•Go˜p“erso,‘¨ole˜frustrazioni˜e˜i˜dati˜andati˜p“erdutiŽ¡‘A³3capirete–k~cš¸èhe“gli“A˜daptec“sono“il“pi€ù“costoso“errore“c˜he“abbiate“mai“fatto.‘´šDetto“questo,Ž¡‘A³3se›$a•¸èv“ete˜problemi˜legati˜a˜SMP‘con˜il˜k“ernel˜2.1.88,‘¯%pro“v‘ÿqÐate˜la˜patc“h˜su˜ftp://ftp.bGero-Ž¡‘A³3online.ml.org/pub/lin•¸èux/aic7xxx-5.0.7-lin“ux21.tar.gz–°ðNon“sono“sicuro“del“fatto“c¸èhe“ques-Ž¡‘A³3ta–üpatcš¸èh“sia“stata“inclusa“negli“ultimi“k˜ernel“2.1.x.‘f{P˜er“altre“informazioni“date“un'oGc-Ž¡‘A³3cš¸èhiata–mÁagli“arc˜hivi“di“mail“del“Marzo“98“su“h˜ttp://www.lin˜uxhq.com/lnxlists/lin˜ux-Ž¡‘A³3raid/lr_9803_01/–‘@Come“sempre,‘ Hdato“il“fatto“cš¸èhe“i“k˜ernel“spGerimen˜tali“della“serieŽ¡‘A³32.1.x–@^sono“soggetti“a“con•¸ètin“ui›@^cam“biamen“ti,‘{-i˜problemi˜descritti˜in˜queste˜mailing˜listŽ¡‘A³3p•Gotrebb“ero–U o“non“p•Gotrebb“ero–U essere“stati“risolti“nel“frattempGo.‘q€Ca•¸èv“eat‘U Emptor.)Ž¦‘7³2¸ŽŽŽ‘A³3¹€È–U stato“riferito“c¸èhe“IO-APIC“con“RAID-0“su“SMP“non“funziona“su“2.1.90ŽŸ(ÀœÀ7Ž‘ÁMopœdicare–G\una“installazione“preesistencteŽŸ”’‘ 9b¹1.ŽŽŽ‘ÁD¹:–”I›€dispGositivi“MD˜linear“sono“espandibili?‘V§Si“pu€ò“aggiungere“un“n•¸èuo“v“o›”driv“e/partizione˜e˜v“edere˜cos€ìŽ¡‘aumenš¸ètata–U la“capienza“del“lesystem“preesisten˜te?ŽŸ®‘=ÿÁD¹:–U Miguel“de“Icaza“µ<“Âmiguel@luthien.nucle‘ÿ}/cu.unam.mx“µ>“¹ha“scritto:Ž¦‘P²CHo–µ®cam¸èbiato“il“cošGdice“di“ext2fs“p˜er“renderlo“capace“di“trattare“disp˜ositivi“m¸èul-Ž¡‘A³3tipli,‘ƒ¯moGdicando–G,l'assunzione“precedenš¸ète“c˜he“assegna˜v‘ÿqÐa“ad“un“lesystem“un“soloŽ¡‘A³3dispGositiv¸èo.Ž¡‘P²CCos€ì–?quando“si“vuole“espandere“un“lesystem“basta“eseguire“un'utilit€à“c¸èhe“ap-Ž¡‘A³3pšGorta–Á—le“mo˜dicš¸èhe“appropriate“sul“n˜uo˜v˜o“dispGositiv˜o“(la“partizione“extra)“e“pGoi“bastaŽ¡‘A³3solo–U far“sapšGere“al“sistema“di“estendere“il“fs“usando“il“disp˜ositiv¸èo“sp˜ecicato.Ž¡‘P²CIl– âlesystem“pu€ò“essere“esteso“con“dei“n•¸èuo“vi– âdispGositivi“men¸ètre“il“sistema“staŽ¡‘A³3funzionando,‘+‚senza–!bisogno“di“do•¸èv“erlo–!arrestare“(e“quando“a¸èvr€ò“altro“tempšGo“p˜otreteŽ¡‘A³3rim•¸èuo“v“ere–Ïdei“dispGositivi“da“un“vš¸èolume“ext2,‘íancora“senza“nemmeno“do˜v˜er“andareŽ¡‘A³3in–U moGdalit€à“single-user“o“fare“altre“cose“come“questa).Ž¡‘P²CPš¸èotete–U proGcurarvi“la“patc˜h“pGer“il“k˜ernel“2.1.x“sulla“mia“w˜eb“page:Ž¦‘R³2Ähttp://www.nuclecu.unam.mx/~miguel/ext2-‘€volumeŽ¤®‘ 9b¹2.ŽŽŽ‘ÁD¹:–U Pš¸èosso“aggiungere“dei“disc˜hi“ad“un“sistema“RAID-5?Ž¡‘=ÿÁR¹:›»;A•¸èttualmen“te,‘ÔÂ(Settem“bre˜1997),–ÔÂno,“non˜senza˜cancellare˜tutti˜i˜dati.‘£ÑUna˜utilit€à˜diŽ¤ ®‘/con•¸èv“ersione›œc“he˜lo˜pGermetta˜ancora˜non˜esiste.‘ÄõIl˜problema˜€è˜c“he˜la˜struttura˜e˜l'eettiv‘ÿqÐaŽ¡‘/dispšGosizione–U in“un“sistema“RAID-5“dip˜ende“dal“nš¸èumero“dei“disc˜hi“c˜he“ne“fanno“parte.Ž¡‘=ÿOvviamenš¸ète–‰si“pGossono“aggiungere“dei“disc˜hi“facendo“un“bac˜kup“del“sistema“su“nastro,Ž¡‘/cancellando–U tutti“i“dati,“creando“un“n•¸èuo“v“o–U sistema“e“recupGerando“i“dati“dal“nastro.ŽŽŽŒ‹gX Û_2 ý ~?Ÿ„€ÕÁGŽÁ7.‘ñ8MoQÂdicare–Õuna“installazione“preesisten®>te’íß¹24ŽŽ ÕÁ ýV¯‘ 9b3.ŽŽŽ‘ÁD¹:–ßSCosa“p•Gotrebb“e–ßSsuccedere“al“mio“set“RAID1/RAID0“se“spGosto“uno“dei“drivš¸èe“facendo“div˜en˜tare“daŽ¤ ®‘º/dev/hdb–U ¹a“º/dev/hdc¹?Ž©€K‘A›éöcausa–êdei“problemi“di“grandezza/stupidit€à“con“i“cablaggi/cabinet“dev¸èo“mettere“i“miei“set“RAID˜sulloŽ¡‘stesso–ˆÛconš¸ètroller“IDE‘ˆŒ(º/dev/hda“¹e“º/dev/hdb¹).‘ ±A˜desso“c˜he“ho“messo“a“pšGosto“un“p˜o'“di“cose“v¸èorreiŽ¡‘m•¸èuo“v“ere–U º/dev/hdb“¹in“º/dev/hdc¹.Ž¦‘Cosa›Yp•Gotrebb“e˜succedere˜se˜mi˜limito˜a˜cam¸èbiare˜i˜les˜º/etc/mdtab˜¹e˜º/etc/raid1.conf˜¹in˜mo“do˜c¸èheŽ¡‘riettano–U la“n•¸èuo“v‘ÿqÐa‘U pGosizione?ŽŸR‚‘=ÿÁR¹:–MvNel“caso“del“RAID-0/linear,‘Nþsi“devš¸èe“stare“atten˜ti“nello“spGecicare“i“driv˜e“esattamen˜teŽ¡‘/nello–U stesso“ordine.‘q€Quindi“nell'esempio“di“cui“sopra“il“le“di“congurazione“originale“era:Ž¤\t‘A³3Ämdadd–¹N/dev/md0“/dev/hda“/dev/hdbŽ© Š=Ÿ€K‘=ÿ¹E–U il“n•¸èuo“v“o–U le“di“congurazione“*dev¸èe*“essereŽ¡‘A³3Ämdadd–¹N/dev/md0“/dev/hda“/dev/hdcŽ¦Ÿ€K‘=ÿ¹P•¸èer›óZquan“to˜riguarda˜RAID-1/4/5,‘èil˜n“umero˜RAID‘ȉdel˜driv“e˜viene˜memorizzato˜nel˜suoŽ¤ ®‘/sup•Gerblo“cš¸èk–U RAID“e“quindi“l'ordine“nel“quale“v˜engono“indicati“i“disc˜hi“non“€è“impGortan˜te.Ž¡‘=ÿIl–yôRAID-0/linear“non“ha“un“sup•Gerblo“cš¸èk–yôa“causa“del“suo“v˜ecc˜hio“design“e“del“desiderio“diŽ¡‘/manš¸ètenere–U la“compatibilit€à“con“questo“v˜ecc˜hio“design.ŽŸR‚‘ 9b4.ŽŽŽ‘ÁD¹:–U Pš¸èosso“con˜v˜ertire“un“mirror“RAID-1“formato“da“due“disc˜hi“in“una“serie“di“tre“disc˜hi“RAID-5?ŽŸ$¹‘=ÿÁR¹:–\ÎSi.‘ˆ‰Micš¸èheal“della“BizSystems“ha“tro˜v‘ÿqÐato“un“mošGdo“p˜er“farlo“abilmenš¸ète“e“astutamen˜te.Ž¡‘/P•¸èer€ò,‘}ócome›H(virtualmen“te˜tutte˜le˜manipGolazioni˜di˜sistemi˜RAID‘Gäuna˜v“olta˜c“he˜essi˜con“tengonoŽ¡‘/dati,–U €è“pGericoloso“e“soggetto“ad“errore“umano.‘q€ÁF‘ÿ ºate–Õun“bac®>kup“prima“di“cominciare¹.ŽŸ€K¡‘/ºIpotizzo–?¬la“seguente“configurazione:Ž¡‘/---------------------------------------------Ž¡‘/dischiŽ¡‘/originale:–?¬hda“-“hdcŽ¡‘/partizioni–?¬raid1“hda3“-“hdc3Ž¡‘/nome–?¬dispositivo“raid“/dev/md0Ž¡¡‘/nuovo–?¬hda“-“hdc“-“hddŽ¡‘/partizioni–?¬raid5“hda3“-“hdc3“-“hdd3Ž¡‘/nome–?¬dispositivo“raid:“/dev/md1Ž¡¡‘/Si–?¬sostituiscano“i“nomi“dei“dischi“e“delle“partizioni“in“modoŽ¡‘/da–?¬riflettere“la“propria“configurazione“di“sistema.Ž¡‘/Questo–?¬vale“anche“per“tutti“gli“esempi“di“file“di“configurazione.Ž¡‘/--------------------------------------------Ž¡‘/FATE–?¬UN“BACKUP“PRIMA“DI“FARE“QUALSIASI“ALTRA“COSAŽ¡‘/1)–?¬ricompilare“il“kernel“per“includere“sia“il“supporto“raid1“che“quello“raid5Ž¡‘/2)–?¬installare“il“nuovo“kernel“e“accertarsi“che“siano“presenti“leŽ¡‘>¿personality‘?¬raidŽ¡‘/3)–?¬disabilitare“la“partizione“ridondante“sul“sistema“raid“1.“Se“questa“€èŽ¡‘>¿la–?¬partizione“di“root“(la“mia“lo“era)“dovrete“stare“pi€ù“attenti.Ž¡¡‘4?®Fare–?¬il“reboot“del“sistema“senza“mettere“in“funzione“i“dispositivi“raidŽ¡‘4?®o–?¬fate“ripartire“il“sistema“da“uno“di“recupero“(i“tool“raid“dovranno“essereŽ¡‘4?®disponibili)ŽŽŽŒ‹xŠ Û_2 ý ~?Ÿ„€ÕÁGŽÁ7.‘ñ8MoQÂdicare–Õuna“installazione“preesisten®>te’íß¹25ŽŽ ÕÁ ýV¯¤ ®‘4?®ºfate–?¬partire“raid1“in“modalit€à“non“ridondanteŽ¡‘/mdadd–?¬-r“-p1“/dev/md0“/dev/hda3Ž¡¡‘/4)–?¬configurate“raid5“con“un“'buffo'“file“di“configurazione,“si“noti“cheŽ¡‘>¿non–?¬viene“nominato“hda3“e“che“hdc3“€è“ripetuto.“Questo“serve“poich€éŽ¡‘>¿i–?¬tool“raid“non“accettano“una“simile“impostazione.Ž¡‘/-------------------------------Ž¡‘/#–?¬configurazione“raid-5Ž¡‘/raiddev‘Y:l/dev/md1Ž¡‘/raid-level‘I{h5Ž¡‘/nr-raid-disks‘9¼d3Ž¡‘/chunk-size‘I{h32Ž¡¡‘/#–?¬disposizione“algoritmo“di“parit€àŽ¡‘/parity-algorithm‘)ý`left-symmetricŽ¡¡‘/#–?¬dischi“spare“per“ricostruzione“a“caldoŽ¡‘/nr-spare-disks‘4|¸0Ž¡¡‘/device‘^z/dev/hdc3Ž¡‘/raid-disk‘N»0Ž¡¡‘/device‘^z/dev/hdc3Ž¡‘/raid-disk‘N»1Ž¡¡‘/device‘^z/dev/hdd3Ž¡‘/raid-disk‘N»2Ž¡‘/---------------------------------------Ž¡‘4?®mkraid‘?¬/etc/raid5.confŽ¡‘/5)–?¬attivare“il“sistema“raid5“in“modalit€à“non“ridondanteŽ¡¡‘/mdadd–?¬-r“-p5“-c32k“/dev/md1“/dev/hdc3“/dev/hdd3Ž¡¡‘/6)–?¬create“un“filesystem“sul“dispositivo“raid5Ž¡¡‘/mke2fs–?¬-b“{blocksize}“/dev/md1Ž¡¡‘/la–?¬dimensione“del“blocco“raccomandata“da“alcuni“€è“di“4096“al“posto“dellaŽ¡‘/predefinita–?¬1024.“Questo“migliora“l'utilizzazione“della“memoria“da“parteŽ¡‘/del–?¬kernel“e“delle“routine“raid“facendo“coincidere“la“grandezza“del“bloccoŽ¡‘/con–?¬quella“della“pagina.“Io“ho“trovato“un“compromesso“su“2048“a“causa“delŽ¡‘/fatto–?¬che“ho“un“numero“relativamente“alto“di“file“piccoli“nel“mio“sistema.Ž¡¡‘/7)–?¬montate“da“qualche“parte“i“due“dispositivi“raidŽ¡¡‘/mount–?¬-t“ext2“/dev/md0“mnt0Ž¡‘/mount–?¬-t“ext2“/dev/md1“mnt1Ž¡¡‘/8)–?¬spostate“i“datiŽŽŽŒ‹…6 Û_2 ý ~?Ÿ„€ÕÁGŽÁ8.‘ñ8Domande–Õsulle“pšQÂerformance,“sui“to˜ol“e“domande“stupide“in“genere‘lD¹26ŽŽ ÕÁ ýV¯¤ ®‘/ºcp–?¬-a“mnt0“mnt1Ž¡¡‘/9)–?¬verificate“che“i“due“set“di“dati“siano“identiciŽ¡‘/10)–?¬fermate“ambedue“i“dispositivi“raidŽ¡‘/11)–?¬correggete“le“informazioni“contenute“nel“file“raid5.confŽ¡‘9Zcambiate–?¬/dev/md1“in“/dev/md0Ž¡‘9Zcambiate–?¬il“primo“disco“da“leggere“in“/dev/hda3Ž¡¡‘/12)–?¬portare“il“nuovo“sistema“in“modalit€à“ridondanteŽ¡‘4?®(QUESTO–?¬DISTRUGGE“LE“RIMANENTI“INFORMAZIONI“raid1)Ž¡¡‘/ckraid–?¬--fix“/etc/raid5.confŽ¡¡Ÿ(ÀœÀ8Ž‘ÁDomande–¼Ösulle“pšpœerformance,‘ ¾sui“to˜ol“e“domande“stupide“in“genereŽŸ”’‘ 9b¹1.ŽŽŽ‘ÁD¹:–šßHo“creato“un“dispšGositiv¸èo“RAID-0“con“º/dev/sda2“¹e“º/dev/sda3¹.‘B½Il“disp˜ositivš¸èo“€è“molto“pi€ù“len˜to“diŽ¡‘una–U singola“partizione.‘q€Ma“allora“md“€è“un“ammasso“di“robaccia?Ž©®‘=ÿÁR¹:–umPš¸èer“usufruire“di“un“dispGositiv˜o“RAID-0“c˜he“funzioni“alla“massima“v˜eloGcit€à,‘}si“dev˜onoŽ¡‘/utilizzare–/partizioni“di“discš¸èhi“dieren˜ti.‘dÑOltretutto,‘6¯mettendo“le“due“met€à“di“un“mirror“su“diŽ¡‘/un–U solo“disco“non“ci“si“cautela“da“nessun“tipGo“di“malfunzionamen¸èto“del“disco.Ž¦‘ 9b2.ŽŽŽ‘ÁD¹:›U Do•¸èv“e˜€è˜la˜necessit€à˜di˜a“v“ere˜RAID-linear˜quando˜RAID-0˜fa˜le˜stesse˜cose˜con˜migliore˜ecienza?Ž¦‘=ÿÁR¹:–¨ƒIl“fatto“cš¸èhe“RAID-0“abbia“sempre“una“pGerformance“migliore“non“€è“cosa“o˜vvia;‘R5inŽ¡‘/eetti,›^Qin–)Hqualc¸èhe“caso,˜le“cose“p•Gotrebb“ero–)Handare“pGeggio.‘í÷Il“lesystem“ext2fs“distribuisceŽ¡‘/i–Ýqle“su“tutta“la“partizione,‘?…e“cerca“di“manš¸ètenere“con˜tigui“tutti“i“bloGcc˜hi“di“un“le,‘?…nelŽ¡‘/ten•¸ètativ“o–ÏDdi“impšGedirne“la“frammen¸ètazione.‘ßëQuindi“ext2fs“si“comp˜orta“come“se“ci“fosse“unaŽ¡‘/striscia–â(di“dimensioni“v‘ÿqÐariabili)“pGer“ogni“le.‘³ÇSe“divš¸èersi“disc˜hi“v˜engono“concatenati“in“unŽ¡‘/dispGositiv•¸èo›ŠHRAID-linear,‘×’statisticamen“te˜i˜le˜v“erranno˜distribuiti˜su˜ogni˜disco.‘ùQuindi,Ž¡‘/almeno–K/pšGer“ext2fs,‘M,RAID-linear“si“comp˜orta“in“maniera“molto“simile“a“un“RAID-0“con“delleŽ¡‘/ampie–y‰strisce.‘Þ¼Al“con¸ètrario“RAID-0“con“strisce“piccole“pu€ò“causare“un'eccessiv‘ÿqÐa“attivit€à“delŽ¡‘/disco–Ûcš¸èhe“pu€ò“pGortare“ad“un“forte“degrado“delle“prestazioni“se“si“accede“con˜tempGoraneamen˜teŽ¡‘/a–ðqdiv¸èersi“grandi“le.›CsIn“molti“casi“RAID-0“pu€ò“risultare“facile“vincitore.˜Si“immagini,‘EpGerŽ¡‘/esempio–Æšun“grande“le“di“database.‘AþP•¸èoic“h€é–Æšext2fs“cerca“di“raggruppare“insieme“tutti“i“bloGcc¸èhiŽ¡‘/di–÷æun“le,‘ ‹vi“sono“buone“pGossibilit€à“c¸èhe“esso“nisca“in“un“solo“disco“se“si“utilizza“RAID-linearŽ¡‘/o–ìÑnisca“diviso“in“molteplici“strisce“se“si“usa“RAID-0.‘N»Si“immaginino“adesso“un“certo“n¸èumeroŽ¡‘/di– Úthread“(del“kš¸èernel)“c˜he“stanno“ten˜tando“di“accedere“al“database“in“maniera“casuale.‘X¾SottoŽ¡‘/RAID-linear–¦9tutti“gli“accessi“nirebbšGero“con“il“do•¸èv“er–¦9essere“so˜ddisfatti“da“un“solo“disco“c¸èheŽ¡‘/nirebbšGe–¼°con“l'essere“inecien¸ète“se“paragonato“alla“p˜ossibilit€à“di“accessi“mš¸èultipli“paralleli“c˜heŽ¡‘/RAID-0‘U consen¸ète.Ž¦‘ 9b3.ŽŽŽ‘ÁD¹:–Come“si“compšGorta“RAID-0“in“una“situazione“nella“quale“le“div¸èerse“partizioni“di“strip˜e“hannoŽ¡‘dimensioni–U divš¸èerse?‘q€Le“strisce“v˜engono“distribuite“uniformemen˜te?ŽŸ®‘=ÿÁR¹:–‡JPš¸èer“comprendere“meglio“aiutiamoGci“con“un“esempio“c˜he“coin˜v˜olge“tre“partizioni;‘ _unaŽ¡‘/da–U 50Mb,“una“da“90Mb“e“una“da“125Mb.ŽŽŽŒ‹Œ\ Û_2 ý ~?Ÿ„€ÕÁGŽÁ8.‘ñ8Domande–Õsulle“pšQÂerformance,“sui“to˜ol“e“domande“stupide“in“genere‘lD¹27ŽŽ ÕÁ ýV¯‘=ÿChiamiamo–1¾D0“il“disco“da“50Mb,‘8ÑD1“il“disco“da“90Mb“e“D2“quello“da“125Mb.‘eµQuando“siŽ¤ ®‘/fa–K8partire“il“dispGositivš¸èo,‘M3il“driv˜er“calcola“le“'strip“zones'“(letteralmen˜te“zone“di“striscia.‘n3ndt).Ž¡‘/In–U questo“caso“v¸èengono“individuate“3“zone,“cos€ì“denite:Ž©®‘müºZ0–?¬:“(D0/D1/D2)“3“x“50“=“150MB‘ Xtotali“in“questa“zonaŽ¡‘müZ1–?¬:“(D1/D2)‘ X2“x“40“=“80MB“totali“in“questa“zonaŽ¡‘müZ2–?¬:“(D2)“125-50-40“=“35MB“totali“in“questa“zona.Ž¡¦‘=ÿ¹Si–ä.pu€ò“notare“come“la“dimensione“totale“delle“zone“sia“la“dimensione“del“dispGositiv¸èoŽ¡‘/virtuale,‘jma–·Ála“distribuzione“delle“strisce“v‘ÿqÐaria“in“funzione“della“zona.‘™dZ2“€è“inecien¸ète,Ž¡‘/pGoic•¸èh€é›U con“ten“uta˜in˜un˜solo˜disco.Ž¡‘=ÿP•¸èoic“h€é–7Žºext2fs“¹e“molti“altri“lesystem“di“Unix“distribuiscono“i“le“su“tutto“il“disco,‘p)siŽ¡‘/ha–Îÿil“35/265“=“13%“di“probabilit€à“c¸èhe“i“dati“niscano“su“Z2,‘íve“quindi“non“bGenecino“delloŽ¡‘/striping.Ž¡‘=ÿ(DOS‘[Dcerca–[ˆdi“riempire“un“disco“partendo“dall'inizio“e“andando“v¸èerso“la“ne“e“quindiŽ¡‘/i–½}le“pi€ù“v•¸èecc“hi–½}nirebbšGero“in“Z0.‘ª–Questo“tip˜o“di“appro˜ccio“p˜orta“p˜er€ò“ad“una“p˜esan¸èteŽ¡‘/frammenš¸ètazione,‘š$e–Y#questo“€è“il“pGerc˜h€é“nessun“altro“oltre“a“DOS‘Xàgestisce“il“disco“in“questaŽ¡‘/maniera).Ž©®‘ 9b4.ŽŽŽ‘ÁD¹:–¬îHo“dei“discš¸èhi“di“marca“X‘¬Äe“un“con˜troller“di“marca“Y,“sto“considerando“se“usare“ºmd¹.‘9pMa“il“throughputŽ¡‘aumen•¸èta›U sensibilmen“te?‘q€Le˜prestazioni˜sono˜notev“olmen“te˜migliori?Ž¦‘=ÿÁR¹:–U La“rispšGosta“dip˜ende“dalla“congurazione“c¸èhe“si“usa.Ž©®‘/ÁPrestazioni–Õdi“Lin®>ux“MD“RAID-0“e“RAID-linear:ŽŽŽ¡‘A³3¹Se–-.il“sistema“devš¸èe“soppGerire“ad“un“alto“n˜umero“di“ric˜hieste“di“I/O,“statisticamen˜te“qual-Ž¡‘A³3cuna–5ñandr€à“su“un“disco“e“qualcun'altra“su“un“altro.‘óQuindi“le“prestazioni“miglioranoŽ¡‘A³3rispGetto–gwad“un“singolo“disco.‘¨„Ma“il“miglioramenš¸èto“eettiv˜o“dipGende“molto“dai“dati,‘l dal-Ž¡‘A³3la–þµdimensione“delle“strisce“e“da“altri“fattori.‘n@In“un“sistema“con“basso“carico“di“I/O‘þŠleŽ¡‘A³3prestazioni–U sono“uguali“a“quelle“di“un“singolo“disco.Ž¦‘/ÁPrestazioni–Õin“lettura“di“Lin®>ux“MD“RAID-1(mirroring):ŽŽŽ¡‘A³3¹MD‘¯•implemenš¸èta–¯¿il“bilanciamen˜to“in“lettura.‘:`Quindi“il“coGdice“RAID-1“distribuir€à“il“caricoŽ¡‘A³3su–Ÿrognš¸èuno“dei“disc˜hi“nel“mirror“(due“o“pi€ù),‘ÃÈeettuando“opGerazioni“alternate“di“lettura“daŽ¡‘A³3ognš¸èuno–Zdi“essi.‘Z”In“una“situazione“con“basso“carico“di“I/O‘Iquesto“non“inuisce“pGer“nien˜teŽ¡‘A³3sulle–Bÿprestazioni:‘M>doš¸èvrete“aspGettare“c˜he“un“disco“abbia“nito“di“leggere.‘;Ma“con“dueŽ¡‘A³3disc¸èhi–m*in“una“situazioni“di“alto“carico“di“I/O‘m$la“pGerformance“in“lettura“pu€ò“raddoppiareŽ¡‘A³3visto–<Çcš¸èhe“le“letture“pGossono“essere“eettuate“in“parallelo“da“ciascuno“dei“due“disc˜hi.‘ibP˜erŽ¡‘A³3N–U discš¸èhi“nel“mirror,“la“prestazione“pu€ò“essere“N“v˜olte“migliore.Ž¦‘/ÁPrestazioni–Õin“scrittura“di“Lin®>ux“MD“RAID-1“(mirroring):ŽŽŽ¡‘A³3¹Si–Qdevš¸èe“attendere“c˜he“la“scrittura“sia“stata“eettuata“su“tutti“i“disc˜hi“del“mirror.‘[æQuestoŽ¡‘A³3a–q§causa“del“fatto“cš¸èhe“una“copia“dei“dati“dev˜e“essere“scritta“su“ogni“disco“del“mirror.Ž¡‘A³3Quindi–U le“prestazioni“saranno“quasi“uguali“a“quelle“di“un“singolo“disco“in“scrittura.Ž¦‘/ÁPrestazioni–Õin“lettura“di“Lin®>ux“MD“RAID-4/5:ŽŽŽ¡‘A³3¹Statisticamenš¸ète–œ#un“dato“bloGcco“pu€ò“tro˜v‘ÿqÐarsi“in“un“qualsiasi“disco“di“una“serie,‘­äe“quindiŽ¡‘A³3le–âœprestazioni“in“lettura“di“RAID-4/5“somigliano“molto“a“quelle“di“RAID-0.‘KTEsse“v‘ÿqÐarianoŽ¡‘A³3in–¤æfunzione“dei“dati,‘¸×della“dimensione“delle“strisce“e“del“tipGo“di“utilizzo.‘`ÒLe“prestazioniŽ¡‘A³3in–U lettura“non“saranno“buone“quanš¸èto“quelle“di“una“serie“di“disc˜hi“in“mirror.Ž¦‘/ÁPrestazioni–Õin“scrittura“di“Lin®>ux“MD“RAID-4/5:ŽŽŽ¡‘A³3¹Questo–bsistema“€è“in“genere“considerev•¸èolmen“te–bpi€ù“len¸èto“di“un“disco“singolo.‘sGQuesto“aŽ¡‘A³3causa–wÆdel“fatto“cš¸èhe“la“parit€à“do˜vr€à“essere“scritta“su“un“disco“e“i“dati“su“un“altro.‘ÙqE‘w½pGerŽ¡‘A³3pGoter–¹Øcalcolare“la“n•¸èuo“v‘ÿqÐa–¹Øparit€à“quella“v•¸èecc“hia–¹Øe“i“v•¸èecc“hi–¹Ødati“dev¸èono“prima“essere“letti.ŽŽŽŒ‹š~ Û_2 ý ~?Ÿ„€ÕÁGŽÁ8.‘ñ8Domande–Õsulle“pšQÂerformance,“sui“to˜ol“e“domande“stupide“in“genere‘lD¹28ŽŽ ÕÁ ýV¯‘A³3Viene–üquindi“eettuato“un“Xš¸èOR‘ûüfra“i“v˜ecc˜hi“dati,‘ âi“n˜uo˜vi“dati“e“la“v˜ecc˜hia“parit€à:‘DùquestoŽ¤ ®‘A³3ric•¸èhiede›U n“umerosi˜cicli˜di˜CPU˜e˜div“ersi˜accessi˜al˜disco.ŽŸSË‘ 9b5.ŽŽŽ‘ÁD¹:–U Quale“congurazione“ottimizza“le“prestazioni“di“RAID?ŽŸqã‘=ÿÁR¹:–€ÂInš¸èteressa“pi€ù“massimizzare“il“throughput“o“dimin˜uire“la“latenza?‘ôgNon“vi“€è“una“facileŽ¡‘/rispGosta–U dato“il“grande“nš¸èumero“di“fattori“c˜he“inuenzano“la“pGerformance:ŽŸqã‘7³2¸ŽŽŽ‘A³3¹sistema–U opšGerativ¸èo“-“l'accesso“al“disco“€è“eettuato“da“un“solo“pro˜cesso“o“da“pi€ù“thread?Ž¤ü‘7³2¸ŽŽŽ‘A³3¹applicazioni–U -“accedono“ai“dati“in“maniera“sequenziale“o“in“maniera“casuale?Ž¡‘7³2¸ŽŽŽ‘A³3¹le–ËÆsystem“-“raggruppa“i“le“o“li“distribuisce“(ext2fs“raggruppa“insieme“i“bloGcc¸èhi“di“unŽ© ®‘A³3le–U e“distribuisce“i“le)Ž¡‘7³2¸ŽŽŽ‘A³3¹drivš¸èer–U del“disco“-“n˜umero“di“bloGcc˜hi“di“read“ahead“(€è“un“parametro“impGostabile)Ž¡‘7³2¸ŽŽŽ‘A³3¹hardwš¸èare–U CEC“-“un“driv˜e“con˜troller“o“pi€ù?Ž¡‘7³2¸ŽŽŽ‘A³3¹hd–U conš¸ètroller“-“gestisce“la“coGda“di“ric˜hieste“m˜ultiple?‘q€Ha“una“cac˜he?Ž¡‘7³2¸ŽŽŽ‘A³3¹hard–N0drivš¸èe“-“dimensioni“del“buer“della“memoria“cac˜he““€è“abbastanza“ampia“da“gestireŽ¦‘A³3la–U quanš¸ètit€à“e“la“v˜eloGcit€à“degli“accessi“in“scrittura“di“cui“si“ha“bisogno?Ž¡‘7³2¸ŽŽŽ‘A³3¹caratteristic•¸èhe› ksic“he˜del˜disco˜-˜bloGcc“hi˜p•Ger˜cilindro˜˜accedere˜a˜blo“cc•¸èhi˜su˜dieren“tiŽ¦‘A³3cilindri–U pšGorta“il“disco“ad“eettuare“molte“op˜erazioni“di“seek.Ž¤qä‘ 9b6.ŽŽŽ‘ÁD¹:–U Quale“€è“la“congurazione“di“RAID-5“c¸èhe“ottimizza“la“pGerformance?ŽŸqã‘=ÿÁR¹:›21P•¸èoic“h€é˜RAID-5˜genera˜un˜carico˜di˜I/O‘1øc“he˜€è˜uniformemen“te˜distribuito˜su˜div“ersiŽ¦‘/discš¸èhi,‘’le–ÿnprestazioni“migliori“si“otterranno“quando“il“set“RAID‘ÿYviene“bilanciato“usando“driv˜eŽ¦‘/iden•¸ètici,›U con“troller˜iden“tici˜e˜lo˜stesso˜(basso)˜n“umero˜di˜driv“e˜su˜ciascun˜con“troller.Ž¦‘=ÿSi–É©noti“comš¸èunque“c˜he“l'uso“di“compGonen˜ti“iden˜tici“alzer€à“la“probabilit€à“di“malfunziona-Ž¦‘/men•¸èti›¯£m“ultipli˜e˜sim“ultanei˜do“vuti,‘мp•Ger˜esempio˜a˜degli˜sbalzi˜rep“en•¸ètini,‘мal˜surriscaldamen“to˜oŽ¦‘/a–*àproblemi“di“alimenš¸ètazione“duran˜te“un“tempšGorale.‘ckQuesto“tip˜o“di“risc¸èhio“pu€ò“essere“ridottoŽ¦‘/utilizzando–U dispšGositivi“di“marca“e“mo˜dello“dieren¸èti.Ž¡‘ 9b7.ŽŽŽ‘ÁD¹:–U Quale“€è“la“dimensione“ottimale“di“un“blošGcco“p˜er“un“sistema“RAID-4/5?ŽŸSË‘=ÿÁR¹:–µ˜Nell'uso“dell'implemenš¸ètazione“attuale“(No˜v˜em˜bre“1997)“di“RAID-4/5“€è“fortemen˜teŽ¦‘/raccomandato–X*cš¸èhe“il“lesystem“v˜enga“creato“con“ºmke2fs–?¬-b“4096–X*¹al“pGosto“della“dimensioneŽ¦‘/predenita–U del“bloGcco“cš¸èhe“€è“di“1024“b˜yte.Ž¦‘=ÿQuesto–ÚpGercš¸èh€é“l'attuale“implemen˜tazione“di“RAID-5“alloGca“una“pagina“di“memoria“di“4KŽ¦‘/pšGer–ŒBogni“blo˜cco“del“disco;‘§Óse“un“blo˜cco“del“disco“fosse“grande“solo“1K‘Œ4il“75%“della“memoriaŽ¦‘/allošGcata–+Œda“RAID-5“p˜er“l'I/O‘+Unon“v¸èerrebb˜e“usata.‘ôÅSe“la“grandezza“del“blo˜cco“del“disco“€èŽ¦‘/uguale–â·a“quella“della“pagina“di“memoria“il“drivš¸èer“pu€ò“(pGotenzialmen˜te)“usare“tutta“la“pagina.Ž¦‘/Quindi,‘ìÛsu–΂un“lesystem“con“dei“bloGccš¸èhi“da“4096“in˜v˜ece“c˜he“da“1024,‘ìÛil“driv˜er“RAID‘ÎcpGotr€àŽ¦‘/pšGotenzialmen¸ète–pDgestire“una“co˜da“di“ricš¸èhieste“di“I/O‘oûquattro“v˜olte“pi€ù“grande“senza“usareŽ¦‘/memoria‘U aggiun¸ètiv‘ÿqÐa.Ž¦‘=ÿÁNota¹:‘]Öle–-Íconsiderazioni“precedenš¸èti“non“si“applicano“ai“driv˜er“Soft˜w˜are“RAID-0/1/linear.Ž¦‘=ÿÁNota:‘:Q¹le–æÁconsiderazioni“sulla“pagina“di“memoria“da“4K‘æ¥sono“da“applicare“all'arc¸èhitetturaŽ¦‘/Inš¸ètel–‚9x86.‘+4Le“dimensioni“della“pagina“di“memoria“su“Alpha,‘¬gSparc“e“altre“CPU‘‚sono“dieren˜ti;Ž¦‘/credo–=cš¸èhe“siano“8k“su“Alpha/Sparc“(????).‘[ŠAggiustate“le“asserzioni“preceden˜ti“in“maniera“daŽ¦‘/tenerne‘U con¸èto.Ž¦‘=ÿÁNota:‘Û¹se– ëil“vš¸èostro“lesystem“con˜tiene“un“grande“n˜umero“di“piccoli“le“(le“pi€ù“piccoliŽ¦‘/di–{T10KBytes),‘Äáuna“frazione“considerev¸èole“di“spazio“disco“andr€à“pGerduta.‘äQuesto“a“causaŽ¦‘/del–©·fatto“cš¸èhe“la“dimensione“dello“spazio“disco“alloGcata“dal“lesystem“€è“un“m˜ultiplo“dellaŽ¦‘/dimensione–3Edel“blo•Gcco.‘ ïAllo“care–3Edei“blošGcc¸èhi“di“grosse“dimensioni“p˜er“dei“piccoli“le“p˜ortaŽ¦‘/c•¸èhiaramen“te–c0ad“uno“spreco“di“spazio“disco;‘j8quindi“si“p•Gotrebb“e–c0vš¸èoler“con˜tin˜uare“ad“utilizzareŽ¦‘/bloGccš¸èhi–Ydi“piccole“dimensioni,‘Yýa˜v˜ere“una“una“capacit€à“di“immagazzinamen˜to“maggiore“e“nonŽŽŽŒ‹«Þ Û_2 ý ~?Ÿ„€ÕÁGŽÁ8.‘ñ8Domande–Õsulle“pšQÂerformance,“sui“to˜ol“e“domande“stupide“in“genere‘lD¹29ŽŽ ÕÁ ýV¯‘/preošGccuparsi–ç€della“memoria“p˜ersa“a“causa“del“fato“c¸èhe“le“dimensioni“della“pagina“e“del“blo˜ccoŽ¤ ®‘/non‘U com¸èbaciano.Ž¡‘=ÿÁNota:‘(¹molti–¦tsistemi“tipici‘{¼non“conš¸ètengono“cos€ì“tan˜ti“piccoli“le.‘e{Com˜unque,‘ºÉanc˜he“seŽ¡‘/ci– rfossero“cen¸ètinaia“di“piccoli“le,‘SFquesto“p•Gotrebb“e› rp“ortare˜alla˜p“erdita˜di˜10˜-˜100˜MB‘ =diŽ¡‘/spazio–Ýpdisco,‘ÿ„cš¸èhe“probabilmen˜te“€è“un“compromesso“accettabile“pGer“a˜v˜ere“buone“prestazioniŽ¡‘/se–U si“usano“hard“disk“m•¸èulti-gigab“yte.Ž¡‘=ÿNel–þcaso“dei“news“servš¸èer,‘ƒ¶ci“p•Gotrebb“ero–þessere“decine“o“cen˜tinaia“di“migliaia“di“pic-Ž¡‘/coli–Ifle.‘NSIn“questi“casi“i“bloGcc¸èhi“di“dimensioni“minori,‘†xe“quindi“una“maggiore“capacit€à“diŽ¡‘/immagazzinamenš¸èto,‘Op•Gotrebb“ero–Messere“pi€ù“impGortan˜ti“dell'ecienza“dello“sc˜heduling“di“I/O.Ž¡‘=ÿÁNota:‘A%¹esiste–¼óun“lesystem“spšGerimen¸ètale“p˜er“Linš¸èux“c˜he“memorizza“piccoli“le“e“pGezzi“diŽ¡‘/le–ÏSin“un“solo“blošGcco.‘DçApparen•¸ètemen“te–ÏSquesto“inuisce“in“maniera“p˜ositiv‘ÿqÐa“sulla“p˜erformanceŽ¡‘/quando–U la“dimensione“media“dei“le“€è“molto“pi€ù“piccola“della“dimensione“del“bloGcco.Ž¡‘=ÿNota:‘$ÊLe–®Åprossime“vš¸èersioni“p•Gotrebb“ero–®Åimplemen˜tare“dei“dispGositivi“c˜he“renderanno“ob-Ž¡‘/solete–S¾queste“discussioni.‘ m[Comš¸èunque“sia“la“loro“implemen˜tazione“€è“dicoltosa“a“causaŽ¡‘/del–:ófatto“c¸èhe“la“allošGcazione“dinamica“a“temp˜o“di“esecuzione“pu€ò“p˜ortare“a“dei“blo˜cc¸èhi;Ž¡‘/l'implemen¸ètazione–U attuale“eettua“una“pre-alloGcazione“statica.Ž©®‘ 9b8.ŽŽŽ‘ÁD¹:–ñ~Quanš¸èto“inuenza“la“v˜elošGcit€à“del“mio“disp˜ositivš¸èo“RAID-0,‘kRAID-4“o“RAID-5“la“grandezza“del“c˜h˜unkŽ¡‘(grandezza–U della“striscia)?Ž¦‘=ÿÁR¹:–÷La“grandezza“del“c•¸èh“unk–÷€è“la“quanš¸ètit€à“di“dati“con˜tigui“nel“dispGositiv˜o“virtuale“c˜he“sonoŽ¡‘/con•¸ètigui›)?anc“he˜nel˜dispGositiv“o˜sico.‘bàIn˜questo˜HO“WTO‘)4c“h“unk˜e˜striscia˜sono˜la˜stessa˜cosa:Ž¡‘/quella–U’cš¸èhe“€è“com˜unemen˜te“c˜hiamata“striscia“in“altre“doGcumen˜tazioni“su“RAID,“nelle“pagine“delŽ¡‘/manš¸èuale–¬¶di“MD‘¬‹€è“c˜hiamata“c˜h˜unk.‘9]Si“parla“di“strisce“o“c˜h˜unk“solo“pšGer“RAID‘¬‹0,‘Îe4“e“5“p˜oic¸èh€é“leŽ¡‘/strisce–F!non“v¸èengono“utilizzate“nel“mirroring“(RAID-1)“e“nella“semplice“concatenazione“(RAID-Ž¡‘/linear).‘éïLe–}Edimensioni“della“striscia“inuenzano“il“tempGo“di“latenza“(ritardo)“nella“lettura“eŽ¡‘/nella–ç4scrittura,‘ ¹il“throughput“(larghezza“di“banda)“e“la“gestione“di“opšGerazioni“indip˜enden¸ètiŽ¡‘/(l'abilit€à–U di“pro•¸èvv“edere–U a“ricš¸èhieste“di“I/O“sim˜ultanee“c˜he“si“acca˜v‘ÿqÐallano)Ž¡‘=ÿP•¸èosto›„ac“he˜si˜usino˜il˜lesystem˜ext2fs˜e˜le˜impGostazioni˜attuali˜del˜k“ernel˜c“he˜regolano˜ilŽ¡‘/read-ahead,‘‰$le–~½strisce“di“grosse“dimensioni“risultano“quasi“sempre“essere“una“scelta“miglioreŽ¡‘/rispGetto–1øa“quelle“di“piccole“dimensioni,‘9e“strisce“di“dimensioni“confron¸ètabili“con“la“grandezzaŽ¡‘/di–×un“quarto“di“cilindro“del“disco“p•Gotrebb“ero–×essere“ancora“migliori.‘w¤P¸èer“capire“questa“af-Ž¡‘/fermazione,›áÍconsideriamo–Ūgli“eetti“delle“strisce“grandi“su“le“piccoli,˜e“delle“strisce“piccoleŽ¡‘/sui–ple“grandi.‘ÂjLa“dimensione“delle“strisce“non“inuenza“le“prestazioni“duran¸ète“la“lettura“diŽ¡‘/piccoli–¸%le:‘#pGer“una“serie“di“N›·ýdisc¸èhi“il“le“ha“1/N˜probabilit€à“di“essere“in•¸èteramen“te‘¸%con“ten“utoŽ¡‘/in–¶Muna“striscia“in“uno“dei“discš¸èhi.‘•Quindi“sia“la“larghezza“di“banda“c˜he“la“latenza“in“letturaŽ¡‘/sono–]Mcomparabili“a“quelle“di“un“singolo“disco.‘ŠIpGotizzando“il“fatto“c¸èhe“i“le“piccoli“sianoŽ¡‘/distribuiti–Òþin“maniera“statisticamen¸ète“uniforme“nel“lesystem“(e,‘íse“si“usa“il“lesystem“ext2fs,Ž¡‘/questo–;ydoš¸èvrebbGe“essere“v˜ero)“il“n˜umero“delle“letture“sim˜ultanee“so˜vrappGoste“pu€ò“essere“circaŽ¡‘/N‘¾Kvš¸èolte–¾gmaggiore,‘ظsenza“collisioni“signican˜ti.‘­TAl“con˜trario,‘ظse“v˜engono“utilizzate“strisce“diŽ¡‘/dimensioni–…Þmolto“ridotte“e“un“le“grande“viene“letto“sequenzialmen¸ète,‘’vi“sar€à“un“accesso“inŽ¡‘/lettura–Ë&da“ogni“disco“del“sottosistema.‘C‚Nella“lettura“di“un“singolo“le“di“grandi“dimensioni,‘æ¾laŽ¡‘/latenza–}sar€à“almeno“raddoppiata,‘¨Qe“la“probabilit€à“cš¸èhe“un“bloGcco“si“tro˜vi“molto“distaccato“dagliŽ¡‘/altri–ÌÈaumenš¸èter€à.‘DSi“noti“com˜unque“ci€ò“c˜he“si“ottiene:‘-Tla“larghezza“di“banda“pu€ò“aumen˜tare“diŽ¡‘/al–Vpi€ù“N‘Dvš¸èolte“nella“lettura“di“un“singolo“le“di“grandi“dimensioni,‘pGoic˜h€é“N‘Ddisc˜hi“lo“leggonoŽ¡‘/sim•¸èultaneamen“te– É(se“viene“usato“il“read-ahead“pGer“manš¸ètenere“attivi“tutti“i“disc˜hi).‘Ô{Ma“viŽ¡‘/€è–°aancš¸èhe“un“eetto“secondario“con˜troproGducen˜te:‘(se“tutti“i“driv˜e“sono“oGccupati“nella“letturaŽ¡‘/di–© un“singolo,›¾grande“le,˜il“ten•¸ètativ“o–© di“leggere“un“secondo,˜un“terzo“le“allo“stesso“tempGoŽ¡‘/causer€à–Ë7un“gra•¸èv“e›Ë7con“tenzioso,‘è½e˜degrader€à˜le˜prestazioni˜a˜causa˜del˜fatto˜c“he˜gli˜algoritmiŽ¡‘/del–pÚdisco“lo“pGorteranno“ad“eettuare“n¸èumerosi“seek.‘įQuindi,‘·Éstrisce“di“grosse“dimensioniŽ¡‘/danno–“oquasi“sempre“i“risultati“migliori.‘,nL'unica“eccezione“€è“costituita“dalla“situazione“nellaŽŽŽŒ‹¾£ Û_2 ý ~?Ÿ„€ÕÁGŽÁ8.‘ñ8Domande–Õsulle“pšQÂerformance,“sui“to˜ol“e“domande“stupide“in“genere‘lD¹30ŽŽ ÕÁ ýV¯‘/quale–fRsi“accede“ad“un“singolo“le“di“grandi“dimensioni“e“si“ric¸èhiede“la“maggiore“larghezza“diŽ¤ ®‘/banda–pšGossibile“e“si“usa“anc¸èhe“un“buon“algoritmo“di“read-ahead,‘1in“questo“caso“sarebb˜eroŽ¡‘/desiderabili–U strisce“di“piccole“dimensioni.Ž¡‘=ÿSi–+{noti“cš¸èhe“in“precedenza“questo“HO˜WTO‘+pha“raccomandato“strisce“di“piccole“dimensioniŽ¡‘/pšGer–i“news“sp˜o˜ol“o“p˜er“altri“sistemi“con“un“gran“n¸èumero“di“piccoli“le.‘uSQuesto“€è“stato“unŽ¡‘/cattivš¸èo–¢þconsiglio,‘ÆŸed“ecco“pGerc˜h€é:‘oi“news“sp•Go“ol–¢þcon˜tengono“non“solo“molti“piccoli“le“ma“anc˜heŽ¡‘/le–Jsommario“di“grandi“dimensioni“e“grandi“directory‘ÿ*¸.‘mÐSe“il“le“sommario“€è“pi€ù“grande“dellaŽ¡‘/striscia,›&Cla–Œsua“lettura“compGorter€à“un“accesso“su“pi€ù“disc•¸èhi,˜rallen“tando–Œil“tutto“come“se“ogniŽ¡‘/disco–7îeettuasse“un“seek.‘éSimilmen¸ète,‘p¡l'attuale“lesystem“ext2fs“ricerca“nelle“directory“inŽ¡‘/maniera–bÑlineare“e“sequenziale.‘š“Quindi,‘f=pšGer“tro¸èv‘ÿqÐare“un“dato“le“o“ino˜de,‘f=in“media“met€à“dellaŽ¡‘/directory–†Hvš¸èerr€à“letta.‘,ŽSe“la“directory“€è“distribuita“su“pi€ù“strisce“(su“pi€ù“disc˜hi),‘¯¦la“lettura“dellaŽ¡‘/directory–÷C(pšGer“es.‘Wéa“causa“del“comando“ls)“p˜otrebb˜e“rallenš¸ètare“notev˜olmen˜te.‘WéUn“grazie“aŽ¡‘/Stevš¸èen–Ò A.“Reisman“µ<“Âsar@pr–ÿ}/essenter.c“om–Ò µ>“¹pGer“questa“correzione.‘EÖStev˜e“ha“anc˜he“aggiun˜to:Ž©9‚‘P²CHo–xscopšGerto“c¸èhe“l'uso“di“una“striscia“da“256k“d€à“p˜erformance“molto“migliori.Ž¡‘A³3SospGetto–&Uc¸èhe“la“dimensione“ottimale“sia“quella“di“un“cilindro“del“disco“(o“forse“laŽ¡‘A³3dimensione–¬òdella“cacš¸èhe“dei“settori“del“disco).‘9qCom˜unque“sia,‘Εoggi“i“disc˜hi“hanno“zoneŽ¡‘A³3di–Fåmemorizzazione“con“un“nš¸èumero“di“settori“v‘ÿqÐariabile“(e“le“cac˜he“dei“settori“v‘ÿqÐarianoŽ¡‘A³3ancš¸èhe–Ïefra“dieren˜ti“mošGdelli).‘àONon“c'€è“un“meto˜do“p˜er“assicurarsi“c¸èhe“le“strisce“nonŽ¡‘A³3oltrepassino–U i“conni“del“cilindro.Ž¦‘=ÿI‘·ftošGol–·accettano“le“dimensioni“delle“strisce“in“KBytes.‘˜Con¸èviene“sp˜ecicare“un“m¸èultiploŽ¡‘/della–U dimensione“della“pagina“pGer“la“CPU“c¸èhe“si“usa“(4KB“su“x86).ŽŸP^‘ 9b9.ŽŽŽ‘ÁD¹:–L,Quale“€è“il“corretto“fattore“di“stride“da“usare“nella“creazione“di“un“lesystem“ext2fs“sulla“partizioneŽ¡‘RAID?–U Pš¸èer“stride“in˜tendo“l'opzione“-R“nel“comando“ºmke2fs¹:Ž©g9‘ºmke2fs–?¬-b“4096“-R“stride=nnn‘ X...Ž¡¦‘¹Cosa–U dev¸èo“mettere“al“pGosto“di“nnn?ŽŸÄð‘=ÿÁR¹:–´ÙL'opzione“º-R‘?¬stride“¹viene“usata“pGer“com¸èunicare“al“lesystem“le“dimensioni“delleŽ¡‘/strisce–ÈØRAID.“P•¸èoic“h€é–ÈØsolo“RAID-0,4“e“5“usano“le“strisce,‘äçe“RAID-1“(mirroring)“e“RAID-linearŽ¡‘/non–U le“usano,“questa“opzione“ha“senso“solo“pGer“RAID-0,4,5.Ž¡‘=ÿLa–Y°conoscenza“delle“dimensioni“delle“strisce“consenš¸ète“a“ºmke2fs“¹di“dimensionare“i“bloGcc˜hiŽ¡‘/e–d‹i“bitmap“degli“inošGde“in“mo˜do“tale“cš¸èhe“non“v˜engano“a“tro˜v‘ÿqÐarsi“tutti“sullo“stesso“dispGositiv˜oŽ¡‘/sico.‘q€Uno–U sconosciuto“ha“conš¸ètribuito“alla“discussione“scriv˜endo:Ž©Äð‘P²CL'ultima›—Õprima•¸èv“era˜ho˜notato˜c“he˜in˜una˜coppia˜di˜disc“hi˜uno˜a“v“ev‘ÿqÐa˜sempre˜unŽ¡‘A³3I/O‘­maggiore–»e“ho“attribuito“la“cosa“a“questi“bloGccš¸èhi“di“meta-dati.‘_^T‘ÿ*¸ed“ha“aggiun˜toŽ¡‘A³3l'opzione–iQº-R‘?¬stride=“¹in“rispGosta“alle“mie“spiegazioni“e“alla“ric¸èhiesta“di“una“soluzione.Ž¦‘=ÿPš¸èer–}¡un“lesystem“con“bloGcc˜hi“da“4Kb“e“strisce“da“256Kb,‘¨ºsi“p•Gotrebb“e–}¡usare“º-R‘?¬stride=64¹.Ž¡‘=ÿSe–Ë&non“v¸èolete“adarvi“all'opzione“º-R¹,“pšGotete“ottenere“un“eetto“simile“in“mo˜do“dieren¸ète.Ž¡‘/Stevš¸èen–U A.“Reisman“µ<“Âsar@pr–ÿ}/essenter.c“om–U µ>“¹scriv˜e:Ž©9‚‘P²CUn'altra–WÙquestione“€è“l'uso“del“lesystem“su“un“dispGositiv¸èo“RAID-0.‘yªIl“lesystemŽ¡‘A³3ext2–áallošGca“8192“blo˜cc¸èhi“p˜er“ogni“grupp˜o.‘JÔOgni“grupp˜o“ha“il“proprio“set“di“ino˜de.‘JÔSeŽ¡‘A³3ci–Psono“2,–Q4,“o–P8“discš¸èhi“questi“bloGcc˜hi“si“accum˜ulano“nel“primo“disco.‘oÌHo“distribuitoŽ¡‘A³3gli–ž=inošGde“su“tutti“i“driv¸èe“imp˜ostando“mk¸èe2fs“in“mo˜do“da“allo˜care“solo“7932“blo˜cc¸èhiŽ¡‘A³3p•Ger‘U grupp“o.Ž¦‘=ÿQualcš¸èhe–sŒpagina“di“mk˜e2fs“non“descriv˜e“l'opzione“º[-g‘?¬blocks-per-group]“¹usata“in“questaŽ¡‘/opGerazioneŽŸÄð‘9²10.ŽŽŽ‘ÁD¹:›n¾Do•¸èv“e˜pGosso˜mettere˜i˜comandi˜ºmd˜¹negli˜script˜di˜a“vvio,‘œÒin˜moGdo˜tale˜c“he˜tutto˜parta˜automaticamen“teŽ¡‘al‘U b•Go“ot?ŽŽŽŒ‹Ô Û_2 ý ~?Ÿ„€ÕÁGŽÁ8.‘ñ8Domande–Õsulle“pšQÂerformance,“sui“to˜ol“e“domande“stupide“in“genere‘lD¹31ŽŽ ÕÁ ýV¯‘=ÿÁR¹:–U RoGd“Wilkš¸èens“µ<“Ârwilkens@b–ÿ}/or“der.net–U µ>“¹scriv˜e:Ž©†<‘P²CQuello–³æc¸èhe“ho“fatto“€è“stato“mettere“›ÕHºmdadd‘?¬-ar¹‘‰.nel“˜º/etc/rc.d/rc.sysinit¹Ž¤ ®‘A³3subito––UdopGo“il“punš¸èto“nel“quale“il“k˜ernel“carica“i“moGduli,‘¼}e“prima“del“con˜trollo“disc˜hi“diŽ¡‘A³3›ÕHºfsck¹.‘$…In–n-questa“maniera“si“pu€ò“mettere“il“dispGositiv¸èo“˜º/dev/md?¹‘ùÍin“˜º/etc/fstab¹.Ž¡‘A³3Quindi–Lho“messo“il“comando“›ÕHºmdstop‘?¬-a¹‘!Xsubito“dopGo“il“comando“˜ºumount‘?¬-a¹‘!XnelŽ¡‘A³3le‘U ‘ÕHº/etc/rc.d/init.d/halt¹.Ž¦‘=ÿNel–Tñcaso“si“usi“raid-5“si“do¸èvr€à“fare“attenzione“al“coGdice“di“uscita“di“ºmdadd“¹e,‘”ånel“casoŽ¡‘/indic¸èhi–U un“errore,“eseguireŽŸbe‘A³3Äckraid–¹N--fix“/etc/raid5.confŽŸ Š=¦‘=ÿ¹pGer–U riparare“i“danni.Ž©6‘9²11.ŽŽŽ‘ÁD¹:–ÂMi“c¸èhiedo“se“sia“pšGossibile“congurare“lo“striping“su“pi€ù“di“2“disp˜ositivi“in“ºmd0¹?‘\aQuesto“p˜er“un“newsŽ¡‘servš¸èer,–U e“io“ho“9“disc˜hi...‘q€Non“c'€è“bisogno“c˜he“dica“c˜he“ne“serv˜ono“molti“pi€ù“di“due.‘q€€È“pGossibile?Ž¦‘=ÿÁA¹:–U Si.‘q€(descriv¸èere“come)Ž¦‘9²12.ŽŽŽ‘ÁD¹:–U Quando“Soft•¸èw“are–U RAID“€è“supGeriore“al“RAID“Hardw¸èare?ŽŸ^e‘=ÿÁR¹:–QrNormalmenš¸ète“il“RAID‘Q0hardw˜are“€è“considerato“supGeriore“al“RAID‘Q0Soft˜w˜are,‘†pGoic˜h€éŽ¡‘/i–ûõconš¸ètroller“hardw˜are“dispšGongono“sp˜esso“di“una“capienš¸ète“cac˜he“e“pGossono“eettuare“unaŽ¡‘/programmazione–ˆÇmigliore“delle“opGerazioni“in“parallelo.‘-cComš¸èunque“il“soft˜w˜are“RAID‘ˆ”in˜tegratoŽ¡‘/pu€ò–U (e“lo“fa)“a•¸èvv‘ÿqÐan“taggiarsi–U della“sua“inš¸ètegrazione“con“il“sistema“opGerativ˜o.Ž¡‘=ÿP¸èer›÷Þesempio,‘ …...–Rjummm.“Oscura˜descrizione˜del˜cac•¸èhing˜dei˜bloGcc“hi˜ricostruiti˜nella˜cac“heŽ¡‘/del–U buer“tralasciata“...Ž¡‘=ÿ€È›Õstato–Õuriferito“c¸èhe,‘5Šsu“un“sistema“SMP˜con“doppio“PPro,‘5Šsoft•¸èw“are–ÕuRAID˜supGera“leŽ¡‘/prestazioni–U di“un“hardw¸èare“RAID“di“bGen“nota“marca“di“un“fattore“v‘ÿqÐariabile“da“2“a“5.Ž¡‘=ÿSoft•¸èw“are–¯RAID‘€è“ancš¸èhe“un'opzione“molto“in˜teressan˜te“pGer“sistemi“serv˜er“ridondan˜ti“adŽ¡‘/altro–YÖgradi“di“adabilit€à.‘¡In“questa“congurazione“due“CPU‘Y’sono“collegate“ad“un“set“diŽ¡‘/discš¸èhi–t­SCSI.“Se“un“serv˜er“si“blošGcca“o“non“risp˜onde“pi€ù“l'altro“serv¸èer“pu€ò“eseguire“ºmdadd¹,Ž¡‘/ºmdrun–]]¹e“ºmount“¹pGer“monš¸ètare“la“serie“di“disc˜hi“RAID,“e“con˜tin˜uare“le“opšGerazioni.‘Š8Questo“tip˜oŽ¡‘/di–rmopšGerazione“a“doppio“con¸ètrollo“non“€è“sempre“p˜ossibile“con“molti“con¸ètroller“RAID,“a“causaŽ¡‘/del–U fatto“cš¸èhe“il“con˜troller“hardw˜are“man˜tiene“la“stessa“congurazione.ŽŸ^d‘9²13.ŽŽŽ‘ÁD¹:–’çSe“aggiorno“la“mia“vš¸èersione“di“raidto•Gols,‘¢Yp“osso–’ça˜v˜ere“problemi“nella“gestione“di“v˜ecc˜hi“sistemi?‘*ÖInŽ¡‘brev•¸èe,›U dev“o˜ricreare˜i˜miei˜sistemi˜RAID˜ogni˜v“olta˜c“he˜aggiorno˜i˜programmi˜di˜utilit€à˜raid?Ž¦‘=ÿÁR¹:–_UNo,‘aâa“meno“cš¸èhe“non“cam˜bi“il“n˜umero“primario“di“v˜ersione.‘Una“v˜ersione“di“MD‘_Rx.y‘ÿ*¸.zŽ¡‘/consiste–U di“tre“sotto•¸èv“ersioni:Ž©†<‘I>^ºx:‘~Versione‘?¬primaria.Ž¡‘I>^y:‘~Versione‘?¬secondaria.Ž¡‘I>^z:‘~Livello–?¬di“patch.Ž¡¦‘=ÿ¹La–Ì vš¸èersione“x1.y1.z1“del“driv˜er“RAID›ËîsuppGorta“un“sistema“RAID˜con“v¸èersione“x2.y2.z2Ž¡‘/nel–U caso“(x1“==“x2)“e“(y1“µ>¹=“y2).Ž¡‘=ÿLe–µvš¸èersioni“c˜he“dieriscono“pGer“il“solo“liv˜ello“di“patc˜h“(z)“sono“concepite“in“moGdo“da“essereŽ¡‘/compatibili.Ž¡‘=ÿIl–She“attendono“rispQÂosta’m¹34ŽŽ ÕÁ ýV¯‘7³2¸ŽŽŽ‘A³3¹Non–ׯusate“la“stessa“marca“o“mošGdello“p˜er“tutti“i“discš¸èhi.‘ù,Non“€è“improbabile“c˜he“deiŽ¤ ®‘A³3forti–t:tempšGorali“v¸èe“ne“p˜ossano“romp˜ere“due“o“pi€ù“(s€ì,‘|tutti“usiamo“degli“stabilizzatori“diŽ¡‘A³3correnš¸ète,‘#íma–ú‘questi“non“sono“macc˜hine“pGerfette).‘aÓIl“caldo“e“l'insucien˜te“v˜en˜tilazioneŽ¡‘A³3del–HLdisco“sono“altri“killer“di“disc•¸èhi.›m9I‘HIdisc“hi–HLa“buon“prezzo“spGesso“si“surriscaldano.˜L'usoŽ¡‘A³3di–g¡moGdelli“dierenš¸èti“di“disc˜hi“e“con˜troller“dimin˜uisce“la“probabilit€à“c˜he“qualsiasi“cosaŽ¡‘A³3succeda–Ïáad“un“disco“(il“caldo,›ê‡uno“shoGc¸èk“sico,˜vibrazioni,˜so¸èvratensioni)“pGossa“succedereŽ¡‘A³3anc¸èhe–U agli“altri“nello“stesso“moGdo.Ž©®‘7³2¸ŽŽŽ‘A³3¹Pš¸èer–K–cautelarsi“da“malfunzionamen˜ti“del“con˜troller“o“del“PC,“p•Gotrebb“e–K–essere“pGossibileŽ¡‘A³3costruire–ê]un“set“di“discš¸èhi“SCSI‘ê6c˜he“sia“t˜win-tailed;‘4ûcollegato“cioG€é“a“due“computer.‘16UnŽ¡‘A³3computer–pƒmonš¸èta“il“lesystem“in“lettura-scrittura,‘w\men˜tre“il“secondo“computer“lo“mon˜taŽ¡‘A³3in–äGsola“lettura,‘e“agisce“da“hot“spare“(ricamš¸èbio“a“caldo“ndt).‘ôQuando“il“computer“c˜heŽ¡‘A³3agisce–þ/da“hot“spare“viene“informato“del“fatto“c¸èhe“il“computer“principale“si“€è“rotto“(ad“es.Ž¡‘A³3attra•¸èv“erso–ùÀun“w•¸èatc“hdog),‘ toglie–ùÀtensione“al“computer“principale“(pGer“essere“sicuri“c¸èhe“siaŽ¡‘A³3realmen•¸ète›ä³spGen“to)˜e˜quindi˜eettua˜un˜fsc“k˜e˜rimon“ta˜il˜lesystem˜in˜lettura-scrittura.Ž¡‘A³3Se–U qualcuno“riesce“a“far“funzionare“questa“congurazione“lo“prego“di“farmi“sapGere.Ž¦‘7³2¸ŽŽŽ‘A³3¹Usare–ß½sempre“un“UPS‘ߟed“eettuare“sh•¸èutdo“wn›ß½puliti.‘J_Anc“he˜se˜uno˜sh“utdo“wn˜spGorco˜pu€òŽ¡‘A³3non–¿danneggiare“i“discš¸èhi,‘Ú+l'esecuzione“di“c˜kraid“su“un“sistema“di“disc˜hi“anc˜he“piccolo“€èŽ¡‘A³3estremamen•¸ète›Ù…len“ta.‘þ¯Oppure˜pGotete˜hac“k“erare˜il˜k“ernel˜e˜fare˜un˜debug˜del˜coGdice˜c“heŽ¡‘A³3riguarda–U la“ricostruzione“a“caldo...Ž¦‘7³2¸ŽŽŽ‘A³3¹I–Oçca¸èvi›OèSCSI“sono˜famosi˜p•Ger˜essere˜delle˜creature˜dal˜comp“ortamen¸èto˜v‘ÿqÐariabile,‘PósoggetteŽ¡‘A³3ad–Luogni“sorta“di“accidenš¸èti.‘nœUsate“i“migliori“ca˜vi“c˜he“pGossiate“rimediare.‘nœSi“usi“il“bubble-Ž¡‘A³3wrap–;pGer“assicurarsi“cš¸èhe“i“ca˜vi“non“stiano“troppGo“vicino“l'uno“all'altro“generando“m˜utueŽ¡‘A³3inš¸èterferenze.‘q€Si–U osservino“rigorosamen˜te“le“restrizioni“sulla“lunghezza“dei“ca˜vi.Ž¦‘7³2¸ŽŽŽ‘A³3¹Date–i@un'oGccš¸èhiata“a“SSI‘i;(Serial“Storage“Arc˜hitecture).‘­áAnc˜he“se“dispGendiosa,‘nHsi“dice“c˜heŽ¡‘A³3sia–U pi€ù“adabile“della“tecnologia“SCSI.Ž¦‘7³2¸ŽŽŽ‘A³3¹Divš¸èertitevi,–U €è“pi€ù“tardi“di“quan˜to“immaginiate.Ž©(ÀœÀ10Ž‘¬%Domande–G\cche“attendono“risppœostaŽŸ”’‘ 9b¹1.ŽŽŽ‘ÁD¹:–ë‹Se,›©pGer“ragioni“di“prezzo,˜metto“in“mirror“un“disco“lenš¸èto“con“uno“v˜eloGce,‘©il“soft˜w˜are“sar€à“abbastanzaŽ¡‘scaltro–öda“bilanciare“le“ricš¸èhieste“di“lettura“tenendo“con˜to“della“v˜eloGcit€à“dei“disc˜hi“o“far€à“rallen˜tare“ilŽ¡‘tutto–U alla“vš¸èeloGcit€à“del“disco“pi€ù“len˜to?ŽŸ®‘ 9b2.ŽŽŽ‘ÁD¹:–½yPš¸èer“testare“il“thru-put“del“disco...‘>óc'€è“un“dispGositiv˜o“a“caratteri“cui“si“pGossa“accedere“direttamen˜te“alŽ¡‘pšGosto–(¨di“º/dev/sdaxx“¹c¸èhe“si“p˜ossa“usare“p˜er“v‘ÿqÐalutare“le“prestazioni“dei“disc¸èhi“raid??‘b­c'€è“un“programmaŽ¡‘GUI–U c¸èhe“si“pšGossa“usare“p˜er“con¸ètrollare“il“thru-put“del“disco??Ž¦À11Ž‘¬%Desiderata–G\di“MD“e“del“relativšco“soft˜w˜areŽŸ¿:¹Bradley–U W‘ÿ*¸ard“Allen“µ<“Âulmo@Q.Net“µ>“¹ha“scritto:ŽŸؼ‘'ÿLe–U idee“includono:Ž©®‘%¸ŽŽŽ‘/¹P¸èarametri–äMdi“b•Go“ot›äMp“er˜dire˜al˜k¸èernel˜quali˜disp“ositivi˜do¸èvranno˜essere˜disp“ositivi˜MD‘ä0(nien¸èteŽ¡‘/pi€ù‘U ‘ÕHºmdadd¹)Ž¦‘%¸ŽŽŽ‘/¹Rendere–—ÿMD‘—îtrasparenš¸ète“a“–ÕHºmount¹/“ºumount¹‘mGin–—ÿmoGdo“tale“c˜he“non“vi“siano“pi€ù“‘ÕHºmdrun¹‘mGeŽ¡‘/‘ÕHºmdstop¹Ž¦‘%¸ŽŽŽ‘/¹Completa–inš¸ètegrazione“nel“k˜ernel“di“‘ÕHºckraid¹‘Tfe“sua“esecuzione“automatica“in“caso“di“bisogno.ŽŽŽŒ‹#e Û_2 ý ~?Ÿ„€ÕÁGŽÁ11.‘ñ8Desiderata–Õdi“MD“e“del“relativš®>o“soft˜w˜are’æ]Á¹35ŽŽ ÕÁ ýV¯‘'ÿ(Ho–Фgi€à“suggerito“di“smetterla“di“usare“i“toGol“e“di“inš¸ètegrarli“nel“k˜ernel;‘üÍio“la“pGenso“cos€ì,‘ë#si“parlaŽ¤ ®‘di–U un“lesystem,“non“di“un“gioGcattolo.)ŽŸçl‘%¸ŽŽŽ‘/¹T‘ÿ*¸rattare–6Ssistemi“cš¸èhe“pGossano“facilmen˜te“sopra˜vviv˜ere“al“malfunzionamen˜to“(sim˜ultaneo“o“inŽ¡‘/momenš¸èti–U separati)“di“N“disc˜hi,“con“N“in˜tero“µ>“¹0“denito“dall'amministratore“di“sistema.Ž© Ä‘%¸ŽŽŽ‘/¹Migliorarne–Øil“compšGortamen¸èto“in“caso“di“blo˜cco“del“kš¸èernel,‘ø×problemi“con“l'alimen˜tazione“eŽ¡‘/altri›U sh•¸èutdo“wn˜impro“vvisi.Ž¦‘%¸ŽŽŽ‘/¹Non–“disabilitare“l'inš¸ètero“disco“se“solo“una“parte“di“esso“si“€è“ro˜vinata,‘£ad“es.‘,¢se“gli“errori“diŽ¡‘/lettura–Ý sono“meno“del“50%“su“20“divš¸èerse“ric˜hieste“di“accesso,‘ÿsi“con˜tin˜ua“ad“usare“il“discoŽ¡‘/ignorando–U i“settori“c¸èhe“hanno“dato“problemi.Ž¦‘%¸ŽŽŽ‘/¹Settori‘U danneggiati:ŽŸ Å‘6óÁŽŽŽ‘A³3¹Un–meccanismo“cš¸èhe“consen˜ta“di“memorizzare“da“qualc˜he“parte“nel“disco“quali“settoriŽ¡‘A³3sono‘U danneggiati.Ž©çl‘6óÁŽŽŽ‘A³3¹Se–78esiste“gi€à“una“con•¸èv“enzione–78riconoscibile“dai“lesystem“di“liv¸èello“pi€ù“alto“pGer“marcareŽ¡‘A³3i– åsettori“danneggiati,‘½questa“dev¸èe“essere“usata.‘XÂProgrammarne“una“se“non“ne“esiste“unaŽ¡‘A³3riconoscibile.Ž¦‘6óÁŽŽŽ‘A³3¹F‘ÿ*¸orse–Püin“alternativ‘ÿqÐa“un“meccanismo“pšGer“fare“sap˜ere“allo“strato“sup˜eriore“c¸èhe“le“dimensioniŽ¡‘A³3del––ûdisco“si“sono“ridotte,‘çrmagari“implemenš¸ètando“una“automazione“c˜he“consen˜ta“alloŽ¡‘A³3strato–äþsupšGeriore“di“sp˜ostare“i“dati“dalle“aree“cš¸èhe“v˜engono“eliminate.‘!Questo“p•Gotrebb“eŽ¡‘A³3anc¸èhe–U andare“bšGene“p˜er“trattare“i“blo˜cc¸èhi“danneggiati.Ž¦‘6óÁŽŽŽ‘A³3¹Nel–Écaso“non“si“pGossano“realizzare“le“idee“di“cui“sopra,‘¬ lasciare“una“piccola“parte“del“discoŽ¡‘A³3(denibile–©dall'amministratore“di“sistema)“da“parte“pšGer“i“blo˜cc¸èhi“danneggiati“(magariŽ¡‘A³3distribuita–úsu“tutto“il“disco?)‘`3e“usare“questa“area“(la“pi€ù“vicina)“al“pšGosto“dei“blo˜cc¸èhiŽ¡‘A³3danneggiati–ˆ¤quando“questi“vš¸èengono“scopGerti.‘-WOvviamen˜te“questa“soluzione“€è“inecien˜te.Ž¡‘A³3Oltretutto–'il“kš¸èernel“do˜vrebbGe“mettere“nei“log,‘ï)ogni“v˜olta“c˜he“il“sistema“RAID‘œÓvieneŽ¡‘A³3aš¸èvviato,‘atutti–øSi“settori“danneggiati“e“i“pro˜vv˜edimen˜ti“adottati“nei“loro“riguardi“conŽ¡‘A³3priorit€à–QÑÕHºcrit¹,‘ësolo“pšGer“far“sap˜ere“all'amministratore“c¸èhe“il“suo“disco“€è“imp˜olv¸èeratoŽ¡‘A³3in•¸èternamen“te–U (o“ha“una“testina“malata).ŽŸ Ä‘%¸ŽŽŽ‘/¹Discš¸èhi–U (dis)attiv‘ÿqÐabili“via“soft˜w˜are:ŽŸ Å‘/Ádisattiv‘ÿ\|a–Õquesto“discoŽŽŽ¡‘A³3¹si–æCbloGcca“no“a“cš¸èhe“il“k˜ernel“non“si“€è“assicurato“c˜he“non“vi“siano“dati“c˜he“pGossono“servireŽ¡‘A³3sul–oìdisco“c¸èhe“sta“pšGer“essere“disattiv‘ÿqÐato“(ad“es.‘Áåp˜er“completare“uno“X¸èOR/ECC/“o“altraŽ¡‘A³3correzione–ó‹di“errore),‘quindi“cessa“l'utilizzo“del“disco“(in“mošGdo“c¸èhe“p˜ossa“essere“rimosso,Ž¡‘A³3ecc.)Ž¦‘/Áattiv‘ÿ\|a–Õquesto“discoŽŽŽ¡‘A³3¹esegue,–8se› °necessario,“ºmkraid˜¹su˜un˜n•¸èuo“v“o˜disco˜e˜quindi˜lo˜utilizza˜p•Ger˜le˜op“erazioniŽ¡‘A³3ECC/qualsiasi,–U ampliando“quindi“il“sistema“RAID5;Ž¦‘/Áridimensiona–Õil“sistemaŽŽŽ¡‘A³3¹reimpGosta–Ûìil“nš¸èumero“totale“di“disc˜hi“e“il“n˜umero“di“disc˜hi“ridondan˜ti,‘=ŸspGesso“con“ilŽ¡‘A³3risultato–¯ldi“aumen¸ètare“le“dimensioni“del“sistema“RAID;“sarebbšGe“b˜ello“p˜oter“usare“questaŽ¡‘A³3opzione,– ðquando›ü$serv¸èe,“senza˜pGerdere˜dati,“ma˜mi˜viene˜dicile˜immaginare˜come˜pGossaŽ¡‘A³3funzionare–·%eettiv‘ÿqÐamen¸ète;‘h(in“ogni“caso,‘§un“mošGdo“p˜er“sosp˜endere“(p˜ossibilmen¸ète“p˜erŽ¡‘A³3delle–ore“(il“kš¸èernel“do˜vrebbGe“scriv˜ere“qualcosa“nei“log“ogni“dieci“secondi“in“questo“caso))Ž¡‘A³3p•Gotrebb“e–U essere“necessario;Ž¦‘/Áattiv‘ÿ\|a–Õquesto“disco“men®>tre“salvi“i“datiŽŽŽ¡‘A³3¹c¸èhe–]Øsalvi“i“dati“su“un“disco“cos€ì“com'€è“e“lo“inserisca“in“un“sistema“RAID5,‘ in“moGdoŽ¡‘A³3tale–´tcš¸èhe“l'orrendo“salv‘ÿqÐa“e“ripristina“non“debba“essere“eseguito“ogni“v˜olta“c˜he“qualcunoŽ¡‘A³3conguri–[Øun“sistema“RAID5“(oppure,‘³p•Gotrebb“e–[Øessere“pi€ù“semplice“salv‘ÿqÐare“una“partizioneŽ¡‘A³3al–ïpšGosto“di“due,‘p˜otrebb˜e“addirittura“en¸ètrare“nella“prima“come“le“compresso“con“gzip);Ž¡‘A³3inne,ŽŽŽŒ‹$(é Û_2 ý ~?Ÿ„€ÕÁGŽÁ11.‘ñ8Desiderata–Õdi“MD“e“del“relativš®>o“soft˜w˜are’æ]Á¹36ŽŽ ÕÁ ýV¯‘/Áriattiv‘ÿ\|a‘ÕdiscoŽŽŽ¤ ®‘A³3¹p•Gotrebb“e–Ìessere“un“mošGdo“grazie“al“quale“l'op˜eratore“sca¸èv‘ÿqÐalca“il“SO‘»p˜er“pro¸èv‘ÿqÐare“un“discoŽ¡‘A³3cš¸èhe–±µin“precedenza“era“risultato“non“funzionan˜te“(p•Gotrebb“e–±µsemplicemen˜te“c˜hiamareŽ¡‘A³3disattiv›ÿqÐa–U e“quindi“attiv˜a,“pGenso).Ž¤ؼAltre–U idee“dalla“rete:Ž¡‘3ÿ¸ŽŽŽ‘=ÿ¹rendere–U nalrd“simile“a“initrd,“pšGer“semplicare“il“b˜o˜ot“da“raid.Ž¤®‘%¸ŽŽŽ‘/¹una–U mošGdalit€à“raid“di“sola“scrittura,“p˜er“rendere“pi€ù“semplice“quan¸èto“sopraŽ¡‘%¸ŽŽŽ‘/¹Con¸ètrassegnare–/il“sistema“RAID‘.ûcome“pulito“quando“non“siano“state“eettuate“mezze“scrit-Ž¤ ®‘/ture.‘U™–iSarebbšGe“come“dire“c¸èhe“non“vi“sono“op˜erazioni“di“scrittura“nite“su“un“disco“e“ancoraŽ¡‘/da–U ultimare“su“un“altro“disco.ŽŸ®‘/Aggiungere–Éun“timeout“cš¸èhe“segnali“inattivit€à“in“scrittura“(pGer“evitare“seek“frequen˜ti“alŽ¡‘/sup•Gerblo“cš¸èk–U RAID“quando“il“sistema“RAID“€è“relativ‘ÿqÐamen˜te“oGccupato.)ŽŽŽŒø:ƒ’À;èÛ_2ÕÁG$óqLË ectt0900ó½HЃ ecti1000ó]fŒ ecbx1000ó&Lt$ffffecbx1440óqLË ecit1000óŒ6 ecss1000óþÖëI½q½qecss2074óqLË ectt1000ó 1ê± ecrm1000ó !",š cmsy10ó  b> cmmi10ù?%ßßßß