Ursprungligen inskrivet av savje
hoppas det inte uppfattas som jag är butter för du inte trodde på mig... men om man tänker efter lite och kan lite om hårddiskar så är det ganska självklart...
Accesstiden (eller åtkomsttiden) styrs ju av hur lång tid läsarmen tar sig till rätt ställe och hur lång tid det tar för diskarna att snurra till rätt del... Därmed är Accesstiden slumpmässig, den beror ju av var armen och diskarna befinner sig... Men man kan ju slå fast maximala accesstiden, alltså accesstiden i värsta tänkbara fall (när armen måste rör sig mest och disken snurra mest)... dock kan man ju ha tur så att armen inte måste röra sig alls och disken inte behöver snurra... då blir ju accesstiden iprincip 0... Alltså är den faktiska accesstiden i det generela fallet mellan 0 och den maximala accesstiden... Men om man läser en stor fil (som inte är fragmenterad) så behöver man ju bara hitta början på filen, sen följer ju resten av filen direkt efter, alltså blir accesstiden på resterande delar av filen 0...
Raid0 funkar ju så att den delar upp en fil på flera diskar... Detta innebär att man teoretisktsett får dubbel läshastighet... Dock finns ett problem: man kan ju inte skicka iväg halva filer, alltså måste diskarna vänta på varandra. Den ena disken kan inte börja skicka information innan den andra gör det. Det betyder att det alltid kommer bli den disken med högst accesstid som bestämmer vilken accesstid det blir. Vad innebär det här? Jo eftersom diskarna bara behöver hitta filbörjan (om filen som sagt inte är fragmenterad) så spelar den ökade accesstiden inte så stor roll när det gäller stora filer (behöver ju bara hitta början sen följer en lång rad med information med 0 i accesstid, men högre läshastighet)... Dock om det är små filer (som inte ligger i rad) så måste ju läsarmen hoppa fram och tillbaka och diskarna snurra för att hitta rätt plats väldigt ofta... Eftersom accesstiden är högre så kommer disken ständigt få vänta längre på att den kan läsa informationen...
Formel för att räkna ut accesstiden i raid0:
rand(x) = ger ett slumpmässigt värde mellan 0 och x
max(x,y) = ger högsta värdet av x och y
Accesstid = max( rand(maxAccesstid) , rand(maxAccesstid) )
Om du istället kör raid1 så blir det en helt annan sak, för då är det ju två diskar med exakt samma information... Vad som händer då är att den ena disken inte är beroende av den andra alltså blir accesstiden den minsta av de två diskarnas accesstid... alltså minskar accesstiden i raid1 på samma sätt som den ökar i raid0
Accesstid = min( rand(maxAccesstid) , rand(maxAccesstid) )
(sen är det ju den självklara nackdelen att du går miste om halva lagrings utrymmet)
En annan intressant aspekt är att ju snabbare diskar du har i raid desto mindre blir accesstidsförlusten i raid0 men också vinsten i raid1 (i absoluta tal dvs)...
Alltså: Precis som förut, raid0 ökar accesstiden alltså inget bra för systemdiskar... Sen är det möjligt att prestandaminskningen är så liten (iom att raptorn är så snabb) att den ökade läshastigheten väger upp det... (beror ju på massa faktorer, hur stora och fragmenterade fil det är osv) Men oavsett känns två raptors lite overkill, du får nog mer prestandaökning om du lägger dom på något annat