Nakon jednogodišnjeg zatišja u razvoju rad na novoj grani distribuiranog datotečnog sustava otpornog na greške и drugi kandidat za izdanje nedavno Tvrtka koja razvija LizardFS promijenila je vlasništvo, s novim menadžmentom i programerima. Posljednje dvije godine projekt se distancirao od zajednice i nije mu posvetio pažnju koju zaslužuje, ali novi tim namjerava obnoviti svoj prijašnji odnos sa zajednicom i uspostaviti blisku interakciju. Kod projekta napisan je u C i C++ programskim jezicima. pod GPLv3 licencom.
GušterFS Distribuirani klaster datotečni sustav koji omogućuje raspršivanje podataka na više poslužitelja, ali im se pristupa kao jednoj, velikoj particiji, slično tradicionalnim particijama diska. Montirana particija s LizardFS-om podržava POSIX atribute datoteka, ACL-ove, brave, utičnice, cijevi, datoteke uređaja, simboličke veze i tvrde veze. Sustav nema jedinstvenu točku kvara i sve komponente su redundantne. Podržane su paralelne operacije s podacima (više klijenata može istovremeno pristupiti datotekama).
Kako bi se osigurala tolerancija grešaka, podaci su podijeljeni u replike koje su distribuirane po različitim čvorovima s redundancijom (više kopija nalazi se na različitim čvorovima). U slučaju kvara čvora ili pogona, sustav nastavlja raditi bez gubitka podataka i automatski preraspodjeljuje podatke na temelju preostalih čvorova. Za proširenje pohrane jednostavno spojite nove čvorove na njega bez zastoja radi održavanja (sustav automatski replicira neke podatke na nove poslužitelje i ponovno uravnotežuje pohranu na temelju novih poslužitelja). Sličan pristup može se koristiti za smanjenje veličine klastera - jednostavno isključite zastarjelu opremu koja se dekomisionira.
Podaci i metapodaci pohranjuju se odvojeno. Preporučuje se instalirati dva poslužitelja metapodataka koji rade u master-slave načinu rada, kao i najmanje dva poslužitelja za pohranu podataka (chunkservera). Poslužitelji zapisnika također se mogu koristiti za sigurnosno kopiranje metapodataka. Oni pohranjuju informacije o promjenama metapodataka i omogućuju oporavak u slučaju oštećenja svih postojećih poslužitelja metapodataka. Svaka datoteka je podijeljena u blokove (chunkove) veličine do 64 MB. Blokovi se distribuiraju po poslužiteljima za pohranu prema odabranom načinu replikacije: standardni (eksplicitno definiranje broja kopija koje će se smjestiti na različite čvorove, uključujući povezivanje s pojedinačnim direktorijima - broj kopija može se povećati za važne podatke i smanjiti za nevažne podatke), XOR (RAID5) i EC (RAID6).
Pohrana se može skalirati do petabajta. Primjene uključuju arhiviranje, pohranu slika virtualnih strojeva, multimedijskih podataka, sigurnosnih kopija, korištenje kao centra za oporavak od katastrofe (DRC) i kao pohranu u visokoučinkovitim računalnim klasterima. LizardFS pruža vrlo velike brzine čitanja za datoteke bilo koje veličine i pokazuje dobre performanse pisanja za cijele velike i srednje datoteke, kada nema stalnih izmjena, intenzivnog rada s otvorenim datotekama ili jednokratnih operacija s mnogo malih datoteka.
Druge značajke datotečnog sustava uključuju podršku za snimke stanja, koja odražava stanje datoteka u određenom trenutku, i ugrađeni "koš za smeće" (datoteke se ne brišu odmah i ostaju dostupne za oporavak određeno vrijeme). Pristup particiji može se ograničiti IP adresom ili lozinkom (slično NFS-u). Dostupni su mehanizmi upravljanja kvotama i kvalitetom usluge za ograničavanje veličine i propusnosti za određene kategorije korisnika. Mogu se stvoriti geografski distribuirani sustavi za pohranu, sa segmentima smještenim u različitim podatkovnim centrima.
Projekt LizardFS osnovan je 2013. godine kao fork. , a razlikuje se uglavnom po prisutnosti načina replikacije temeljenog na Reed-Solomon kodovima za ispravljanje pogrešaka (analogno raidzN-u), proširenoj podršci za ACL i prisutnosti klijenta za platformu Windows, dodatne optimizacije (na primjer, pri kombiniranju klijenta i poslužitelja za pohranu, blokovi se poslužuju s trenutnog čvora kad god je to moguće, a metapodaci se pohranjuju u memoriju), fleksibilniji sustav konfiguracije, podrška za preventivno čitanje podataka, kvote direktorija i interna prerada.
Izlazak LizardFS-a 3.13.0 planiran je za kraj prosinca. Glavna inovacija LizardFS-a 3.13 je korištenje konsenzusnog algoritma kako bi se osigurala tolerancija grešaka (prebacivanje glavnih poslužitelja u slučaju kvara). (Koristi vlasničku implementaciju uRafta, prethodno korištenu u komercijalnim proizvodima.) Korištenje uRafta pojednostavljuje postavljanje i smanjuje latenciju oporavka od kvara, ali zahtijeva najmanje tri radna čvora, od kojih jedan služi kao kvorum.
Ostale promjene uključuju novi klijent temeljen na FUSE3 podsustavu, ispravke programskih pogrešaka i prepisivanje dodatka nfs-ganesha u C-u. Ažuriranje 3.13.0-rc2 ispravlja nekoliko kritičnih pogrešaka koji su prethodna testna izdanja grane 3.13 učinili neupotrebljivima (ispravci za granu 3.12 još nisu objavljeni, a nadogradnja s verzije 3.12 na 3.13 i dalje rezultira potpunim gubitkom podataka).
U 2020. godini rad će se usredotočiti na razvoj
, novi, potpuno prepisani LizardFS kernel, koji će, prema riječima programera, pružiti trostruko povećanje performansi u usporedbi s verzijom 3.12. Agama će imati prijelaz na arhitekturu vođenu događajima, asinkroni I/O temeljen na , koji primarno djeluje u korisničkom prostoru (kako bi se smanjila ovisnost o mehanizmima predmemoriranja kernela). Osim toga, bit će ponuđen novi podsustav za otklanjanje pogrešaka i analizator mrežne aktivnosti s podrškom za automatsko podešavanje performansi.
Klijent LizardFS bit će poboljšan punom podrškom za pisanje verzija, što će poboljšati pouzdanost oporavka od katastrofe, riješiti probleme koji nastaju kada više klijenata pristupa istim podacima i značajno poboljšati performanse. Klijent će biti migriran na vlastiti mrežni podsustav korisničkog prostora. Prvi radni prototip LizardFS-a temeljen na Agami planiran je za drugi kvartal 2020. Istovremeno, obećani su alati za integraciju LizardFS-a s Kubernetes platformom.
Izvor: opennet.ru
