Technologie diskových polí
Roku 1987, publikovali Patterson, Gibson a Katz na University of California Berkeley, článek "A Case for Redundant Arrays of Inexpensive Disks (RAID)" . Popisují v něm různé typy diskových polí, označovaných akronymem RAID. Základní ideou RAID je, spojit větší množství levných disků do jednoho pole, se kterým by systém pracoval jako s jedním fyzickým diskem. Mean Time Between Failure (MTBF) pole, by bylo stejné jako MTBF jednoho disku, dělené počtem disků. Pole by mělo dále dávat různé možnosti zachování dat. V článku bylo definováno 5 typů architektury RAID-1 až RAID-5, které umožňují různé typy zálohování dat nebo výkonu. K těmto pěti základním typům se přidává ještě non-redundantní pole RAID-0. Vzhledem k tomu, že pevný disk je složité zařízení kombinující elektroniku a jemnou mechaniku, je již ze svého principu náchylný k poruše. Toto je nepříjemné zejména u serverů, kde jednak cena uložených dat může představovat mnohamilionové částky, jednak - i při pravidelném zálohování - jen odstávka serveru spojená s opravou a obnovou dat představuje značnou ztrátu na prostojích mnoha uživatelů. Proto byla zkonstruována disková pole, kde se pomocí speciálního řadiče více disků fyzických navenek jeví jako jeden disk logický. Dalším důvodem použití pole je vytvoření větší diskové kapacity, než se vyrábí v podobě samostatného disku. Pole se ve zkratce nazývají RAID. Nejprve to znamenalo Redundant Array of Inexpensive Disks, dnes se zkratka překládá spíše jako Redundant Array of Independent Disks. Pro vyjasnění terminologie byly definovány tzv. úrovně RAID. Některé se s vývojem techniky již přestaly používat. V současné době jsou nejpoužívanější úrovně RAID 0,1 a 5. Celé diskové pole se zvenčí chová jako jeden pevný disk. Při poruše jednoho z pevných disků se dříve muselo pole odstavit a vypnout, vadný disk vyměnit za nový a opět spustit. Potom se zrekonstruovaly data na tento nový disk a až potom bylo pole připraveno vrátit se zpět do provozu. Proto se nejprve začaly data rekonstruovat přímo za provozu, přesto bylo nutné při výměně disku celé pole vypínat. Proto byla zavedena funkce Hot Swap, která umožňuje výměnu pevného disku za chodu celého pole.
Disková pole lze dělit na dva typy podle místa vzniku RAID funkce na hardwarové a softwarové. První typ obsahuje vedle pevných disků i speciální elektroniku, která zabezpečuje vznik vlastních RAID vlastností. Softwarové RAID pole je sestaveno z pevných disků a speciálního programu, který z nich RAID pole teprve vytváří Obecně se dá říct, že RAID se používá ke zvýšení výkonu a/nebo spolehlivosti pevných disků. RAID 0 pole je určeno pro zvýšení výkonu systému pevných disků. Princip je v podstatě jednoduchý. Označuje se jako “Stripping”, používá dva (nebo více) pevných disků pro znásobeni rychlosti čtení a zápisu dat. Data (soubory) jsou RAID řadičem rozdělena a ukládána současně na oba disky - polovina souboru na jeden disk, druhá polovina na druhý disk. Data jsou dělena “za běhu” na menší části o určité velikosti (např. 8 KB) a ty jsou ukládány na oba disky současně. Neznamená to tedy, že první polovina souboru je na prvním disku, druhá polovina na druhém. Uložení 100 MB souboru na RAID 0 pole se dvěma disky zabere přibližně stejnou dobu jako uložení 50 MB souboru na jeden disk. Obdobné je to samozřejmě se čtením dat. Pro představu, RAID 0 funguje podobně, jako když hadicí napouštíte bazén. Použijete li dvě (stejné) hadice, bazén se naplní dvakrát rychleji (vzpomínáte si na slovní úlohy ze základní školy?). RAID 0 tedy nezvyšuje spolehlivost uložených dat, odejde-li vám jeden disk, pak s největší pravděpodobností přijdete také o
všechna data. Pro RAID 0 je vhodné používat stejné disky, co do kapacity i výkonu, nejlépe tedy dva identické disky. Výkon a kapacita je dána “slabším diskem”. Je logické, že rychlejší disk by stejně musel čekat na pomalejší. Použijete-li např. jeden 4 GB a jeden 6 GB disk, využijí se z druhého disku pouze 4 GB a celková kapacita takového RAID 0 pole je 8 GB. Disků můžete samozřejmě použít více, dosáhnete tím ještě vyššího výkonu, přičemž opět platí pravidlo “nejlépe použít stejné disky”. Kapacita RAID 0 pole je dána kapacitou nejmenšího disku násobenou jejich počtem. Víc disků tedy znamená větší kapacitu (až na extrémní případy, kdy použijete třeba dva 10 GB disky a jeden 1 GB – výsledná kapacita pak je 3 GB).
Toto pole není redundantní. Ztráta jednoho disku znamená ztrátu celého pole. Důvodem použití je výkon, tedy zvýšení přenosové rychlosti nebo propustnosti dat tam, kde na uchování dat nezáleží tak, jako na rychlosti, například při stříhání videa.
RAID 1 pole je naopak určeno pro zvýšení spolehlivosti uložených dat, označuje se jako “Mirroring”. Už z názvu je zřejmý princip – data jsou ukládána současně na dva (nebo více) pevné disky, přičemž na všechny disky jsou ukládána stejná data. To znamená, že všechny disky použité v RAID 1 obsahují identická data a pokud jeden z nich “klekne”, nahradí ho jiný disk. U RAID 1 pole je celková kapacita dána velikostí nejmenšího disku (ničím nenásobená). Druhý (třetí, čtvrtý…) disk v poli nezvyšuje kapacitu, ale spolehlivost tím, že vytváří kompletní a rychle přístupnou zálohu dat. I pro RAID 1 pole je vhodné použít disky o stejné kapacitě a výkonu.
Raid 1 je známé “zrcadlení”, kdy se na dva disky stejných kapacit ukládají totožné informace a při výpadku jednoho disku se bez přerušení pokračuje v činnosti. Jednoduchá implementace, často čistě softwarová, zato je potřeba 100% diskové kapacity navíc. Z
hlediska výkonu pomalejší zápis (zapisuje se 2x), rychlejší čtení (řadič může střídat požadavky mezi disky, “rozdávat práci”). RAID 0/1 pole je kombinací obou výše popsaných. Jedná se vlastně o to, že vytvoříte RAID 0 pole a to pak zrcadlíte RAID 1 polem. Výsledkem jsou vlastně dvě RAID 0 pole obsahující identická data. RAID 0/1 zvyšuje jak výkon, tak spolehlivost, musíte ovšem použít nejméně čtyři disky, nejlépe opět se stejnými parametry. Některé RAID řadiče nabízejí další možnost, jak využít více disků. Jedná se o tzv. “Spanning”, neboli spojení několika fyzických disků do jednoho (velkého) logického celku. Použít lze libovolné disky, kapacita je dána prostým součtem kapacit jednotlivých disků. Tuto funkci však nabízejí i některé operační systémy (např. Windows NT, Windows 2000). Jak se v praxi projeví zvýšení výkonu použitím pole se můžete přesvědčit na HardwareCentral. V syntetických benchmarcích je zvýšení výkonu opravdu výrazné, v praktických aplikacích už to tak žhavé není. Ve hrách se zvýšení výkonu neprojeví vyšším počtem snímků za sekundu, ale rychlejším startem a načítáním jednotlivých map. Také je třeba podotknout, že se nijak nezmění přístupová doba, ani přes RAID nelze k disku přistupovat dříve, než to on sám dovolí.
RAID 2 pouze přidává do základního RAID 0 pole dodatečnou ochranu dat pomocí ECC korekce (Error Checking and Correction). Vyžaduje však podporu ze strany pevných disků, proto se tato metoda komerčně nijak výrazněji nerozšířila.
RAID 3 opět vychází ze “stripped” pole, používá však praktičtější metodu ochrany dat – ukládá paritní informace na vyhrazený disk. Na ostatní disky jsou data ukládána v malých “proužcích” (na úrovni bajtů). Z každého disku v poli je vždy pro každý bit na stejné pozici (v bajtu) vypočítána parita (funkcí XOR – exclusive OR) a uložena na “paritní disk”. Při výpadku jednoho disku je pak možné z dat uložených na zbývajících discích a paritních informací dopočítat ztracená data (po výměně vadného disku za nový). Proces dopočítání ztracených dat si samozřejmě vyžádá nějaký čas a hlavně výpočetní výkon, takže po dobu rekonstrukce dat je výkon celého systému poněkud snížen a stejně tak jeho schopnost vytvářet paritní informace. výkon RAID 3 trpí při zápisu nutností přečíst paritní data z vyhrazeného disku a znovu je na něj uložit. Zápis je tak o něco pomalejší a paritní disk je limitujícím členem RAID 3. Při čtení je výkon RAID 3 vyšší než při použití jediného disku,
protože data jsou čtena paralelně z několika disků najednou, podobně jako u RAID 0 pole. Pouze v případě aplikací vyžadujících krátké úseky dat (typicky databáze) není výkon RAID 3 o mnoho vyšší ve srovnání s jediným diskem. Jak funguje výpočet parity je vidět v následujíc tabulce. Řádky odpovídají bajtům uloženým na jednotlivých discích, parita je počítána ve sloupcích pro každý jednotlivý bit.
Disk 1 Disk 2 Disk 3 Parita
Bit 0
Bit 1
Bit 2
Bit 3
Bit 4
Bit 5
Bit 6
0 1 0 1
1 1 1 1
0 1 0 1
0 0 1 1
1 1 0 0
0 0 0 0
1 0 0 1
Bit 7 0 0 1 1
RAID 4 se velmi podobá předchozímu RAID 3. Také používá dva nebo více disků pro uložení informací a jeden vyhrazený disk pro uložení paritních informací. Používá však dostatečnou velikost “proužku” pro uložení celého záznamu (pracuje na úrovni bloků). To umožňuje přistupovat k uloženým informacím nezávisle, což je výhodné pro čtení velkého množství malých bloků dat (např. pro databázové systémy). Stále ale trpí stejným problémem při zápisu jako RAID 3.
RAID 5 je oblíbeným typem diskového pole, protože překonává některé nedostatky RAID 3 a 4. Stejně jako ony, je i u RAID 5 ukládána paritní informace, nikoli však na jeden vyhrazený disk, ale je rozložena na všech discích v poli. Zápis je proto rychlejší než na RAID 3 nebo 4, nicméně stále je při zápisu třeba přečíst paritní informace, přepočítat je a znovu uložit. Ve srovnání s RAID 0 je tedy zápis v RAID 5 o něco pomalejší. Výkon při čtení je možné optimalizovat nastavením velikosti bloku ukládaných dat pro aplikaci, která je nejčastěji používána. Chyba disku a jeho výměna za nový opět způsobí zpomalení systému v důsledku dopočítávání ztracených dat. Cena RAID 3, 4 a 5 polí je prakticky stejná, vždy potřebujete jeden disk navíc pro uložení paritních informací.
RAID 5 ukládá data po blocích na různé disky a zároveň k nim dopočítává tzv. paritu, kterou střídavě ukládá na různé disky. Tak je dosaženo jak bezpečnosti dat vůči poruše disku (chybějící data se dají z parity vypočítat) i urychlení práce s daty (paralelizací operací čtení/zápisu). RAID 5 se používá všude tam, kde je potřeba docílit ochrany dat a vysokého výkonu. Výhodou je, že čím je v poli větší počet disků, tím roste efektivita ukládání dat.
Paritu lze spočítat buď tak, že skutečně načteme a XORujeme data z odpovídajících datových stripů všech disků (takto se parita počítá při inicializaci pole, vyžaduje to tedy přístup ke všem diskům). Ve druhém případě načteme původní data z datového stripu, která se mají změnit, provedeme XOR s novými daty a výsledek ještě XORujeme s původní hodnotou parity (takto se parita počítá na již inicializovaném běžícím poli). Zápis dat tedy představuje dvoje čtení (dat a parity), výpočet parity a dvojí zápis (opět dat a parity). Počet přístupů na disk při zápisu je v tomto případě konstantní bez ohledu na počet disků v poli přistupuje se vždy ke dvěma diskům - a to také má za následek nižší výkon tohoto typu pole ve srovnání s redundantním RAIDem 1. Redundantní pole s distribuovanou paritou. Minimální počet disků jsou 3. Režie je 1 disk z ndiskového pole. Máme-li například pole RAID 5 z 5 disků o kapacitě 36 GB, užitečná kapacita je 4x36=144 GB a 1 disk je režie. Data se zapisují postupně na disky 0,1... až na poslední disk se zapíše parita. Při výpadku některého disku pak máme buď všechna data (a nepotřebujeme paritu), nebo máme část dat a paritu a chybějící data ze ztraceného disku umíme dopočítat z dat, která máme a parity. RAID 6 je posledním (nehybridním) diskovým polem. Podobně jako RAID 5 využívá rozprostření paritních informací na všech discích v poli, vytváří však dvě nezávisle vypočtené paritní informace. RAID 6 je díky tomu nejspolehlivější a i při výpadku dvou disků lze data znovu zrekonstruovat. Rychlost čtení je srovnatelná s RAID 5, avšak zápis je o něco pomalejší, protože je nutné vypočítat a uložit dvě sady paritních informací. Také cena RAID pole je o něco vyšší, používá se proto jen tam, kde je kladen opravdu maximální důraz na spolehlivost a přístupnost dat.
Jednotlivé typy diskových RAID polí už jsme si prošli, zbývá ještě zmínit se o hybridních typech, které kombinují dva z již uvedených typů. V hybridních RAID polích se využívá základního RAID 0 pole, které je kombinováno s dalším typem zajišťujícím ochranu dat. Každý soubor je rozdělen v RAID 0 poli mezi dva a více “disky”, které jsou ovšem tvořeny dalším RAID polem.
RAID 7 Veškeré I/O operace jsou asynchronní, nezávisle řízené
Čtení a zápis probíhá centrálně přes rzchlý X-bus
Paritní disk může být na jakémkoli kanálu.
Plně implementovaný proces orientovaný na průběh I/O operací v reálném čase. Proces je řízen vlastním procesosorem s OS.
Embedded real time operating system controlled communications channel
Otevřený systém, je možno použít SCSI disky, standardní PC bus, M/B i RAM.
Rychlý interní cache, parita integrována v cache
Více zapojených disků může být deklarováno ja standby
Diskové pole RAID 7 vlastně není typickým diskovým polem v porovnání s předchozími modely. Tento typ byl popsán a zároveň i patentován firmou Storage Computers. Díky patentovému chránění i technické náročnosti se tento typ používá jen velmi málo.
Characteristics/Advantages O 25% až 90% vyšší výkon v zápisu oproti jednoduchému disku, a 1.5 až 6 x vyšší výkon oproti jiným diskovým polím.
Snadná rozšiřitelnost a stohovatelnost
Čtení malých souborů v multiuživatelském prostředí je velmi rychlé, access time se blíží nule.
Výkon zápisu je závislý na počtu disků.
Přístupová doba se snižuje počtem přístupů k souboru.
Nevýhody Řešení musí být od jednoho výrobce.
Extrémně vysoká cena za MB.
Krátká garance
Řešení není uživatelem řiditelné
Je nutné použít UPS, aby se předešlo ztrátám dat v cache paměti.
O RAID 10 jsme se již zmiňovali, v podstatě se jedná o zrcadlení disků v každé větvi RAID 0 pole. Výhodou je vysoký výkon (díky paralelnímu přístupu v RAID 0), nevýhodou ovšem poněkud vyšší cena, protože pro uložení dat potřebujete dvojnásobnou kapacitu disků (data jsou zrcadlena, čili uložena dvakrát).
RAID 30 a RAID 50 fungují podobně jako RAID 10 s tím rozdílem, že jednotlivé větve RAID 0 pole netvoří “zrcadla”, ale RAID 3 nebo RAID 5 pole. Data jsou nejprve rozdělena a jednotlivé části jsou uloženy v paritním RAID 3/5 poli. Velikostí “proužku” se dá RAID 30/50 pole optimalizovat pro sekvenční (např. video) nebo transakční (např. databáze) aplikace.
Jednotlivé charakteristiky RAID polí si shrneme v tabulce: Spolehlivost RAID 0 RAID 1 RAID 2 RAID 3 RAID 4 RAID 5
Žádná Vysoká Dobrá
Výkon při zápisu velmi dobrý dobrý dobrý
Výkon při obnově dat n/a dobrý dobrý
přijatelný
pokud není použita write-back N+1 cacheslabý
dobrý
slabý
slabý
N+2
velmi dobrý
přijatelný
dobrý
2xN
dobrý
přijatelný
přijatelný
N+2
dobrá sekv. trans. velmi dobrý dobrý
vysoká velmi RAID 10 vysoká vysoká RAID 30/50 velmi RAID 6
Výkon při čtení velmi dobrý velmi dobrý velmi dobrý
Minimální kapacita disků N 2xN N+1 N+1 N+1
Pozn.: “N” značí požadovanou kapacitu diskového pole.
Pole RAID 0 je vhodné pro ukládání “méně důležitých” dat za účelem zvýšení výkonu diskového subsystému.
RAID 1 je vhodné pro menší databáze s kritickými daty, nevýhodou je vysoká cena.
RAID 2 vyžaduje speciální disky s podporou konkrétního typu ECC a prakticky se nepoužívá. RAID 3 je vhodné pro pracovní stanice, práci s velkými objemy sekvenčních dat, jako je např. video.
RAID 4 je vhodné pro databázové systémy a systémy pracující s malými úseky dat. Podobně RAID 5 je vhodné pro databáze a transakční čtení/zápis.
RAID 6 je vhodné pro malé a střední databáze s důrazem na vysokou spolehlivost a dostupnost dat, v praxi se ovšem moc nepoužívá.
RAID 10 je vhodné pro náročné datové přenosy velkých objemů dat s vysokou spolehlivostí. RAID 30 a 50 jsou vhodná pro středně velké databáze (transakční přenos) a datově náročné systémy.
RAID 53
Výhody RAID 53 může být nazýván "RAID 03" protože je implementován jako striped (RAID level 0) jehož segment je RAID 3 pole RAID 53 má stejnou chybovou toleranci jako RAID 3.
Rychlý přenos dat díky segmentům RAID 3.
Rychlé I/O operace díky RAID 0.
Nevýhody Velmi drahé
Všechny disky musí být synchronizovány, musí být stejné.
Hot-spare
Pro aplikace, kde je velmi důležitá nepřetržitost provozu, se používá technologie hot-spare. Ze čtyř disků například vytvoříme pole RAID 5 (jeho užitečná kapacita je tedy 3xkapacita disku). Pátý disk je zasunut a zkonfigurován jako hot-spare, což znamená, že v případě výpadku jednoho z disků pole je okamžitě automaticky aktivován a jsou na něj dopočítána chybějící data za vypadlý disk. Tak je minimalizováno rizikové časové okno, kdy pole sice
funguje, ale výpadek dalšího disku již znamená ztrátu všech dat pole, protože není třeba čekat na příjezd technika a výměnu disku. Disk Hot-spare je možno sdílet pro více polí jsou-li v serveru například 2 pole, jedno ze tří disků a jedno z pěti, je disk hot-spare aktivován při výpadku jak disku z prvního tak druhého pole.
JBOD - nevlastní bratr pole RAID Jestliže máte ve svém počítači nainstalované dva a více IDE disků, existuje několik možností, jak si je uspořádat. Nejvíce uživatelů má disky napojené na klasický IDE řadič a používají jejich kapacitu odděleně, bez vymožeností RAIDu, jako je stripping či mirroring. Pak existují lidé, kteří funkce RAID využívají k zvýšení výkonu (stripping), bezpečnosti dat (mirroring), nebo kombinací obou metod zvyšují výkon a bezpečí zároveň. Nakonec je tu ještě JBOD, neboli Just a Bunch of Disks - Jen hromada disků a dnes v drtivé většině případů platí, že řadiče, které podporují JBOD zároveň podporují i RAID 0.
Název této technologie je poměrně ležérní a moc nám toho o vlastnostech JBOD neřekne. Pokud bych měl použít co nejméně slov, řekl bych, že JBOD je protiklad dělení disků na oddíly (partitioning). Pokud si vezmeme modelovou situaci, že máme doma 10GB a 40GB disk, pak bychom jejich spojením přes RAID 0, tedy stripping, přišli o 30GB místa, protože výsledná kapacita RAID 0 pole je rovna dvojnásobné kapacitě menšího z obou disků. Když už potřebujeme z disků souvislé pole, pak bude lepší, když disky spojíme pomocí JBOD, které dokáže ze svou rozdílných disků udělat jeden logický disk, jenž bude mít výslednou kapacitu rovnou součtu kapacit všech disků, které použijeme. Tato metoda se nazývá spanning, což znamená zahrnutí, nebo také přemostění.
Výhody a nevýhody JBOD oproti RAID 0 Výhody
Disky rozdílných kapacit lze pomocí JBOD spojit v jeden a tím značně rozšířit souvislou diskovou kapacitu - využitelné např. při práci s extrémně velkými soubory (editování videa).
Spojování disků rozdílných kapacit probíhá beze ztráty diskového prostoru, na rozdíl spojováním technologií RAID 0.
Obnova dat při selhání disku. Když RAID 0 přijde o jeden z disků, z něhož už nelze data dostat zpět, pak přijdeme o všechna data, protože na druhém disku jsou uložena rozproužkovaně a nejsou tedy konzistentní. JBOD data neproužkuje a při havárii disku přijdete tedy "jen" o ta data, která jsou na něm uložena, nebo která na něj přesahují z jiných disků.
Nevýhody
Pokud máme možnost zapojit disky do JBOD módu, nejspíše náš řadič podporuje i RAID 0, což je při stejně, nebo alespoň přibližně velkých discích lepší alternativa.
Rychlost toku dat se u JBOD nejen nezvýší, ale vzhledem k tomu, že je v podstatě nemožné používat více disků z JBOD najednou, nebo optimalizovat každý zvlášť, pak se výsledný výkon takového pole oproti jednotlivým diskům spíše snižuje.
JBOD vidím jako nouzové řešení pro lidi, kteří potřebují pracovat s dlouhými soubory, náhodou doma mají pevné disky s nestejnou kapacitou a za žádnou cenu nechtějí přijít o místo na větším disku.
Jak RAID ošetří výpadek disku Všechny typy redundantních polí obvykle umožňují nakonfigurovat kromě aktivních disků ještě 1 či více rezervních disků. Aktivními disky zde rozumíme disky, které jsou součástí funkčního pole. V případě výpadku některého z aktivních disků pak může systém místo vadného disku okamžitě začít používat disk rezervní. Po aktivaci rezervního disku do pole systém provede na pozadí (tedy bez narušení dostupnosti pole) rekonstrukci pole a jakmile je rekonstrukce hotova, je pole opět plně redundantní. Rekonstrukcí je míněna buď synchronizace obsahu nového disku s ostatními aktivními disky (v prípadě RAIDu 1), anebo rekonstrukce obsahu původního vadného disku na základě redundantní informace (jedná-li se o RAID 4 nebo 5). Po dobu, než rekonstrukce proběhne, se pole nachází v tzv. degradovaném režimu, kdy v závislosti na konfiguraci nemusí být redundantní a v případě RAIDu 5 se to projeví sníženým výkonem (odtud název "degradovaný režim"). Je samozřejmě možné pole provozovat bez rezervních disků a disk vyměnit později manuálně. Detailně se na výměnu disků a rekonstrukci polí ještě podíváme později.
Redundantní pole neznamenají konec záloh Redundantní disková pole jsou odolná pouze vůči výpadkům určitého počtu disků. Neochrání před výpadkem napájení, poškozením souborového systému při pádu celého systému nebo chybou administrátora. Proto je potřeba myslet i na další metody ochrany dat - např. na záložní zdroje napájení (UPS), žurnálovací souborové systémy apod. a v každém případě pravidelně zálohovat.
Data Striping
Fundamental to RAID is "striping", a method of concatenating multiple drives into one logical storage unit. Striping involves partitioning each drive's storage space into stripes which may be as small as one sector (512 bytes) or as large as several megabytes. These stripes are then interleaved round-robin, so that the combined space is composed alternately of stripes from each drive. In effect, the storage space of the drives is shuffled like a deck of cards. The type of application environment, I/O or data intensive, determines whether large or small stripes should be used. Most multi-user operating systems today, like NT, Unix and Netware, support overlapped disk I/O operations across multiple drives. However, in order to maximize throughput for the disk subsystem, the I/O load must be balanced across all the drives so that each drive can be kept busy as much as possible. In a multiple drive system without striping, the disk I/O load is never perfectly balanced. Some drives will contain data files which are frequently accessed and some drives will only rarely be accessed. In I/O intensive environments, performance is optimized by striping the drives in the array with stripes large enough so that each record potentially falls entirely within one stripe. This ensures that the data and I/O will be evenly distributed across the array, allowing each drive to work on a different I/O operation, and thus maximize the number of simultaneous I/O operations which can be performed by the array. In data intensive environments and single-user systems which access large records, small stripes (typically one 512-byte sector in length) can be used so that each record will span across all the drives in the array, each drive storing part of the data from the record. This causes long record accesses to be performed faster, since the data transfer occurs in parallel on multiple drives. Unfortunately, small stripes rule out multiple overlapped I/O operations, since each I/O will typically involve all drives. However, operating systems like DOS which do not allow overlapped disk I/O, will not be negatively impacted. Applications such as on-demand video/audio, medical imaging and data acquisition, which utilize long record accesses, will achieve optimum performance with small stripe arrays. A potential drawback to using small stripes is that synchronized spindle drives are required in order to keep performance from being degraded when short records are accessed. Without synchronized spindles, each drive in the array will be at different random rotational positions. Since an I/O cannot be completed until every drive has accessed its part of the record, the drive which takes the longest will determine when the I/O completes. The more drives in the array, the more the average access time for the array approaches the worst case single-drive access time. Synchronized spindles assure that every drive in the array reaches its data at the same time. The access time of the array will thus be equal to the average access time of a single drive rather than approaching the worst case access time.