Nakon jednogodišnje pauze u razvoju nastavljena rad na novoj grani distribuiranog sustava datoteka otpornog na greške i drugi kandidat za izdanja. Nedavno promjena vlasnika tvrtke koja razvija LizardFS, novo vodstvo preuzelo je kontrolu i promijenili su se programeri. Posljednje dvije godine projekt se povukao iz zajednice i nije joj posvećivao dovoljnu pažnju, ali novi tim namjerava obnoviti prethodne odnose s zajednicom i uspostaviti blisku suradnju. Kod projekta napisan je na jezicima C i C++ i pod licencom GPLv3.
LizardFS je distribuirani klaster sustav datoteka koji omogućava raspodjelu podataka po različitim poslužiteljima, ali pristup njima prezentira u obliku jedinstvene velike particije, s kojom se upravlja analogno kao s tradicionalnim diskovnim particijama. U montiranoj particiji s LizardFS podržavaju se POSIX atributi datoteka, ACL, zaključavanja, socketi, cijevi, datoteke uređaja, simboličke i tvrde poveznice. Sustav nema jedinstvenu točku kvara, svi su komponente rezervne. Podržava se paralelizacija operacija s podacima (više klijenata može istovremeno pristupati datotekama).
Radi osiguravanja otpornosti na greške, podaci se razdjeljuju u replikate koji su raspoređeni po različitim čvorovima s rezervacijom (na različitim čvorovima smješteno je nekoliko kopija) — u slučaju kvara čvorova ili pohrana, sustav nastavlja rad bez gubitka informacija i automatski redistribuira podatke uzimajući u obzir preostale čvorove. Za proširenje pohrane dovoljno je povezati nove čvorove bez zaustavljanja rada na održavanje (sustav automatski replicira dio podataka na nove poslužitelje i balansira pohranu uzimajući u obzir nove poslužitelje). Slično se može postupiti i za smanjenje veličine klastera — jednostavno se može isključiti zastarjela oprema iz sustava.
Podaci i metapodaci se čuvaju odvojeno. Preporučuje se postavljanje dva servera za metapodatke, koji rade u master-slave režimu, kao i najmanje dva servera za čuvanje podataka (chunkserver). Dodatno, za rezervaciju metapodataka mogu se koristiti log-serveri koji čuvaju informacije o promenama metapodataka i omogućavaju oporavak u slučaju oštećenja svih dostupnih servera metapodataka. Svaka datoteka se deli na blokove (chunk) veličine do 64 MB. Blokovi se distribuiraju po serverima za čuvanje u skladu sa izabranim režimom replikacije: standardni (izričito određivanje broja kopija za smeštaj na različitim čvorovima, uključujući vezivanje za određene direktorije – za važne podatke može se povećati broj kopija, a za manje važne smanjiti), XOR (RAID5) i EC (RAID6).
Skladište se može skalirati do petabajtnih veličina. Među područjima primene mogu se pomenuti vođenje arhiva, čuvanje slika virtuelnih mašina, multimedijskih podataka, rezervnih kopija, korišćenje kao DRC (Centar za oporavak od katastrofa) i kao skladište u klasterima visokih performansi. LizardFS obezbeđuje veoma visoku brzinu čitanja datoteka bilo koje veličine, a prilikom pisanja pokazuje dobru performansu prilikom celokupnog zapisivanja velikih i srednjih datoteka, kada nema konstantnih modifikacija, intenzivnog rada sa otvorenim datotekama ili pojedinačnih operacija sa gomilom malih datoteka.
Među karakteristikama FSa takođe se može istaknuti prisustvo podrške za snapshot-e, koji odražavaju stanje datoteka u određenom trenutku, kao i ugrađena realizacija „korpe“ (datoteke se ne brišu odmah i određeno vreme su dostupne za oporavak). Pristup delu može biti ograničen prema IP adresi ili lozinki (na sličan način kao NFS). Postoje mehanizmi kvota i upravljanja kvalitetom usluge, omogućavajući ograničenje veličine i propusnosti za neke kategorije korisnika. Moguće je stvaranje teritorijalno distribuiranih skladišta čiji su segmenti smešteni u različitim data centrima.
Projekt LizardFS osnovan je 2013. godine kao fork , i razlikuje se, uglavnom, po prisutnosti načina replikacije zasnovanog na Reed-Solomon kodovima (analog raidzN), proširenoj podršci za ACL, prisutnosti klijenta za Windows platformu, dodatnim optimizacijama (na primjer, prilikom kombinovanja klijenta i servera za skladištenje, blokovi se što je više moguće predaju sa trenutnog čvora, dok se metapodaci keširaju u memoriji), fleksibilnijem sistemu podešavanja, podršci za proaktivno čitanje podataka, kvotama na direktorije i unutrašnjim preradama.
LizardFS 3.13.0 planira se objaviti krajem decembra. Glavna novost LizardFS 3.13 je upotreba algoritma za dostizanje konsenzusa za obezbeđivanje otpornosti na greške (prebacivanje master servera u slučaju kvara) (koristi se vlastita implementacija uRaft, koja je ranije korišćena u komercijalnim proizvodima). Korišćenje uRaft pojednostavljuje podešavanje i smanjuje kašnjenja prilikom oporavka od kvara, ali zahteva najmanje tri radna čvora, od kojih se jedan koristi za kvorum.
Od drugih izmena: novi klijent zasnovan na FUSE3 podsistemu, rešavanje problema sa ispravljanjem grešaka, nfs-ganesha plugin je ponovo napisan u C jeziku. U ažuriranju 3.13.0-rc2 ispravljeno je nekoliko kritičnih grešaka koje su prethodne testne verzije grane 3.13 činile praktično neupotrebljivima (ispravke za granu 3.12 još nisu objavljene, a nadogradnja sa 3.12 na 3.13 i dalje dovodi do potpunog gubitka podataka).
U 2020. godini rad će biti fokusiran na razvoj
, novog potpuno prepisanog jezgra LizardFS-a, koje, prema rečima developera, obezbediće tri puta veću efikasnost u poređenju sa granom 3.12. U Agama će biti sproveden prelazak na arhitekturu zasnovanu na događajima (event driven), asinhrono ulaz/izlaz zasnovano na , rad pretežno u korisničkom prostoru (kako bi se smanjila zavisnost od mehanizama keširanja jezgra). Dodatno će biti ponuđen novi sistem za debagovanje i analitičar mrežne aktivnosti sa podrškom za automatsko podešavanje performansi.
U klijent LizardFS bit će dodana potpuna podrška za verzioniranje operacija zapisivanja, što će poboljšati pouzdanost oporavka nakon kvara, riješiti probleme koji nastaju prilikom zajedničkog pristupa različitih klijenata istim podacima i omogućiti značajno povećanje performansi. Klijent će biti prebačen na vlastiti mrežni podsustav koji radi u korisničkom prostoru. Prvi radni prototip LizardFS na bazi Agama planira se pripremiti u drugom kvartalu 2020. godine. U to vrijeme također se očekuje implementacija sredstava za integraciju LizardFS s platformom Kubernetes.
Izvor: opennet.ru
