Eduard Shishkin
Blandt de nyskabelser, der er udviklet for nylig, er leveringen af
muligheden for brugeren at tilføje en lille højtydende
blokere enhed (f.eks. NVRAM) kaldet
relativt stort logisk volumen sammensat af langsom
budgetdrev. Dette vil skabe det indtryk, at alle
volumen er sammensat af den samme dyre højtydende
enheder, såsom en "proxy-disk".
Den implementerede metode var baseret på den simple observation, at der i praksis ikke skrives til disken konstant, og I/O-belastningskurven har form som toppe. I intervallet mellem sådanne "peaks" er det altid muligt at nulstille data fra proxy-disken ved at omskrive alle dataene (eller kun en del) i baggrunden til det vigtigste, "langsomme" lager. Således er proxy-disken altid klar til at modtage en ny del af data.
Denne teknik (kendt som Burst Buffers) opstod oprindeligt i
områder med høj ydeevne computing (HPC). Men det viste sig også at være efterspurgt til almindelige applikationer, især for dem, der stiller øgede krav til dataintegritet (normalt forskellige typer databaser). Sådanne applikationer udfører ændringer i enhver fil på en atomart måde, nemlig:
Frigør blokke optaget af gamle data.
Alle disse trin, i en eller anden grad, forårsager betydelige
ydeevneforringelse på ethvert filsystem. Situation
forbedres, hvis den nye fil først skrives til den tildelte
højtydende enhed, hvilket er præcis, hvad der sker i
filsystem med Burst Buffers support.
I Reiser5 er det planlagt at sende ikke kun
nye logiske blokke af filen, men også alle beskidte sider generelt. I øvrigt,
ikke kun sider med data, men også med metadata der
er skrevet i trin (2) og (3).
Support til proxy-diske udføres i forbindelse med almindeligt arbejde med
Reiser5 logiske bind,
det samlede system "proxy disk - hovedlager" er normalt
logisk volumen med den eneste forskel, at proxy-disken har prioritet
blandt andre volumenkomponenter i diskadresseallokeringspolitikken.
Tilføjelse af en proxy-disk til et logisk volumen er ikke ledsaget af nogen
rebalancering af data, og fjernelse heraf sker på nøjagtig samme måde som
fjernelse af en almindelig disk. Alle proxy-diskoperationer er atomare.
Fejlhåndtering og systemimplementering (inklusive efter et systemnedbrud) sker på nøjagtig samme måde, som hvis proxy-disken var en almindelig komponent
logisk volumen.
Efter tilføjelse af en proxy-disk, den samlede kapacitet af den logiske volumen
øges med kapaciteten på denne disk. Frirumsovervågning
proxy disk udføres på samme måde som for andre volumenkomponenter, dvs. ved at bruge værktøjet volume.reiser4(8).
Proxydisken skal renses med jævne mellemrum, dvs. nulstille data fra
det til hovedlageret. Efter at have nået beta-stabilitet Reiser5
rengøring er planlagt til at være automatisk (den vil blive administreret af
speciel kernetråd). På dette stadium ansvar for rengøring
påhviler brugeren. Nulstilling af data fra proxy-disken til den primære
lagring produceres ved blot at kalde volume.reiser4-værktøjet med muligheden
"-b". Som et argument skal du angive monteringspunktet for den logiske
mængder Du skal selvfølgelig huske at foretage rengøring med jævne mellemrum. Til
Du kan skrive et simpelt shell-script for at gøre dette.
Hvis der ikke er ledig plads på proxy-disken, alle data
skrives automatisk til hovedlageret. Samtidig som standard
den samlede ydeevne af FS er reduceret (på grund af konstante opkald
procedurer for at forpligte alle eksisterende transaktioner). Du kan valgfrit indstille
tilstand uden tab af ydeevne. Men i dette tilfælde disken
Proxyenhedens plads vil blive brugt mindre effektivt.
Det er praktisk at bruge en metadata-undersektion (klods) som en proxy-disk, forudsat at den er oprettet på en tilstrækkelig højtydende blokenhed.
Kilde: opennet.ru