Eduard Shishkin
Bland de innovationer som utvecklats nyligen, tillhandahållandet av
möjligheten för användaren att lägga till en liten högpresterande
blockera enhet (t.ex. NVRAM) anropad
relativt stor logisk volym som består av långsam
budgetdrev. Detta kommer att skapa intrycket att alla
volymen är sammansatt av samma dyra högpresterande
enheter, som en "proxydisk".
Den implementerade metoden baserades på den enkla observationen att i praktiken skrivs inte skivan till konstant, och I/O-belastningskurvan har formen av toppar. I intervallet mellan sådana "toppar" är det alltid möjligt att återställa data från proxydisken, genom att skriva om all data (eller bara en del) i bakgrunden till den huvudsakliga, "långsamma" lagringen. Således är proxydisken alltid redo att ta emot en ny del av data.
Denna teknik (känd som Burst Buffers) har ursprungligen sitt ursprung i
områden med högpresterande beräkningar (HPC). Men det visade sig också vara efterfrågat för vanliga applikationer, speciellt för de som ställer ökade krav på dataintegritet (oftast olika typer av databaser). Sådana applikationer utför alla ändringar i vilken fil som helst på ett atomärt sätt, nämligen:
Frigör block upptagna av gamla data.
Alla dessa steg, i en eller annan grad, orsaka betydande
prestandaförsämring på alla filsystem. Situation
förbättras om den nya filen först skrivs till den tilldelade
högpresterande enhet, vilket är precis vad som händer i
filsystem med Burst Buffers-stöd.
I Reiser5 är det planerat att valfritt skicka inte bara
nya logiska block av filen, men också alla smutsiga sidor i allmänhet. Dessutom,
inte bara sidor med data, utan även med metadata som
skrivs i steg (2) och (3).
Stöd för proxydiskar utförs i samband med ordinarie arbete med
Reiser5 logiska volymer,
det aggregerade systemet "proxydisk - huvudminne" är normalt
logisk volym med den enda skillnaden att proxydisken har prioritet
bland andra volymkomponenter i policyn för tilldelning av diskadress.
Att lägga till en proxydisk till en logisk volym åtföljs inte av någon
ombalansering av data, och dess borttagning sker på exakt samma sätt som
ta bort en vanlig disk. Alla proxydiskoperationer är atomära.
Felhantering och systemdistribution (inklusive efter en systemkrasch) sker på exakt samma sätt som om proxydisken vore en vanlig komponent
logisk volym.
Efter att ha lagt till en proxydisk, den totala kapaciteten för den logiska volymen
ökar med kapaciteten på denna disk. Övervakning av ledigt utrymme
proxyskiva utförs på samma sätt som för andra volymkomponenter, d.v.s. med hjälp av verktyget volume.reiser4(8).
Proxydisken måste rengöras med jämna mellanrum, d.v.s. återställa data från
den till huvudlagringen. Efter att ha nått betastabilitet Reiser5
städningen är planerad att vara automatisk (den kommer att hanteras av
speciell kärntråd). I detta skede ansvar för städning
vilar på användaren. Återställer data från proxydisken till huvuddisken
lagring produceras genom att helt enkelt anropa verktyget volume.reiser4 med alternativet
"-b". Som ett argument måste du ange monteringspunkten för logiken
volymer Naturligtvis måste du komma ihåg att utföra rengöring med jämna mellanrum. För
Du kan skriva ett enkelt skalskript för att göra detta.
Om det inte finns något ledigt utrymme på proxydisken, all data
skrivs automatiskt till huvudminnet. Samtidigt som standard
den totala prestandan för FS reduceras (på grund av konstanta samtal
förfaranden för att genomföra alla befintliga transaktioner). Valfritt kan du ställa in
läge utan förlust av prestanda. Men i det här fallet disken
Proxyenhetsutrymmet kommer att användas mindre effektivt.
Det är bekvämt att använda en metadataundersektion (brick) som en proxydisk, förutsatt att den skapas på en tillräckligt högpresterande blockenhet.
Källa: opennet.ru