Aktualizace systému souborů clusteru LizardFS 3.13.0-rc2

Po roční odmlce ve vývoji obnoveno práce na nové větvi distribuovaného souborového systému odolného proti chybám LizardF 3.13 и publikováno druhý kandidát na vydání. Nedávno Stalo změna vlastníků společnosti vyvíjející LizardFS, bylo přijato nové vedení a vyměněni vývojáři. Poslední dva roky byl projekt stažen z komunity a nevěnoval mu dostatečnou pozornost, ale nový tým hodlá oživit předchozí vztah s komunitou a navázat s ní úzkou interakci. Kód projektu je napsán v jazycích C a C++ a distribuovány pod licencí GPLv3.

Ještěrka to je distribuovaný klastrový souborový systém, který umožňuje distribuovat data mezi různé servery, ale poskytuje k nim přístup ve formě jednoho velkého oddílu, se kterým se pracuje podobně jako s tradičními diskovými oddíly. Připojený oddíl s LizardFS podporuje atributy souborů POSIX, ACL, zámky, zásuvky, kanály, soubory zařízení, symbolické a pevné odkazy. Systém nemá jediný bod selhání, všechny komponenty jsou redundantní. Je podporována paralelizace datových operací (k souborům může současně přistupovat několik klientů).

Pro zajištění odolnosti proti chybám jsou data rozdělena do replik, které jsou distribuovány napříč různými uzly s redundancí (několik kopií je umístěno na různých uzlech); pokud uzly nebo jednotky selžou, systém pokračuje v provozu bez ztráty informací a automaticky přerozděluje data s přihlédnutím ke zbývajícím uzlům. K rozšíření úložiště stačí k němu připojit nové uzly, aniž by se zastavily práce na údržbě (systém sám replikuje část dat na nové servery a vyrovnává úložiště s ohledem na nové servery). Totéž můžete udělat pro zmenšení velikosti clusteru – jednoduše můžete deaktivovat zastaralé zařízení, které se odstraňuje ze systému.

Data a metadata jsou uložena odděleně. Pro provoz se doporučuje nainstalovat dva servery metadat pracující v režimu master-slave a také alespoň dva servery pro ukládání dat (chunkserver). Kromě toho lze k zálohování metadat použít servery protokolů k ukládání informací o změnách v metadatech a umožňují vám obnovit provoz v případě poškození všech existujících serverů metadat. Každý soubor je rozdělen do bloků (kusů) o velikosti až 64 MB. Bloky jsou distribuovány mezi úložné servery v souladu se zvoleným režimem replikace: standardní (explicitní určení počtu kopií, které mají být umístěny na různé uzly, a to i ve vztahu k jednotlivým adresářům - pro důležitá data lze počet kopií navýšit a např. snížení nedůležitých dat), XOR (RAID5) a EC (RAID6).

Úložiště lze škálovat až do velikosti petabajtů. Oblasti použití zahrnují archivaci, ukládání obrazů virtuálních strojů, multimediálních dat, zálohování, použití jako DRC (Disaster Recovery Center) a jako úložiště ve vysoce výkonných počítačových clusterech. LizardFS poskytuje velmi vysokou rychlost čtení pro soubory libovolné velikosti a při zápisu vykazuje dobrý výkon při zápisu celých velkých a středně velkých souborů, kdy nedochází k neustálým úpravám, intenzivní práci s otevřenými soubory a jednorázovým operacím s hromada malých souborů.

Aktualizace systému souborů clusteru LizardFS 3.13.0-rc2

Mezi funkcemi FS lze také zaznamenat přítomnost podpory pro snímky, odrážející stav souborů v určitém čase, a vestavěnou implementaci „koše“ (soubory nejsou okamžitě odstraněny a jsou k dispozici pro zotavení po nějakou dobu). Přístup k oddílu může být omezen IP adresou nebo heslem (podobně jako NFS). Existují mechanismy správy kvót a kvality služeb, které vám umožňují omezit velikost a šířku pásma pro určité kategorie uživatelů. Je možné vytvářet geograficky distribuovaná úložiště, jejichž segmenty jsou umístěny v různých datových centrech.

Projekt LizardFS byl založen v roce 2013 jako fork MooseFS, a liší se především přítomností režimu replikace založeného na kódech opravy chyb Reed-Solomon (obdoba raidzN), rozšířenou podporou ACL, přítomností klienta pro platformu Windows, dalšími optimalizacemi (například při kombinaci klienta a úložný server, bloky, pokud je to možné, jsou odesílány s aktuálním uzlem a metadata jsou ukládána do mezipaměti), flexibilnější konfigurační systém, podpora pro načítání dat, kvóty adresářů a interní přepracování.

Vydání LizardFS 3.13.0 je naplánováno na konec prosince. Hlavní inovací LizardFS 3.13 je použití konsenzuálního algoritmu pro zajištění odolnosti proti chybám (přepínání hlavních serverů v případě selhání) Vor (využívá naši vlastní implementaci uRaft, která byla dříve používána v komerčních produktech). Použití uRaft zjednodušuje konfiguraci a snižuje zpoždění při obnově selhání, ale vyžaduje alespoň tři pracovní uzly, z nichž jeden se používá pro kvorum.

Další změny: nový klient založený na subsystému FUSE3, řešící problémy s opravou chyb, plugin nfs-ganesha byl přepsán do jazyka C. Aktualizace 3.13.0-rc2 opravuje několik kritických chyb, které způsobily, že předchozí testovací verze větve 3.13 byly nepoužitelné (opravy pro větev 3.12 ještě nebyly zveřejněny a aktualizace z 3.12 na 3.13 stále vede k úplné ztrátě dat).

V roce 2020 se práce zaměří na rozvoj
Agama, nové kompletně přepsané jádro LizardFS, které podle vývojářů poskytne trojnásobný nárůst výkonu oproti větvi 3.12. Agama přejde na architekturu řízenou událostmi, založenou na asynchronním vstupu/výstupu asio, fungují primárně v uživatelském prostoru (pro snížení závislosti na mechanismech cachování jádra). Navíc bude nabízen nový ladicí subsystém a analyzátor síťové aktivity s podporou automatického ladění výkonu.

Klient LizardFS přidá plnou podporu pro operace zápisu do verzí, což zlepší spolehlivost obnovy po havárii, vyřeší problémy, které nastanou, když různí klienti sdílejí přístup ke stejným datům, a umožní výrazné zvýšení výkonu. Klient bude převeden do vlastního síťového subsystému pracujícího v uživatelském prostoru. První funkční prototyp LizardFS založený na Agamě má být připraven ve druhém čtvrtletí roku 2020. Zároveň slibují implementaci nástrojů pro integraci LizardFS s platformou Kubernetes.

Zdroj: opennet.ru

Přidat komentář