FS2: Dynamic Data Replication in Free Disk Space for Improving Disk Performance and Energy Consumption DIKU, Datalogisk Institut, Københavns Universitet 07/12/2005 Præsentation af Lauge Wulff
Problem: Harddisken er performance flaskehals. Harddisken bruger meget energi. Årsag: Mekaniske dele begrænser ydelsen. Langsom udvikling vs. elektronik Løsning: Omrokering af data, så data ligger samlet. Dog svært at bestemme den bedste rækkefølge.
Spildtid Søgetid Rotationsforsinkelse. 1/7200 RPM = 8 ms. Kun overførselstid er reelt arbejde.
Eksempel: CVS update. Tilgår disken i to områder. Der skiftes mellem de to områder, og læsehovedet flytter sig meget. Fordel hvis data kan ligge samlet.
Scenarier hvor eksisterende filsystemer har problemer:
Systemer med delte biblioteker (DLLs) o Flere programmer kan dele de samme DLLs. Problem: Et delt bibliotek som anvendes af flere programmer kan ikke ligge tæt på alle programmer. Kan løses statisk ved at replikere data
Delte systemer: o Server med flere samtidige brugere. o PC med flere samtidige processer. Problem: Uforudsigeligt hvorledes brugere / processer bruger disken. Brugere og processer kan bruge disken samtidigt. Data kan ikke samles.
Kan ikke løses ved at statisk flytte data et andet sted på disken. Derfor dynamisk løsning der tilpasser sig til brugen.
FS2: Free Space File System ledig plads på disken anvendes til replikering. Beslaglægger derfor ikke, men låner, værdifulde ressourcer. Studie: 242 diske på 22 servere. 60% af diskene havde mindst 30% ledig plads. Andet studie: 47% ledig plads (undersøgelse foretaget på 4801 Windows-maskiner). Som regel er ledig diskplads store kontinuerlige områder. Frihed til at placere replika optimalt.
Andre dynamiske løsninger og FS2: - Mest brugte data lægges midt på disken. Problematisk: mest brugte data kan skifte over tid -> omrokering, går ud over specielt forgrundsprocesser. FS2: Ikke nødvendigt placerer replika af data over hele disken.
- Datablokke flyttes fra et sted på disken til et andet. FS2: Bedre at replikere data. Data kan ligge flere optimale steder.
- Der reserveres en vis mængde plads på disken til replikering. Dette fratager brugerne retten til at bestemme over deres disk. FS2: Pladsen frigives hvis der begynder at være pladsproblemer.
Blok-replikering Komplet læsning af fil: OK. Delvis, skiftevis læsning af filer ->mange lange søgninger. Fordel at replikere file 1 tættere på file 0 og file 2.
Bedre placering af indholdet af Dup file 1 på disken, således at vi kan tilgå dem i samme rotation.
Replika-styring #-tabel over replika og hvilken originalblok det er replika af + ekstra info om brug af disse replika. Ekstra info anvendes når replika slettes ved diskmangel.
Ved write, slettes replika for blokken. Ved (bruger) diskmangel, slettes store mængder replika hurtigt. Hele regioner invalideres. #-tabel skrives til disk ved shutdown. Ændringer til #- tabel skrives jævnligt til disk. #-tabel skrives evt til flash ram for at overleve nedbrud.
I en disk request spørges på et antal blokke. Disse ligger i forlængelse af hinanden. Replika anvendes kun hvis: alle blokke i requesten har replika og disse replikablokke ligger ved siden af hinanden og replika er tættere på diskhovedet end end originalen Hvis ingen blokke har replika -> Anvend original Hvis ikke alle blokke har replika -> Anvend original
Kandidater til replikering Block device driver finder kandidater: Disken deles op i mindre regioner på disken, registrering af brug. Mest aktive regioner, hot regions, findes. Data, der anvendes samtidig med data i hot regions, skal replikeres. Medfører: kortere søgeafstande -> lavere søgetider Besked til FS om at replikere udvalgte blokke, da kun FS kan lokalisere ubrugt plads.
Eksperimentelle målinger: TPC-W Benchmark E-commerce benchmark måler både DB og webserver. MySQL + Apache 20 minutter 25 brugere
Ext2 : Spredt på disken pgra # 2 FS2-static: Replikerer statisk relevante filer et sted på disken. Rotation primær faktor. Data ligger fysisk tæt, men ikke i samme cylinder. FS2-dynamic: Data i rigtig rækkefølge, > sandsynlighed for samme cylinder. Gns. svartid: 34% hurtigere på FS2
FS2-dynamic - 1., 2. og 7. gennemløb De anvendte blokke ligger tættere og tættere for hvert gennemløb.
Static vs. dynamic 7th.
CVS update Køretid: 33s vs. 23s
X server + KDE Køretid: 28s vs. 23,4s Ikke disktung.
SURGE webserver-simulering Gns svartid: 18% hurtigere på FS2