CA2053692A1 - On-line reconstruction of a failed redundant array system - Google Patents
On-line reconstruction of a failed redundant array systemInfo
- Publication number
- CA2053692A1 CA2053692A1 CA002053692A CA2053692A CA2053692A1 CA 2053692 A1 CA2053692 A1 CA 2053692A1 CA 002053692 A CA002053692 A CA 002053692A CA 2053692 A CA2053692 A CA 2053692A CA 2053692 A1 CA2053692 A1 CA 2053692A1
- Authority
- CA
- Canada
- Prior art keywords
- data block
- block
- modified
- storage unit
- error
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/1092—Rebuilding, e.g. when physically replacing a failing disk
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
- G11B20/1833—Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
ABSTRACT
A method for on-line reconstruction of a failed storage unit in a redundant array system, After providing a replacement storage unit for the failed storage unit,reconstruction begins for each data stripe in the array. General reconstructionconsists of applying an error-correction operation (such as an XOR operation on data blocks and a corresponding parity block) to the data blocks from the remain-in storage units in the redundancy group, and storing the result in the corre-sponding block of the replacement storage unit. If a Read operation is requested by the CPU for a data block on the replacement storage unite, then a concurrent Read task is executed which reconstructs the stripe containing the requested data block. If a Read operation is requested by the CPU for a data block not on the replacement storage unit, a concurrent Read task is executed which performs a normal Read. If a Write operation is requested for any data block, then a concurrent Write task is executed which performs a Read-Modify-Write sequence in the general case (the Read operation being performed in accordance with the above rules).
A method for on-line reconstruction of a failed storage unit in a redundant array system, After providing a replacement storage unit for the failed storage unit,reconstruction begins for each data stripe in the array. General reconstructionconsists of applying an error-correction operation (such as an XOR operation on data blocks and a corresponding parity block) to the data blocks from the remain-in storage units in the redundancy group, and storing the result in the corre-sponding block of the replacement storage unit. If a Read operation is requested by the CPU for a data block on the replacement storage unite, then a concurrent Read task is executed which reconstructs the stripe containing the requested data block. If a Read operation is requested by the CPU for a data block not on the replacement storage unit, a concurrent Read task is executed which performs a normal Read. If a Write operation is requested for any data block, then a concurrent Write task is executed which performs a Read-Modify-Write sequence in the general case (the Read operation being performed in accordance with the above rules).
Description
Pl:) 0807SD
S~N-UME RECO?~lg i~ ~10N OF A FAII~I~ REIDUNDAN~ AF~RAY SYSTEM
~AcK~Rouplla OF ~ INYENTK~N
1. ~le~d ef a,e In~ntlon Thl~ InvenUon r~ to ompul~r 6ys~em ~a ~s~or~E~e, ~nd more p~rtla,~larly to a methocl ~or on-lin0 r~constru~lun ~ ~ taU0d s~r~r~go unlt In a re~unaant ~rrAy m.
S~N-UME RECO?~lg i~ ~10N OF A FAII~I~ REIDUNDAN~ AF~RAY SYSTEM
~AcK~Rouplla OF ~ INYENTK~N
1. ~le~d ef a,e In~ntlon Thl~ InvenUon r~ to ompul~r 6ys~em ~a ~s~or~E~e, ~nd more p~rtla,~larly to a methocl ~or on-lin0 r~constru~lun ~ ~ taU0d s~r~r~go unlt In a re~unaant ~rrAy m.
2. L1~scn'ptlon o~ flol~ted hn .~A typl~l d~t~ proce3sln~ ~y~larn ~ener~ly Involw~ ono or rrK~re stor~o ~nit4 whlch ~r~ conn~ct0cl to ~ Cenlral Proeeagor Unil ~CPU) elth0r dlrocUy or throu~h~ ~antr~l unlt an~ a ctlarmel; Tno nJnc~on o~ ora~e unr~ 1~ fo sfore drlfa and pro~rams whlch the CPU u~ In pcrrormln~ p~rUcul~ da~a proce~lnE~ k9.
Variou~ type o~ stor~e unl~a are u~ed In ourr~n~ data processln~ syst3rns. A
typleal ~y~tom may Includo ono or mora lar~u capaclty 1ape unll~ ~nd/or dlsk drlves (ma~neUo, optlcal, or s~rnlconductor) conn~c~ed to the systern 1nrou~h re~pc~ctlvd oontrel unltc h~r 6torln~ dat;L
However, r~ problem exl~ts U one of the lat~e capaclty stora~e units ~8118 auch ~hat Informatlon cont~ln~d In that unK 18 no lon~r available ~o the systern. GanGrally, uch ~ l~llure will shut down th~ ~ntlre computor syslem.
mO prlor art h3s su~ested eeveral ways ol 601vln~ the probl0m o~ provi~in~
rotl~ble dat~ stora~e. In systems where recorda are relathHly small, 11 Is posslble to u~n error correctln~ codes whlcl~ ~netate ECC syndrome blle that ere appended to each dsta record wlthln n slora~e unll. Wlth ~uch codes, It le po331blo to Gorrect ~ srnall ~mount o1 data that rnay bo read erroneously.
Howo~Jer, ~uch co~es ue ~enerell~y no~ ~ultabb lor correctlr~ or reueat~ lon~
r~cords \,vhlch ~re In error, and provlde no remedy ~t all H ~ oomplete stora~e unlt f~ . Therefore, H n0~d exl~s ~or provldln~ data rellabalty axl~rnal to indhldual~toru~e units, -2- PAT~
PD~1807SD
Olh~F ~ppro~ch~ to such ~exl~rn~D roll~bil~y haive b~r~ describ~ In th0 ~n. A
re~0arch ~roup r~ Unlv~r~ C~ orrlla, ~erkcl~y, h a pap3r entitl~ "A Ca~e 10t RedundRn~ Array~ of Inexpen~lv0 Dlsks (R~D)-, PaHetson, 0t ~1., Pr~. ACM
SJ(;~OD, Jun~ l~Br~l h~s o~al49u~ ~ nurn~er of ~IHwenl ~pproaahn~ ~or psovlclin~ 3UCtl r~llablllty when ~slr~ ~Isk drlv~q ~5 slorn~ unll6. Arraya o1 dl~l~
drh/e~ aro charact~rl~ In or~ ol 7ivo ~rchltccture~, und~r thc acranyrn ~AID~
(~ R~urldQnt Arr~y~ o~ Inexpen~lve Dl~
A FiAID ~ archltecture Involve6 providin~ ~ duplicsle ~el of "mlrrorn eter~ge unlts ~ncl keepln~ ~ dupllcai~ copy ot all da~Q on oach p~lt ol 6tor~0 uni~, Whlle such ~ solutlon sc~ h0 r~ blllty probbm, It doubl0s the cost o7 stora~e. A
numb~r 3~ Irnplementatlone o? ~slD 1 arc~tecture~ have ba4n mado, In puticulsr by T~nderrl CorporaUon A RAID 2 ar~hltacture etore~ eaoh ~t ot eash word o~ ~t~, plus Error D~toc~on ~d Çorroctlon (EDC) bKs tor e~oh wotd, on ~para~e disk drlvos (thla la ~Iw 1~ known as ~blt ~trlppln~"). For ex~mpl0, u.S. Patent No. 4,~22,0~510 Flor~
dlsc~oss~ 8 dl~k dr~ve rnemory usiny ~ ~ura~y of r~lathrely ~mall, Ind~p~ndentlyoper~tln0 dlsk subsy3tcms t~ hmcthn a8 a Inr~o, hlgh capadly dl~k drlve h~vln~
an ~nus~lly hl~h ~a-4t tolQrAncq ~nd a very hl~h data tran6rer banrJwldth. A data organlz~r add~ 7 EDC blts (determlned uslng the w~ kno~Hn Hctnrnin3 codo) to ~Q e~ch 32-blt data word to provWe crtor delection and error cor~otlon c~ablllty.
Th~ resull~n~ 3~1S word Is wrltt~n, ona bl~ pat dlsk drlve, on to 39 dlsk drlvcs.
Il or~ o1 tl~ 39 dlsk ddvo~ , th~ rarnslnln~ 98 blts ot ~ch r~torad 3~bH word ~n bo u~ed to recorwtr~ct e~ch 32-bH da~ word on a word-by~ord ba~i~ o~
~ch data w~rd Is re~d Irorn Ihe dbk driv~, thereby obl~nin~ fault toler~nce.
2~ An obvloL~s dtswbsck of suoh a systcm i3 th~ l~r~ numbet o~ dl~k drlvos roqulrcd ~or ~ mlnlmun sysl~rn ~slnoe most l~r~e compul8rs use a 32 blt word), and the rr~latlvely h~h r~lo of drlves requfred to dor~ thh FDC blls (7 clrlvcs out ol 3~.
A further llmltatlon ol ~ ~AID 2 dlsk drlva memory sysl3rn i~ l lhs indlvldu~l dl3k ~ctu~tors Jre op~r~ted In unlson to wrlt~ e~ch data block, the blt~ ot whlch aredl~lrlbutod over all ol the dl~k drlves. Thls arran0~m~nt nas a hi~h d~la lr~ns~r -~ PATI~NT
PD~7Sr~
banslvvld~h, ~Ino~ o~cll indhldl~r~l diek tr~laf~ part oS ~ blrx~ of dal~, tt~ net ~ect bsln~ t~)a~ ntlr~ block 18 ~lablo to ~he computer sy~l~m much ~a6~er ~hs~n 11~ 81r~1a drlv~ w~3r~ rlc:aa861nt7 IhO b!~?ck. ThlC 18 a~van~a~o~ or l~r~a d~t~ !o~. ~lev~r~Y~r, Ihle arran~emar~ o e~lecUve~ provldr~s ~nly ~ sln~la te~twtlla hr~d ach~ator 1Or Iho entlra 3~e9E~ llnn. Thl~ ~dv~t~oty ~ t3 1ha r~ndom aoCra~ perlo~man~0 ~f ~h0 ~r~ arrar~ n r~l~ s ~re small, ~ince ~Iy on~ nl~ al a tlme cen be aac~s~sd by thu '~In~lo" ~Ictu~tor. ThUs, RAID
2 ~t~rn~ ara ~ensrrllly not oonsld~red t~ i~a sult~bha ~r c~mput0r sy~tcm~
deel~r~ ~or On-Une Tran~sacSion Proc~slng (OLTP3, ~uch ~ in banklng, t o ~ncl~l, ~d r~er~lon ~ys~mll, w~re a lar~o numb~r ot rundorn accessos to .~ rna~y err ~11 do~ fllos r,~rnprls~s ~he bulk ot d4t~l g~ot~a ~ Ir~ns(er ~poraUons.
A FtAlD 3 archlt0clure 1~ i~aso~ on the concopt 1h~t ~ch dl~k drlve s~ora~c unitha~ Internal rn~ans 70r det0ctln~ ~ huit or data ~rror. Thcrator~, n h not necsss~y to etore exlra lnfottnatlon to detect the locatlon ol an ~rror; a slrnplor fo~n~ of parlty-basod error corrocUon can thus be used. In thls epproach, th~
oontents of all ~lora~e unlls sublrlct to ~ilure are ~Excluslve OR~U (XOR d) to yon~r~te psrlty InlormaUon. The resulUna parlq,~ Intorrnatlon Is stor~d In ~ 91n~19 r~d~ndAnl otortA~a unl~ tor~go unn ~al~ Ula d~ta on th~t unlt c~;n be r~con~tructed on to a te~!~ceme-t stora~o un~t by XORln~ Ula deto from lhs remalnlng StOrQ~e unl~ e pnrl~r In~onnatlon. Such an ~rrang~rnerlt h~s the adv~nts~a over ~he n~irrored dl~k RAID 1 archH~cture In lhn1 only one ad0Uonal stora~o unlt ~ requlred for ~ torago unrts. A furthor ~poct ot th- ~AID 3 arehiteotw~ 19 th~t the dl~k drhleQ ate opor~ h ~I cc~ d m nner ~kr~ to ~ ~ID 2 systorn and ~ oln~b dlsk drlve le desl~nal~d s~r thlr p4rlty unlt.
2~ One ImplernontaUon of n RAID 3 erchltecture 13 Ule Mlcropoll~ Corporatlon Parallel Drlvo Arr~y, Model 1BO~ SCSI, that U808 four p~rallel, synchronlz~d di~k drlvr~sand one redundsnt psrlty drlv4. Ih~ ~allure ot ono ot the four data dlsk drlves c~n ba rern~dled by the u8~ o~ tho p~rlty blts stor~d on th~ parlty di~k drlve. AnoUl~r example oi a RAID 3 systQrn 1~ deocri~rJ in U.S. Patont No, 4,092,732 ~o Ouchl.
~~ PAT~
PD~7SD
A ~If~ Isk drh~0 m~rnory 3y3t0m h~ a m~l lo~er ratlo oi r~dundan~r unlts to ~at~ unlt~ ~han a R~ID ~ ~ysl~m. ~lowsver, a RAID 3 syss~m hs~a 1ho c~m~
p~r~rm~ncs llmllr~tl~n ~s a R~ID ~ ~y~m, in Ihat ~ho indh1~ual dls~ actuator~ ~;re ~up1~d, s;~p~r~tln~ h un~on. Thb ~v~rso~ arrec~ ~e r~om r~cco~6 pa~ n¢e o~ dr~ rr~y ~h~ dat~ Sil0c ~r~ sm~l, ~hc0 ~ on~ d~ nie tlrn~ ~n b~ Ir~ tor. Thu8, FUUD 3 8y~
n~r~1y not ~nci~er0d t~ ~ ~ult~bl4 ~ ~omputor ~yst~m~ d0~i~n~ci for OLTP
qs~
A ~ID ~ arr hll~cl~ra uses the ~arn~ p~rity ~rror corre~ion eonccpt o~ tho i~AiiD
Variou~ type o~ stor~e unl~a are u~ed In ourr~n~ data processln~ syst3rns. A
typleal ~y~tom may Includo ono or mora lar~u capaclty 1ape unll~ ~nd/or dlsk drlves (ma~neUo, optlcal, or s~rnlconductor) conn~c~ed to the systern 1nrou~h re~pc~ctlvd oontrel unltc h~r 6torln~ dat;L
However, r~ problem exl~ts U one of the lat~e capaclty stora~e units ~8118 auch ~hat Informatlon cont~ln~d In that unK 18 no lon~r available ~o the systern. GanGrally, uch ~ l~llure will shut down th~ ~ntlre computor syslem.
mO prlor art h3s su~ested eeveral ways ol 601vln~ the probl0m o~ provi~in~
rotl~ble dat~ stora~e. In systems where recorda are relathHly small, 11 Is posslble to u~n error correctln~ codes whlcl~ ~netate ECC syndrome blle that ere appended to each dsta record wlthln n slora~e unll. Wlth ~uch codes, It le po331blo to Gorrect ~ srnall ~mount o1 data that rnay bo read erroneously.
Howo~Jer, ~uch co~es ue ~enerell~y no~ ~ultabb lor correctlr~ or reueat~ lon~
r~cords \,vhlch ~re In error, and provlde no remedy ~t all H ~ oomplete stora~e unlt f~ . Therefore, H n0~d exl~s ~or provldln~ data rellabalty axl~rnal to indhldual~toru~e units, -2- PAT~
PD~1807SD
Olh~F ~ppro~ch~ to such ~exl~rn~D roll~bil~y haive b~r~ describ~ In th0 ~n. A
re~0arch ~roup r~ Unlv~r~ C~ orrlla, ~erkcl~y, h a pap3r entitl~ "A Ca~e 10t RedundRn~ Array~ of Inexpen~lv0 Dlsks (R~D)-, PaHetson, 0t ~1., Pr~. ACM
SJ(;~OD, Jun~ l~Br~l h~s o~al49u~ ~ nurn~er of ~IHwenl ~pproaahn~ ~or psovlclin~ 3UCtl r~llablllty when ~slr~ ~Isk drlv~q ~5 slorn~ unll6. Arraya o1 dl~l~
drh/e~ aro charact~rl~ In or~ ol 7ivo ~rchltccture~, und~r thc acranyrn ~AID~
(~ R~urldQnt Arr~y~ o~ Inexpen~lve Dl~
A FiAID ~ archltecture Involve6 providin~ ~ duplicsle ~el of "mlrrorn eter~ge unlts ~ncl keepln~ ~ dupllcai~ copy ot all da~Q on oach p~lt ol 6tor~0 uni~, Whlle such ~ solutlon sc~ h0 r~ blllty probbm, It doubl0s the cost o7 stora~e. A
numb~r 3~ Irnplementatlone o? ~slD 1 arc~tecture~ have ba4n mado, In puticulsr by T~nderrl CorporaUon A RAID 2 ar~hltacture etore~ eaoh ~t ot eash word o~ ~t~, plus Error D~toc~on ~d Çorroctlon (EDC) bKs tor e~oh wotd, on ~para~e disk drlvos (thla la ~Iw 1~ known as ~blt ~trlppln~"). For ex~mpl0, u.S. Patent No. 4,~22,0~510 Flor~
dlsc~oss~ 8 dl~k dr~ve rnemory usiny ~ ~ura~y of r~lathrely ~mall, Ind~p~ndentlyoper~tln0 dlsk subsy3tcms t~ hmcthn a8 a Inr~o, hlgh capadly dl~k drlve h~vln~
an ~nus~lly hl~h ~a-4t tolQrAncq ~nd a very hl~h data tran6rer banrJwldth. A data organlz~r add~ 7 EDC blts (determlned uslng the w~ kno~Hn Hctnrnin3 codo) to ~Q e~ch 32-blt data word to provWe crtor delection and error cor~otlon c~ablllty.
Th~ resull~n~ 3~1S word Is wrltt~n, ona bl~ pat dlsk drlve, on to 39 dlsk drlvcs.
Il or~ o1 tl~ 39 dlsk ddvo~ , th~ rarnslnln~ 98 blts ot ~ch r~torad 3~bH word ~n bo u~ed to recorwtr~ct e~ch 32-bH da~ word on a word-by~ord ba~i~ o~
~ch data w~rd Is re~d Irorn Ihe dbk driv~, thereby obl~nin~ fault toler~nce.
2~ An obvloL~s dtswbsck of suoh a systcm i3 th~ l~r~ numbet o~ dl~k drlvos roqulrcd ~or ~ mlnlmun sysl~rn ~slnoe most l~r~e compul8rs use a 32 blt word), and the rr~latlvely h~h r~lo of drlves requfred to dor~ thh FDC blls (7 clrlvcs out ol 3~.
A further llmltatlon ol ~ ~AID 2 dlsk drlva memory sysl3rn i~ l lhs indlvldu~l dl3k ~ctu~tors Jre op~r~ted In unlson to wrlt~ e~ch data block, the blt~ ot whlch aredl~lrlbutod over all ol the dl~k drlves. Thls arran0~m~nt nas a hi~h d~la lr~ns~r -~ PATI~NT
PD~7Sr~
banslvvld~h, ~Ino~ o~cll indhldl~r~l diek tr~laf~ part oS ~ blrx~ of dal~, tt~ net ~ect bsln~ t~)a~ ntlr~ block 18 ~lablo to ~he computer sy~l~m much ~a6~er ~hs~n 11~ 81r~1a drlv~ w~3r~ rlc:aa861nt7 IhO b!~?ck. ThlC 18 a~van~a~o~ or l~r~a d~t~ !o~. ~lev~r~Y~r, Ihle arran~emar~ o e~lecUve~ provldr~s ~nly ~ sln~la te~twtlla hr~d ach~ator 1Or Iho entlra 3~e9E~ llnn. Thl~ ~dv~t~oty ~ t3 1ha r~ndom aoCra~ perlo~man~0 ~f ~h0 ~r~ arrar~ n r~l~ s ~re small, ~ince ~Iy on~ nl~ al a tlme cen be aac~s~sd by thu '~In~lo" ~Ictu~tor. ThUs, RAID
2 ~t~rn~ ara ~ensrrllly not oonsld~red t~ i~a sult~bha ~r c~mput0r sy~tcm~
deel~r~ ~or On-Une Tran~sacSion Proc~slng (OLTP3, ~uch ~ in banklng, t o ~ncl~l, ~d r~er~lon ~ys~mll, w~re a lar~o numb~r ot rundorn accessos to .~ rna~y err ~11 do~ fllos r,~rnprls~s ~he bulk ot d4t~l g~ot~a ~ Ir~ns(er ~poraUons.
A FtAlD 3 archlt0clure 1~ i~aso~ on the concopt 1h~t ~ch dl~k drlve s~ora~c unitha~ Internal rn~ans 70r det0ctln~ ~ huit or data ~rror. Thcrator~, n h not necsss~y to etore exlra lnfottnatlon to detect the locatlon ol an ~rror; a slrnplor fo~n~ of parlty-basod error corrocUon can thus be used. In thls epproach, th~
oontents of all ~lora~e unlls sublrlct to ~ilure are ~Excluslve OR~U (XOR d) to yon~r~te psrlty InlormaUon. The resulUna parlq,~ Intorrnatlon Is stor~d In ~ 91n~19 r~d~ndAnl otortA~a unl~ tor~go unn ~al~ Ula d~ta on th~t unlt c~;n be r~con~tructed on to a te~!~ceme-t stora~o un~t by XORln~ Ula deto from lhs remalnlng StOrQ~e unl~ e pnrl~r In~onnatlon. Such an ~rrang~rnerlt h~s the adv~nts~a over ~he n~irrored dl~k RAID 1 archH~cture In lhn1 only one ad0Uonal stora~o unlt ~ requlred for ~ torago unrts. A furthor ~poct ot th- ~AID 3 arehiteotw~ 19 th~t the dl~k drhleQ ate opor~ h ~I cc~ d m nner ~kr~ to ~ ~ID 2 systorn and ~ oln~b dlsk drlve le desl~nal~d s~r thlr p4rlty unlt.
2~ One ImplernontaUon of n RAID 3 erchltecture 13 Ule Mlcropoll~ Corporatlon Parallel Drlvo Arr~y, Model 1BO~ SCSI, that U808 four p~rallel, synchronlz~d di~k drlvr~sand one redundsnt psrlty drlv4. Ih~ ~allure ot ono ot the four data dlsk drlves c~n ba rern~dled by the u8~ o~ tho p~rlty blts stor~d on th~ parlty di~k drlve. AnoUl~r example oi a RAID 3 systQrn 1~ deocri~rJ in U.S. Patont No, 4,092,732 ~o Ouchl.
~~ PAT~
PD~7SD
A ~If~ Isk drh~0 m~rnory 3y3t0m h~ a m~l lo~er ratlo oi r~dundan~r unlts to ~at~ unlt~ ~han a R~ID ~ ~ysl~m. ~lowsver, a RAID 3 syss~m hs~a 1ho c~m~
p~r~rm~ncs llmllr~tl~n ~s a R~ID ~ ~y~m, in Ihat ~ho indh1~ual dls~ actuator~ ~;re ~up1~d, s;~p~r~tln~ h un~on. Thb ~v~rso~ arrec~ ~e r~om r~cco~6 pa~ n¢e o~ dr~ rr~y ~h~ dat~ Sil0c ~r~ sm~l, ~hc0 ~ on~ d~ nie tlrn~ ~n b~ Ir~ tor. Thu8, FUUD 3 8y~
n~r~1y not ~nci~er0d t~ ~ ~ult~bl4 ~ ~omputor ~yst~m~ d0~i~n~ci for OLTP
qs~
A ~ID ~ arr hll~cl~ra uses the ~arn~ p~rity ~rror corre~ion eonccpt o~ tho i~AiiD
3 ai!chlte~llre, but knprove8 orl th0 ~rlorm~ o~ a ~iD 3 sysl~m ~ h r0~j,~ct to ranciorn t~adlrl~ o~ smai~ filr~ by ~uncouplln~" Ul~ operatir~n o~ the Ir~iYiciual di3k drlve ~tuator~ i r~4dln0 an~i wrlnn~ r~cr mlnlmum unount cf dst~
~typlwlly, ~ dl~k s~or) to ~ach ~IQk (~hb b al~o known as bl~ck vtrlp~ ). A
lurth~r ~sp~ thr~ RAICI ~ uchitecturrs 1~ that 0 slngle dora~e unit 1~ d~;natod thx p~rlty llnlt.
A llrni~Uon ol ~ ~D 4 ~6tem i8 Ulat WrlthD a dat~ bhck on ~ny o~ tha Indcp~nd~ntiy operalln~ dtila slors~;~ unlts also requlre~ wrltln~; a now pamy i~lock on th~ parlty unlt. rh~ parity ~nhrn~Horl ~tued on the parity unit must ba read and XOR'd wl~h tha dd dat~ (to ~remove~ Ihs inrorm~lon oonlont ol tile old dala), and the resultln~ sum must then be XOi rd w~ the n~w ct~to (to i~ro~td~ n~w p~rlty In~ormation). Bo~h the d~ta nnd the parlty rocord~ ~hen nNJ~t ico r~ten to lhe dl~k d~l~ mis ptoc~sa i5 cornmonly re~rr~d to as a ~Read-Modity-Wrlte"
s~qu~rK~e.
Thu5, ~ Ro~d ~nd a Wrlte a- the shgie par;ty unil oc~urs each tlrne a record 1 2~ ctlangeci on any ot the data storaSic unit~ covor c by the parity rocord on the patity unlt. ll~e p~rlty unlt becomo~ ~ bottlof~eck to data ~ritinSi oper~tlon~ since ti~ number et chan5;e~ to reoorcls whlch c~n be m~ie p~f unit Gt tlrne Is a function o~ the ~ ee r~te of tile parlty unit, r~ opposed to the f~tsr acc~ss rate provicl~d by parailel operation ol the rnultiplo data stor~ge unlts. 8ecaus4 ol tt~is llmlt~ n, a flAID 4 ~y~tem is ~nsraily not con~idorod to b~ sullablo lor cornputor A~r PD~8078CI
~y~t~rno ~l~d ~or OLTP p~rpo~a~. ~n~e~d, it appe~r~ Ih~ a ~ 4 æy~em h~ not b~n lmplem~3nted ~ ~ny oomrnerci~l purpose.
A FWD 5 archlt~re U~Q~ t~ g~me p~y errot corrscalon conCopt o~ the FU~ID
~typlwlly, ~ dl~k s~or) to ~ach ~IQk (~hb b al~o known as bl~ck vtrlp~ ). A
lurth~r ~sp~ thr~ RAICI ~ uchitecturrs 1~ that 0 slngle dora~e unit 1~ d~;natod thx p~rlty llnlt.
A llrni~Uon ol ~ ~D 4 ~6tem i8 Ulat WrlthD a dat~ bhck on ~ny o~ tha Indcp~nd~ntiy operalln~ dtila slors~;~ unlts also requlre~ wrltln~; a now pamy i~lock on th~ parlty unlt. rh~ parity ~nhrn~Horl ~tued on the parity unit must ba read and XOR'd wl~h tha dd dat~ (to ~remove~ Ihs inrorm~lon oonlont ol tile old dala), and the resultln~ sum must then be XOi rd w~ the n~w ct~to (to i~ro~td~ n~w p~rlty In~ormation). Bo~h the d~ta nnd the parlty rocord~ ~hen nNJ~t ico r~ten to lhe dl~k d~l~ mis ptoc~sa i5 cornmonly re~rr~d to as a ~Read-Modity-Wrlte"
s~qu~rK~e.
Thu5, ~ Ro~d ~nd a Wrlte a- the shgie par;ty unil oc~urs each tlrne a record 1 2~ ctlangeci on any ot the data storaSic unit~ covor c by the parity rocord on the patity unlt. ll~e p~rlty unlt becomo~ ~ bottlof~eck to data ~ritinSi oper~tlon~ since ti~ number et chan5;e~ to reoorcls whlch c~n be m~ie p~f unit Gt tlrne Is a function o~ the ~ ee r~te of tile parlty unit, r~ opposed to the f~tsr acc~ss rate provicl~d by parailel operation ol the rnultiplo data stor~ge unlts. 8ecaus4 ol tt~is llmlt~ n, a flAID 4 ~y~tem is ~nsraily not con~idorod to b~ sullablo lor cornputor A~r PD~8078CI
~y~t~rno ~l~d ~or OLTP p~rpo~a~. ~n~e~d, it appe~r~ Ih~ a ~ 4 æy~em h~ not b~n lmplem~3nted ~ ~ny oomrnerci~l purpose.
A FWD 5 archlt~re U~Q~ t~ g~me p~y errot corrscalon conCopt o~ the FU~ID
4 ~chlt~et~o ~nd Ind~pen~ tors, bu~ lmproves orl ~e wrl~ln~ p~rlorm-~!lnC~D 0161 ~D 4 ~y31em by ~IstrlbuUng ~he ~ata ~nd parily ~formatlon aCro~S eJI
0~ ? evall~bl~ dlsk drh~. l'yplo~lly, ~iN ~ 1~ stor~e unll~ ~n a ~ot (~Igo h~owna ~edurldan~y ~roup'r) ~r~ dvid~ ir~o a plur~lity o7 0qu~11y ~k~d aWre88 ar~ 5 r~rted ~0 ~ blod~. EaC7~ stor~Elr~ unl~ ~n~rt~ cont~n~ tho ~ame num~r oi block~, ~bck~ ~rom e~h ~ora~ uni~ In ~ ro~undancy aroup h~n~
.. th~ ~em0 unlt addra~s ran~es ~re re~err~cl to ~ t~lp~. E~ ~po har N
block~ ol ~ , ph~ ono p~ y block on on~ ~tor~g~ devlco conlalnln9 p~ity lor th~ r0m~lnd~ o~ th9 gtrlpe. ~:urlh~t ~tr~ e~ch h~vo ~ p4rlty block 1h~ parlty blooks belr~ dl~rlbutad on ~ner~nt 6~ra~ unlls. Parlty updstln~ activily a~o~l~ted ~Am every modff~ on ot data In t~ rodundancy gr~up 1~ Ulerororo 16 dlstrlbuted oYor ~he dm~rent gtorage uni~. No ~h~l~ un~ l6 burd~ned wlth all ol U~ parlty updat~ actlvlty.
For ex~mple, In ~ RAID 5 ~ystern compt;sin~ 5 disk dtihre-, the p~r Inform~ltion~or Ule flr~t strlpo o~ bi~cks m~ aq ~ e flnh drlve; lhe parHy htormallon ~or the ~acon~ st~i~a ot block~ m~y be uni~tton to th0 iourth drive; Ul~ pasity ~0 Inf~rrn~Uon for the Ullrd slrlpe o~ blocks may b~ wrltt~n to U~ lrd drivo; 6tc. Tho p~rl~r biock ~or su~c00dlng stripa~ typloally ~'prec0sses~ around the disk drives in a h~llc~l pattem (ai-nouEih oUler patterns may b~ uaeci).
Thu~, no sbn~le dl~k drlve 18 u~ or slorln~ ths pcrlty InlorrnaUon, ~nd tile ootti~e nock o~ e RAID 4 archil~otur~ is 011mlna~ad. An ~xsmple o~ a i~AiD 6 syst0rn la de~crlbed In U.S. i~0nt No. ~ to Clsrk et ~/.
~ 7~7~ 7~
A~ In a ~AID 4 ~y6~ , a llrnlt~tlon o~ a iWD 5 ~y~tem i5 tha1 a cJl~n~e In ~ data block r6qulre~ a ReadModHy-Wfito s~quonc~ comprl~in~ oad and two Writo oper~tlons: tine old parrty bl~ck an~ oid data block rnu~t bo read snd XOR'd, and the resulUng sum mu~ en bo XOR'd wrh the now dala. Both Ih4 d~ta ~nd PATE~
Pi3~07St~
~o p~rity blockE~ rl mu~ b~ rowritt~n 20 lno dlsk ~riV~g. 1~110 Iho lwo i~ad oporaSlon~ r~y b0 dono In p~ali-el, ~ n the h~o Wrlte opcratlon6, mo~ifi~bn ot a block o~ ~ia2~ ln ~ RAID 4 or ~ D ~ rsys~rn ~till ~k~ sub~t~nli~lly lon~er ~n lho ~m~ op~r~Uon on ~ convonlion~ k. ~, oonvonlio~3ai di3k doo~; not ~ulr~ tho pr~llmlnary iR~sd op~ralion, ~nci th~ doss hav~ to watt for Iho dbk sirlve~ to rota~e back ~o th~ prevrJu~ posHion In order to i~ri~orm tiho Writ0 op~r~lon, Tho ro~thn~l 18t~1i~y Um~ ~lo~ c n ~mr3un~ ~O ~t 50% c~ o time r0gulreci 70r ~ typi-cal da lncauon o~raUon. Fu~hor, two dlck sto~-o ~It~
ar~ Invo~ed tor ihe dur~lon of eaeh d~ modHlc~Uon op~ra~ion, limltlng ~e thrs:~u~hput o~ tha ~ystem ~8 a w~ol~
~ e~pi~ Ihe Wrlto por~rmz~nc~ penalty, R~ID ~ Iype 3ystam~ hava b~comc Increa31n~1y popular, ~Ince ~hey provl~o hi~in ~t~ rcliabllity with ~ low overhead c~et ~or rcclundancy, rgood P~d perforrnanco, and rair Write i~ormance.
A RAID 5 ~rchl~ecture ha~ prlr~lcular utl1ity In OLTP cennput~r sy~tem~. Many OLTP syst~ms must be hlgh-avallabUity systerns, meanlng that complcle ~llura o~
y~tem hac a lu~-probeblll~v. H10h ~v~ilabillty csn ~ ach0~ 1 by usln~ hi~h-rellablllty compon~n~, hnvln~ a tault-tol0rant de~lgn wiul ~ low mean-Ume-to-repalr (MTTiR), an~ do~l3nln0 t~r ~ag~i" d radaUon, where the 1allurc ct 8 component may r~d~-co cy6tem ~p~blllty but wllhoul c~usln~ total sy~lem tsllure.
Aithou~h a prlnclp~l teatute o~ 8 ~ID system 1~ ~ault-tohrance, such capabillty alonr~ does not guarantee a hbh-avallabUlty systenL 11 a stot~e unlt falls, 5~0nusl ~y3t rn operatlon ~sannot contln~J~ until tho hll~d ~torage unlt i-~ r0plac~d and the Intorrn~Uon on It 1~ restored. When a ~tor~ unlt taUs In a R.IUD tirchlt0clwo, thc ~n teaches that a r~plaoement 6tora~e unn 18 subsUtuted ~Of th~ falled stara~0 unlt (elther manu~lly er el~clronlcslly 8w1tched In ~rom a set ot onQ or more ~p~r~), and th~ Ylost~ data 1~ reconstructod on tho topbc~m~ttt slora~ unlt by XOR'lng each parlty biwk wlth all corr~spondln~ dala block~ Irom U~e r0malnln~
stor~e unlt drlv~s in th~ redundancy ~roup. miS oporation l8 strai~forward 1 th~ ontlre r~dundancy 3tOup can bo dedlcated to reconstructin~ Ihe lallGd stor~eunlt. However, 11 appear~ that the art t~aches Ot OUÇI~J08t6 r95toting the d~ta on PD~07SD
Ih~ r~pl~comont storag~ unlt as a ~epara~e procsdure be~oro ~naral ~ystern operatlon oan b~ recommenc~d. S~ch a mo~hod for rooonntnJcUon do~ not provld~ ~r hi~h av~ilabllity.
Thu~, ~o far as known, Ih~ an doe8 not ~r~oh roeons~ tin6i a ~aileci 3tor~ge unit S In A RAID uchltectut~ whlle con~ulng to provlde on~lna a~Ce~ls lo the enUre reciundancy ~roup.
n thue ~w be hl~hly d~sirat~le to havs ~ RAlt) archltecturo ~y~tcrn h ~vhkh reoon~truction o~ n f~ d slora~0 un~ 4n be cond~i ~on~iino~, whlle genernl ~ ~yst~m operaUon conUmles In a norrr~ bshlon. K 1~ c deslrsbie to ho ah h ~ r ~ power f~ilure with the rr~construction opor~ion tn progross 9~ never pt00ent b~d data ~ ~ooc d~4 to the CPI.I.
Tha preson; hvDnUon provlc~r~ euch a oystem.
PATE~
P~)~807SD
~UMMARY ~F ~}lg~ IIMVE~I~N
~he pr~nt InvenUon provld~ ~ msthod ~r on-l~no r~nstruotion ol ~1 lallad ~1~3 d~a s~or~de unlt. All0r proYldln~ ~ rap~ac~ rl~ g~sr~e unil lor the hllad ~or~e ~1~, ~ r~constr~on l~sk bs~ln~ ~or th0 ~rr~y. 13~neral r4t ~n~trwUon con~l6t~ ol ~pplyln~ ~n 0tror~Drrs~on 4p~r~0n ~s~ch ~ an XOR opor-tbn on dat~ blocke ~nd ~ ~rr~spondln~ parlly block, or ~ Read SolorrK~n co~) to tll~
block~ ~rom th~ r~m~lnln~ slor~a unl~ In lht~ radunclnncy ~roup, ~nd ~torln~ rs3ul~ In the corte~pondln~ ~lock o~ Ule replacement ~tor~e unlt.
d oper~Uon 18 r3qu~3t~d by Ulc CPU 70r P da~ block on th~ replacemon~
3~0raga unlt, then ~ concurr~nt Read ta~k 18 executad ~h reconl~buds the oont~lnln~ re~u~st~d d~l~ block.
U ~ R~ad op~ratlon 1~ requo~t~d by 1h~ CPU for a d~ta block not on the r~pl~cement ~torage unll, ~h0n 6 c~:>ncurrent ~ead t~k 1~ ~x~ d whlch p~rtorrn~
a norn~l R~ed.
16 111 ~ Wrlte op~ration i~ rcq~ostod ~or any ~ata block, ~hen a concurrent Wrlla task lo ex~cut0d whlch perforrns a Recd-M~ Wrlt~ ~qu~n~e In the g~naral cas~
(ths flead opsratlon belr~ perforrned In accord~nce wllh the above rulos).
AKi~ou~h d~t~ block~ on Ihe r0pl~c3ment stora~e un/l "~bove~ the reoonstruction ~rlpo ara ~alld, ~rKi could bo raad clrcctly, the above procadute h easl ~nd ~0 simpler to Irnplemsnt, slnce thore b no nead to koop u~ck of whether or not n rcciueet0d data block 18 ~bove~ th~ r~con~tructlon drlpe. However, ln an aKett~tlv~r embodlmr~nt d the Ir~entlon, the po~ition ~f t~ reques~ed data t~lOCk with respect to 1h~ reconstruction etrlpe 18 tracked, and reconstruotion 1~ onlyperforrnoc for d~ blocks th~t ~e no~ above the ~econstructlon slripe.
Thu8, t~e general ~ies of operatlon In the pre~erred enl~oclment aro lh~t ~il R~ad operatlons trom the replacernent storage unlt raqu~e on-the-fJy raconstructbn olall ol the data blocks request~d, r~3ardl~ ot wheth~r any ol tho~0 data blocks ~~ ~ PATEtJT
PC)~D
havo In ~et been recon~r~ by the ~nsral r~cons~rucUon proCcs~. A~ wnte oper~tlon~ proc~ed In a Resd-ModHy YVrilo ~equcnce in ~he ~eneral case, with ~e Rs~ pAtt of U~u op~aon boln~ per~ d In laoeord~nce ~th 1he ~bove rulos.
Tho pts~ent Inv~n~lon provld~ 4 tellable meth~d or tecor#~ructin3 all o~ U10 data ot al l~llgd ~tora~ unll ontc~ ~ rcpl~cemenl unil, wllUe contlnuin~ tO pl~rmit R9~1n~ and Wrltlcl~ opqraUon-Q t~ 8~0ra~e uni~ ~rray ~s e whole, ~md to Uu~
roplaoement ~toraae untt ~n psnr~l~. U~ ot a flao permlt8 detecUon Ot en abnermt~l tennlnallon o~ eneral rooonetruc~on procegs. The rocon~ruoffon m&y to~um~ ollher at the InlUsl recon~rucllon st~ln0 polnt, w, optlona~ t the .~ polnt ot obnorm~l lotmlnaUon.
Tho ~etillb o1 ~he prelelred embodlment ot the presenl InvenUon ~re set 1sr~n Inth0 ~ccompanyln~ ~r~wlng~ ond the dflswlptlon below. Once the detall- d tho Invsn~lon tlre known, nurnerou~ eddKlonal Inno~allon~ t~nd ch~n~es w111 become obvb~ to one 6kl~ed In the ~
- 1~ PA~ENT
Bi~lEF ~ESC~IPTIION CIIP T~E l)RAWINS35 F1~3lJRE 1 18 biook dla~r~m o~ a ~ llzod FUU01 ~y~lam In t~rd~nce wffll the pt~s~nt Inv~nllon.
FitlUi~E 2/1~18 a d~rBm ot ~ ~d01 RP~ID 5 ~ m, 3howin~ an Initial ~a~.
6 FI~UF/E ~B 1~ ~ dl~tarn al a r~l RAIO 6 ~y6t~rn. showlny a lali0d 3tora~-ie unit.
FI~URE 2C ~ a dla~rrlrn ot ~ mocl~l RAit~ 5 ~y~tem, ~ing an hlt~-lz~d .~rephc~ nt stor~e unit.
Flt~lURE 2D Is ~ dl~gram ol r~ mod~l RAID 5 ~yst~m, showin~ n p~Sia~iy r~con~ d r~plac~ment elora~ ur~
F1~3lJRE 2E h a dla~r~m ot ~ moci~l RAID 6 systorn, ~howir~ ~ compl~y roconetl!uded replacsrnenl ~l~ra~e unl~
Fl~lJRE 3 ie a ~iowch~rt ropr~wnlln~ the ~ener~ reconstsucllon proce~ Oot lhe pre~erred embr~lment o~ the ptesent Invsntbn.
Flt IURE 4 1~ ~ llowch~rt representir~ ~ Re~d op~ratlon tor the preterred embocil-rn~nt ~ the pre~ent Inventlon.
FIQURE 5 18 ~ llowc~lart repru~en~n~ a Wtite opsr~Uon ~or tite preferred embodl-m~t o1 tho present In!~rentlon.
Uk6 re~sronce numbers and ~signaUons in the drawlng~ re~er to liko ol~nts.
PATE~
PC~B07SD
~'~AI~ PTlO~ nrlO~3 rhr~u~hou~ Uhl~ d~3crlpllon, Ul~ pro~orro~ em~oclrr~nl and ~xamples shown ~houlci l}~ oonsld~r~ Xem~ls, r~h~ than llmi~al;on~ ~n ~ m~lhod ~1 ~e ~es~nt In~onil~n.
~3 Flt:llURE~ loc~ cllr.~ram of ~3 ~cnsr~ ys~m in accofd~nc~ e pr~ n~ invenUon. Shown ~r~ ~ CPU 1 s:~uplod l~y a ~ o ~n array corllrdlr~r 3. The ~rr~y oonbroll~r 3 1~ coupled to ~aeh o~ Ih~3 plurall~y ol s~orc~ un~ S1-s~ (nY~3 b~ln~ ~hown by w~y o1 ex~mple snly) by an 1/0 bu0 (e.~ 3(~31 bu5).
rr~y contrull0r 3~r~bly Includes a ~;epar~t~ pro~rammablo, multl-t~sklng proc~aor (~W 0~ampla, th0 MIPS R3000 RIS~ pr~o~s~or, made by MIPS C~ o~, of Sunnyv~10, ~all~ornls,) whloh ORn ~ct Indep~nden21y o~ tha CPU 1 to contr~l t~lo ~tor~e unlls.
The ~tor~g3 unlt~ S1~5 c~n be ~roupod Into on~ or mor~ ledundancy ~roups.
In U~ Illu~trat0d oxampl~s d~gcr~ elow, ffle redundanoy ~roup ~.-nprl~ ~l ~5 of th~ ~torago unl~3 S1~6, 10r s~plcity of sxplana~n.
Th~ present hvenUon i~ pref~r~bly Implsm0nted as 1 m~N~-ta~klng oompular pto~ram cxocutod by the conlrollor 3. Flt3URES ~A-2E are d agrammatlc mr del~
018 RAID ~ sy~tem. FIGUR~ 319 a hl~n-hvel flowchar~ tepresentin~ U~e steps o~
the ~ner~l reconstrwtion prooe~ ~or th0 prererred embodlmont or the invanUon.
~0 FIGURE 413 a Ill~h~Q~rQI 11awchart reprcsenthg the 8t~p8 0~ o~d op~rohbn fo~
tho proterr~d embodlment ol th~ Irvention. fl~;URE 5 is c hi~h-iovol ftowch~t ropretor~in~ the 8top5 01 a Wrlle opsr~tlon tor 1he pre~err~d embo~lmern o1 tt~
Inv~nUon. ~he steps re1erenced In FIGURES ~5 r~ro reler~nced bolow.
(3~n~ral Fieconst~ on 2~ FIGURE 2A Is a ~ia~ram o~ a moclel RAII) y~t~m, showin~ an iniUal s~t~. Th3 Illu3tr~ted arr~y comprl~ fh~o stora~e unlts, Sl-S5. Esch tow A-H i~ ~ strlpa.
Purlty In~ormaffon 1~ Indicated by clrcled num~srs, and i~ ~pr~d throughout tho array Allho~gh on~ p~tt~m of parlty Inlorrneti~n dblrlbutlon 13 showr~, lho ~D-~7~
Inv~nllon ~ncomp~ ny dl~rlblJthn. {:n~ b,it "~ock~ ~r~ s~own ~r e~ch ~tor~ unlt In ~ ~trlpfl lor ~impllcJ~ ch blOCk coul~ In~e~ci b~3 ~ny ot~0r uni~
~7 ~Iz~, a~ch ~ ~ byt~, ~e~tor, ~ ~roup o~ 20r3. In Ihe pre~eneel ~n~o~m~n~, ~oh bl~lt 1~ at l~a~1 on~ ~ctor In ~t2e.
~IQUF~E ~B ~how~ ~h~ ~m~ m~r~0i ~ FK3 URE ZA, ~ut ~Ih ~ra~D unlt S~
h~ ta d (Ih~ cl~h4~ repr0~ntln~ comipbDci dat~ ote ~t ~ XOF( a~n ol ~oh ~brlp~ tor e~r~e un~ 2~ ~s~ J6 th0 lo~ da~e ~7 ~tora~e urlil Sl ~wn in Fl(~URE 2A.
.FI~31URE 2G show~ th~ ~rno ~ID mod~l ~3 FIQURE 2~, bu~ ~ilh I~lied ~toru,~o Wllt Sl havln~ bei n r0p~ce~ r~p~c0ment 6tora~e uni~ S~'. The r~pla~em~nl may b~ on a physlc~l b~3 (I.~., a n wv ~or~o unlt b~in~ FYny81ca~ lltut~d tor ~o f~ unlt), or on ~ lo~ cal bs~l~ Q.o., ~ 6pare ~tor~e unll h oommunicn-~1~ wlth th~ ~:ontroll~r 3 beln~ elsctronlc~ wltch~d into opcratlon). In ~H
ted 0mbodlmont, th~ repl~cem~nt 3torage unlt Sl' ~a~ nol b~en Ir~lz0cl 1~ lo any par~culw data pattern, a~ Indlc~1ed by tho x'~, b~ut tho urit could h~ rmy p~tt~rn ol In~ormaUon on 11.
Ono~ repl~cem~nS ~lora~e unlt S1 ' 18 substltut~d lor the !a!!sd otorage ut~t S1, n~ral r~ nlctlon prooes~ commonco~a a~ ~ task (FIGIUFIE 3, St~p ~O).
Tho roplr~cement e~ora~o unlt S1' 18 mark~ int~rnally to Indlc~to that U~e ~torrd~o ~0 unlt b "Under F(econstnurtlon~ and ~eh~ r~}construct~d (Stop 31).
FK3URE ZD Illuslra~ r~n Interm~dhte ~ta~e ot rccons~ruction, wlUl stripe D, shown hl~hll~l~t~, S5 tha rr cor~truc11On strlpQ. In ~e pr~lerrecl ~mbodlmcnt, a WtNo oporstlon 1hat requlr~s recon~tructlan o~ a slrlpe wnnot t)e m~e to Ihe rccon~
sb~uc~lon ~trlp~ b~auyo that strlpe 18 "lodcod~, In known ~a~hlon, to pr~nt ~6 ~Iteretlon ~Nhile under~dr~ rec~r7~tructlon (Step æ). Th~relore, the Wrlte operatlon Is delay~d Im~U th~ stripe 1~ reeonstructecl.
In th0 pre~errecl smbodlment, the data and parny ~locka are Raad trom stora~o unR~ S2~3 ~or cach strip- ~H ~n thQ array ~nd XOR'd, with tho rc9ult from ~ach ~ 3 PATENT
PD~7SD
~trlpo b~ln~ ~lofod In 11~ oo~rc~porldln~ bl~ck ~f llhs rap~c~me~1 ~tOTa~9 urilt 51' (St~ 33). In ~ 4xP~mple ~ihown In FIGIJ~E 2, ~hl~ pr~s bo~ns nt ~p~ ~4 ~nd pr~ods to ths ~nd o~ lhe ~lor~g~ unlts, ~ ~trlpe ~. How~vcr, any ~ ng poln~ rney b0 u~d, wl~h any p~ m o~ recon~b~ctlon (9.~ Itorr~tln~ ~ip9s).
1~ con2r~7~r 3 U~sn unlocks ~ r~con3~rwUnn ~Iripe (S~op 34), and adv~nco8 tho rooonstr~n ~trlp~ (~3t~p 35). 1~ rer,~ uucilon b 7ncompl~ S~op 33), Ule ~nor~l reconettuc~on prooGss con11nuea (S~ep 32~ unUI U~e en~ire repL~ment ~tora~e unll S~' 13 reconakuc~d, a~ shown In FIGURE 2E. Wh~n the ~eneral ~econ~lrucUon proco~s k cornpleted (5t~,p 36), the ropl~earnenl etot~e l~nlt S1'la mar~ a~ ~No~ Und~r R~construollo7r (Stop 37) ~nd ~11 opor~te normal~ ~Step 3~).
N Ihe reconslluctlon ,woce~ 18 Into~p1ed dw to a power fdlur~ or any other re~on, the lAst st~p o~ m~rkln~ tho roplacemant ~ora~ un~ St' as aNot Und~r PlqconslrLK:tlon'' wlll r~t ba complet~. It ~ thcro~ore po~lole to d0te~t such ~n 16 ~bnorm~l terminatlon. In woh a or~0, the conlrollc~r 3 may resbrt the rer;on6truc-tlon ptoc~ from the ~e~lnnln~ without lo~lny any data. Thl~ may r0~ult in cortoctln~ ~trlp~ that h0ve alr~dy been wrroct~d, but thla ~pproacl~ ~uarRnt~s Unal ~e array s~syst~m wNI never Indlcst4 that dala i~ aood ~hen It h~ not bo~n r~construot~d.
In an alternaffve ombodlrner~t, after each seoUon of the replacement ~tora~o Unit tc.~., o~ch cylind-r ot a disk drive~ le recon~ucI~d, a na~ n0l~ In the replacemen~
~tora~e unlt S1' (or elsewh~e, It deslred~ b marked int~mslly lo Indkale ~a I~st t h~ be~n recor~tructed. AJter an abnorm01 tarminatbn, 1~
reconatructbn process rnay be restarted aftu the 1ast indlca~ed sectl~n, Ulefeby2B oevlng roconottuc~'on tlmo, Conc~lr~nt 1/0 T~k~
Durln~ ttle ~en2r~1 locons~Notion proc~ss, proG~sin~ by Ihe CPU 1 can contlnuo, bu~ wlth some poss ble p~norrnanc~ dagradab'~n ~OI th~ compu1er ~ystcm. ~3 d~wlbod bolow, the general recans~tuclhn proc~ss rn~y be Interrupled to perrnK
PATENI
I~D~7~;D
Fl~d or Wrlt~ op~(atlorl r~c U~t6Ki by the CPU I ~ ps 33, 3~). Such Int~rrupllon~ ar~ pr~ bly Impl~rnq~n~ec~ by rne~n5 ~ urr~nt ~sks h woU-hrlo~n i~hlon. ~ Y~r, th~ InYflnUon ~suornpf~r~Fs E3ny means ol oencunr ~nd/or In~rrupt-dr~n 1/0 op~raUon. F~l~win~3 ~ a d~crlpUon s)f ~0 prnferlad emi~dlrrler~ ol ~udl ~d ~nd Wrlhs op0rdior~.
R~d op~ta~lon 1~ raq~ toGi by Iho CPU 11 dutln~i ~snaral ~ecor~str~ction, a Read pro~3s~ t~Eiln3 ~ Em Indepondent bln concurren~ ~sk (---IGUFIE " Step 40).Tnl~ mo~n~ ~hal ihe reconslructlon t~k contr~uoa ~o exeCUtO, but Ulat ihe ~ad .. 1~ak and recons~uctlon la~k conlond ~c~r ~ygt~m rcs::1uroes, In known ~ashlon, lhe controller 3 pre~r~bly locks tho rocon~tructlon ~tnpe ~o pro~JQnt Inadvonr~n~t~rRblon o~ the sttlp~ undor~olng r~construcUon (Step ~ e F(~d rcquost Is 7er ~ dst~ block not on U~e roplac0ment (~ "n~) storage unR S1' ~Stap 4Z), the controll~l 3 par~rmg a normal Re~d opcr2Uon ol~d trr~n~le~ the da~a block h ~e CPU 1 (St~p ~). Boc~u~o d~ta ~rom the othe~ s~orr~ge unlts ~S2~3 In tho 0x~rnple ot Fl(~URE 2) 18 corroct, no lo~ o~ p~rformance occur~. ~he oonbroaar 3 th~n unbck~ U~e ~cens~lon strlpe (St0p 4~), and Ula R3ad ta~k tormlnate~
~;tap 45), 1~ ~ho Ro~ oporatlon r0qu~st~d by the CPU 1 Is for a dat~ block on tho rapl~c~
~0 rn~nt ctota~s unlt S1' (Step 42), tho procodute is diHerent, Th~ cornroller 3 Ir~tead reCOnstrlJC[s tt e stripe c~nt~lnln~ the requsst~ data ~loc~ ~on~
Thq controll~r 3 reads all of the other data block6 and U~e correspondln~ pa~itybbck In th- ~trlpc (Step 47). The bbck~ are th~n XOR'd to genora~e a correc~ed dsta blocl~, whlall Is tt~an trnns~rred to the CPU 1 v~a the controllet 3 ~St~p 4~).
2g Thare~ner, the controllflr 3 unlocks tho recor~ttuoUon sttlpa (Stop 44), and ~ne Rsad t~4k t~rmlnates (~tep 4~).
FIC~URE 2D Illustr~tes both oasos of Rer~dln~. Strlpe D, shown hi~hllyht~d, 18 the r~wrl6tructlon st~lpe. Il a Read rcquest 18 ma~e ror data ~lock ~52, tl~e conlroll~r PC1-~O7~;~
3 wlll aca~s ritc~r~ nl~ S~ In ~ pe A, ~nd dl~cl~ r~ bln~ry O firom Ih0 ~tc)r~0 llnit iclr 2r~n~r le ~h~ ~PV 1.
1~ a Fi~a~ r~u~r~t 1~ m~ r cl~ blo~k ~1, whlah 1~ not y~t r~ tructæd, th0 eonlr~ r ~ wlll acc~sa ~a~or~ ~nl}~ 32~ h strip~ tJ ar~ r~çi ~1 ot 2hr~
71~ bl~ck6 ~e til~n XOF~'d, ~r~n~r~ln0 ~ blnary U, which ~a ~r~na~err~d to 1~1~ CPU
.
~Irn rly, 1~ ~ Read re~uesl Is masl0 i~r ~iat~ bloc~ c~nlralbt 3 ~tal ~c~ar3~ etorage unl~ 5~5 In ~ripe ~ anc3 rea~ all ol l~O bl~ck~. ~e bl~ck6 aro -~ then XOR'd, a~ner~ln~ a blnary ~, ~rhlc~ ~ tran~?0rr~ ~o Ihe CPU 1.
0 ~hu3, l~r ~li R~d op~raUon~ In ~he pre~erred efnbo~lm~n~ tho d~t~ win 4~ys be ~orroct~ by teoonstruo~lorl ~ven thou~h U13 C;'u i m~y bl~ ro~dln6i trom a 6trlp0 2h~ 18 ~l~iy rucon~ruc~d and the C;i~U - there~ore could hsve reaci tl~ ciat~
dlrectiy. ~a ~cldl~lor~l llme tr~ corr~ ~ooc oata will oniy be Incurrec d~dn~ ~ereeon~ n proc~, whlch ~hould occur InfrequenUy. Thls approtAch allowa . tt~ d~t~ ~tw~e 8ub8y5tem to always m~ln~ln ~nd present correo;t dat~ withou~
h~vlna to kcsp track o~ whe~er or r;ot a requc~tad clr~ts black b ~ow~ ~e r~onaSruotlon ~rlpo.
Alt~m~ ly, th~ Read ta~l< ~ kaep trac1< of wh~thot or not e reques~e~ data blwk b ~abov~ th~ recor~s~ructlon 8trlp~. ~e~errlng to FIGURE 4, r~ r the controlbr clotorrnlne~ that ~ re~ue~ d~ bhck Is on th~ replacom~nt dorQ~o unl;t Sl' ~Step 42~, the controlhr compu0s the posltlon o~ the roque~lod d~ta block In tho ~torago unlt S1 wllh ~a curr~m poonion ol tll~ rocorY~tructlon strlpo (Shp 46, Indtcated ~ opUonal by dD~hod ar~). Il the r~qu~stcd block 1~ not sbovo the reconslrucllon lln~, the wntroRer 3 reconstructs the clrlp0 conlalnln~the r~quwtad d2trl block bn-Ur~e~ by rwdln~ ~nd XOR~n~ ~11 o~ ~he o~hor drlte blocks ~nd th~ corr~pondh~ p~lty olock In Ihe ~trlP~ (Steps 47 ~nd ~8).
HO~NQV01', N U~e rr~qu~sted block k ~bovoU tho roconYtructlon Ihe, the block hn~atre~dy been r~constructed. th~reror0, She conlroller 3 per70nn3 n normal R3ad ot tho d~ta block ~nd trane~er~ Ihe dat~ blocls lo the CPU 1 (Step U). Whlle -1 ~ PA~ENT
PD~ 3D
ppro~ch r~qulree tr~ckln~ th~r w n~t a requ~ad d~t~ bloc~ br~
lh0 r~ons1ruction s~rlpo, ~Im4 is ~Q~ In Rea~ln$~ prevlou~y r~constructod date bl~ck~ on ~ roplacernen~ s~ora~4 unlL
a~d~
H ~ Write operation is requ~ted by th~ CPU ~ durlns~ n~rsl re~n~Pucllon, ~
Wrl~ proc~ b~ln~ n In~4p~n~ent ~ut concunen~ t~stc (FIGUR~ 5, Sl~p ~.
Thl~ me~n~ that lh~ r~cons~ ctlon ta6k contlrluo~ ~o ~x~cuto, but 1hnt tho Wrl~o~ ~nd recor~truotlon l~sk oonterui Sor systorn ro60ure~, In known 1e6hlon.
....... The oon~r~ r ~ locks~ the rocon6tn~10n g~rlpe to pr~vent ~dvertent ~Iter~tlon of ~ qtrlp~ under~oln~ reoons~suot~n (Stap 61). 1~ the Wrlte operatlon s~quwted IB tor ~ data bhck eind corr~pondlnç~ par~ bhc~ nos on ~ho replacemertt slora~e unK St' ~Step 52), the controller 3 pertorms a normal Read-MDdiiy-Wrlte s~u~.
That IB, 1he old pQri~y block and old d~ta b oc~t aro Re~d from the ~rr y (Slep 53~, ~d tho old p~rlty btock b modifi~d by Dsu~ actin~ our (XOF('ln~) ths dd d~t~
76 bl~ nd ~acl~in~ in" ~ ) ~e now data block (Step ~ The r~w p~rlty blook ~nd the now d~ta block 3re then Written to the ana~ (Step 5q. A~br ~e Wrlte opar~Uon b cornploted, Ulo r,,ontrollor S unlock3 th0 r~constructlon ~tl1pe ~tep 66), and th~ Wrlt~ t~rmlnatos (Step 57~.
tt does not mr~ner In thls ca~e wheUlur or no~ the correspondln~ dat~ block on ;i~ the re,olacem~nt stora~e unlt S 1 ' ha~ been correct~d. Because lhe re~ussted d~ta block ~nd Itl; parlty blo~k ue not on the replr~mont stotaSo unlt 51', tho R~sd pul of the R~a~Modi~y-Writ~ sequenc~ doe~ not need to reconstruct th- data.
mus, essenUally no loss o~ perlorm~nco ocaur~, Il the Wr~te op~r~Uon r~que~t~d by Uho CPU 1 1~ tot a data block whero olthar tho d~ta blr~k or 11~ eorre~pondlrlg parlty blod~ aru on tl~ replacement slora~e unll S1' (Step 52), tha prweduro Is dl~rent. The oontroll~r 3 Instoad recomputes a parlt,y block tor tho strlpo ~on-the-ny- ~y readlng all o~ the othcr d~t~ block8 In U~o ~trlpe ~Step 58) and XOR'in~ ~h0n~ (Sbp 59). The new data block le then XOR'd v 1th the recomput~d parity block to ~enerate a new psrlty block ~SIep Bû). ~h0 Pl:~[)7SD
naw t~t~ l~lock ov~r~r;l~ ul~ d~t3 bl~k and th4 n~w parlty ~lock e~/~8 t~ old parily blook ~S~p 5~ r th~ Wrl~ opcr~n Is ~ompl~ed, ~e controller 3 unlwks tl1~ r~or~tru~lon ~trlp~ (S~ep 6~ he W~ite ~k t~mln~ (St~p 57~.
An cll~rrl~livb pr~dure, Indl~tad ~y dash~d llncs In FIGU~E 5, Is 10 nrst r~or~ttu~ Un~ bl~ck on th3 r4plac~ nt ~tor~ unlt S1'. The ~r~llu 3 readc ~ll o~ ~ho o~or blook~ In tho ~ttlpa t~ap ~ hon XOR's Ulem t8top 62).
ma r~sult may b~ stor~d on the rsple44man~ sitora~o unlt Sl~ (Step ~) or ~n 4 ~mpc,r~ry momory. ~he reconslruc~ed block esn thsn ~e u88d In A norrnol Resd-1G .. Mo~ Wrlt~ s0qu~nc3 (Step~ 57).
1~ hould be no~ed IhQt the ~bov~ dlsw~ahn ol a Wrlte oper~llon pert~lr~ to Iho ~nar~ ca~0 o~ ~ss th~n ~l o~ in ~ suipe h~ln~ rno~inod. In ~o l:~p~3Ckll ca80 wh~ro all blocks In s 6~rlpe aro b~ln~ m~dln0d, then the ~o~d ModHy-Wrlts ~quano~ i8 ~nnecessary. ~t l~, the Initi~l Read operatEon b~ not qulr~d, ~Ince ~he parHy ~ or th0 strlpe can bo computs~ o~y on tho næw data. Th~ computed p~ty bbck and the naw data blochs ~ an ~Imply ~tored on ths strlpo. 8trlcUy ~poaldn~, no ~reconstruc~on~ ol the strlpe i8 per~ormed.
It the CPU 1 Wrltes to strlp~ that havo airoady b~n cor(~cted, tho new data is recorded correctly. It ~ Ci'U 1 Writes to sSrlpes Ulat have nol yet heen cor~cted, the new data 18 r~orded corroc~ly and wl~ corr~ed~ H~aln ~lthough N 18 no lon~er Incorrect) ~han the reconstructlon strips advances to the 8t11i~ oonts~'nin~ ~he new datn. Tho ~dditional Um~ to rc~ort~ct ~ooci data wiiibe Incurrad wi~h dlminishln~ ~requency durh~ tho r~con~truction process r~ Ih0 2s r~on~tructlon ~trlpe advancos. Tl~ ppro~ch a~owe the d~t~ ~toraaa sub~y~-tern to alw~y~ malntain an~ pres~nt ootteot data wllhoul ha~ln~ to keep tta~k o~~vhether or not a requ~stod dstJ biock 1- ~ab~ve' or ~beiow~ ~e recon~t~ on strlp3.
-1~ PAT~NT
P~0807S~
~itern~tiYoly, an ~dc~llor~l ~tep mey b0 ~dd~ to tho racor~6lr~c~Jon 1~sk (FIGURE
t ~hl3th0~ ~ ~trlpe h~s rllr~udy ~en rec~n~trucl~ ~y a wr~ta op~atlon (Sbp ~1 H r~constru~lon h~ ~ir~sdy occurrsd, ti~e outrenl r0~nutnl~tion sttlpe mey be unl~cked ~nd proc~a~lng conllnu~i ~t Y r~xt ~trlpe (Step~ & 35). Il r~G~n~ruc~lon h~ not occutrcd, tha ~n~r~l r~c~n3~ctlon l~k ~ntlnu~
~3tocutl~n (Step 33).
A nurnb~r of em~o~irtl~t~ ~ ~ pres~nt Inv0ntl0n ha~ ~n dsu:rliogd.
~bv~rthelea~ wlll be und~rs~ood ~hat varlou~ ml~alio~tk~ns mey ~ made withotlt ~i0p~rtinç~ Irom th~ 3plr~l end ~cope o~ tJle Irr~/enUon. For exampl~, tne pres0nt ~nvontlon csn b~ u~d wlth RAID 3, RAID 4, or RA D 5 ~ys~em~. Furthormoto, t,~n ~rror~ott~ctlon me~hod In addltlen lo or In 0eu o~ the XOR~ner~lod parlly rnay be u~ or Il1e neccssary radun~ancy IntorrnaUon. One such rr~thod usln~
Reed~Sobmon codw l~ dlucle~d In U.S. Patent Applic~tion S~rl~J No. 270,713, nl0~ 1111418~, ~nUtlod AArr~yod ûlsk ~ti~e ~y~m and Method~ ~d ~lgn~d lo Ule ~ssl5anee ot th~ ptssent inv~ntlon. W~th Ihe structure and mothod ~ught i~y th~ referenc0, ~h~ ptcsetlt Invontlon c~n eccornmoda~e ~he loss ot tw~ J~or-~o units H both XOil and Recd~olomon pr any other sys~em) redund~ncy 1~
Accordln~ly, It 1~ to bu und~r~tood that Ihe Invantlon le no~ lo be llmlted by ~e ~pecl~lc Illw~ra~ed em~odiment, but only by ~ho scope o! Ihe eppended dalms.
0~ ? evall~bl~ dlsk drh~. l'yplo~lly, ~iN ~ 1~ stor~e unll~ ~n a ~ot (~Igo h~owna ~edurldan~y ~roup'r) ~r~ dvid~ ir~o a plur~lity o7 0qu~11y ~k~d aWre88 ar~ 5 r~rted ~0 ~ blod~. EaC7~ stor~Elr~ unl~ ~n~rt~ cont~n~ tho ~ame num~r oi block~, ~bck~ ~rom e~h ~ora~ uni~ In ~ ro~undancy aroup h~n~
.. th~ ~em0 unlt addra~s ran~es ~re re~err~cl to ~ t~lp~. E~ ~po har N
block~ ol ~ , ph~ ono p~ y block on on~ ~tor~g~ devlco conlalnln9 p~ity lor th~ r0m~lnd~ o~ th9 gtrlpe. ~:urlh~t ~tr~ e~ch h~vo ~ p4rlty block 1h~ parlty blooks belr~ dl~rlbutad on ~ner~nt 6~ra~ unlls. Parlty updstln~ activily a~o~l~ted ~Am every modff~ on ot data In t~ rodundancy gr~up 1~ Ulerororo 16 dlstrlbuted oYor ~he dm~rent gtorage uni~. No ~h~l~ un~ l6 burd~ned wlth all ol U~ parlty updat~ actlvlty.
For ex~mple, In ~ RAID 5 ~ystern compt;sin~ 5 disk dtihre-, the p~r Inform~ltion~or Ule flr~t strlpo o~ bi~cks m~ aq ~ e flnh drlve; lhe parHy htormallon ~or the ~acon~ st~i~a ot block~ m~y be uni~tton to th0 iourth drive; Ul~ pasity ~0 Inf~rrn~Uon for the Ullrd slrlpe o~ blocks may b~ wrltt~n to U~ lrd drivo; 6tc. Tho p~rl~r biock ~or su~c00dlng stripa~ typloally ~'prec0sses~ around the disk drives in a h~llc~l pattem (ai-nouEih oUler patterns may b~ uaeci).
Thu~, no sbn~le dl~k drlve 18 u~ or slorln~ ths pcrlty InlorrnaUon, ~nd tile ootti~e nock o~ e RAID 4 archil~otur~ is 011mlna~ad. An ~xsmple o~ a i~AiD 6 syst0rn la de~crlbed In U.S. i~0nt No. ~ to Clsrk et ~/.
~ 7~7~ 7~
A~ In a ~AID 4 ~y6~ , a llrnlt~tlon o~ a iWD 5 ~y~tem i5 tha1 a cJl~n~e In ~ data block r6qulre~ a ReadModHy-Wfito s~quonc~ comprl~in~ oad and two Writo oper~tlons: tine old parrty bl~ck an~ oid data block rnu~t bo read snd XOR'd, and the resulUng sum mu~ en bo XOR'd wrh the now dala. Both Ih4 d~ta ~nd PATE~
Pi3~07St~
~o p~rity blockE~ rl mu~ b~ rowritt~n 20 lno dlsk ~riV~g. 1~110 Iho lwo i~ad oporaSlon~ r~y b0 dono In p~ali-el, ~ n the h~o Wrlte opcratlon6, mo~ifi~bn ot a block o~ ~ia2~ ln ~ RAID 4 or ~ D ~ rsys~rn ~till ~k~ sub~t~nli~lly lon~er ~n lho ~m~ op~r~Uon on ~ convonlion~ k. ~, oonvonlio~3ai di3k doo~; not ~ulr~ tho pr~llmlnary iR~sd op~ralion, ~nci th~ doss hav~ to watt for Iho dbk sirlve~ to rota~e back ~o th~ prevrJu~ posHion In order to i~ri~orm tiho Writ0 op~r~lon, Tho ro~thn~l 18t~1i~y Um~ ~lo~ c n ~mr3un~ ~O ~t 50% c~ o time r0gulreci 70r ~ typi-cal da lncauon o~raUon. Fu~hor, two dlck sto~-o ~It~
ar~ Invo~ed tor ihe dur~lon of eaeh d~ modHlc~Uon op~ra~ion, limltlng ~e thrs:~u~hput o~ tha ~ystem ~8 a w~ol~
~ e~pi~ Ihe Wrlto por~rmz~nc~ penalty, R~ID ~ Iype 3ystam~ hava b~comc Increa31n~1y popular, ~Ince ~hey provl~o hi~in ~t~ rcliabllity with ~ low overhead c~et ~or rcclundancy, rgood P~d perforrnanco, and rair Write i~ormance.
A RAID 5 ~rchl~ecture ha~ prlr~lcular utl1ity In OLTP cennput~r sy~tem~. Many OLTP syst~ms must be hlgh-avallabUity systerns, meanlng that complcle ~llura o~
y~tem hac a lu~-probeblll~v. H10h ~v~ilabillty csn ~ ach0~ 1 by usln~ hi~h-rellablllty compon~n~, hnvln~ a tault-tol0rant de~lgn wiul ~ low mean-Ume-to-repalr (MTTiR), an~ do~l3nln0 t~r ~ag~i" d radaUon, where the 1allurc ct 8 component may r~d~-co cy6tem ~p~blllty but wllhoul c~usln~ total sy~lem tsllure.
Aithou~h a prlnclp~l teatute o~ 8 ~ID system 1~ ~ault-tohrance, such capabillty alonr~ does not guarantee a hbh-avallabUlty systenL 11 a stot~e unlt falls, 5~0nusl ~y3t rn operatlon ~sannot contln~J~ until tho hll~d ~torage unlt i-~ r0plac~d and the Intorrn~Uon on It 1~ restored. When a ~tor~ unlt taUs In a R.IUD tirchlt0clwo, thc ~n teaches that a r~plaoement 6tora~e unn 18 subsUtuted ~Of th~ falled stara~0 unlt (elther manu~lly er el~clronlcslly 8w1tched In ~rom a set ot onQ or more ~p~r~), and th~ Ylost~ data 1~ reconstructod on tho topbc~m~ttt slora~ unlt by XOR'lng each parlty biwk wlth all corr~spondln~ dala block~ Irom U~e r0malnln~
stor~e unlt drlv~s in th~ redundancy ~roup. miS oporation l8 strai~forward 1 th~ ontlre r~dundancy 3tOup can bo dedlcated to reconstructin~ Ihe lallGd stor~eunlt. However, 11 appear~ that the art t~aches Ot OUÇI~J08t6 r95toting the d~ta on PD~07SD
Ih~ r~pl~comont storag~ unlt as a ~epara~e procsdure be~oro ~naral ~ystern operatlon oan b~ recommenc~d. S~ch a mo~hod for rooonntnJcUon do~ not provld~ ~r hi~h av~ilabllity.
Thu~, ~o far as known, Ih~ an doe8 not ~r~oh roeons~ tin6i a ~aileci 3tor~ge unit S In A RAID uchltectut~ whlle con~ulng to provlde on~lna a~Ce~ls lo the enUre reciundancy ~roup.
n thue ~w be hl~hly d~sirat~le to havs ~ RAlt) archltecturo ~y~tcrn h ~vhkh reoon~truction o~ n f~ d slora~0 un~ 4n be cond~i ~on~iino~, whlle genernl ~ ~yst~m operaUon conUmles In a norrr~ bshlon. K 1~ c deslrsbie to ho ah h ~ r ~ power f~ilure with the rr~construction opor~ion tn progross 9~ never pt00ent b~d data ~ ~ooc d~4 to the CPI.I.
Tha preson; hvDnUon provlc~r~ euch a oystem.
PATE~
P~)~807SD
~UMMARY ~F ~}lg~ IIMVE~I~N
~he pr~nt InvenUon provld~ ~ msthod ~r on-l~no r~nstruotion ol ~1 lallad ~1~3 d~a s~or~de unlt. All0r proYldln~ ~ rap~ac~ rl~ g~sr~e unil lor the hllad ~or~e ~1~, ~ r~constr~on l~sk bs~ln~ ~or th0 ~rr~y. 13~neral r4t ~n~trwUon con~l6t~ ol ~pplyln~ ~n 0tror~Drrs~on 4p~r~0n ~s~ch ~ an XOR opor-tbn on dat~ blocke ~nd ~ ~rr~spondln~ parlly block, or ~ Read SolorrK~n co~) to tll~
block~ ~rom th~ r~m~lnln~ slor~a unl~ In lht~ radunclnncy ~roup, ~nd ~torln~ rs3ul~ In the corte~pondln~ ~lock o~ Ule replacement ~tor~e unlt.
d oper~Uon 18 r3qu~3t~d by Ulc CPU 70r P da~ block on th~ replacemon~
3~0raga unlt, then ~ concurr~nt Read ta~k 18 executad ~h reconl~buds the oont~lnln~ re~u~st~d d~l~ block.
U ~ R~ad op~ratlon 1~ requo~t~d by 1h~ CPU for a d~ta block not on the r~pl~cement ~torage unll, ~h0n 6 c~:>ncurrent ~ead t~k 1~ ~x~ d whlch p~rtorrn~
a norn~l R~ed.
16 111 ~ Wrlte op~ration i~ rcq~ostod ~or any ~ata block, ~hen a concurrent Wrlla task lo ex~cut0d whlch perforrns a Recd-M~ Wrlt~ ~qu~n~e In the g~naral cas~
(ths flead opsratlon belr~ perforrned In accord~nce wllh the above rulos).
AKi~ou~h d~t~ block~ on Ihe r0pl~c3ment stora~e un/l "~bove~ the reoonstruction ~rlpo ara ~alld, ~rKi could bo raad clrcctly, the above procadute h easl ~nd ~0 simpler to Irnplemsnt, slnce thore b no nead to koop u~ck of whether or not n rcciueet0d data block 18 ~bove~ th~ r~con~tructlon drlpe. However, ln an aKett~tlv~r embodlmr~nt d the Ir~entlon, the po~ition ~f t~ reques~ed data t~lOCk with respect to 1h~ reconstruction etrlpe 18 tracked, and reconstruotion 1~ onlyperforrnoc for d~ blocks th~t ~e no~ above the ~econstructlon slripe.
Thu8, t~e general ~ies of operatlon In the pre~erred enl~oclment aro lh~t ~il R~ad operatlons trom the replacernent storage unlt raqu~e on-the-fJy raconstructbn olall ol the data blocks request~d, r~3ardl~ ot wheth~r any ol tho~0 data blocks ~~ ~ PATEtJT
PC)~D
havo In ~et been recon~r~ by the ~nsral r~cons~rucUon proCcs~. A~ wnte oper~tlon~ proc~ed In a Resd-ModHy YVrilo ~equcnce in ~he ~eneral case, with ~e Rs~ pAtt of U~u op~aon boln~ per~ d In laoeord~nce ~th 1he ~bove rulos.
Tho pts~ent Inv~n~lon provld~ 4 tellable meth~d or tecor#~ructin3 all o~ U10 data ot al l~llgd ~tora~ unll ontc~ ~ rcpl~cemenl unil, wllUe contlnuin~ tO pl~rmit R9~1n~ and Wrltlcl~ opqraUon-Q t~ 8~0ra~e uni~ ~rray ~s e whole, ~md to Uu~
roplaoement ~toraae untt ~n psnr~l~. U~ ot a flao permlt8 detecUon Ot en abnermt~l tennlnallon o~ eneral rooonetruc~on procegs. The rocon~ruoffon m&y to~um~ ollher at the InlUsl recon~rucllon st~ln0 polnt, w, optlona~ t the .~ polnt ot obnorm~l lotmlnaUon.
Tho ~etillb o1 ~he prelelred embodlment ot the presenl InvenUon ~re set 1sr~n Inth0 ~ccompanyln~ ~r~wlng~ ond the dflswlptlon below. Once the detall- d tho Invsn~lon tlre known, nurnerou~ eddKlonal Inno~allon~ t~nd ch~n~es w111 become obvb~ to one 6kl~ed In the ~
- 1~ PA~ENT
Bi~lEF ~ESC~IPTIION CIIP T~E l)RAWINS35 F1~3lJRE 1 18 biook dla~r~m o~ a ~ llzod FUU01 ~y~lam In t~rd~nce wffll the pt~s~nt Inv~nllon.
FitlUi~E 2/1~18 a d~rBm ot ~ ~d01 RP~ID 5 ~ m, 3howin~ an Initial ~a~.
6 FI~UF/E ~B 1~ ~ dl~tarn al a r~l RAIO 6 ~y6t~rn. showlny a lali0d 3tora~-ie unit.
FI~URE 2C ~ a dla~rrlrn ot ~ mocl~l RAit~ 5 ~y~tem, ~ing an hlt~-lz~d .~rephc~ nt stor~e unit.
Flt~lURE 2D Is ~ dl~gram ol r~ mod~l RAID 5 ~yst~m, showin~ n p~Sia~iy r~con~ d r~plac~ment elora~ ur~
F1~3lJRE 2E h a dla~r~m ot ~ moci~l RAID 6 systorn, ~howir~ ~ compl~y roconetl!uded replacsrnenl ~l~ra~e unl~
Fl~lJRE 3 ie a ~iowch~rt ropr~wnlln~ the ~ener~ reconstsucllon proce~ Oot lhe pre~erred embr~lment o~ the ptesent Invsntbn.
Flt IURE 4 1~ ~ llowch~rt representir~ ~ Re~d op~ratlon tor the preterred embocil-rn~nt ~ the pre~ent Inventlon.
FIQURE 5 18 ~ llowc~lart repru~en~n~ a Wtite opsr~Uon ~or tite preferred embodl-m~t o1 tho present In!~rentlon.
Uk6 re~sronce numbers and ~signaUons in the drawlng~ re~er to liko ol~nts.
PATE~
PC~B07SD
~'~AI~ PTlO~ nrlO~3 rhr~u~hou~ Uhl~ d~3crlpllon, Ul~ pro~orro~ em~oclrr~nl and ~xamples shown ~houlci l}~ oonsld~r~ Xem~ls, r~h~ than llmi~al;on~ ~n ~ m~lhod ~1 ~e ~es~nt In~onil~n.
~3 Flt:llURE~ loc~ cllr.~ram of ~3 ~cnsr~ ys~m in accofd~nc~ e pr~ n~ invenUon. Shown ~r~ ~ CPU 1 s:~uplod l~y a ~ o ~n array corllrdlr~r 3. The ~rr~y oonbroll~r 3 1~ coupled to ~aeh o~ Ih~3 plurall~y ol s~orc~ un~ S1-s~ (nY~3 b~ln~ ~hown by w~y o1 ex~mple snly) by an 1/0 bu0 (e.~ 3(~31 bu5).
rr~y contrull0r 3~r~bly Includes a ~;epar~t~ pro~rammablo, multl-t~sklng proc~aor (~W 0~ampla, th0 MIPS R3000 RIS~ pr~o~s~or, made by MIPS C~ o~, of Sunnyv~10, ~all~ornls,) whloh ORn ~ct Indep~nden21y o~ tha CPU 1 to contr~l t~lo ~tor~e unlls.
The ~tor~g3 unlt~ S1~5 c~n be ~roupod Into on~ or mor~ ledundancy ~roups.
In U~ Illu~trat0d oxampl~s d~gcr~ elow, ffle redundanoy ~roup ~.-nprl~ ~l ~5 of th~ ~torago unl~3 S1~6, 10r s~plcity of sxplana~n.
Th~ present hvenUon i~ pref~r~bly Implsm0nted as 1 m~N~-ta~klng oompular pto~ram cxocutod by the conlrollor 3. Flt3URES ~A-2E are d agrammatlc mr del~
018 RAID ~ sy~tem. FIGUR~ 319 a hl~n-hvel flowchar~ tepresentin~ U~e steps o~
the ~ner~l reconstrwtion prooe~ ~or th0 prererred embodlmont or the invanUon.
~0 FIGURE 413 a Ill~h~Q~rQI 11awchart reprcsenthg the 8t~p8 0~ o~d op~rohbn fo~
tho proterr~d embodlment ol th~ Irvention. fl~;URE 5 is c hi~h-iovol ftowch~t ropretor~in~ the 8top5 01 a Wrlle opsr~tlon tor 1he pre~err~d embo~lmern o1 tt~
Inv~nUon. ~he steps re1erenced In FIGURES ~5 r~ro reler~nced bolow.
(3~n~ral Fieconst~ on 2~ FIGURE 2A Is a ~ia~ram o~ a moclel RAII) y~t~m, showin~ an iniUal s~t~. Th3 Illu3tr~ted arr~y comprl~ fh~o stora~e unlts, Sl-S5. Esch tow A-H i~ ~ strlpa.
Purlty In~ormaffon 1~ Indicated by clrcled num~srs, and i~ ~pr~d throughout tho array Allho~gh on~ p~tt~m of parlty Inlorrneti~n dblrlbutlon 13 showr~, lho ~D-~7~
Inv~nllon ~ncomp~ ny dl~rlblJthn. {:n~ b,it "~ock~ ~r~ s~own ~r e~ch ~tor~ unlt In ~ ~trlpfl lor ~impllcJ~ ch blOCk coul~ In~e~ci b~3 ~ny ot~0r uni~
~7 ~Iz~, a~ch ~ ~ byt~, ~e~tor, ~ ~roup o~ 20r3. In Ihe pre~eneel ~n~o~m~n~, ~oh bl~lt 1~ at l~a~1 on~ ~ctor In ~t2e.
~IQUF~E ~B ~how~ ~h~ ~m~ m~r~0i ~ FK3 URE ZA, ~ut ~Ih ~ra~D unlt S~
h~ ta d (Ih~ cl~h4~ repr0~ntln~ comipbDci dat~ ote ~t ~ XOF( a~n ol ~oh ~brlp~ tor e~r~e un~ 2~ ~s~ J6 th0 lo~ da~e ~7 ~tora~e urlil Sl ~wn in Fl(~URE 2A.
.FI~31URE 2G show~ th~ ~rno ~ID mod~l ~3 FIQURE 2~, bu~ ~ilh I~lied ~toru,~o Wllt Sl havln~ bei n r0p~ce~ r~p~c0ment 6tora~e uni~ S~'. The r~pla~em~nl may b~ on a physlc~l b~3 (I.~., a n wv ~or~o unlt b~in~ FYny81ca~ lltut~d tor ~o f~ unlt), or on ~ lo~ cal bs~l~ Q.o., ~ 6pare ~tor~e unll h oommunicn-~1~ wlth th~ ~:ontroll~r 3 beln~ elsctronlc~ wltch~d into opcratlon). In ~H
ted 0mbodlmont, th~ repl~cem~nt 3torage unlt Sl' ~a~ nol b~en Ir~lz0cl 1~ lo any par~culw data pattern, a~ Indlc~1ed by tho x'~, b~ut tho urit could h~ rmy p~tt~rn ol In~ormaUon on 11.
Ono~ repl~cem~nS ~lora~e unlt S1 ' 18 substltut~d lor the !a!!sd otorage ut~t S1, n~ral r~ nlctlon prooes~ commonco~a a~ ~ task (FIGIUFIE 3, St~p ~O).
Tho roplr~cement e~ora~o unlt S1' 18 mark~ int~rnally to Indlc~to that U~e ~torrd~o ~0 unlt b "Under F(econstnurtlon~ and ~eh~ r~}construct~d (Stop 31).
FK3URE ZD Illuslra~ r~n Interm~dhte ~ta~e ot rccons~ruction, wlUl stripe D, shown hl~hll~l~t~, S5 tha rr cor~truc11On strlpQ. In ~e pr~lerrecl ~mbodlmcnt, a WtNo oporstlon 1hat requlr~s recon~tructlan o~ a slrlpe wnnot t)e m~e to Ihe rccon~
sb~uc~lon ~trlp~ b~auyo that strlpe 18 "lodcod~, In known ~a~hlon, to pr~nt ~6 ~Iteretlon ~Nhile under~dr~ rec~r7~tructlon (Step æ). Th~relore, the Wrlte operatlon Is delay~d Im~U th~ stripe 1~ reeonstructecl.
In th0 pre~errecl smbodlment, the data and parny ~locka are Raad trom stora~o unR~ S2~3 ~or cach strip- ~H ~n thQ array ~nd XOR'd, with tho rc9ult from ~ach ~ 3 PATENT
PD~7SD
~trlpo b~ln~ ~lofod In 11~ oo~rc~porldln~ bl~ck ~f llhs rap~c~me~1 ~tOTa~9 urilt 51' (St~ 33). In ~ 4xP~mple ~ihown In FIGIJ~E 2, ~hl~ pr~s bo~ns nt ~p~ ~4 ~nd pr~ods to ths ~nd o~ lhe ~lor~g~ unlts, ~ ~trlpe ~. How~vcr, any ~ ng poln~ rney b0 u~d, wl~h any p~ m o~ recon~b~ctlon (9.~ Itorr~tln~ ~ip9s).
1~ con2r~7~r 3 U~sn unlocks ~ r~con3~rwUnn ~Iripe (S~op 34), and adv~nco8 tho rooonstr~n ~trlp~ (~3t~p 35). 1~ rer,~ uucilon b 7ncompl~ S~op 33), Ule ~nor~l reconettuc~on prooGss con11nuea (S~ep 32~ unUI U~e en~ire repL~ment ~tora~e unll S~' 13 reconakuc~d, a~ shown In FIGURE 2E. Wh~n the ~eneral ~econ~lrucUon proco~s k cornpleted (5t~,p 36), the ropl~earnenl etot~e l~nlt S1'la mar~ a~ ~No~ Und~r R~construollo7r (Stop 37) ~nd ~11 opor~te normal~ ~Step 3~).
N Ihe reconslluctlon ,woce~ 18 Into~p1ed dw to a power fdlur~ or any other re~on, the lAst st~p o~ m~rkln~ tho roplacemant ~ora~ un~ St' as aNot Und~r PlqconslrLK:tlon'' wlll r~t ba complet~. It ~ thcro~ore po~lole to d0te~t such ~n 16 ~bnorm~l terminatlon. In woh a or~0, the conlrollc~r 3 may resbrt the rer;on6truc-tlon ptoc~ from the ~e~lnnln~ without lo~lny any data. Thl~ may r0~ult in cortoctln~ ~trlp~ that h0ve alr~dy been wrroct~d, but thla ~pproacl~ ~uarRnt~s Unal ~e array s~syst~m wNI never Indlcst4 that dala i~ aood ~hen It h~ not bo~n r~construot~d.
In an alternaffve ombodlrner~t, after each seoUon of the replacement ~tora~o Unit tc.~., o~ch cylind-r ot a disk drive~ le recon~ucI~d, a na~ n0l~ In the replacemen~
~tora~e unlt S1' (or elsewh~e, It deslred~ b marked int~mslly lo Indkale ~a I~st t h~ be~n recor~tructed. AJter an abnorm01 tarminatbn, 1~
reconatructbn process rnay be restarted aftu the 1ast indlca~ed sectl~n, Ulefeby2B oevlng roconottuc~'on tlmo, Conc~lr~nt 1/0 T~k~
Durln~ ttle ~en2r~1 locons~Notion proc~ss, proG~sin~ by Ihe CPU 1 can contlnuo, bu~ wlth some poss ble p~norrnanc~ dagradab'~n ~OI th~ compu1er ~ystcm. ~3 d~wlbod bolow, the general recans~tuclhn proc~ss rn~y be Interrupled to perrnK
PATENI
I~D~7~;D
Fl~d or Wrlt~ op~(atlorl r~c U~t6Ki by the CPU I ~ ps 33, 3~). Such Int~rrupllon~ ar~ pr~ bly Impl~rnq~n~ec~ by rne~n5 ~ urr~nt ~sks h woU-hrlo~n i~hlon. ~ Y~r, th~ InYflnUon ~suornpf~r~Fs E3ny means ol oencunr ~nd/or In~rrupt-dr~n 1/0 op~raUon. F~l~win~3 ~ a d~crlpUon s)f ~0 prnferlad emi~dlrrler~ ol ~udl ~d ~nd Wrlhs op0rdior~.
R~d op~ta~lon 1~ raq~ toGi by Iho CPU 11 dutln~i ~snaral ~ecor~str~ction, a Read pro~3s~ t~Eiln3 ~ Em Indepondent bln concurren~ ~sk (---IGUFIE " Step 40).Tnl~ mo~n~ ~hal ihe reconslructlon t~k contr~uoa ~o exeCUtO, but Ulat ihe ~ad .. 1~ak and recons~uctlon la~k conlond ~c~r ~ygt~m rcs::1uroes, In known ~ashlon, lhe controller 3 pre~r~bly locks tho rocon~tructlon ~tnpe ~o pro~JQnt Inadvonr~n~t~rRblon o~ the sttlp~ undor~olng r~construcUon (Step ~ e F(~d rcquost Is 7er ~ dst~ block not on U~e roplac0ment (~ "n~) storage unR S1' ~Stap 4Z), the controll~l 3 par~rmg a normal Re~d opcr2Uon ol~d trr~n~le~ the da~a block h ~e CPU 1 (St~p ~). Boc~u~o d~ta ~rom the othe~ s~orr~ge unlts ~S2~3 In tho 0x~rnple ot Fl(~URE 2) 18 corroct, no lo~ o~ p~rformance occur~. ~he oonbroaar 3 th~n unbck~ U~e ~cens~lon strlpe (St0p 4~), and Ula R3ad ta~k tormlnate~
~;tap 45), 1~ ~ho Ro~ oporatlon r0qu~st~d by the CPU 1 Is for a dat~ block on tho rapl~c~
~0 rn~nt ctota~s unlt S1' (Step 42), tho procodute is diHerent, Th~ cornroller 3 Ir~tead reCOnstrlJC[s tt e stripe c~nt~lnln~ the requsst~ data ~loc~ ~on~
Thq controll~r 3 reads all of the other data block6 and U~e correspondln~ pa~itybbck In th- ~trlpc (Step 47). The bbck~ are th~n XOR'd to genora~e a correc~ed dsta blocl~, whlall Is tt~an trnns~rred to the CPU 1 v~a the controllet 3 ~St~p 4~).
2g Thare~ner, the controllflr 3 unlocks tho recor~ttuoUon sttlpa (Stop 44), and ~ne Rsad t~4k t~rmlnates (~tep 4~).
FIC~URE 2D Illustr~tes both oasos of Rer~dln~. Strlpe D, shown hi~hllyht~d, 18 the r~wrl6tructlon st~lpe. Il a Read rcquest 18 ma~e ror data ~lock ~52, tl~e conlroll~r PC1-~O7~;~
3 wlll aca~s ritc~r~ nl~ S~ In ~ pe A, ~nd dl~cl~ r~ bln~ry O firom Ih0 ~tc)r~0 llnit iclr 2r~n~r le ~h~ ~PV 1.
1~ a Fi~a~ r~u~r~t 1~ m~ r cl~ blo~k ~1, whlah 1~ not y~t r~ tructæd, th0 eonlr~ r ~ wlll acc~sa ~a~or~ ~nl}~ 32~ h strip~ tJ ar~ r~çi ~1 ot 2hr~
71~ bl~ck6 ~e til~n XOF~'d, ~r~n~r~ln0 ~ blnary U, which ~a ~r~na~err~d to 1~1~ CPU
.
~Irn rly, 1~ ~ Read re~uesl Is masl0 i~r ~iat~ bloc~ c~nlralbt 3 ~tal ~c~ar3~ etorage unl~ 5~5 In ~ripe ~ anc3 rea~ all ol l~O bl~ck~. ~e bl~ck6 aro -~ then XOR'd, a~ner~ln~ a blnary ~, ~rhlc~ ~ tran~?0rr~ ~o Ihe CPU 1.
0 ~hu3, l~r ~li R~d op~raUon~ In ~he pre~erred efnbo~lm~n~ tho d~t~ win 4~ys be ~orroct~ by teoonstruo~lorl ~ven thou~h U13 C;'u i m~y bl~ ro~dln6i trom a 6trlp0 2h~ 18 ~l~iy rucon~ruc~d and the C;i~U - there~ore could hsve reaci tl~ ciat~
dlrectiy. ~a ~cldl~lor~l llme tr~ corr~ ~ooc oata will oniy be Incurrec d~dn~ ~ereeon~ n proc~, whlch ~hould occur InfrequenUy. Thls approtAch allowa . tt~ d~t~ ~tw~e 8ub8y5tem to always m~ln~ln ~nd present correo;t dat~ withou~
h~vlna to kcsp track o~ whe~er or r;ot a requc~tad clr~ts black b ~ow~ ~e r~onaSruotlon ~rlpo.
Alt~m~ ly, th~ Read ta~l< ~ kaep trac1< of wh~thot or not e reques~e~ data blwk b ~abov~ th~ recor~s~ructlon 8trlp~. ~e~errlng to FIGURE 4, r~ r the controlbr clotorrnlne~ that ~ re~ue~ d~ bhck Is on th~ replacom~nt dorQ~o unl;t Sl' ~Step 42~, the controlhr compu0s the posltlon o~ the roque~lod d~ta block In tho ~torago unlt S1 wllh ~a curr~m poonion ol tll~ rocorY~tructlon strlpo (Shp 46, Indtcated ~ opUonal by dD~hod ar~). Il the r~qu~stcd block 1~ not sbovo the reconslrucllon lln~, the wntroRer 3 reconstructs the clrlp0 conlalnln~the r~quwtad d2trl block bn-Ur~e~ by rwdln~ ~nd XOR~n~ ~11 o~ ~he o~hor drlte blocks ~nd th~ corr~pondh~ p~lty olock In Ihe ~trlP~ (Steps 47 ~nd ~8).
HO~NQV01', N U~e rr~qu~sted block k ~bovoU tho roconYtructlon Ihe, the block hn~atre~dy been r~constructed. th~reror0, She conlroller 3 per70nn3 n normal R3ad ot tho d~ta block ~nd trane~er~ Ihe dat~ blocls lo the CPU 1 (Step U). Whlle -1 ~ PA~ENT
PD~ 3D
ppro~ch r~qulree tr~ckln~ th~r w n~t a requ~ad d~t~ bloc~ br~
lh0 r~ons1ruction s~rlpo, ~Im4 is ~Q~ In Rea~ln$~ prevlou~y r~constructod date bl~ck~ on ~ roplacernen~ s~ora~4 unlL
a~d~
H ~ Write operation is requ~ted by th~ CPU ~ durlns~ n~rsl re~n~Pucllon, ~
Wrl~ proc~ b~ln~ n In~4p~n~ent ~ut concunen~ t~stc (FIGUR~ 5, Sl~p ~.
Thl~ me~n~ that lh~ r~cons~ ctlon ta6k contlrluo~ ~o ~x~cuto, but 1hnt tho Wrl~o~ ~nd recor~truotlon l~sk oonterui Sor systorn ro60ure~, In known 1e6hlon.
....... The oon~r~ r ~ locks~ the rocon6tn~10n g~rlpe to pr~vent ~dvertent ~Iter~tlon of ~ qtrlp~ under~oln~ reoons~suot~n (Stap 61). 1~ the Wrlte operatlon s~quwted IB tor ~ data bhck eind corr~pondlnç~ par~ bhc~ nos on ~ho replacemertt slora~e unK St' ~Step 52), the controller 3 pertorms a normal Read-MDdiiy-Wrlte s~u~.
That IB, 1he old pQri~y block and old d~ta b oc~t aro Re~d from the ~rr y (Slep 53~, ~d tho old p~rlty btock b modifi~d by Dsu~ actin~ our (XOF('ln~) ths dd d~t~
76 bl~ nd ~acl~in~ in" ~ ) ~e now data block (Step ~ The r~w p~rlty blook ~nd the now d~ta block 3re then Written to the ana~ (Step 5q. A~br ~e Wrlte opar~Uon b cornploted, Ulo r,,ontrollor S unlock3 th0 r~constructlon ~tl1pe ~tep 66), and th~ Wrlt~ t~rmlnatos (Step 57~.
tt does not mr~ner In thls ca~e wheUlur or no~ the correspondln~ dat~ block on ;i~ the re,olacem~nt stora~e unlt S 1 ' ha~ been correct~d. Because lhe re~ussted d~ta block ~nd Itl; parlty blo~k ue not on the replr~mont stotaSo unlt 51', tho R~sd pul of the R~a~Modi~y-Writ~ sequenc~ doe~ not need to reconstruct th- data.
mus, essenUally no loss o~ perlorm~nco ocaur~, Il the Wr~te op~r~Uon r~que~t~d by Uho CPU 1 1~ tot a data block whero olthar tho d~ta blr~k or 11~ eorre~pondlrlg parlty blod~ aru on tl~ replacement slora~e unll S1' (Step 52), tha prweduro Is dl~rent. The oontroll~r 3 Instoad recomputes a parlt,y block tor tho strlpo ~on-the-ny- ~y readlng all o~ the othcr d~t~ block8 In U~o ~trlpe ~Step 58) and XOR'in~ ~h0n~ (Sbp 59). The new data block le then XOR'd v 1th the recomput~d parity block to ~enerate a new psrlty block ~SIep Bû). ~h0 Pl:~[)7SD
naw t~t~ l~lock ov~r~r;l~ ul~ d~t3 bl~k and th4 n~w parlty ~lock e~/~8 t~ old parily blook ~S~p 5~ r th~ Wrl~ opcr~n Is ~ompl~ed, ~e controller 3 unlwks tl1~ r~or~tru~lon ~trlp~ (S~ep 6~ he W~ite ~k t~mln~ (St~p 57~.
An cll~rrl~livb pr~dure, Indl~tad ~y dash~d llncs In FIGU~E 5, Is 10 nrst r~or~ttu~ Un~ bl~ck on th3 r4plac~ nt ~tor~ unlt S1'. The ~r~llu 3 readc ~ll o~ ~ho o~or blook~ In tho ~ttlpa t~ap ~ hon XOR's Ulem t8top 62).
ma r~sult may b~ stor~d on the rsple44man~ sitora~o unlt Sl~ (Step ~) or ~n 4 ~mpc,r~ry momory. ~he reconslruc~ed block esn thsn ~e u88d In A norrnol Resd-1G .. Mo~ Wrlt~ s0qu~nc3 (Step~ 57).
1~ hould be no~ed IhQt the ~bov~ dlsw~ahn ol a Wrlte oper~llon pert~lr~ to Iho ~nar~ ca~0 o~ ~ss th~n ~l o~ in ~ suipe h~ln~ rno~inod. In ~o l:~p~3Ckll ca80 wh~ro all blocks In s 6~rlpe aro b~ln~ m~dln0d, then the ~o~d ModHy-Wrlts ~quano~ i8 ~nnecessary. ~t l~, the Initi~l Read operatEon b~ not qulr~d, ~Ince ~he parHy ~ or th0 strlpe can bo computs~ o~y on tho næw data. Th~ computed p~ty bbck and the naw data blochs ~ an ~Imply ~tored on ths strlpo. 8trlcUy ~poaldn~, no ~reconstruc~on~ ol the strlpe i8 per~ormed.
It the CPU 1 Wrltes to strlp~ that havo airoady b~n cor(~cted, tho new data is recorded correctly. It ~ Ci'U 1 Writes to sSrlpes Ulat have nol yet heen cor~cted, the new data 18 r~orded corroc~ly and wl~ corr~ed~ H~aln ~lthough N 18 no lon~er Incorrect) ~han the reconstructlon strips advances to the 8t11i~ oonts~'nin~ ~he new datn. Tho ~dditional Um~ to rc~ort~ct ~ooci data wiiibe Incurrad wi~h dlminishln~ ~requency durh~ tho r~con~truction process r~ Ih0 2s r~on~tructlon ~trlpe advancos. Tl~ ppro~ch a~owe the d~t~ ~toraaa sub~y~-tern to alw~y~ malntain an~ pres~nt ootteot data wllhoul ha~ln~ to keep tta~k o~~vhether or not a requ~stod dstJ biock 1- ~ab~ve' or ~beiow~ ~e recon~t~ on strlp3.
-1~ PAT~NT
P~0807S~
~itern~tiYoly, an ~dc~llor~l ~tep mey b0 ~dd~ to tho racor~6lr~c~Jon 1~sk (FIGURE
t ~hl3th0~ ~ ~trlpe h~s rllr~udy ~en rec~n~trucl~ ~y a wr~ta op~atlon (Sbp ~1 H r~constru~lon h~ ~ir~sdy occurrsd, ti~e outrenl r0~nutnl~tion sttlpe mey be unl~cked ~nd proc~a~lng conllnu~i ~t Y r~xt ~trlpe (Step~ & 35). Il r~G~n~ruc~lon h~ not occutrcd, tha ~n~r~l r~c~n3~ctlon l~k ~ntlnu~
~3tocutl~n (Step 33).
A nurnb~r of em~o~irtl~t~ ~ ~ pres~nt Inv0ntl0n ha~ ~n dsu:rliogd.
~bv~rthelea~ wlll be und~rs~ood ~hat varlou~ ml~alio~tk~ns mey ~ made withotlt ~i0p~rtinç~ Irom th~ 3plr~l end ~cope o~ tJle Irr~/enUon. For exampl~, tne pres0nt ~nvontlon csn b~ u~d wlth RAID 3, RAID 4, or RA D 5 ~ys~em~. Furthormoto, t,~n ~rror~ott~ctlon me~hod In addltlen lo or In 0eu o~ the XOR~ner~lod parlly rnay be u~ or Il1e neccssary radun~ancy IntorrnaUon. One such rr~thod usln~
Reed~Sobmon codw l~ dlucle~d In U.S. Patent Applic~tion S~rl~J No. 270,713, nl0~ 1111418~, ~nUtlod AArr~yod ûlsk ~ti~e ~y~m and Method~ ~d ~lgn~d lo Ule ~ssl5anee ot th~ ptssent inv~ntlon. W~th Ihe structure and mothod ~ught i~y th~ referenc0, ~h~ ptcsetlt Invontlon c~n eccornmoda~e ~he loss ot tw~ J~or-~o units H both XOil and Recd~olomon pr any other sys~em) redund~ncy 1~
Accordln~ly, It 1~ to bu und~r~tood that Ihe Invantlon le no~ lo be llmlted by ~e ~pecl~lc Illw~ra~ed em~odiment, but only by ~ho scope o! Ihe eppended dalms.
Claims (17)
1. A method for on-line reconstruction of a failed data storage unit in a redundant array of storage units coupled to a controller, the storage units having a plurality of stripes each containing a plurality of data blocks and at least one associated error-correction block, comprising the steps of:
a. providing a replacement storage unit for the failed storage unit;
b. reconstructing the data block of the failed storage unit for each stripe in the arrays;
c. storing the reconstructed data block on the replacement storage unit in the corresponding stripe;
d. if the controller requests a read operation for a data block during reconstruction, then;
(1) If the requested data block is located on the replacement storage unit then:
(a) accessing all of the other data blocks and at least one corre-sponding error-correction block in the stripe containing the requested data block;
(b) reconstructing the requested data block from the accessed blocks;
(c) providing the reconstructed data block to the controller;
(2) If the requested data block is not located on the replacement storage unit, then:
(a) accessing the requested data block directly;
(b) providing the requested data block to the controller.
a. providing a replacement storage unit for the failed storage unit;
b. reconstructing the data block of the failed storage unit for each stripe in the arrays;
c. storing the reconstructed data block on the replacement storage unit in the corresponding stripe;
d. if the controller requests a read operation for a data block during reconstruction, then;
(1) If the requested data block is located on the replacement storage unit then:
(a) accessing all of the other data blocks and at least one corre-sponding error-correction block in the stripe containing the requested data block;
(b) reconstructing the requested data block from the accessed blocks;
(c) providing the reconstructed data block to the controller;
(2) If the requested data block is not located on the replacement storage unit, then:
(a) accessing the requested data block directly;
(b) providing the requested data block to the controller.
2. A method for on-line reconstruction of a failed data storage unit in a redundant array of storage units coupled to a controller, the storage units having a plurality of stripes each containing a plurality of data blocks and at least one associated error-correction block, comprising the steps of:
a. providing a replacement storage unit for the failed storage unit;
b. reconstructing the data block of the failed storage unit for each stripe in the array;
c. storing the reconstructed data block on the replacement storage unit in the corresponding stripe;
d. if the controller requests a write operation for a new data block during reconstruction, then:
(1) If the data block to be modified and its at least one associated error-correction block are not located on the replacement storage unit, then:
(a) updating the at least one associated error-correction block in the striped containing the data block to be modified;
(b) writing the updated at least one error-correction block and the new data block in the stripe containing the data block to be modified;
(2) if the data block to be modified is located on the replacement storage unit, then:
(a) accessing all of the other blocks in the stripe containing the data block to be modified;
(b) reconstructing the data block to be modified from the accessed blocks;
(c) updating the at least one associated error-correction block in the stripe containing the data block to be modified;
(d) writing the updated at least one error-correction block and the new data block in the stripe containing the data block to be modified.
a. providing a replacement storage unit for the failed storage unit;
b. reconstructing the data block of the failed storage unit for each stripe in the array;
c. storing the reconstructed data block on the replacement storage unit in the corresponding stripe;
d. if the controller requests a write operation for a new data block during reconstruction, then:
(1) If the data block to be modified and its at least one associated error-correction block are not located on the replacement storage unit, then:
(a) updating the at least one associated error-correction block in the striped containing the data block to be modified;
(b) writing the updated at least one error-correction block and the new data block in the stripe containing the data block to be modified;
(2) if the data block to be modified is located on the replacement storage unit, then:
(a) accessing all of the other blocks in the stripe containing the data block to be modified;
(b) reconstructing the data block to be modified from the accessed blocks;
(c) updating the at least one associated error-correction block in the stripe containing the data block to be modified;
(d) writing the updated at least one error-correction block and the new data block in the stripe containing the data block to be modified.
3. The method of claim 2, wherein the write operation step includes the further steps of:
a. if the at least one error-correction block associated with the data block to be modified is located on the replacement storage unit, then:
(1) accessing all of the other data blocks in the stripe containing the data block to be modified;
(2) computing at least one error-correction block from the accessed blocks and the new data block;
(3) writing the computed at least one error-correction block and the new data block in the stripe containing the data block to be modified.
a. if the at least one error-correction block associated with the data block to be modified is located on the replacement storage unit, then:
(1) accessing all of the other data blocks in the stripe containing the data block to be modified;
(2) computing at least one error-correction block from the accessed blocks and the new data block;
(3) writing the computed at least one error-correction block and the new data block in the stripe containing the data block to be modified.
4. A method for on-line reconstruction of a failed data storage unit in a redundant array of storage units coupled to a controller, the storage units having a plurality of stripes each containing a plurality of data blocks and at least on associated error-correction block, comprising the steps of:
a. providing a replacement storage unit for the failed storage unit;
b. reconstructing the data block of the failed storage unit for each stripe in the array;
c. storing the reconstructed data block on the replacement storage unit in the corresponding stripe;
d. if the controller requests a write operation for a new data block during reconstruction, then:
(1) if the data block to be modified and its at least one associated error-correction block are not located on the replacement storage unit, then:
(a) updating the at least one associated error-correction block in the stripe containing the data block to be modified;
(b) writing the updated at least one error-correction block and the new data block in the stripe containing the data block to be modified:
(2) if the data block to be modified or its at least one associated error-correction block are located on the replacement storage unit, then:
(a) accessing all of the other data blocks in the striped containing the data block to be modified;
(b) computing at least one error-correction block from the accessed blocks and the new data block;
(c) writing the computed at least one error-correction block and the new data block in the stripe containing the data block to be modified.
a. providing a replacement storage unit for the failed storage unit;
b. reconstructing the data block of the failed storage unit for each stripe in the array;
c. storing the reconstructed data block on the replacement storage unit in the corresponding stripe;
d. if the controller requests a write operation for a new data block during reconstruction, then:
(1) if the data block to be modified and its at least one associated error-correction block are not located on the replacement storage unit, then:
(a) updating the at least one associated error-correction block in the stripe containing the data block to be modified;
(b) writing the updated at least one error-correction block and the new data block in the stripe containing the data block to be modified:
(2) if the data block to be modified or its at least one associated error-correction block are located on the replacement storage unit, then:
(a) accessing all of the other data blocks in the striped containing the data block to be modified;
(b) computing at least one error-correction block from the accessed blocks and the new data block;
(c) writing the computed at least one error-correction block and the new data block in the stripe containing the data block to be modified.
5. The method of claim 1, further including the steps of:
a. if the controller requests a write operation for a new data block during reconstruction, then:
(1) if the data block to be modified and its at least one associated error-correction block are not located on the replacement storage unit, then:
(a) updating the at least one associated error-correction block in the stripe containing the data block to be modified;
(b) writing the updated at least one error-correction block and the new data block in the stripe containing the data block to be modified;
(2) if the data block to be modified is located on the replacement storage unit, then:
(a) accessing all of the other blocks in the stripe containing the data block to be modified;
(b) reconstructing the data block to be modified from the accessed blocks;
(c) updating the at least one associated error-correction block in the stripe containing the data block to be modified;
(d) writing the updated at least one error-correction block and the new data block in the stripe containing the data block to be modified.
a. if the controller requests a write operation for a new data block during reconstruction, then:
(1) if the data block to be modified and its at least one associated error-correction block are not located on the replacement storage unit, then:
(a) updating the at least one associated error-correction block in the stripe containing the data block to be modified;
(b) writing the updated at least one error-correction block and the new data block in the stripe containing the data block to be modified;
(2) if the data block to be modified is located on the replacement storage unit, then:
(a) accessing all of the other blocks in the stripe containing the data block to be modified;
(b) reconstructing the data block to be modified from the accessed blocks;
(c) updating the at least one associated error-correction block in the stripe containing the data block to be modified;
(d) writing the updated at least one error-correction block and the new data block in the stripe containing the data block to be modified.
6. The method of claim 5, wherein the write operation step include the further steps of:
a. if the at least one error-correction block associated with the data block to be modified is located on the replacement storage unit, then:
(1) accessing all of the data blocks in the stripe containing the data block to be modified;
(2) computing at least one error-correction block from the accessed blocks and the new data block;
(3) writing the computed at least one error-correction block and the new data block in the stripe containing the data block to be modified.
a. if the at least one error-correction block associated with the data block to be modified is located on the replacement storage unit, then:
(1) accessing all of the data blocks in the stripe containing the data block to be modified;
(2) computing at least one error-correction block from the accessed blocks and the new data block;
(3) writing the computed at least one error-correction block and the new data block in the stripe containing the data block to be modified.
7. The method of claim 1, further including the steps of:
a. if the controller requests a write operation for a new data block during reconstruction, then:
(1) if the data block to be modified and its at least one associated error-correction block are not located on the replacement storage unit, then:
(a) updating the at least one associated error-correction block in the stripe containing the data block to be modified;
(b) writing the updated at least one error-correction block and the new data block in the stripe containing the data block to be modified;
(2) if the data block to be modified or its at least one associated error-correction block are located on the replacement storage unit, then:
(a) accessing all of the other data blocks in the stripe containing data block to be modified;
(b) computing at least one error-correction block from the accessed blocks and the new data block;
(c) writing the computed at least one error-correction block and the new data block in the stripe containing the data block to be modified.
a. if the controller requests a write operation for a new data block during reconstruction, then:
(1) if the data block to be modified and its at least one associated error-correction block are not located on the replacement storage unit, then:
(a) updating the at least one associated error-correction block in the stripe containing the data block to be modified;
(b) writing the updated at least one error-correction block and the new data block in the stripe containing the data block to be modified;
(2) if the data block to be modified or its at least one associated error-correction block are located on the replacement storage unit, then:
(a) accessing all of the other data blocks in the stripe containing data block to be modified;
(b) computing at least one error-correction block from the accessed blocks and the new data block;
(c) writing the computed at least one error-correction block and the new data block in the stripe containing the data block to be modified.
8. The method of claims 1, 2, or 4, wherein at least one error-correction block contains parity information, and the step of reconstructing each data block of the failed storage unit comprises the steps of:
a. accessing all of the other data blocks and the corresponding parity error-correction block in the corresponding stripe;
b. exclusively-OR'ing all of the accessed blocks to generate a new data block.
a. accessing all of the other data blocks and the corresponding parity error-correction block in the corresponding stripe;
b. exclusively-OR'ing all of the accessed blocks to generate a new data block.
9. The method of claims 2, 4, 5, or 7, wherein at least one error-correction block contains parity information, and the step of updating the at least one associated error-correction block during a write operation comprises the steps of:
a. reading the data block to be modified and the associated parity error-correction block;
b. exclusively-OR'ing the parity error-correction block with the data block to be modified and the new data block to generate an updated parity error-correction block.
a. reading the data block to be modified and the associated parity error-correction block;
b. exclusively-OR'ing the parity error-correction block with the data block to be modified and the new data block to generate an updated parity error-correction block.
10. The method of claims 3, 4, 6, or 7, wherein the step of computing at leastone error-correction block during a write operation comprises exclusively-OR'ing the accessed blocks and the new data block.
11. The method of claim 1, wherein the step of reconstructing the requested data block from the accessed blocks comprises exclusively-OR'ing the accessed blocks.
12. The method of claims 2 or 5, wherein the step of reconstructing the data block to be modified from the accessed blocks comprises exclusively-OR'ing the accessed block.
13. The method of claims 1, 5, or 7, wherein the requested data block is located on the replacement storage unit;
a. if the block has previously been reconstructed, then:
(1) accessing the requested data block directly;
(2) providing the requested data block to the controller;
b. otherwise:
(1) accessing all of the other data blocks and at least one corre-sponding error-correction block in the stripe containing the requested data block;
(2) reconstructing the requested data block from the accessed blocks;
(3) providing the reconstructed data block to the controller.
a. if the block has previously been reconstructed, then:
(1) accessing the requested data block directly;
(2) providing the requested data block to the controller;
b. otherwise:
(1) accessing all of the other data blocks and at least one corre-sponding error-correction block in the stripe containing the requested data block;
(2) reconstructing the requested data block from the accessed blocks;
(3) providing the reconstructed data block to the controller.
14. The method of claims 1, 2, or 4, wherein the step of reconstructing the data block of the failed storage unit for each stripe in the array is performed only for stripes that have not previously been reconstructed.
15. Control means for on-line reconstruction to a replacement storage unit of afailed data storage unit in a redundant array of storage units, the storage units having a plurality of stripes each containing a plurality of data blocks and an associated error-correction block, the control means being coupled to the array of storage units and including:
a. reconstruction means for reconstructing the data block of the failed storage unit for each stripe in the array and storing the reconstructed data block on the replacement storage unit in the corresponding stripe;
b. read operation means, for reading a requested data block during operation of the reconstruction means by:
(1) if the requested data block is located on the replacement storage unit then:
(a) accessing all of the other data blocks and the correspond-ing error-correction block in the stripe containing the requested data block;
(b) reconstructing the requested data block from the accessed blocks;
(c) providing the reconstructed data block to the control means:
(2) if the requested data block is not located on the replacement storage unit, then:
(a) accessing the requested data block directly;
(b) providing the requested data block to the control means.
a. reconstruction means for reconstructing the data block of the failed storage unit for each stripe in the array and storing the reconstructed data block on the replacement storage unit in the corresponding stripe;
b. read operation means, for reading a requested data block during operation of the reconstruction means by:
(1) if the requested data block is located on the replacement storage unit then:
(a) accessing all of the other data blocks and the correspond-ing error-correction block in the stripe containing the requested data block;
(b) reconstructing the requested data block from the accessed blocks;
(c) providing the reconstructed data block to the control means:
(2) if the requested data block is not located on the replacement storage unit, then:
(a) accessing the requested data block directly;
(b) providing the requested data block to the control means.
10. Control means for on-line reconstruction to a replacement storage unit of afailed data storage unit in a redundant array of storage units, the storage units having a plurality of stripes each containing a plurality of data blocks and an associated error-correction block, the control means being coupled to the array of storage units and including:
a. reconstruction means for reconstructing the data block of the failed storage unit for each stripe in the array and storing the reconstructed data block on the replacement storage unit in the corresponding stripe;
b. write operation means, for writing a new data block during operation of the reconstruction means by:
(1) if the data block to be modified and the associated error-correction block are not located on the replacement storage unit, then:
(a) updating the associated error-correction block in the stripe containing the data block to be modified;
(b) writing the updated error-correction block and the new data block in the stripe containing the data block to be modified;
(2) if the data block to be modified is located on the replacement storage unit, then:
(a) accessing all the other blocks in the strips containing the data block to modified;
(b) reconstructing the data block to be modified from the accessed blocks;
(c) updating the associated error-correction block in the stripe containing the data block to be modified;
(d) writing the updated error-correction block and the new da block in the stripe containing the dance block to be modified.
a. reconstruction means for reconstructing the data block of the failed storage unit for each stripe in the array and storing the reconstructed data block on the replacement storage unit in the corresponding stripe;
b. write operation means, for writing a new data block during operation of the reconstruction means by:
(1) if the data block to be modified and the associated error-correction block are not located on the replacement storage unit, then:
(a) updating the associated error-correction block in the stripe containing the data block to be modified;
(b) writing the updated error-correction block and the new data block in the stripe containing the data block to be modified;
(2) if the data block to be modified is located on the replacement storage unit, then:
(a) accessing all the other blocks in the strips containing the data block to modified;
(b) reconstructing the data block to be modified from the accessed blocks;
(c) updating the associated error-correction block in the stripe containing the data block to be modified;
(d) writing the updated error-correction block and the new da block in the stripe containing the dance block to be modified.
17. Control means for on-line reconstruction to a replacement storage unit of afailed data storage unit in a redundant array of storage units, the storage units having a plurality of stripes each containing a plurality of data blocks and an associated error-correction block, the control means being coupled to the array of storage units and including:
a. reconstruction means for reconstructing the data block of the failed storage unit for each stripe in the array and storing the reconstructed data block on the replacement storage unit in the corresponding stripe;
b. write operation means, for writing a new data block during operation of the reconstruction means, by:
(1) if the data block to be modified and its associated error-correction block are not located on the replacement storage unit, then:
(a) updating the associated error-correction block in the stripe containing the data block to be modified:
(b) writing the updated error-correction block and the new data block in the stripe containing the data block to be modified;
(2) if the data block to be modified or its associated error-correction block are located on the replacement storage until, then:
(a) accessing all of the other data blocks in the stripe containing the data block to be modified;
(b) computing a error-correction block and the new data block in the stripe containing the data block to be modified.
a. reconstruction means for reconstructing the data block of the failed storage unit for each stripe in the array and storing the reconstructed data block on the replacement storage unit in the corresponding stripe;
b. write operation means, for writing a new data block during operation of the reconstruction means, by:
(1) if the data block to be modified and its associated error-correction block are not located on the replacement storage unit, then:
(a) updating the associated error-correction block in the stripe containing the data block to be modified:
(b) writing the updated error-correction block and the new data block in the stripe containing the data block to be modified;
(2) if the data block to be modified or its associated error-correction block are located on the replacement storage until, then:
(a) accessing all of the other data blocks in the stripe containing the data block to be modified;
(b) computing a error-correction block and the new data block in the stripe containing the data block to be modified.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/601,912 US5208813A (en) | 1990-10-23 | 1990-10-23 | On-line reconstruction of a failed redundant array system |
US07/601,912 | 1990-10-23 |
Publications (1)
Publication Number | Publication Date |
---|---|
CA2053692A1 true CA2053692A1 (en) | 1992-04-24 |
Family
ID=24409250
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA002053692A Abandoned CA2053692A1 (en) | 1990-10-23 | 1991-10-18 | On-line reconstruction of a failed redundant array system |
Country Status (6)
Country | Link |
---|---|
US (2) | US5208813A (en) |
EP (2) | EP0831400A3 (en) |
JP (1) | JP2959901B2 (en) |
AU (1) | AU8590491A (en) |
CA (1) | CA2053692A1 (en) |
DE (1) | DE69130279T2 (en) |
Families Citing this family (340)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2603757B2 (en) * | 1990-11-30 | 1997-04-23 | 富士通株式会社 | Method of controlling array disk device |
US6874101B2 (en) * | 1991-01-31 | 2005-03-29 | Hitachi, Ltd. | Storage unit subsystem |
JP3409859B2 (en) * | 1991-01-31 | 2003-05-26 | 株式会社日立製作所 | Control method of control device |
US5345565A (en) * | 1991-03-13 | 1994-09-06 | Ncr Corporation | Multiple configuration data path architecture for a disk array controller |
JP2923702B2 (en) * | 1991-04-01 | 1999-07-26 | 株式会社日立製作所 | Storage device and data restoration method thereof |
US5506979A (en) * | 1991-04-02 | 1996-04-09 | International Business Machines Corporation | Method and means for execution of commands accessing variable length records stored on fixed block formatted DASDS of an N+2 DASD synchronous array |
US5258984A (en) * | 1991-06-13 | 1993-11-02 | International Business Machines Corporation | Method and means for distributed sparing in DASD arrays |
US5278838A (en) * | 1991-06-18 | 1994-01-11 | Ibm Corp. | Recovery from errors in a redundant array of disk drives |
JP2880000B2 (en) * | 1991-07-25 | 1999-04-05 | 三菱電機株式会社 | Array type disk drive system |
JP2913917B2 (en) | 1991-08-20 | 1999-06-28 | 株式会社日立製作所 | Storage device and storage device system |
US5522065A (en) * | 1991-08-30 | 1996-05-28 | Compaq Computer Corporation | Method for performing write operations in a parity fault tolerant disk array |
US5369758A (en) * | 1991-11-15 | 1994-11-29 | Fujitsu Limited | Checking for proper locations of storage devices in a storage array |
US5802264A (en) * | 1991-11-15 | 1998-09-01 | Fujitsu Limited | Background data reconstruction in a storage device array system |
US5974544A (en) * | 1991-12-17 | 1999-10-26 | Dell Usa, L.P. | Method and controller for defect tracking in a redundant array |
US5506977A (en) * | 1991-12-17 | 1996-04-09 | Dell Usa, L.P. | Method and controller for minimizing reads during partial stripe write operations to a disk drive |
US5313626A (en) * | 1991-12-17 | 1994-05-17 | Jones Craig S | Disk drive array with efficient background rebuilding |
US5341381A (en) * | 1992-01-21 | 1994-08-23 | Tandem Computers, Incorporated | Redundant array parity caching system |
US5337322A (en) * | 1992-03-02 | 1994-08-09 | Acer Incorporated | Method of processing stored data containing parity data |
US5469566A (en) * | 1992-03-12 | 1995-11-21 | Emc Corporation | Flexible parity generation circuit for intermittently generating a parity for a plurality of data channels in a redundant array of storage units |
JPH06509896A (en) * | 1992-05-12 | 1994-11-02 | セイコーエプソン株式会社 | scalable coprocessor |
US5471640A (en) * | 1992-07-06 | 1995-11-28 | Hewlett-Packard | Programmable disk array controller having n counters for n disk drives for stripping data where each counter addresses specific memory location by a count n |
JP3181398B2 (en) * | 1992-10-06 | 2001-07-03 | 三菱電機株式会社 | Array type recording device |
US5450415A (en) * | 1992-11-25 | 1995-09-12 | Matsushita Electric Industrial Co., Ltd. | Boundary scan cell circuit and boundary scan test circuit |
US5819109A (en) * | 1992-12-07 | 1998-10-06 | Digital Equipment Corporation | System for storing pending parity update log entries, calculating new parity, updating the parity block, and removing each entry from the log when update is complete |
US5689678A (en) * | 1993-03-11 | 1997-11-18 | Emc Corporation | Distributed storage array system having a plurality of modular control units |
US5574851A (en) * | 1993-04-19 | 1996-11-12 | At&T Global Information Solutions Company | Method for performing on-line reconfiguration of a disk array concurrent with execution of disk I/O operations |
GB2278228B (en) * | 1993-05-21 | 1997-01-29 | Mitsubishi Electric Corp | An arrayed recording apparatus |
US7174352B2 (en) | 1993-06-03 | 2007-02-06 | Network Appliance, Inc. | File system image transfer |
US6604118B2 (en) | 1998-07-31 | 2003-08-05 | Network Appliance, Inc. | File system image transfer |
JPH08511368A (en) * | 1993-06-04 | 1996-11-26 | ネットワーク・アプリアンス・コーポレーション | Method for forming parity in RAID subsystem using non-volatile memory |
US5581690A (en) * | 1993-06-29 | 1996-12-03 | Digital Equipment Corporation | Method and apparatus for preventing the use of corrupt data in a multiple disk raid organized storage system |
JP3249868B2 (en) * | 1993-11-19 | 2002-01-21 | 株式会社日立製作所 | Array type storage system |
EP0660236B1 (en) * | 1993-11-30 | 1999-06-09 | Hitachi, Ltd. | Disc array system having disc storage devices dispersed on plural boards and accessible at withdrawal of part of the boards |
US5485571A (en) * | 1993-12-23 | 1996-01-16 | International Business Machines Corporation | Method and apparatus for providing distributed sparing with uniform workload distribution in failures |
US5530948A (en) * | 1993-12-30 | 1996-06-25 | International Business Machines Corporation | System and method for command queuing on raid levels 4 and 5 parity drives |
US5446855A (en) * | 1994-02-07 | 1995-08-29 | Buslogic, Inc. | System and method for disk array data transfer |
US5537567A (en) * | 1994-03-14 | 1996-07-16 | International Business Machines Corporation | Parity block configuration in an array of storage devices |
JP2846837B2 (en) * | 1994-05-11 | 1999-01-13 | インターナショナル・ビジネス・マシーンズ・コーポレイション | Software-controlled data processing method for early detection of faults |
US5778167A (en) * | 1994-06-14 | 1998-07-07 | Emc Corporation | System and method for reassigning a storage location for reconstructed data on a persistent medium storage system |
US5657439A (en) * | 1994-08-23 | 1997-08-12 | International Business Machines Corporation | Distributed subsystem sparing |
JP3661205B2 (en) * | 1994-09-09 | 2005-06-15 | 株式会社日立製作所 | Disk array system and method for generating parity data of disk array system |
US5412668A (en) * | 1994-09-22 | 1995-05-02 | International Business Machines Corporation | Parity striping feature for optical disks |
US5623595A (en) * | 1994-09-26 | 1997-04-22 | Oracle Corporation | Method and apparatus for transparent, real time reconstruction of corrupted data in a redundant array data storage system |
US5581740A (en) * | 1994-10-04 | 1996-12-03 | Dell Usa, L.P. | System for reading CD ROM data from hard disks |
US5615352A (en) * | 1994-10-05 | 1997-03-25 | Hewlett-Packard Company | Methods for adding storage disks to a hierarchic disk array while maintaining data availability |
US5524204A (en) * | 1994-11-03 | 1996-06-04 | International Business Machines Corporation | Method and apparatus for dynamically expanding a redundant array of disk drives |
US5748885A (en) * | 1994-12-23 | 1998-05-05 | Emc Corporation | Method and apparatus for reduction of I/O operations in persistent storage system |
US5613085A (en) * | 1994-12-27 | 1997-03-18 | International Business Machines Corporation | System for parallel striping of multiple ordered data strings onto a multi-unit DASD array for improved read and write parallelism |
US5581566A (en) * | 1995-01-06 | 1996-12-03 | The Regents Of The Univ. Of California Office Of Technology Transfer | High-performance parallel interface to synchronous optical network gateway |
US5548712A (en) * | 1995-01-19 | 1996-08-20 | Hewlett-Packard Company | Data storage system and method for managing asynchronous attachment and detachment of storage disks |
JP2969251B2 (en) * | 1995-01-26 | 1999-11-02 | 日本アイ・ビー・エム株式会社 | Data storage system and parity generation method for data storage system |
JP3253473B2 (en) * | 1995-01-27 | 2002-02-04 | 富士通株式会社 | Method and apparatus for resynchronization processing of duplicated shared memory |
US6467054B1 (en) | 1995-03-13 | 2002-10-15 | Compaq Computer Corporation | Self test for storage device |
JPH08263226A (en) * | 1995-03-23 | 1996-10-11 | Toshiba Corp | Information storage device |
US5870630A (en) * | 1995-07-31 | 1999-02-09 | Hewlett-Packard Company | System for online SCSI drive repair utilizing detachable secondary I/O buses pigtailed to primary I/O bus wherein each secondary I/O bus has a length in excess of 100mm |
US5881249A (en) * | 1995-07-31 | 1999-03-09 | Hewlett-Packard Company | I/O bus |
DE69614460T2 (en) * | 1995-07-31 | 2002-06-06 | Hewlett Packard Co | Computer frame structure with module housing |
US5657468A (en) * | 1995-08-17 | 1997-08-12 | Ambex Technologies, Inc. | Method and apparatus for improving performance in a reduntant array of independent disks |
US5875456A (en) * | 1995-08-17 | 1999-02-23 | Nstor Corporation | Storage device array and methods for striping and unstriping data and for adding and removing disks online to/from a raid storage array |
US5809224A (en) * | 1995-10-13 | 1998-09-15 | Compaq Computer Corporation | On-line disk array reconfiguration |
US5961652A (en) * | 1995-10-13 | 1999-10-05 | Compaq Computer Corporation | Read checking for drive rebuild |
US5933592A (en) * | 1995-10-13 | 1999-08-03 | Digital Equipment Corporation | Promoting device level error to raidset level error to restore redundacy in a raid array data storage system |
US5826001A (en) * | 1995-10-13 | 1998-10-20 | Digital Equipment Corporation | Reconstructing data blocks in a raid array data storage system having storage device metadata and raid set metadata |
US5790775A (en) * | 1995-10-23 | 1998-08-04 | Digital Equipment Corporation | Host transparent storage controller failover/failback of SCSI targets and associated units |
US6449730B2 (en) | 1995-10-24 | 2002-09-10 | Seachange Technology, Inc. | Loosely coupled mass storage computer cluster |
US5862312A (en) * | 1995-10-24 | 1999-01-19 | Seachange Technology, Inc. | Loosely coupled mass storage computer cluster |
US5708771A (en) * | 1995-11-21 | 1998-01-13 | Emc Corporation | Fault tolerant controller system and method |
JP2981482B2 (en) * | 1995-12-06 | 1999-11-22 | 日本アイ・ビー・エム株式会社 | Data storage system, data transfer method and data reconstruction method |
US5787242A (en) * | 1995-12-29 | 1998-07-28 | Symbios Logic Inc. | Method and apparatus for treatment of deferred write data for a dead raid device |
US5742752A (en) * | 1995-12-29 | 1998-04-21 | Symbios Logic Inc. | Method for performing a RAID stripe write operation using a drive XOR command set |
US5805787A (en) * | 1995-12-29 | 1998-09-08 | Emc Corporation | Disk based disk cache interfacing system and method |
US5890214A (en) * | 1996-02-27 | 1999-03-30 | Data General Corporation | Dynamically upgradeable disk array chassis and method for dynamically upgrading a data storage system utilizing a selectively switchable shunt |
US5724501A (en) * | 1996-03-29 | 1998-03-03 | Emc Corporation | Quick recovery of write cache in a fault tolerant I/O system |
GB2312319B (en) * | 1996-04-15 | 1998-12-09 | Discreet Logic Inc | Video storage |
CA2201679A1 (en) | 1996-04-15 | 1997-10-15 | Raju C. Bopardikar | Video data storage |
US6055577A (en) * | 1996-05-06 | 2000-04-25 | Oracle Corporation | System for granting bandwidth for real time processes and assigning bandwidth for non-real time processes while being forced to periodically re-arbitrate for new assigned bandwidth |
US5819310A (en) * | 1996-05-24 | 1998-10-06 | Emc Corporation | Method and apparatus for reading data from mirrored logical volumes on physical disk drives |
US5857208A (en) * | 1996-05-31 | 1999-01-05 | Emc Corporation | Method and apparatus for performing point in time backup operation in a computer system |
US5764880A (en) * | 1996-09-10 | 1998-06-09 | International Business Machines Corporation | Method and system for rebuilding log-structured arrays |
US6041423A (en) * | 1996-11-08 | 2000-03-21 | Oracle Corporation | Method and apparatus for using undo/redo logging to perform asynchronous updates of parity and data pages in a redundant array data storage environment |
DE69724649T2 (en) * | 1996-11-14 | 2004-07-01 | Emc Corp., Hopkinton | DYNAMICALLY EXTENDABLE DISK ARRANGEMENT SYSTEM AND METHOD |
US5875478A (en) * | 1996-12-03 | 1999-02-23 | Emc Corporation | Computer backup using a file system, network, disk, tape and remote archiving repository media system |
US6032224A (en) * | 1996-12-03 | 2000-02-29 | Emc Corporation | Hierarchical performance system for managing a plurality of storage units with different access speeds |
US6460123B1 (en) | 1996-12-03 | 2002-10-01 | Emc Corporation | Mirroring computer data |
US6029231A (en) * | 1996-12-03 | 2000-02-22 | Emc Corporation | Retrieval of data stored on redundant disks across a network using remote procedure calls |
US5926836A (en) * | 1996-12-03 | 1999-07-20 | Emc Corporation | Computer and associated method for restoring data backed up on archive media |
US5889933A (en) * | 1997-01-30 | 1999-03-30 | Aiwa Co., Ltd. | Adaptive power failure recovery |
JP3428350B2 (en) * | 1997-03-14 | 2003-07-22 | 株式会社日立製作所 | Storage system |
US6154853A (en) * | 1997-03-26 | 2000-11-28 | Emc Corporation | Method and apparatus for dynamic sparing in a RAID storage system |
US5974503A (en) * | 1997-04-25 | 1999-10-26 | Emc Corporation | Storage and access of continuous media files indexed as lists of raid stripe sets associated with file names |
US5951691A (en) * | 1997-05-16 | 1999-09-14 | International Business Machines Corporation | Method and system for detection and reconstruction of corrupted data in a data storage subsystem |
US6571324B1 (en) * | 1997-06-26 | 2003-05-27 | Hewlett-Packard Development Company, L.P. | Warmswap of failed memory modules and data reconstruction in a mirrored writeback cache system |
US6021462A (en) * | 1997-08-29 | 2000-02-01 | Apple Computer, Inc. | Methods and apparatus for system memory efficient disk access to a raid system using stripe control information |
US6092215A (en) * | 1997-09-29 | 2000-07-18 | International Business Machines Corporation | System and method for reconstructing data in a storage array system |
US6151641A (en) * | 1997-09-30 | 2000-11-21 | Lsi Logic Corporation | DMA controller of a RAID storage controller with integrated XOR parity computation capability adapted to compute parity in parallel with the transfer of data segments |
US6032217A (en) | 1997-11-04 | 2000-02-29 | Adaptec, Inc. | Method for reconfiguring containers without shutting down the system and with minimal interruption to on-line processing |
JP2927282B2 (en) * | 1997-11-06 | 1999-07-28 | 日本電気株式会社 | Disk array device |
US6457130B2 (en) | 1998-03-03 | 2002-09-24 | Network Appliance, Inc. | File access control in a multi-protocol file server |
US6317844B1 (en) | 1998-03-10 | 2001-11-13 | Network Appliance, Inc. | File server storage arrangement |
US6505305B1 (en) * | 1998-07-16 | 2003-01-07 | Compaq Information Technologies Group, L.P. | Fail-over of multiple memory blocks in multiple memory modules in computer system |
US6343343B1 (en) | 1998-07-31 | 2002-01-29 | International Business Machines Corporation | Disk arrays using non-standard sector sizes |
US6279138B1 (en) | 1998-08-04 | 2001-08-21 | International Business Machines Corporation | System for changing the parity structure of a raid array |
US6128762A (en) * | 1998-08-04 | 2000-10-03 | International Business Machines Corporation | Updating and reading data and parity blocks in a shared disk system with request forwarding |
US6272662B1 (en) | 1998-08-04 | 2001-08-07 | International Business Machines Corporation | Distributed storage system using front-end and back-end locking |
US6446237B1 (en) | 1998-08-04 | 2002-09-03 | International Business Machines Corporation | Updating and reading data and parity blocks in a shared disk system |
US6446220B1 (en) | 1998-08-04 | 2002-09-03 | International Business Machines Corporation | Updating data and parity data with and without read caches |
US6332197B1 (en) | 1998-08-04 | 2001-12-18 | International Business Machines Corp. | System for updating data in a multi-adaptor environment |
US6119244A (en) | 1998-08-25 | 2000-09-12 | Network Appliance, Inc. | Coordinating persistent status information with multiple file servers |
GB2343265A (en) * | 1998-10-28 | 2000-05-03 | Ibm | Data storage array rebuild |
US6343984B1 (en) | 1998-11-30 | 2002-02-05 | Network Appliance, Inc. | Laminar flow duct cooling system |
US6493656B1 (en) * | 1999-02-26 | 2002-12-10 | Compaq Computer Corporation, Inc. | Drive error logging |
US6401214B1 (en) | 1999-03-04 | 2002-06-04 | International Business Machines Corporation | Preventive recovery action in hard disk drives |
US6466540B1 (en) | 1999-05-05 | 2002-10-15 | International Business Machines Corporation | Self-healing coupler for a serial raid device |
US6467048B1 (en) * | 1999-10-07 | 2002-10-15 | Compaq Information Technologies Group, L.P. | Apparatus, method and system for using cache memory as fail-over memory |
US6964008B1 (en) * | 1999-11-12 | 2005-11-08 | Maxtor Corporation | Data checksum method and apparatus |
GB0008319D0 (en) * | 2000-04-06 | 2000-05-24 | Discreet Logic Inc | Image processing |
US6654912B1 (en) * | 2000-10-04 | 2003-11-25 | Network Appliance, Inc. | Recovery of file system data in file servers mirrored file system volumes |
US6952797B1 (en) | 2000-10-25 | 2005-10-04 | Andy Kahn | Block-appended checksums |
US6941490B2 (en) * | 2000-12-21 | 2005-09-06 | Emc Corporation | Dual channel restoration of data between primary and backup servers |
US6317857B1 (en) * | 2001-01-12 | 2001-11-13 | Hewlett-Packard Company | System and method for utilizing checksums to recover data |
US6665830B2 (en) * | 2001-01-31 | 2003-12-16 | Hewlett-Packard Development Company, L.P. | System and method for building a checksum |
US6799284B1 (en) | 2001-02-28 | 2004-09-28 | Network Appliance, Inc. | Reparity bitmap RAID failure recovery |
US6668264B1 (en) | 2001-04-03 | 2003-12-23 | Network Appliance, Inc. | Resynchronization of a target volume with a source volume |
GB2374749B (en) * | 2001-04-20 | 2005-04-06 | Discreet Logic Inc | Image data processing |
US6957351B2 (en) * | 2001-07-03 | 2005-10-18 | International Business Machines Corporation | Automated disk drive library with removable media powered via contactless coupling |
US7346831B1 (en) | 2001-11-13 | 2008-03-18 | Network Appliance, Inc. | Parity assignment technique for parity declustering in a parity array of a storage system |
US6851082B1 (en) | 2001-11-13 | 2005-02-01 | Network Appliance, Inc. | Concentrated parity technique for handling double failures and enabling storage of more than one parity block per stripe on a storage device of a storage array |
JP3723960B2 (en) * | 2001-11-19 | 2005-12-07 | インターナショナル・ビジネス・マシーンズ・コーポレーション | EXTERNAL STORAGE DEVICE, EXTERNAL STORAGE DEVICE CONTROL METHOD, PROGRAM, AND RECORDING MEDIUM |
US7613984B2 (en) * | 2001-12-28 | 2009-11-03 | Netapp, Inc. | System and method for symmetric triple parity for failing storage devices |
US8402346B2 (en) * | 2001-12-28 | 2013-03-19 | Netapp, Inc. | N-way parity technique for enabling recovery from up to N storage device failures |
US7640484B2 (en) | 2001-12-28 | 2009-12-29 | Netapp, Inc. | Triple parity technique for enabling efficient recovery from triple failures in a storage array |
US6993701B2 (en) * | 2001-12-28 | 2006-01-31 | Network Appliance, Inc. | Row-diagonal parity technique for enabling efficient recovery from double failures in a storage array |
US7073115B2 (en) * | 2001-12-28 | 2006-07-04 | Network Appliance, Inc. | Correcting multiple block data loss in a storage array using a combination of a single diagonal parity group and multiple row parity groups |
US7080278B1 (en) | 2002-03-08 | 2006-07-18 | Network Appliance, Inc. | Technique for correcting multiple storage device failures in a storage array |
US7254813B2 (en) * | 2002-03-21 | 2007-08-07 | Network Appliance, Inc. | Method and apparatus for resource allocation in a raid system |
US7437727B2 (en) * | 2002-03-21 | 2008-10-14 | Network Appliance, Inc. | Method and apparatus for runtime resource deadlock avoidance in a raid system |
US7200715B2 (en) | 2002-03-21 | 2007-04-03 | Network Appliance, Inc. | Method for writing contiguous arrays of stripes in a RAID storage system using mapped block writes |
US7539991B2 (en) | 2002-03-21 | 2009-05-26 | Netapp, Inc. | Method and apparatus for decomposing I/O tasks in a raid system |
US7120826B2 (en) * | 2002-03-29 | 2006-10-10 | International Business Machines Corporation | Partial mirroring during expansion thereby eliminating the need to track the progress of stripes updated during expansion |
US6976146B1 (en) | 2002-05-21 | 2005-12-13 | Network Appliance, Inc. | System and method for emulating block appended checksums on storage devices by sector stealing |
US6857001B2 (en) * | 2002-06-07 | 2005-02-15 | Network Appliance, Inc. | Multiple concurrent active file systems |
US7024586B2 (en) * | 2002-06-24 | 2006-04-04 | Network Appliance, Inc. | Using file system information in raid data reconstruction and migration |
US7185144B2 (en) * | 2003-11-24 | 2007-02-27 | Network Appliance, Inc. | Semi-static distribution technique |
US7111147B1 (en) * | 2003-03-21 | 2006-09-19 | Network Appliance, Inc. | Location-independent RAID group virtual block management |
US7143235B1 (en) | 2003-03-21 | 2006-11-28 | Network Appliance, Inc. | Proposed configuration management behaviors in a raid subsystem |
US7664913B2 (en) * | 2003-03-21 | 2010-02-16 | Netapp, Inc. | Query-based spares management technique |
US7424637B1 (en) | 2003-03-21 | 2008-09-09 | Networks Appliance, Inc. | Technique for managing addition of disks to a volume of a storage system |
US7328364B1 (en) | 2003-03-21 | 2008-02-05 | Network Appliance, Inc. | Technique for coherent suspension of I/O operations in a RAID subsystem |
US7275179B1 (en) | 2003-04-24 | 2007-09-25 | Network Appliance, Inc. | System and method for reducing unrecoverable media errors in a disk subsystem |
US7143305B2 (en) * | 2003-06-25 | 2006-11-28 | International Business Machines Corporation | Using redundant spares to reduce storage device array rebuild time |
JP2005107839A (en) * | 2003-09-30 | 2005-04-21 | Toshiba Corp | Array controller and disk array rebuilding method |
US7266716B2 (en) * | 2003-10-23 | 2007-09-04 | Hewlett-Packard Development Company, L.P. | Method and recovery of data using erasure coded data from stripe blocks |
US7328305B2 (en) * | 2003-11-03 | 2008-02-05 | Network Appliance, Inc. | Dynamic parity distribution technique |
US7428691B2 (en) * | 2003-11-12 | 2008-09-23 | Norman Ken Ouchi | Data recovery from multiple failed data blocks and storage units |
US7366837B2 (en) * | 2003-11-24 | 2008-04-29 | Network Appliance, Inc. | Data placement technique for striping data containers across volumes of a storage system cluster |
US7647451B1 (en) | 2003-11-24 | 2010-01-12 | Netapp, Inc. | Data placement technique for striping data containers across volumes of a storage system cluster |
US7263629B2 (en) * | 2003-11-24 | 2007-08-28 | Network Appliance, Inc. | Uniform and symmetric double failure correcting technique for protecting against two disk failures in a disk array |
US20050193273A1 (en) * | 2004-02-18 | 2005-09-01 | Xiotech Corporation | Method, apparatus and program storage device that provide virtual space to handle storage device failures in a storage system |
US7162647B2 (en) * | 2004-03-11 | 2007-01-09 | Hitachi, Ltd. | Method and apparatus for cryptographic conversion in a data storage system |
JP4144549B2 (en) * | 2004-03-31 | 2008-09-03 | 日本電気株式会社 | Data storage system and control method of the system |
US20060075281A1 (en) * | 2004-09-27 | 2006-04-06 | Kimmel Jeffrey S | Use of application-level context information to detect corrupted data in a storage system |
US7321905B2 (en) * | 2004-09-30 | 2008-01-22 | International Business Machines Corporation | System and method for efficient data recovery in a storage array utilizing multiple parity slopes |
US7290199B2 (en) * | 2004-11-19 | 2007-10-30 | International Business Machines Corporation | Method and system for improved buffer utilization for disk array parity updates |
US7392458B2 (en) * | 2004-11-19 | 2008-06-24 | International Business Machines Corporation | Method and system for enhanced error identification with disk array parity checking |
US20060123271A1 (en) * | 2004-11-19 | 2006-06-08 | International Business Machines Corporation | RAID environment incorporating hardware-based finite field multiplier for on-the-fly XOR |
US20060123312A1 (en) * | 2004-11-19 | 2006-06-08 | International Business Machines Corporation | Method and system for increasing parallelism of disk accesses when restoring data in a disk array system |
US7392428B2 (en) * | 2004-11-19 | 2008-06-24 | International Business Machines Corporation | Method and system for recovering from abnormal interruption of a parity update operation in a disk array system |
US20060143412A1 (en) * | 2004-12-28 | 2006-06-29 | Philippe Armangau | Snapshot copy facility maintaining read performance and write performance |
US7386758B2 (en) * | 2005-01-13 | 2008-06-10 | Hitachi, Ltd. | Method and apparatus for reconstructing data in object-based storage arrays |
US7143308B2 (en) * | 2005-01-14 | 2006-11-28 | Charlie Tseng | Apparatus, system, and method for differential rebuilding of a reactivated offline RAID member disk |
US7398460B1 (en) | 2005-01-31 | 2008-07-08 | Network Appliance, Inc. | Technique for efficiently organizing and distributing parity blocks among storage devices of a storage array |
US7984018B2 (en) * | 2005-04-18 | 2011-07-19 | Microsoft Corporation | Efficient point-to-multipoint data reconciliation |
US7774542B2 (en) * | 2005-07-06 | 2010-08-10 | Ji Zhang | System and method for adaptive operation of storage capacities of RAID systems |
US8560503B1 (en) | 2006-01-26 | 2013-10-15 | Netapp, Inc. | Content addressable storage system |
US20070180292A1 (en) * | 2006-01-31 | 2007-08-02 | Bhugra Kern S | Differential rebuild in a storage environment |
US20080070688A1 (en) * | 2006-09-20 | 2008-03-20 | John Loehrer | Real-time gaming system having scalable database |
US7822921B2 (en) | 2006-10-31 | 2010-10-26 | Netapp, Inc. | System and method for optimizing write operations in storage systems |
US7613947B1 (en) | 2006-11-30 | 2009-11-03 | Netapp, Inc. | System and method for storage takeover |
US7647526B1 (en) | 2006-12-06 | 2010-01-12 | Netapp, Inc. | Reducing reconstruct input/output operations in storage systems |
US8370715B2 (en) * | 2007-04-12 | 2013-02-05 | International Business Machines Corporation | Error checking addressable blocks in storage |
US8209587B1 (en) | 2007-04-12 | 2012-06-26 | Netapp, Inc. | System and method for eliminating zeroing of disk drives in RAID arrays |
US7840837B2 (en) * | 2007-04-27 | 2010-11-23 | Netapp, Inc. | System and method for protecting memory during system initialization |
US8898536B2 (en) * | 2007-04-27 | 2014-11-25 | Netapp, Inc. | Multi-core engine for detecting bit errors |
US7836331B1 (en) | 2007-05-15 | 2010-11-16 | Netapp, Inc. | System and method for protecting the contents of memory during error conditions |
US7975102B1 (en) | 2007-08-06 | 2011-07-05 | Netapp, Inc. | Technique to avoid cascaded hot spotting |
EP2297742B1 (en) | 2008-05-16 | 2013-07-24 | Fusion-io, Inc. | Apparatus, system, and method for detecting and replacing failed data storage |
US8006128B2 (en) * | 2008-07-31 | 2011-08-23 | Datadirect Networks, Inc. | Prioritized rebuilding of a storage device |
US9158579B1 (en) | 2008-11-10 | 2015-10-13 | Netapp, Inc. | System having operation queues corresponding to operation execution time |
JP2010128572A (en) | 2008-11-25 | 2010-06-10 | Fuji Xerox Co Ltd | Data control device, storage device, and method of connecting data control device |
US8495417B2 (en) * | 2009-01-09 | 2013-07-23 | Netapp, Inc. | System and method for redundancy-protected aggregates |
EP2366148B1 (en) | 2009-04-21 | 2013-06-12 | International Business Machines Corporation | Apparatus and method for controlling a solid state disk ( ssd ) device |
US8307258B2 (en) | 2009-05-18 | 2012-11-06 | Fusion-10, Inc | Apparatus, system, and method for reconfiguring an array to operate with less storage elements |
US8281227B2 (en) | 2009-05-18 | 2012-10-02 | Fusion-10, Inc. | Apparatus, system, and method to increase data integrity in a redundant storage system |
US8849877B2 (en) | 2010-08-31 | 2014-09-30 | Datadirect Networks, Inc. | Object file system |
US8468318B2 (en) | 2010-09-15 | 2013-06-18 | Pure Storage Inc. | Scheduling of I/O writes in a storage environment |
US8732426B2 (en) | 2010-09-15 | 2014-05-20 | Pure Storage, Inc. | Scheduling of reactive I/O operations in a storage environment |
US11614893B2 (en) | 2010-09-15 | 2023-03-28 | Pure Storage, Inc. | Optimizing storage device access based on latency |
US11275509B1 (en) | 2010-09-15 | 2022-03-15 | Pure Storage, Inc. | Intelligently sizing high latency I/O requests in a storage environment |
US8589655B2 (en) | 2010-09-15 | 2013-11-19 | Pure Storage, Inc. | Scheduling of I/O in an SSD environment |
US8589625B2 (en) | 2010-09-15 | 2013-11-19 | Pure Storage, Inc. | Scheduling of reconstructive I/O read operations in a storage environment |
US8726070B2 (en) * | 2010-09-27 | 2014-05-13 | Dell Products L.P. | System and method for information handling system redundant storage rebuild |
US9244769B2 (en) | 2010-09-28 | 2016-01-26 | Pure Storage, Inc. | Offset protection data in a RAID array |
US8775868B2 (en) | 2010-09-28 | 2014-07-08 | Pure Storage, Inc. | Adaptive RAID for an SSD environment |
US11307930B1 (en) | 2010-11-29 | 2022-04-19 | Pure Storage, Inc. | Optimized selection of participants in distributed data rebuild/verification |
US10802763B2 (en) * | 2010-11-29 | 2020-10-13 | Pure Storage, Inc. | Remote storage verification |
US8589724B2 (en) | 2011-06-30 | 2013-11-19 | Seagate Technology Llc | Rapid rebuild of a data set |
US8589640B2 (en) | 2011-10-14 | 2013-11-19 | Pure Storage, Inc. | Method for maintaining multiple fingerprint tables in a deduplicating storage system |
US11636031B2 (en) | 2011-08-11 | 2023-04-25 | Pure Storage, Inc. | Optimized inline deduplication |
US8719540B1 (en) | 2012-03-15 | 2014-05-06 | Pure Storage, Inc. | Fractal layout of data blocks across multiple devices |
US9164841B2 (en) * | 2012-06-05 | 2015-10-20 | Cleversafe, Inc. | Resolution of a storage error in a dispersed storage network |
US8874956B2 (en) | 2012-09-18 | 2014-10-28 | Datadirect Networks, Inc. | Data re-protection in a distributed replicated data storage system |
US10623386B1 (en) | 2012-09-26 | 2020-04-14 | Pure Storage, Inc. | Secret sharing data protection in a storage system |
US11032259B1 (en) | 2012-09-26 | 2021-06-08 | Pure Storage, Inc. | Data protection in a storage system |
US8745415B2 (en) | 2012-09-26 | 2014-06-03 | Pure Storage, Inc. | Multi-drive cooperation to generate an encryption key |
US8843447B2 (en) | 2012-12-14 | 2014-09-23 | Datadirect Networks, Inc. | Resilient distributed replicated data storage system |
US11733908B2 (en) | 2013-01-10 | 2023-08-22 | Pure Storage, Inc. | Delaying deletion of a dataset |
US10908835B1 (en) | 2013-01-10 | 2021-02-02 | Pure Storage, Inc. | Reversing deletion of a virtual machine |
US9589008B2 (en) | 2013-01-10 | 2017-03-07 | Pure Storage, Inc. | Deduplication of volume regions |
US11768623B2 (en) | 2013-01-10 | 2023-09-26 | Pure Storage, Inc. | Optimizing generalized transfers between storage systems |
CN103970481B (en) * | 2013-01-29 | 2017-03-01 | 国际商业机器公司 | The method and apparatus rebuilding memory array |
US9020893B2 (en) | 2013-03-01 | 2015-04-28 | Datadirect Networks, Inc. | Asynchronous namespace maintenance |
US10365858B2 (en) | 2013-11-06 | 2019-07-30 | Pure Storage, Inc. | Thin provisioning in a storage device |
US11128448B1 (en) | 2013-11-06 | 2021-09-21 | Pure Storage, Inc. | Quorum-aware secret sharing |
US10263770B2 (en) | 2013-11-06 | 2019-04-16 | Pure Storage, Inc. | Data protection in a storage system using external secrets |
US9516016B2 (en) | 2013-11-11 | 2016-12-06 | Pure Storage, Inc. | Storage array password management |
US9208086B1 (en) | 2014-01-09 | 2015-12-08 | Pure Storage, Inc. | Using frequency domain to prioritize storage of metadata in a cache |
US10656864B2 (en) | 2014-03-20 | 2020-05-19 | Pure Storage, Inc. | Data replication within a flash storage array |
US20170132095A1 (en) * | 2014-03-28 | 2017-05-11 | Hewlett Packard Enterprise Development Lp | Data restoration |
US9513820B1 (en) | 2014-04-07 | 2016-12-06 | Pure Storage, Inc. | Dynamically controlling temporary compromise on data redundancy |
US9779268B1 (en) | 2014-06-03 | 2017-10-03 | Pure Storage, Inc. | Utilizing a non-repeating identifier to encrypt data |
US11399063B2 (en) | 2014-06-04 | 2022-07-26 | Pure Storage, Inc. | Network authentication for a storage system |
US9218244B1 (en) | 2014-06-04 | 2015-12-22 | Pure Storage, Inc. | Rebuilding data across storage nodes |
US9218407B1 (en) | 2014-06-25 | 2015-12-22 | Pure Storage, Inc. | Replication and intermediate read-write state for mediums |
US10496556B1 (en) | 2014-06-25 | 2019-12-03 | Pure Storage, Inc. | Dynamic data protection within a flash storage system |
US9563509B2 (en) | 2014-07-15 | 2017-02-07 | Nimble Storage, Inc. | Methods and systems for storing data in a redundant manner on a plurality of storage units of a storage system |
US10296469B1 (en) | 2014-07-24 | 2019-05-21 | Pure Storage, Inc. | Access control in a flash storage system |
US9558069B2 (en) | 2014-08-07 | 2017-01-31 | Pure Storage, Inc. | Failure mapping in a storage array |
US9495255B2 (en) | 2014-08-07 | 2016-11-15 | Pure Storage, Inc. | Error recovery in a storage cluster |
US9864761B1 (en) | 2014-08-08 | 2018-01-09 | Pure Storage, Inc. | Read optimization operations in a storage system |
US10430079B2 (en) | 2014-09-08 | 2019-10-01 | Pure Storage, Inc. | Adjusting storage capacity in a computing system |
US10176039B2 (en) | 2014-09-19 | 2019-01-08 | Micron Technology, Inc. | Self-accumulating exclusive OR program |
US10164841B2 (en) | 2014-10-02 | 2018-12-25 | Pure Storage, Inc. | Cloud assist for storage systems |
EP3201778A4 (en) * | 2014-10-03 | 2018-04-25 | Agency for Science, Technology and Research | Method for optimizing reconstruction of data for a hybrid object storage device |
US9489132B2 (en) | 2014-10-07 | 2016-11-08 | Pure Storage, Inc. | Utilizing unmapped and unknown states in a replicated storage system |
US10430282B2 (en) | 2014-10-07 | 2019-10-01 | Pure Storage, Inc. | Optimizing replication by distinguishing user and system write activity |
US9727485B1 (en) | 2014-11-24 | 2017-08-08 | Pure Storage, Inc. | Metadata rewrite and flatten optimization |
US9773007B1 (en) | 2014-12-01 | 2017-09-26 | Pure Storage, Inc. | Performance improvements in a storage system |
US9552248B2 (en) | 2014-12-11 | 2017-01-24 | Pure Storage, Inc. | Cloud alert to replica |
US9588842B1 (en) * | 2014-12-11 | 2017-03-07 | Pure Storage, Inc. | Drive rebuild |
US9864769B2 (en) | 2014-12-12 | 2018-01-09 | Pure Storage, Inc. | Storing data utilizing repeating pattern detection |
US10545987B2 (en) | 2014-12-19 | 2020-01-28 | Pure Storage, Inc. | Replication to the cloud |
US9672106B2 (en) | 2014-12-30 | 2017-06-06 | Nutanix, Inc. | Architecture for implementing erasure coding |
US9569357B1 (en) | 2015-01-08 | 2017-02-14 | Pure Storage, Inc. | Managing compressed data in a storage system |
US11947968B2 (en) | 2015-01-21 | 2024-04-02 | Pure Storage, Inc. | Efficient use of zone in a storage device |
US10296354B1 (en) | 2015-01-21 | 2019-05-21 | Pure Storage, Inc. | Optimized boot operations within a flash storage array |
US9710165B1 (en) | 2015-02-18 | 2017-07-18 | Pure Storage, Inc. | Identifying volume candidates for space reclamation |
US10082985B2 (en) | 2015-03-27 | 2018-09-25 | Pure Storage, Inc. | Data striping across storage nodes that are assigned to multiple logical arrays |
US10178169B2 (en) | 2015-04-09 | 2019-01-08 | Pure Storage, Inc. | Point to point based backend communication layer for storage processing |
US10140149B1 (en) | 2015-05-19 | 2018-11-27 | Pure Storage, Inc. | Transactional commits with hardware assists in remote memory |
US10310740B2 (en) | 2015-06-23 | 2019-06-04 | Pure Storage, Inc. | Aligning memory access operations to a geometry of a storage device |
US9547441B1 (en) | 2015-06-23 | 2017-01-17 | Pure Storage, Inc. | Exposing a geometry of a storage device |
US11341136B2 (en) | 2015-09-04 | 2022-05-24 | Pure Storage, Inc. | Dynamically resizable structures for approximate membership queries |
KR20170028825A (en) | 2015-09-04 | 2017-03-14 | 퓨어 스토리지, 아이앤씨. | Memory-efficient storage and searching in hash tables using compressed indexes |
US11269884B2 (en) | 2015-09-04 | 2022-03-08 | Pure Storage, Inc. | Dynamically resizable structures for approximate membership queries |
US9843453B2 (en) * | 2015-10-23 | 2017-12-12 | Pure Storage, Inc. | Authorizing I/O commands with I/O tokens |
WO2017151211A1 (en) * | 2016-02-29 | 2017-09-08 | Microsemi Storage Solutions (U.S.), Inc. | Method and system for handling random access write requests for a shingled magnetic recording hard disk drive |
US10133503B1 (en) | 2016-05-02 | 2018-11-20 | Pure Storage, Inc. | Selecting a deduplication process based on a difference between performance metrics |
US10452297B1 (en) | 2016-05-02 | 2019-10-22 | Pure Storage, Inc. | Generating and optimizing summary index levels in a deduplication storage system |
US10203903B2 (en) | 2016-07-26 | 2019-02-12 | Pure Storage, Inc. | Geometry based, space aware shelf/writegroup evacuation |
US10756816B1 (en) | 2016-10-04 | 2020-08-25 | Pure Storage, Inc. | Optimized fibre channel and non-volatile memory express access |
US10545861B2 (en) | 2016-10-04 | 2020-01-28 | Pure Storage, Inc. | Distributed integrated high-speed solid-state non-volatile random-access memory |
US20180095788A1 (en) * | 2016-10-04 | 2018-04-05 | Pure Storage, Inc. | Scheduling operations for a storage device |
US10191662B2 (en) | 2016-10-04 | 2019-01-29 | Pure Storage, Inc. | Dynamic allocation of segments in a flash storage system |
US10162523B2 (en) | 2016-10-04 | 2018-12-25 | Pure Storage, Inc. | Migrating data between volumes using virtual copy operation |
US10481798B2 (en) | 2016-10-28 | 2019-11-19 | Pure Storage, Inc. | Efficient flash management for multiple controllers |
US10185505B1 (en) | 2016-10-28 | 2019-01-22 | Pure Storage, Inc. | Reading a portion of data to replicate a volume based on sequence numbers |
US10359942B2 (en) | 2016-10-31 | 2019-07-23 | Pure Storage, Inc. | Deduplication aware scalable content placement |
US10567009B2 (en) | 2016-12-06 | 2020-02-18 | Nutanix, Inc. | Dynamic erasure coding |
US11550481B2 (en) | 2016-12-19 | 2023-01-10 | Pure Storage, Inc. | Efficiently writing data in a zoned drive storage system |
US10452290B2 (en) | 2016-12-19 | 2019-10-22 | Pure Storage, Inc. | Block consolidation in a direct-mapped flash storage system |
US11093146B2 (en) | 2017-01-12 | 2021-08-17 | Pure Storage, Inc. | Automatic load rebalancing of a write group |
US10528488B1 (en) | 2017-03-30 | 2020-01-07 | Pure Storage, Inc. | Efficient name coding |
US11403019B2 (en) | 2017-04-21 | 2022-08-02 | Pure Storage, Inc. | Deduplication-aware per-tenant encryption |
US10944671B2 (en) | 2017-04-27 | 2021-03-09 | Pure Storage, Inc. | Efficient data forwarding in a networked device |
US10402266B1 (en) | 2017-07-31 | 2019-09-03 | Pure Storage, Inc. | Redundant array of independent disks in a direct-mapped flash storage system |
US10831935B2 (en) | 2017-08-31 | 2020-11-10 | Pure Storage, Inc. | Encryption management with host-side data reduction |
US10776202B1 (en) | 2017-09-22 | 2020-09-15 | Pure Storage, Inc. | Drive, blade, or data shard decommission via RAID geometry shrinkage |
US10789211B1 (en) | 2017-10-04 | 2020-09-29 | Pure Storage, Inc. | Feature-based deduplication |
CN109725826B (en) * | 2017-10-27 | 2022-05-24 | 伊姆西Ip控股有限责任公司 | Method, apparatus and computer readable medium for managing storage system |
US10884919B2 (en) | 2017-10-31 | 2021-01-05 | Pure Storage, Inc. | Memory management in a storage system |
US10860475B1 (en) | 2017-11-17 | 2020-12-08 | Pure Storage, Inc. | Hybrid flash translation layer |
US11010233B1 (en) | 2018-01-18 | 2021-05-18 | Pure Storage, Inc | Hardware-based system monitoring |
US11144638B1 (en) | 2018-01-18 | 2021-10-12 | Pure Storage, Inc. | Method for storage system detection and alerting on potential malicious action |
US10970395B1 (en) | 2018-01-18 | 2021-04-06 | Pure Storage, Inc | Security threat monitoring for a storage system |
US10467527B1 (en) | 2018-01-31 | 2019-11-05 | Pure Storage, Inc. | Method and apparatus for artificial intelligence acceleration |
US11036596B1 (en) | 2018-02-18 | 2021-06-15 | Pure Storage, Inc. | System for delaying acknowledgements on open NAND locations until durability has been confirmed |
US11494109B1 (en) | 2018-02-22 | 2022-11-08 | Pure Storage, Inc. | Erase block trimming for heterogenous flash memory storage devices |
US11934322B1 (en) | 2018-04-05 | 2024-03-19 | Pure Storage, Inc. | Multiple encryption keys on storage drives |
US10678433B1 (en) | 2018-04-27 | 2020-06-09 | Pure Storage, Inc. | Resource-preserving system upgrade |
US11385792B2 (en) | 2018-04-27 | 2022-07-12 | Pure Storage, Inc. | High availability controller pair transitioning |
US10678436B1 (en) | 2018-05-29 | 2020-06-09 | Pure Storage, Inc. | Using a PID controller to opportunistically compress more data during garbage collection |
US11436023B2 (en) | 2018-05-31 | 2022-09-06 | Pure Storage, Inc. | Mechanism for updating host file system and flash translation layer based on underlying NAND technology |
US10776046B1 (en) | 2018-06-08 | 2020-09-15 | Pure Storage, Inc. | Optimized non-uniform memory access |
US11281577B1 (en) | 2018-06-19 | 2022-03-22 | Pure Storage, Inc. | Garbage collection tuning for low drive wear |
US10725941B2 (en) * | 2018-06-30 | 2020-07-28 | Western Digital Technologies, Inc. | Multi-device storage system with hosted services on peer storage devices |
US11869586B2 (en) | 2018-07-11 | 2024-01-09 | Pure Storage, Inc. | Increased data protection by recovering data from partially-failed solid-state devices |
US11194759B2 (en) | 2018-09-06 | 2021-12-07 | Pure Storage, Inc. | Optimizing local data relocation operations of a storage device of a storage system |
US11133076B2 (en) | 2018-09-06 | 2021-09-28 | Pure Storage, Inc. | Efficient relocation of data between storage devices of a storage system |
US10846216B2 (en) | 2018-10-25 | 2020-11-24 | Pure Storage, Inc. | Scalable garbage collection |
US11113409B2 (en) | 2018-10-26 | 2021-09-07 | Pure Storage, Inc. | Efficient rekey in a transparent decrypting storage array |
US11194473B1 (en) | 2019-01-23 | 2021-12-07 | Pure Storage, Inc. | Programming frequently read data to low latency portions of a solid-state storage array |
US11588633B1 (en) | 2019-03-15 | 2023-02-21 | Pure Storage, Inc. | Decommissioning keys in a decryption storage system |
US11334254B2 (en) | 2019-03-29 | 2022-05-17 | Pure Storage, Inc. | Reliability based flash page sizing |
US11397674B1 (en) | 2019-04-03 | 2022-07-26 | Pure Storage, Inc. | Optimizing garbage collection across heterogeneous flash devices |
US11775189B2 (en) | 2019-04-03 | 2023-10-03 | Pure Storage, Inc. | Segment level heterogeneity |
US10990480B1 (en) | 2019-04-05 | 2021-04-27 | Pure Storage, Inc. | Performance of RAID rebuild operations by a storage group controller of a storage system |
US11099986B2 (en) | 2019-04-12 | 2021-08-24 | Pure Storage, Inc. | Efficient transfer of memory contents |
US11487665B2 (en) | 2019-06-05 | 2022-11-01 | Pure Storage, Inc. | Tiered caching of data in a storage system |
US11281394B2 (en) | 2019-06-24 | 2022-03-22 | Pure Storage, Inc. | Replication across partitioning schemes in a distributed storage system |
US10929046B2 (en) | 2019-07-09 | 2021-02-23 | Pure Storage, Inc. | Identifying and relocating hot data to a cache determined with read velocity based on a threshold stored at a storage device |
US11422751B2 (en) | 2019-07-18 | 2022-08-23 | Pure Storage, Inc. | Creating a virtual storage system |
US11086713B1 (en) | 2019-07-23 | 2021-08-10 | Pure Storage, Inc. | Optimized end-to-end integrity storage system |
US11963321B2 (en) | 2019-09-11 | 2024-04-16 | Pure Storage, Inc. | Low profile latching mechanism |
US11403043B2 (en) | 2019-10-15 | 2022-08-02 | Pure Storage, Inc. | Efficient data compression by grouping similar data within a data segment |
US11615185B2 (en) | 2019-11-22 | 2023-03-28 | Pure Storage, Inc. | Multi-layer security threat detection for a storage system |
US11720692B2 (en) | 2019-11-22 | 2023-08-08 | Pure Storage, Inc. | Hardware token based management of recovery datasets for a storage system |
US11625481B2 (en) | 2019-11-22 | 2023-04-11 | Pure Storage, Inc. | Selective throttling of operations potentially related to a security threat to a storage system |
US11341236B2 (en) | 2019-11-22 | 2022-05-24 | Pure Storage, Inc. | Traffic-based detection of a security threat to a storage system |
US11755751B2 (en) | 2019-11-22 | 2023-09-12 | Pure Storage, Inc. | Modify access restrictions in response to a possible attack against data stored by a storage system |
US11500788B2 (en) | 2019-11-22 | 2022-11-15 | Pure Storage, Inc. | Logical address based authorization of operations with respect to a storage system |
US11687418B2 (en) | 2019-11-22 | 2023-06-27 | Pure Storage, Inc. | Automatic generation of recovery plans specific to individual storage elements |
US11675898B2 (en) | 2019-11-22 | 2023-06-13 | Pure Storage, Inc. | Recovery dataset management for security threat monitoring |
US11651075B2 (en) | 2019-11-22 | 2023-05-16 | Pure Storage, Inc. | Extensible attack monitoring by a storage system |
US11657155B2 (en) | 2019-11-22 | 2023-05-23 | Pure Storage, Inc | Snapshot delta metric based determination of a possible ransomware attack against data maintained by a storage system |
US11645162B2 (en) | 2019-11-22 | 2023-05-09 | Pure Storage, Inc. | Recovery point determination for data restoration in a storage system |
US11520907B1 (en) | 2019-11-22 | 2022-12-06 | Pure Storage, Inc. | Storage system snapshot retention based on encrypted data |
US11720714B2 (en) | 2019-11-22 | 2023-08-08 | Pure Storage, Inc. | Inter-I/O relationship based detection of a security threat to a storage system |
US11941116B2 (en) | 2019-11-22 | 2024-03-26 | Pure Storage, Inc. | Ransomware-based data protection parameter modification |
CN116719484A (en) * | 2023-08-09 | 2023-09-08 | 苏州浪潮智能科技有限公司 | Method, device, equipment and medium for processing write data of disk array |
CN117008845B (en) * | 2023-09-27 | 2024-01-26 | 苏州元脑智能科技有限公司 | Method and device for dividing read-write instruction, storage medium and electronic device |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3893178A (en) * | 1973-12-19 | 1975-07-01 | Information Storage Systems | Synchronization of multiple disc drives |
US4092732A (en) * | 1977-05-31 | 1978-05-30 | International Business Machines Corporation | System for recovering data stored in failed memory unit |
US4467421A (en) * | 1979-10-18 | 1984-08-21 | Storage Technology Corporation | Virtual storage system and method |
US4562576A (en) * | 1982-08-14 | 1985-12-31 | International Computers Limited | Data storage apparatus |
FR2561428B1 (en) * | 1984-03-16 | 1986-09-12 | Bull Sa | DISC MEMORY RECORDING METHOD AND DISC MEMORY SYSTEM |
US4667326A (en) * | 1984-12-20 | 1987-05-19 | Advanced Micro Devices, Inc. | Method and apparatus for error detection and correction in systems comprising floppy and/or hard disk drives |
US4754397A (en) * | 1985-02-15 | 1988-06-28 | Tandem Computers Incorporated | Fault tolerant modular subsystems for computers |
JPS61264599A (en) * | 1985-05-16 | 1986-11-22 | Fujitsu Ltd | Semiconductor memory device |
US4722085A (en) * | 1986-02-03 | 1988-01-26 | Unisys Corp. | High capacity disk storage system having unusually high fault tolerance level and bandpass |
US4761785B1 (en) * | 1986-06-12 | 1996-03-12 | Ibm | Parity spreading to enhance storage access |
US4775978A (en) * | 1987-01-12 | 1988-10-04 | Magnetic Peripherals Inc. | Data error correction system |
US4870643A (en) * | 1987-11-06 | 1989-09-26 | Micropolis Corporation | Parallel drive array storage system |
US4899342A (en) * | 1988-02-01 | 1990-02-06 | Thinking Machines Corporation | Method and apparatus for operating multi-unit array of memories |
US4993030A (en) * | 1988-04-22 | 1991-02-12 | Amdahl Corporation | File system for a plurality of storage classes |
US4989206A (en) * | 1988-06-28 | 1991-01-29 | Storage Technology Corporation | Disk drive memory |
US4914656A (en) * | 1988-06-28 | 1990-04-03 | Storage Technology Corporation | Disk drive memory |
AU630635B2 (en) * | 1988-11-14 | 1992-11-05 | Emc Corporation | Arrayed disk drive system and method |
US5007053A (en) * | 1988-11-30 | 1991-04-09 | International Business Machines Corporation | Method and apparatus for checksum address generation in a fail-safe modular memory |
US5134619A (en) * | 1990-04-06 | 1992-07-28 | Sf2 Corporation | Failure-tolerant mass storage system |
US5088081A (en) * | 1990-03-28 | 1992-02-11 | Prime Computer, Inc. | Method and apparatus for improved disk access |
US5130992A (en) * | 1990-04-16 | 1992-07-14 | International Business Machines Corporaiton | File-based redundant parity protection in a parallel computing system |
JPH0731582B2 (en) * | 1990-06-21 | 1995-04-10 | インターナショナル・ビジネス・マシーンズ・コーポレイション | Method and apparatus for recovering parity protected data |
-
1990
- 1990-10-23 US US07/601,912 patent/US5208813A/en not_active Expired - Lifetime
-
1991
- 1991-10-15 DE DE69130279T patent/DE69130279T2/en not_active Expired - Lifetime
- 1991-10-15 EP EP97119628A patent/EP0831400A3/en not_active Withdrawn
- 1991-10-15 EP EP91309497A patent/EP0482819B1/en not_active Expired - Lifetime
- 1991-10-17 AU AU85904/91A patent/AU8590491A/en not_active Abandoned
- 1991-10-18 CA CA002053692A patent/CA2053692A1/en not_active Abandoned
- 1991-10-23 JP JP3339291A patent/JP2959901B2/en not_active Expired - Lifetime
-
1993
- 1993-02-16 US US08/017,826 patent/US5390187A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US5390187A (en) | 1995-02-14 |
EP0482819A2 (en) | 1992-04-29 |
EP0482819B1 (en) | 1998-09-30 |
DE69130279T2 (en) | 1999-06-17 |
JP2959901B2 (en) | 1999-10-06 |
US5208813A (en) | 1993-05-04 |
EP0831400A2 (en) | 1998-03-25 |
AU8590491A (en) | 1992-05-07 |
DE69130279D1 (en) | 1998-11-05 |
EP0831400A3 (en) | 2000-10-11 |
JPH05143471A (en) | 1993-06-11 |
EP0482819A3 (en) | 1993-01-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2053692A1 (en) | On-line reconstruction of a failed redundant array system | |
KR100985444B1 (en) | Data storage array | |
JP5923964B2 (en) | Disk array device, control device, and program | |
JP3304115B2 (en) | Configurable redundant array storage | |
JPWO2006123416A1 (en) | Disk failure recovery method and disk array device | |
US6546499B1 (en) | Redundant array of inexpensive platters (RAIP) | |
US7562281B2 (en) | Autonomic parity exchange | |
TWI295021B (en) | Storage system and method for handling bad storage device data therefor | |
Menon et al. | Comparison of sparing alternatives for disk arrays | |
US20040123032A1 (en) | Method for storing integrity metadata in redundant data layouts | |
TW200532449A (en) | Efficient media scan operations for storage systems | |
JPH0736143B2 (en) | Record update method, single-pass access guarantee method, and system | |
JPH06504863A (en) | Storage array with copyback cache | |
TWI259355B (en) | Method and apparatus for preservation of failure state in a read destructive memory | |
US20050283654A1 (en) | Method and apparatus for decreasing failed disk reconstruction time in a raid data storage system | |
JPH03240123A (en) | Array disk device | |
JP2006252328A (en) | Disk array controller, storage system and disk array control method | |
TWI278745B (en) | Raid consistency initialization method | |
CN106227463A (en) | RAID model, reading and writing data and method for reconstructing thereof | |
CN104461373A (en) | Method and device for processing data of RAID (redundant array of independent disks) | |
US11606442B2 (en) | Subscription to edits of blockchain transaction | |
JPH0916343A (en) | Disk drive system | |
JP2004326357A (en) | Storage system with redundant block, as well as control device, control method, program and recording medium for the storage system | |
TWI272581B (en) | Optical disk drive, optical disk, security control method for optical disk drive | |
JP2001156649A (en) | Digital data coding processing circuit, coding processing method, and digital data recorder provided with coding processing circuit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FZDE | Discontinued |