LizardFS 3.13.0-rc2 clusterbestandssysteemupdate

Na een jaarlange ontwikkelingsstilte hervat werken aan een nieuwe tak van een fouttolerant gedistribueerd bestandssysteem HagedisF 3.13 и gepubliceerde tweede releasekandidaat. Onlangs heeft plaatsgevonden verandering van eigenaar van het bedrijf dat LizardFS ontwikkelt, er werd een nieuw management aangenomen en ontwikkelaars werden vervangen. De afgelopen twee jaar is het project uit de gemeenschap teruggetrokken en is er niet genoeg aandacht aan besteed, maar het nieuwe team is van plan de eerdere relatie met de gemeenschap nieuw leven in te blazen en er een nauwe interactie mee tot stand te brengen. De projectcode is geschreven in de talen C en C++ en gedistribueerd door onder GPLv3-licentie.

HagedisFS is een gedistribueerd clusterbestandssysteem, waarmee u gegevens over verschillende servers kunt distribueren, maar er toegang toe kunt verlenen in de vorm van een enkele grote partitie, waarmee op een vergelijkbare manier wordt gewerkt als traditionele schijfpartities. Een aangekoppelde partitie met LizardFS ondersteunt POSIX-bestandskenmerken, ACL's, sloten, sockets, pipelines, apparaatbestanden, symbolische en harde links. Het systeem kent geen single point-of-failure; alle componenten zijn redundant. Parallellisatie van gegevensbewerkingen wordt ondersteund (meerdere clients hebben tegelijkertijd toegang tot bestanden).

Om fouttolerantie te garanderen, worden de gegevens opgedeeld in replica's, die met redundantie over verschillende knooppunten worden verdeeld (meerdere kopieën worden op verschillende knooppunten geplaatst); als knooppunten of schijven uitvallen, blijft het systeem werken zonder verlies van informatie en worden de gegevens automatisch opnieuw gedistribueerd rekening houdend met de resterende knooppunten. Om de opslag uit te breiden, volstaat het om er nieuwe knooppunten op aan te sluiten zonder het werk voor onderhoud te onderbreken (het systeem repliceert zelf een deel van de gegevens naar nieuwe servers en balanceert de opslag, rekening houdend met de nieuwe servers). U kunt hetzelfde doen om de omvang van het cluster te verkleinen: u kunt eenvoudigweg de verouderde apparatuur uitschakelen die uit het systeem wordt verwijderd.

Gegevens en metadata worden afzonderlijk opgeslagen. Voor de werking wordt aanbevolen om twee metadataservers te installeren die in master-slave-modus werken, evenals minstens twee servers voor gegevensopslag (chunkserver). Bovendien kunnen logservers worden gebruikt om een ​​back-up te maken van metagegevens, informatie over wijzigingen in de metagegevens op te slaan en de werking te kunnen herstellen in geval van schade aan alle bestaande metagegevensservers. Elk bestand is verdeeld in blokken (chunks) van maximaal 64 MB groot. Blokken worden verdeeld over opslagservers in overeenstemming met de geselecteerde replicatiemodus: standaard (expliciete bepaling van het aantal kopieën dat op verschillende knooppunten moet worden geplaatst, ook met betrekking tot individuele mappen - voor belangrijke gegevens kan het aantal kopieën worden verhoogd, en voor onbelangrijke gegevens verminderd), XOR (RAID5) en EC (RAID6).

Opslag kan worden opgeschaald tot petabytes. Toepassingsgebieden zijn onder meer archivering, opslag van afbeeldingen van virtuele machines, multimediagegevens, back-ups, gebruik als DRC (Disaster Recovery Center) en als opslag in krachtige computerclusters. LizardFS biedt een zeer hoge leessnelheid voor bestanden van elke grootte, en bij het schrijven vertoont het goede prestaties bij het schrijven van hele grote en middelgrote bestanden, wanneer er geen constante wijziging is, intensief werken met geopende bestanden en eenmalige bewerkingen met een een hoop kleine bestanden.

