Lyster | |
---|---|
Sorts | distribuerat filsystem och fri programvara med öppen källkod |
Författare | Peter Braam [d] |
Utvecklaren | DataDirect-nätverk [d] |
Skrivet i | C [1] |
Operativ system | Linux kärna |
Första upplagan | 16 december 2003 |
senaste versionen | |
Licens | GNU GPL 2 |
Hemsida | luster.org _ |
Luster är ett massivt parallellt distribuerat filsystem som vanligtvis används för storskalig klusterberäkning . Namnet Luster är en portmanteau av orden L inux och cl uster [3] . Släppt under GNU GPL , erbjuder projektet ett högpresterande filsystem för kluster med tiotusentals nätverksnoder och petabyte informationslagring.
Luster-filsystem används i datorkluster som sträcker sig från små arbetsgruppskluster till stora geografiskt spridda kluster. Femton av världens "Top 30" superdatorer använder Luster-filsystem, inklusive världens snabbaste superdator, K-datorn [4] .
Luster-filsystem kan stödja tiotusentals klientsystem , tiotals petabyte (PBs) lagring och hundratals gigabyte per sekund (GB/s) I/O-genomströmning. På grund av Lusters höga skalbarhet installerar affärsområden som internetleverantörer, finansiella institutioner och olje- och gasindustrin Luster-filsystem i sina datacenter [5] .
Luster-filsystemarkitekturen utvecklades som en del av ett forskningsprojekt 1999 av Peter Braam, senior fellow vid Carnegie Mellon University . Braam lämnade för att starta sitt eget företag, Cluster File Systems , som släppte Luster 1.0 2003. 2007 förvärvade Sun Microsystems Cluster File Systems [6] [7] och inkluderade Luster i sitt avancerade systemprogramvarupaket, med avsikt att dra fördel av Lusters teknologi i Suns ZFS -filsystem och Solaris-operativsystemet . I november 2008 lämnade Braam Sun Microsystems för att arbeta på ett annat filsystem, och överlämnade designen av Luster-arkitekturen till Eric Barton och Andreas Dilger .
2010 förvärvade Oracle Sun och tog över Lusters support- och utvecklingsverksamhet. I april 2010 tillkännagav Oracle sin avsikt att begränsa betald support för nya Luster 2.0 till att endast vara tillgänglig på Oracle-hårdvara eller hårdvara utvecklad av Oracle-godkända leverantörer. Samtidigt förblev Luster tillgänglig för alla användare under GPL-licensen och befintliga kunder av Luster 1.8 fortsatte att få teknisk support från Oracle [8] .
I december 2010 meddelade Oracle att de upphör med utvecklingen av Luster. Releasen av Luster 1.8 har flyttats till enbart underhållstjänst [9] , vilket skapade osäkerhet om den framtida utvecklingen av filsystemet. Enligt detta tillkännagivande utvecklas och stöds nya versioner av Luster av en grupp utvecklare inklusive Whamcloud [10] , Xyratex [11] , OpenSFS, European Open Filesystems (OFS) SCE och andra. Samma år lämnade Eric Barton och Andreas Dilger Oracle för att grunda Whamcloud , en startup fokuserad på att utveckla Luster [12] .
I juli 2012 förvärvades Whamcloud av Intel [13] [14] . Detta hände efter att Whamcloud vunnit ett kontrakt för det amerikanska energidepartementet för att expandera Luster som en del av den första fasen av ett exaflop-beräkningsprojekt kallat FastForward till och med 2018 [15] . Därefter överförde OpenSFS alla kontrakt för utvecklingen av Luster till Intel.
Luster-filsystemet installerades först för produktionsanvändning i mars 2003 på MCR Linux Cluster vid LLNL [16] , en av tidens mest kraftfulla superdatorer [17] .
Luster 1.2.0, som släpptes i mars 2004, stödde Linux 2.6-kärnan, "size glimpse"-funktionen för att undvika återkallande av lås på skrivbara filer, och klientsidans dataåterskrivningscacheredovisning.
Luster 1.4.0, släppt i november 2004, gav protokollkompatibilitet mellan versioner, stöd för InfiniBand- nätverk och stöd för utvidgning och mballoc i ldiskfs diskfilsystem .
Luster 1.6.0, släppt i april 2007, stödde monteringskonfiguration ("mountconf"), vilket gjorde det möjligt för servrar att konfigureras med "mkfs" och "mount", stödde dynamiskt tillägg av objektlagringsmål (OST), inkluderade ett skalbart distribuerat managerlås manager Luster (Lustre distributed lock manager - LDLM) för symmetriska multiprocessorer (SMP), och stödde även hanteringen av ledigt utrymme vid distribution av objekt.
Luster 1.8.0, släppt i maj 2009, gav OSS Read Cache, förbättrad återställning av flera fel, tillagd grundläggande heterogen lagringshantering via OST-pooler, adaptiva nätverkstimeouts och versionsbaserad återställning. Det var också en övergångsversion som gav interoperabilitet med både Luster 1.6 och Luster 2.0 [18] .
Luster 2.0.0, släppt i augusti 2010, innehöll en omskriven metadataserverstack som organiserade basen för klustrade metadata (Clustered Metadata - CMD), vilket gjorde det möjligt att distribuera Luster-metadata över flera metadataservrar, en ny klient I/O-stack (Client IO stack - CLIO) för portabilitet med andra klientoperativsystem, såsom Mac OS , Microsoft Windows , Solaris , samt en abstrakt objektlagringsenhet (Object Storage Device - OSD) för portabilitet med andra filsystem, såsom ZFS .
Filsystemet Luster och dess tillhörande programvara med öppen källkod har antagits av många organisationer. Till exempel erbjuder både Red Hat och SUSE ( Novell ) Linux-kärnor som körs på klienter utan tillägg, vilket gör distributionen enklare.
Luster-filsystemet innehåller tre huvudsakliga funktionsmoduler:
MDT-, OST- och klientkomponenterna kan finnas på samma nod, men när de är installerade placeras de vanligtvis på separata noder som kommunicerar över nätverket. Luster Network (LNET)-skiktet stöder flera kommunikationsplattformar, inklusive Infiniband , TCP/IP över Ethernet och andra nätverk, Myrinet , Quadrics och proprietära nätverksteknologier. Luster drar också fördel av fjärrstyrd DMA , där det är möjligt, för att öka genomströmningen och minska CPU-användningen.
Lagringen som används för de duplicerade MDT- och OST-filsystemen är uppdelad och kan organiseras genom logisk volym- och/eller RAID- hantering , vanligtvis formaterad i ext4- filsystemet . Luster OSS- och MDS-servrar läser, skriver och modifierar data i det format som introduceras av dessa filsystem.
OST är ett dedikerat filsystem som exporterar ett gränssnitt till objektbyteregioner för läs-/skrivoperationer. MDT är ett dedikerat filsystem för att kontrollera åtkomst till filer och tala om för klienter vilka objekt som är en del av filstrukturen. MDT och OST använder för närvarande en förbättrad version av ext4 som kallas ldiskfs för datalagring . 2008 startade Sun ett projekt för att porta Luster till Sun ZFS /DMU för intern lagring [19] och fortsatte som ett projekt med öppen källkod [20] .
När en klient kommer åt en fil, letas filnamnet upp i MDS. Som ett resultat skapas filen antingen på uppdrag av klienten, eller så returneras platsen för den befintliga filen till klienten. Vid läs- eller skrivoperationer tolkar klienten den logiska volymplatsen för objektet , vilket mappar offset och storlek till ett eller flera objekt, vart och ett placerat på en separat OST. Klienten låser sedan en rad filer att arbeta med och utför en eller flera parallella läsningar eller skrivningar direkt till OST. Detta tillvägagångssätt tar bort flaskhalsen i klientens interaktion med OST, så att den totala bandbredden som är tillgänglig för klienten för läsning och skrivning skalas nästan linjärt med antalet OST i filsystemet.
Klienter ändrar inte OST-filsystemobjekt direkt, delegerar denna uppgift till OSS. Detta tillvägagångssätt ger skalbarhet för storskaliga kluster och superdatorer och förbättrar säkerheten och tillförlitligheten. Däremot måste blockerade delade filsystem som det globala filsystemet och OCFS stödja direktåtkomst till lagring för alla klienter på filsystemet, vilket ökar risken för korruption av filsystemet av fel klienter.
Under en typisk installation av Luster på en Linux-klient laddas Luster filsystemdrivrutinmodulen in i kärnan och filsystemet monteras som vilket annat lokalt eller nätverksfilsystem som helst. Klientapplikationer ser ett enhetligt filsystem, även om det kan bestå av tiotusentals individuella servrar och MDT/OST-filsystem.
På vissa Massively Parallel Processors (MPP) kan datorprocessorer komma åt Luster-filsystemet genom att omdirigera sina I/O-förfrågningar till en dedikerad I/O-nod konfigurerad som en Luster-klient. Detta tillvägagångssätt används i Blue Gene [21] installerad på Livermore National Laboratory .
En annan ny metod är biblioteket liblustre , som ger användarutrymmesapplikationer direkt åtkomst till filsystemet. Detta är ett bibliotek på användarnivå som tillåter klientberäkningsprocessorer att montera och använda Luster-filsystemet. Med hjälp av liblustre kan datorprocessorer komma åt Luster-filsystemet även om servernoden som startade jobbet inte är en Luster-klient. Liblustre-biblioteket tillåter att data flyttas direkt mellan applikationsutrymmet och Luster OSS utan behov av en mellankopia av data genom kärnan, vilket gör att processorer kan komma åt Luster-filsystemet med låg latens och hög genomströmning.
I traditionella UNIX-diskfilsystem innehåller inoddatastrukturen grundläggande information om varje fil, till exempel var data som finns i filen lagras. Luster-filsystemet använder också inoder, men en MDT-inod pekar på ett eller flera OST-objekt som är associerade med en fil, inte datablock. Dessa objekt implementeras som OST-filer. När en klient öppnar en fil skickar öppningsoperationen en uppsättning objektpekare och deras plats från MDS till klienten, varefter klienten direkt kan interagera med OSS-värden som håller objektet, vilket tillåter klienten att utföra I/O för att filen utan ytterligare interaktion med MDS.
Om det bara finns ett OST-objekt associerat med MDT-inoden, innehåller det objektet all data i Luster-filen. Om mer än ett objekt är associerat med en fil "delas" filens data mellan objekten, liknande RAID 0 . Att dela upp en fil över flera objekt ger betydande prestandafördelar. När delning används är den maximala filstorleken inte begränsad till storleken på ett enda mål. Kapaciteten och den totala I/O-bandbredden skalas med antalet OST där filen delas. Eftersom låsningen av varje objekt för varje OST hanteras oberoende, skalas I/O-låsningsmöjligheterna till filen proportionellt genom att lägga till delar (OST). Varje fil i filsystemet kan ha en annan delad plats, så att kapacitet och prestanda kan anpassas optimalt för varje fil.
Luster använder en distribuerad låshanterare i VMS -stil för att skydda dataintegriteten och metadata för varje fil. Åtkomst och modifiering av Luster-filen är helt konsekvent för alla klienter. Metadatalås hanteras av MDT som lagrar inoden för filen med hjälp av en 128-bitars Luster File Identifier (FID som består av ett sekvensnummer och objektidentifierare) som används som resursnamn. Metadatalås är uppdelade i flera delar som skyddar filupptäckningsprocessen (filägare och grupp, behörigheter och läge, såväl som ACL , inodtillstånd (katalogstorlek, kataloginnehåll, länkantal, tidsstämplar) och plats (fildelning). kan förvärva flera delar av ett metadatalås på en enda inod med en enda RPC-begäran, men för närvarande beviljas endast inodläslås MDS hanterar alla inodmodifieringar för att undvika resurskonflikt och endast en nod får för närvarande förvärva inodskrivlås.
Filens datalås hanteras av OST där varje filobjekt är partitionerat, med hjälp av byte-omfattningslås. Klienter kan få överlappande läslås på en del av eller hela en fil, vilket tillåter flera samtidiga läsare på samma fil, och icke-överlappande skrivlås på områden i en fil. Detta gör att många Luster-klienter kan ha samtidig läs-/skrivåtkomst till filen, vilket undviker fil-I/O-problem. I praktiken hanterar Linux-klienter sin datacache i enheter av sidor , så de kommer att begära lås som alltid är en heltalsmultipel av sidstorleken (4096 byte på de flesta klienter). När en klient begär en omfattningslåsning kan OST bevilja ett lås i större utsträckning för att minska antalet låsbegäranden som klienten gör. Den faktiska storleken på ett beviljat lås beror på flera faktorer, inklusive antalet lås som redan förvärvats, förekomsten av motstridiga skrivlås och antalet låsförfrågningar. Det inställda låset blir aldrig mindre än den önskade omfattningen. OST-omfångslås använder Luster FID som namn på resursen för att låsa. Eftersom antalet omfattningslåsservrar ökar med antalet OSTs i filsystemet, ökar detta också det kombinerade filsystemet och enstaka fillåsets prestanda om det är uppdelat på flera OSTs.
I ett kluster med ett Luster-filsystem implementeras systemets nätverk som förbinder servrar och klienter genom Luster Networking (LNET), som tillhandahåller den kommunikationsinfrastruktur som krävs av Luster-filsystemet. Disklagring ansluts till MDS och OSS med traditionell SAN-teknik .
LNET stöder många välkända nätverkstyper, såsom InfiniBand och IP, vilket möjliggör samtidig åtkomst för nätverk av olika typer med routing mellan dem. Remote DMA är aktiverat när det stöds av dess underliggande nätverk som Quadrics Elan, Myrinet och InfiniBand. Hög tillgänglighet och återställningsfunktioner möjliggör transparent återställning vid användning av failover-servrar.
LNET ger bandbredd över Ethernet (GigE) över 100 MB/s [22] , genomströmning upp till 3 GB/s genom InfiniBand QDR-länkar, genomströmning över 1 GB/s genom 10GigE-gränssnitt.
Luster filsystems hög tillgänglighet inkluderar en robust failover- och återställningsmekanism som transparent startar om servrar i händelse av ett fel. Versionskompatibilitet mellan mindre versioner av Luster-programvaran gör att du kan uppgradera servern genom att stänga av den (eller byta till en standby-server), uppgradera och starta om servern, med alla aktiva jobb som fortsätter att köras, bara upptäcka en fördröjning när lagringen överförs till standby-servern.
Luster MDS är konfigurerade som ett aktivt/passivt par, medan OSS vanligtvis distribueras i en aktiv/aktiv konfiguration, vilket ger tillförlitlighet utan betydande överbelastning. Ofta är standby-MDS den aktiva MDS för ett annat Luster-filsystem, så det finns inga lediga noder i klustret.
Luster används i många TOP500 superdatorer och stora kluster . Femton av de 30 mest kraftfulla superdatorerna i världen använder filsystemet Luster, inklusive världens snabbaste superdator K-dator på RIKEN [4] , och den näst snabbaste superdatorn (den kraftfullaste från november 2010 till juni 2011), Tianhe-1 kl . National Supercomputing Center i Tianjin (Kinesiska folkrepubliken). Andra superdatorer som använder Luster-filsystemet är den tredje största Jaguar vid Oak Ridge National Laboratory (ORNL) och National Energy Research Scientific Computing Center- systemen som finns vid Lawrence Berkeley National Laboratory (LBNL), Lawrence Livermore National Laboratory (LLNL), Pacific Northwest National Laboratory , Texas Advanced Computing Center och NASA [23] i Nordamerika, Tokyo Institute of Technology [24] i Asien och ett av de största systemen i Europa - CEA [25] .
Kommersiell support för Luster tillhandahålls av ett brett utbud av leverantörer. I de flesta fall tillhandahålls support för datorsystemet eller lagringshårdvaran som säljs av tillverkaren. En ofullständig lista över leverantörer som säljer datorer och lagring med Luster inkluderar Cray , Dell , Hewlett-Packard , BULL , SGI och andra. Sun Microsystems skickar inte längre system som innehåller Luster. De huvudsakliga leverantörerna som säljer Luster-aktiverad lagringshårdvara är Data Direct Networks (DDN), Dell , Terascala, Xyratex och andra.
Amazon Web Services- plattformen erbjuder Amazon FSx för Luster, en helt hanterad tjänst för bearbetning av Amazon S3 och inbyggd (lokal) data.
Sun Microsystems (övertaget av Oracle ) | |
---|---|
Utrustning | |
programvara |
|
Datalagring | |
Högpresterande datoranvändning |
|
Forskning | |
Utbildning |
|
gemenskap |