LizardFS 3.13.0-rc2 klastera failu sistēmas atjauninājums

Pēc gadu ilgas attīstības klusuma atsākta darbs pie jaunas kļūdas izturīgas sadalītas failu sistēmas filiāles ĶirzakaF 3.13 и publicēta otrais atbrīvošanas kandidāts. Nesen ir noticis LizardFS attīstošā uzņēmuma īpašnieku maiņa, tika pieņemta jauna vadība un nomainīti izstrādātāji. Pēdējos divus gadus projekts ir izņemts no sabiedrības un tam nav pievērsis pietiekami daudz uzmanības, taču jaunā komanda iecerējusi atdzīvināt līdzšinējās attiecības ar kopienu un veidot ciešu mijiedarbību ar to. Projekta kods ir uzrakstīts C un C++ valodās un izplata saskaņā ar GPLv3 licenci.

ĶirzakaFS ir izplatīta klasteru failu sistēma, kas ļauj izplatīt datus pa dažādiem serveriem, bet nodrošināt tiem piekļuvi viena liela nodalījuma veidā, ar kuru tiek strādāts līdzīgi kā tradicionālajiem diska nodalījumiem. Uzmontētais nodalījums ar LizardFS atbalsta POSIX failu atribūtus, ACL, slēdzenes, ligzdas, caurules, ierīču failus, simboliskās un cietās saites. Sistēmai nav neviena atteices punkta, visas sastāvdaļas ir liekas. Tiek atbalstīta datu operāciju paralēlizācija (datnēm var piekļūt vairāki klienti vienlaikus).

Lai nodrošinātu kļūdu toleranci, dati tiek sadalīti replikās, kas tiek sadalīti pa dažādiem mezgliem ar dublēšanos (dažādos mezglos tiek ievietotas vairākas kopijas), ja mezgli vai diskdziņi neizdodas, sistēma turpina darboties bez informācijas zuduma un automātiski pārdala datus. ņemot vērā atlikušos mezglus. Lai paplašinātu krātuvi, pietiek ar to pievienot jaunus mezglus, nepārtraucot darbu apkopei (sistēma pati replicē daļu datu uz jauniem serveriem un līdzsvaro krātuvi, ņemot vērā jaunos serverus). Jūs varat darīt to pašu, lai samazinātu klastera izmēru - jūs varat vienkārši atspējot novecojušo aprīkojumu, kas tiek noņemts no sistēmas.

Dati un metadati tiek glabāti atsevišķi. Darbībai ieteicams uzstādīt divus metadatu serverus, kas darbojas master-slave režīmā, kā arī vismaz divus datu uzglabāšanas serverus (chunkserver). Turklāt, lai dublētu metadatus, žurnālserverus var izmantot, lai saglabātu informāciju par izmaiņām metadatos un ļautu atjaunot darbību visu esošo metadatu serveru bojājumu gadījumā. Katrs fails ir sadalīts blokos (gabalos), kuru izmērs nepārsniedz 64 MB. Bloki tiek sadalīti starp krātuves serveriem atbilstoši izvēlētajam replikācijas režīmam: standarta (precīza kopiju skaita noteikšana, kas jāievieto dažādos mezglos, tostarp attiecībā uz atsevišķiem direktorijiem - svarīgiem datiem var palielināt kopiju skaitu, un samazināti nesvarīgi dati), XOR (RAID5) un EC (RAID6).

Krātuve var palielināties līdz pat petabaitam. Pielietojuma jomās ietilpst arhivēšana, virtuālās mašīnas attēlu, multivides datu glabāšana, dublējumkopijas, izmantošana kā KDR (katastrofu atkopšanas centrs) un kā krātuve augstas veiktspējas skaitļošanas klasteros. LizardFS nodrošina ļoti lielu lasīšanas ātrumu jebkura izmēra failiem, un rakstot tas parāda labu veiktspēju, rakstot veselus lielus un vidēja lieluma failus, kad nav pastāvīgas modifikācijas, intensīvs darbs ar atvērtiem failiem un vienreizējas darbības ar ķekars mazu failu.

