Pärast aastast pausi arenduses töö uue tõrketaluvusega hajusfailisüsteemi haru kallal ja teine väljalaskekandidaat. Hiljuti pärast LizardFS-i arendava ettevõtte omanike vahetust nimetati uus juhtkond ja vahetusid ka arendajad. Viimase kahe aasta jooksul eemaldus projekt kogukonnast ega pööranud sellele piisavalt tähelepanu, kuid uus meeskond kavatseb taastada varasemad suhted kogukonnaga ja luua sellega tiheda koostöö. Projekti kood on kirjutatud C ja C++ keeles ning seda levitatakse GPLv3 litsentsi alusel.
LizardFS on hajus klasterfailisüsteem, mis võimaldab andmed jaotada erinevate serverite vahel, kuid esitada neile juurdepääsu ühe suure ühtse kettapartitsioonina, millega töötatakse sarnaselt traditsiooniliste kettapartitsioonidega. LizardFS-iga ühendatud haakesektsioonis toetatakse POSIX-failiatribuute, ACL-e, lukustusi, sokleid, kanaleid, seadmefaile ning sümboolseid ja kõvasid linke. Süsteemil puudub üksik tõrkepunkt, kõik komponendid on dubleeritud. Toetatud on andmetoimingute paralleelne töötlemine (mitu klienti saavad samal ajal failidele juurde pääseda).
Tõrketaluvuse tagamiseks jagatakse andmed replikateks, mis paigutatakse varundusega eri sõlmedesse (eri sõlmedes hoitakse mitut koopiat). Kui sõlmed või andmekandjad rivist välja langevad, jätkab süsteem tööd ilma andmekadudeta ning jaotab andmed automaatselt ümber, arvestades allesjäänud sõlmi. Salvestusruumi laiendamiseks piisab uute sõlmede lisamisest ilma teenuse katkestuseta hoolduseks (süsteem replikeerib ise osa andmeid uutele serveritele ja tasakaalustab salvestusruumi neid arvesse võttes). Samamoodi saab vähendada ka klastri mahtu — koosseisust eemaldatava vananenud riistvara võib lihtsalt lahti ühendada.
Andmed ja metaandmed salvestatakse eraldi. Töökindluse tagamiseks on soovitatav kasutada kahte metaandmeserverit master-slave režiimis ning vähemalt kahte andmesalvestusserverit (chunkserver). Metaandmete varundamiseks saab lisaks kasutada logiservereid, mis talletavad teavet metaandmete muudatuste kohta ja võimaldavad töö taastada ka siis, kui kõik olemasolevad metaandmeserverid saavad kahjustada. Iga fail jagatakse kuni 64 MB suurusteks plokkideks (chunk). Plokid jaotatakse salvestusserverite vahel vastavalt valitud replikatsioonirežiimile: standardne (koopiate arvu saab selgelt määrata eri sõlmedesse paigutamiseks, sh konkreetsete kataloogide kaupa — oluliste andmete jaoks saab koopiate arvu suurendada ja vähemoluliste jaoks vähendada), XOR (RAID5) ja EC (RAID6).
Salvestusruumi saab skaleerida kuni petabaitideni. Kasutusvaldkondadena on nimetatud arhiivide haldamist, virtuaalmasinate tõmmiste salvestamist, multimeediaandmete ja varukoopiate hoidmist, kasutust DRC-na (Disaster Recovery Center) ning salvestuslahendusena suure jõudlusega arvutusklastrites. LizardFS tagab väga suure lugemiskiiruse igas suuruses failide puhul ning pakub kirjutamisel head jõudlust suurte ja keskmise suurusega failide täielikul salvestamisel, kui ei toimu pidevat muutmist, intensiivset tööd avatud failidega ega ühekordseid toiminguid suure hulga väikeste failidega.
Failisüsteemi omaduste hulgas tasub märkida ka snapshot'ide tuge, mis kajastavad failide olekut kindlal ajahetkel, ning sisseehitatud „prügikasti” lahendust (faile ei kustutata kohe ja neid saab mõnda aega taastada). Juurdepääsu kettajaole saab piirata IP-aadressi või parooliga (sarnaselt NFS-ile). Olemas on kvoodi- ja teenusekvaliteedi haldamise mehhanismid, mis võimaldavad piirata teatud kasutajarühmade mahtu ja läbilaskevõimet. Võimalik on luua geograafiliselt hajutatud salvestuslahendusi, mille segmendid paiknevad erinevates andmekeskustes.
LizardFS-i projekt loodi 2013. aastal fork'ina , ning erineb peamiselt Reedi–Solomoni veaparanduskoodidel põhineva replikatsioonirežiimi olemasolu poolest (sarnane raidzN-ile), laiendatud ACL-toe, Windowsi platvormi kliendi, täiendavate optimeerimistega (näiteks kliendi ja salvestusserveri kooskasutuse korral antakse plokid võimaluse korral üle samast sõlmest ning metaandmed vahemällu salvestatakse mällu), paindlikuma seadistussüsteemi, ennetava andmelugemise toe, kataloogikvootide ja sisemiste ümbertöötlustega.
LizardFS 3.13.0 väljalase on plaanis välja anda detsembri lõpus. LizardFS 3.13 peamine uuendus on konsensuse saavutamise algoritmi kasutuselevõtt tõrketaluvuse tagamiseks (master-serverite ümberlülitamiseks rikke korral) (kasutatakse uRafti omarakendust, mida on varem kasutatud kommertstoodetes). uRafti kasutamine lihtsustab seadistamist ja vähendab taastumise viivitusi pärast riket, kuid eeldab vähemalt kolme töötava sõlme olemasolu, millest ühte kasutatakse kvoorumi jaoks.
Muude muudatuste hulgas on uus FUSE3 alamsüsteemil põhinev klient, veaparanduste korrigeerimise probleemide lahendused ning nfs-ganesha plugin on ümber kirjutatud C-keeles. Värskenduses 3.13.0-rc2 parandati mitu kriitilist viga, mis muutsid haru 3.13 varasemad testväljalasked kasutamiseks vähe sobivaks (haru 3.12 parandusi pole seni avaldatud ning uuendamine versioonilt 3.12 versioonile 3.13 põhjustab endiselt täieliku andmekao).
2020. aastal keskendutakse töö käigus arendusele
, LizardFS-i uuele täielikult ümber kirjutatud tuumale, mis arendajate kinnitusel tagab võrreldes haruga 3.12 kolmekordse jõudluse kasvu. Agama puhul minnakse üle sündmuspõhisele arhitektuurile (event driven), asünkroonsele sisendile/väljundile, mis põhineb , ning töö toimub peamiselt kasutajaruumis (et vähendada sõltuvust tuuma vahemälumehhanismidest). Lisaks pakutakse uut silumisalamsüsteemi ja võrguliikluse analüsaatorit koos jõudluse automaatse häälestamise toega.
LizardFSi kliendile lisatakse täielik kirjutustoimingute versioonihalduse tugi, mis parandab tõrkejärgse taastamise töökindlust, lahendab probleemid, mis tekivad siis, kui erinevad kliendid kasutavad samu andmeid ühiselt, ning võimaldab saavutada märkimisväärse jõudluse kasvu. Klient viiakse üle omaenda kasutajaruumis töötavale võrgualamsüsteemile. Agamal põhinev LizardFSi esimene toimiv prototüüp on kavas valmis saada 2020. aasta teises kvartalis. Samaks ajaks lubatakse kasutusele võtta ka vahendid LizardFSi integreerimiseks Kubernetesi platvormiga.
Allikas: opennet.ru
