Po ročním útlumu ve vývoji pracovní úsilí na nové větvi vysoce dostupného distribuovaného souborového systému a druhý kandidát na vydání. Nedávno došlo ke změně vlastníků společnosti, která vyvíjí LizardFS, nové vedení přijalo nové vývojáře. Poslední dva roky se projekt vzdálil od komunity a nevěnoval jí dostatečnou pozornost, ale nový tým má v úmyslu oživit dřívější vztahy s komunitou a navázat s ní úzkou spolupráci. Zdrojový kód projektu je napsán v jazycích C a C++ a je licencován pod GPLv3.
LizardFS je distribuovaný clusterový souborový systém, který umožňuje rozložit data na různé servery, ale představit k nim přístup jako k jednomu velkému oddílu, jehož využití je analogické tradičním diskovým oddílům. V připojeném oddílu s LizardFS jsou podporovány POSIX atributy souborů, ACL, zámky, sockety, kanály, zařízení, symbolické a tvrdé odkazy. Systém nemá jedinou chybnou část, všechny komponenty jsou redundantní. Podporuje zpracování dat ve více vláknech (více klientů může současně přistupovat k souborům).
Pro zajištění vysoké dostupnosti jsou data rozdělena na repliky, které jsou distribuovány na různé uzly s redundancí (na různých uzlech je umístěno několik kopií) — pokud dojde k poruše uzlů nebo úložišť, systém pokračuje v provozu bez ztráty dat a automaticky přerozděluje data s přihlédnutím k zbývajícím uzlům. Pro rozšíření úložiště stačí připojit nové uzly bez přerušení provozu (systém sám replikje část dat na nové servery a vyváží úložiště s ohledem na nové servery). Podobně lze postupovat i při zmenšení velikosti clusteru — stačí jednoduše odpojit zastaralé zařízení.
Data a metadata jsou uchovávány odděleně. Pro provoz se doporučuje instalovat dva servery metadat pracující v režimu master-slave a také alespoň dva servery pro uchovávání dat (chunkserver). Pro zálohování metadat mohou být navíc použity log servery, které uchovávají informace o změnách metadat a umožňují obnovení provozu v případě poškození všech dostupných serverů metadat. Každý soubor je rozdělen na bloky (chunk) o velikosti až 64 MB. Bloky jsou rozloženy na servery pro uchovávání dat podle vybraného režimu replikace: standardní (výslovné určení počtu kopií pro umístění na různých uzlech, včetně vazby na jednotlivé adresáře – pro důležitá data lze počet kopií zvýšit a pro méně podstatná snížit), XOR (RAID5) a EC (RAID6).
Úložiště může škálovat do petabajtových rozměrů. Mezi oblasti použití patří správa archivů, uchovávání obrazů virtuálních strojů, multimediálních dat, záloh, použití jako DRC (Disaster Recovery Center) a jako úložiště ve clusterech vysoce výkonných výpočtů. LizardFS poskytuje velmi vysokou rychlost čtení souborů libovolné velikosti, a při zápisu vykazuje dobrou výkonnost při zápisu celých velkých a středních souborů, kdy nedochází k trvalým modifikacím, intenzivní práci s otevřenými soubory a jednorázovým operacím s množstvím drobných souborů.
Mezi vlastnostmi FS lze také zmínit podporu snapshotů, které odrážejí stav souborů v určitém čase, a vestavěnou realizaci "koše" (soubory se neodstraňují okamžitě a nějakou dobu zůstávají k dispozici pro obnovení). Přístup k oddílu může být omezen podle IP adresy nebo hesla (podobně jako NFS). Jsou k dispozici mechanismy kvót a správy kvality služby, které umožňují omezit velikost a propustnost pro některé skupiny uživatelů. Je možné vytvořit geograficky distribuované úložiště, jehož segmenty jsou umístěny v různých datových centrech.
Projekt LizardFS byl založen v roce 2013 jako fork , a liší se především přítomností replikace na základě kódů pro opravu chyb Reed-Solomon (analog raidzN), rozšířenou podporou ACL, dostupností klienta pro platformu Windows, dalšími optimalizacemi (například při integraci klienta a úložiště jsou bloky podle možností odesílány z aktuálního uzlu a metadata jsou ukládána do cache), flexibilnějším nastavením, podporou předběžného čtení dat, kvótami na adresáře a vnitřními přepracováními.
Vydání LizardFS 3.13.0 je plánováno na konec prosince. Hlavní novinkou LizardFS 3.13 je využití algoritmu pro dosažení konsensu pro zajištění odolnosti proti výpadkům (přepnutí master serverů v případě poruchy). (používá se vlastní implementace uRaft, která byla dříve využívána v komerčních produktech). Použití uRaft zjednodušuje nastavení a zkracuje prodlevy při obnově po výpadku, avšak vyžaduje alespoň tři funkční uzly, z nichž jeden se používá pro kvórum.
Mezi dalšími změnami: nový klient na bázi subsystému FUSE3, řešení problémů s opravou chyb, plugin nfs-ganesha byl přepsán v jazyce C. V aktualizaci 3.13.0-rc2 bylo opraveno několik kritických chyb, které dělaly předchozí testovací verze větve 3.13 málo použitelné (opravy pro větev 3.12 zatím 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 vývoj
, zcela nového přepracovaného jádra LizardFS, které, podle tvrzení vývojářů, zajistí trojnásobné zvýšení výkonu oproti větvi 3.12. V Agama bude proveden přechod na událostmi řízenou architekturu (event driven), asynchronní vstup/výstup na bázi , přičemž práce bude převážně probíhat v prostoru uživatele (pro snížení závislosti na mechanismech ukládání do mezipaměti jádra). Dále budou nabídnuty nové ladicí subsystémy a analyzátor síťové aktivity s podporou automatického ladění výkonu.
Klient LizardFS bude mít plnou podporu verzionování zápisových operací, což zvýší spolehlivost obnovy po havárii, vyřeší problémy, které vznikají při současném přístupu různých klientů k těmto datům, a umožní značné zvýšení výkonu. Klient bude přenesen na vlastní síťový subsystém, který funguje v uživatelském prostoru. První funkční prototyp LizardFS založený na Agama bude připraven ve druhém čtvrtletí 2020. Ve stejném období se plánuje realizace prostředků pro integraci LizardFS s platformou Kubernetes.
Zdroj: opennet.ru
