LizardFS 3.13.0-rc2 klusterfilsystemuppdatering

Efter ett år långt uppehåll i utvecklingen återupptas arbetar på en ny gren av ett feltolerant distribuerat filsystem LizardF 3.13 и publicerad andra släppkandidat. Nyligen har inträffat byte av ägare till företaget som utvecklar LizardFS, ny ledning antogs och utvecklare byttes ut. Under de senaste två åren har projektet dragits tillbaka från samhället och har inte uppmärksammat det tillräckligt mycket, men det nya teamet har för avsikt att återuppliva den tidigare relationen med samhället och etablera en nära interaktion med den. Projektkoden är skriven på C och C++ språk och levererad av under GPLv3-licens.

ÖdlaFS är ett distribuerat klusterfilsystem, som gör att du kan distribuera data över olika servrar, men ge tillgång till dem i form av en enda stor partition, som man arbetar med på liknande sätt som traditionella diskpartitioner. En monterad partition med LizardFS stöder POSIX-filattribut, ACL:er, lås, uttag, rör, enhetsfiler, symboliska och hårda länkar. Systemet har inte en enda felpunkt, alla komponenter är redundanta. Parallellisering av dataoperationer stöds (flera klienter kan komma åt filer samtidigt).

För att säkerställa feltolerans delas data upp i repliker, som är fördelade över olika noder med redundans (flera kopior placeras på olika noder); om noder eller enheter misslyckas fortsätter systemet att fungera utan förlust av information och omfördelar automatiskt datan. med hänsyn till de återstående noderna. För att utöka lagringen räcker det att ansluta nya noder till den utan att stoppa arbetet för underhåll (systemet replikerar själv en del av data till nya servrar och balanserar lagringen med hänsyn till de nya servrarna). Du kan göra samma sak för att minska storleken på klustret - du kan helt enkelt inaktivera den föråldrade utrustningen som tas bort från systemet.

Data och metadata lagras separat. För drift rekommenderas det att installera två metadataservrar som arbetar i master-slave-läge, samt minst två datalagringsservrar (chunkserver). Dessutom, för att säkerhetskopiera metadata, kan loggservrar användas för att lagra information om ändringar i metadata och låta dig återställa driften i händelse av skada på alla befintliga metadataservrar. Varje fil är uppdelad i block (bitar), upp till 64 MB i storlek. Blocken fördelas mellan lagringsservrar i enlighet med det valda replikeringsläget: standard (explicit bestämning av antalet kopior som ska placeras på olika noder, inklusive i relation till enskilda kataloger - för viktig data kan antalet kopior ökas, och för oviktig data reducerad), XOR (RAID5 ) och EC (RAID6).

Lagring kan skalas upp till petabytestorlekar. Användningsområden inkluderar arkivering, lagring av virtuella maskinbilder, multimediadata, säkerhetskopior, användning som DRC (Disaster Recovery Center) och som lagring i högpresterande datorkluster. LizardFS ger mycket hög läshastighet för filer av alla storlekar, och när du skriver visar den bra prestanda när du skriver hela stora och medelstora filer, när det inte sker någon konstant modifiering, intensivt arbete med öppna filer och engångsoperationer med en massa små filer.

LizardFS 3.13.0-rc2 klusterfilsystemuppdatering

Bland funktionerna i FS kan man också notera närvaron av stöd för ögonblicksbilder, vilket återspeglar filernas tillstånd vid en viss tidpunkt, och en inbyggd implementering av "papperskorgen" (filer raderas inte omedelbart och är tillgängliga för återhämtning under en tid). Åtkomst till en partition kan begränsas av IP-adress eller lösenord (liknande NFS). Det finns mekanismer för hantering av kvoter och kvalitet på tjänster som gör att du kan begränsa storleken och bandbredden för vissa kategorier av användare. Det är möjligt att skapa geografiskt fördelade lagringsanläggningar, vars segment finns i olika datacenter.

LizardFS-projektet grundades 2013 som en gaffel ÄlgFS, och skiljer sig huvudsakligen i närvaron av ett replikeringsläge baserat på Reed-Solomon felkorrigeringskoder (analogt med raidzN), utökat ACL-stöd, närvaron av en klient för Windows-plattformen, ytterligare optimeringar (till exempel när man kombinerar en klient och en lagringsserver, block, om möjligt, skickas med aktuell nod och metadata cachelagras i minnet), ett mer flexibelt konfigurationssystem, stöd för dataread-ahead, katalogkvoter och intern omarbetning.

LizardFS 3.13.0 är planerad att släppas i slutet av december. Den huvudsakliga innovationen i LizardFS 3.13 är användningen av en konsensusalgoritm för att säkerställa feltolerans (byte av masterserver vid fel) Raft (använder vår egen implementering av uRaft, som tidigare användes i kommersiella produkter). Att använda uRaft förenklar konfigurationen och minskar fördröjningar för felåterställning, men kräver minst tre fungerande noder, varav en används för kvorum.

Andra ändringar: en ny klient baserad på FUSE3-undersystemet, löser problem med felkorrigering, nfs-ganesha-pluginet har skrivits om till C-språk. Uppdatering 3.13.0-rc2 fixar flera kritiska buggar som gjorde tidigare testversioner av 3.13-grenen oanvändbara (fixar för 3.12-grenen har ännu inte publicerats, och uppdateringen från 3.12 till 3.13 leder fortfarande till fullständig dataförlust).

Under 2020 kommer arbetet att fokuseras på att utveckla
agama, en ny helt omskriven LizardFS-kärna, som enligt utvecklarna kommer att ge en trefaldig ökning av prestanda jämfört med gren 3.12. Agama kommer att övergå till en händelsedriven arkitektur, asynkron input/output baserad asio, fungerar främst i användarutrymmet (för att minska beroendet av kärncachingmekanismer). Dessutom kommer ett nytt felsökningsundersystem och en nätverksaktivitetsanalysator med stöd för automatisk justering av prestanda att erbjudas.

LizardFS-klienten kommer att lägga till fullt stöd för versionsskrivoperationer, vilket kommer att förbättra tillförlitligheten för katastrofåterställning, lösa problem som uppstår när olika klienter delar åtkomst till samma data och möjliggöra betydande prestandaförbättringar. Klienten kommer att överföras till sitt eget nätverksundersystem som arbetar i användarutrymmet. Den första fungerande prototypen av LizardFS baserad på Agama är planerad att vara klar under andra kvartalet 2020. Samtidigt lovar de att implementera verktyg för att integrera LizardFS med Kubernetes-plattformen.

Källa: opennet.ru

Lägg en kommentar