LizardFS 3.13.0-rc2 clusterbestandssysteemupdate

Onder de kenmerken van de FS valt ook de aanwezigheid op van ondersteuning voor snapshots, die de status van bestanden op een bepaald moment weerspiegelen, en een ingebouwde implementatie van de "prullenbak" (bestanden worden niet onmiddellijk verwijderd en zijn beschikbaar voor herstel enige tijd). De toegang tot een partitie kan worden beperkt door een IP-adres of wachtwoord (vergelijkbaar met NFS). Er zijn mechanismen voor quota- en servicekwaliteitsbeheer waarmee u de omvang en bandbreedte voor bepaalde categorieën gebruikers kunt beperken. Het is mogelijk om geografisch verspreide opslagfaciliteiten te creëren, waarvan de segmenten zich in verschillende datacenters bevinden.

Het LizardFS-project werd in 2013 opgericht als een fork MooseFS, en verschilt vooral in de aanwezigheid van een replicatiemodus gebaseerd op Reed-Solomon foutcorrectiecodes (analoog aan raidzN), uitgebreide ACL-ondersteuning, de aanwezigheid van een client voor het Windows-platform, aanvullende optimalisaties (bijvoorbeeld bij het combineren van een client en een opslagserver, blokken worden indien mogelijk met het huidige knooppunt verzonden en metagegevens worden in het geheugen in de cache opgeslagen), een flexibeler configuratiesysteem, ondersteuning voor vooruitlezen van gegevens, directoryquota en intern herwerken.

LizardFS 3.13.0 zal naar verwachting eind december uitkomen. De belangrijkste innovatie van LizardFS 3.13 is het gebruik van een consensusalgoritme om fouttolerantie te garanderen (het wisselen van masterserver in geval van een storing) Vlot (maakt gebruik van onze eigen implementatie van uRaft, die eerder werd gebruikt in commerciële producten). Het gebruik van uRaft vereenvoudigt de configuratie en vermindert vertragingen bij het herstellen van fouten, maar vereist ten minste drie werkende knooppunten, waarvan er één wordt gebruikt voor quorum.

Andere veranderingen: een nieuwe client gebaseerd op het FUSE3-subsysteem, die problemen met foutcorrectie oplost, de nfs-ganesha-plug-in is herschreven in C-taal. Update 3.13.0-rc2 repareert verschillende kritieke bugs die eerdere testversies van de 3.13-tak onbruikbaar maakten (oplossingen voor de 3.12-tak zijn nog niet gepubliceerd en de update van 3.12 naar 3.13 leidt nog steeds tot volledig gegevensverlies).

In 2020 zal de nadruk liggen op ontwikkeling
Agama, een nieuwe, volledig herschreven LizardFS-kernel, die volgens de ontwikkelaars een drievoudige prestatieverbetering zal opleveren vergeleken met branch 3.12. Agama zal overstappen naar een gebeurtenisgestuurde architectuur, gebaseerd op asynchrone input/output Azië, werken voornamelijk in de gebruikersruimte (om de afhankelijkheid van kernelcachingmechanismen te verminderen). Bovendien zullen een nieuw debugging-subsysteem en een netwerkactiviteitsanalysator met ondersteuning voor automatische afstemming van prestaties worden aangeboden.

De LizardFS-client zal volledige ondersteuning toevoegen voor schrijfbewerkingen op versiebeheer, wat de betrouwbaarheid van noodherstel zal verbeteren, problemen zal oplossen die ontstaan ​​wanneer verschillende clients toegang tot dezelfde gegevens delen, en aanzienlijke prestatieverbeteringen mogelijk zal maken. De client wordt overgebracht naar zijn eigen netwerksubsysteem dat in de gebruikersruimte werkt. Het eerste werkende prototype van LizardFS op basis van Agama zal naar verwachting in het tweede kwartaal van 2020 gereed zijn. Tegelijkertijd beloven ze tools te implementeren voor de integratie van LizardFS met het Kubernetes-platform.

Bron: opennet.ru

Voeg een reactie