LizardFS 3.13.0-rc2 klastera failu sistēmas atjauninājums

Starp FS funkcijām var atzīmēt arī momentuzņēmumu atbalstu, kas atspoguļo failu stāvokli noteiktā laikā, un iebūvētu “atkritnes” ieviešanu (faili netiek dzēsti nekavējoties un ir pieejami atveseļošanās kādu laiku). Piekļuvi nodalījumam var ierobežot ar IP adresi vai paroli (līdzīgi kā NFS). Ir pakalpojumu kvotu un kvalitātes pārvaldības mehānismi, kas ļauj ierobežot lielumu un joslas platumu noteiktām lietotāju kategorijām. Ir iespējams izveidot ģeogrāfiski izkliedētas krātuves, kuru segmenti atrodas dažādos datu centros.

LizardFS projekts tika dibināts 2013. gadā kā dakša MooseFS, un atšķiras galvenokārt ar replikācijas režīma klātbūtni, kas balstīta uz Rīda-Solomona kļūdu labošanas kodiem (analogs raidzN), paplašinātu ACL atbalstu, klienta klātbūtni Windows platformai, papildu optimizāciju (piemēram, apvienojot klientu un krātuves serveris, bloki, ja iespējams, tiek nosūtīti ar pašreizējo mezglu, un metadati tiek saglabāti atmiņā), elastīgāka konfigurācijas sistēma, atbalsts datu lasīšanai uz priekšu, direktoriju kvotas un iekšēja pārstrāde.

LizardFS 3.13.0 ir plānots izlaist decembra beigās. Galvenais LizardFS 3.13 jauninājums ir konsensa algoritma izmantošana, lai nodrošinātu kļūdu toleranci (galveno serveru pārslēgšana kļūmes gadījumā) Plosts (izmanto mūsu pašu uRaft ieviešanu, kas iepriekš tika izmantota komerciālos produktos). Izmantojot uRaft, tiek vienkāršota konfigurācija un samazināta kļūmju atkopšanas aizkave, taču ir nepieciešami vismaz trīs darba mezgli, no kuriem viens tiek izmantots kvorumam.

Citas izmaiņas: jauns klients uz FUSE3 apakšsistēmas bāzes, risinot problēmas ar kļūdu labošanu, nfs-ganesha spraudnis ir pārrakstīts C valodā. Atjauninājumā 3.13.0-rc2 ir novērstas vairākas kritiskas kļūdas, kuru dēļ 3.13. atzara iepriekšējās testa versijas nebija lietojamas (3.12. atzara labojumi vēl nav publicēti, un atjauninājums no 3.12 uz 3.13 joprojām izraisa pilnīgu datu zudumu).

2020. gadā darbs būs vērsts uz attīstību
Agama, jauns pilnībā pārrakstīts LizardFS kodols, kas, pēc izstrādātāju domām, nodrošinās trīskāršu veiktspējas pieaugumu salīdzinājumā ar 3.12. zaru. Agama pāries uz notikumiem balstītu arhitektūru, kuras pamatā ir asinhrona ievade/izvade asio, strādā galvenokārt lietotāju telpā (lai samazinātu atkarību no kodola kešatmiņas mehānismiem). Turklāt tiks piedāvāta jauna atkļūdošanas apakšsistēma un tīkla aktivitātes analizators ar atbalstu veiktspējas automātiskai regulēšanai.

LizardFS klients pievienos pilnu atbalstu versiju veidošanas rakstīšanas darbībām, kas uzlabos avārijas atkopšanas uzticamību, atrisinās problēmas, kas rodas, dažādiem klientiem koplietojot piekļuvi vieniem un tiem pašiem datiem, un ļaus būtiski uzlabot veiktspēju. Klients tiks pārsūtīts uz savu tīkla apakšsistēmu, kas darbojas lietotāja telpā. Plānots, ka pirmais uz Agama bāzes darbojošais LizardFS prototips būs gatavs 2020. gada otrajā ceturksnī. Tajā pašā laikā viņi sola ieviest rīkus LizardFS integrēšanai ar Kubernetes platformu.

Avots: opennet.ru

Pievieno komentāru