U publikua një sistem ruajtjeje Blockstor, i cili është një alternativë për LINSTOR

Lëshimi i parë i Blockstor është një sistem i hapur për menaxhimin e ruajtjes me bllokë të shpërndarë për Kubernetes, që siguron replikimin e të dhënave mbi DRBD. Blockstor është i pajtueshëm përmes REST API me LINSTOR dhe është në gjendje të funksionojë pa ndryshime me ekosistemat ekzistuese të klientëve, duke përfshirë mjetin e komandës linstor, drivin CSI, operatorin Piraeus, ha-controller dhe bibliotekën golinstor. Projekti përfaqëson një realizim të plotë autonom (clean-room) në gjuhën Go, pa përdorur kodin burimor të origjinalit. Kodi shpërndahet nën licencën Apache 2.0 dhe zhvillohet brenda platformës Cozystack (projekti CNCF Sandbox).

Autori i projektit është Andrey Kvapil (@kvaps), themeluesi i Cozystack dhe pjesëmarrës në organizatën jo-fitimprurëse Piraeus, në kuadër të së cilës zhvillohen operatori dhe drivin CSI LINSTOR për Kubernetes. Autori është i njohur në komunitetin Kubernetes si një promovues i LINSTOR dhe ka mbajtur disa herë kumte teknike mbi temën. Fillimisht, zhvillimi ishte menduar si një iniciativë e vogël 'e premtes', por në fund u shndërrua në rreth 20 ditë punë të vazhdueshme. Aktuali, projekti po zhvillohet si një hulumtim, megjithatë në të ardhmen, konsiderohet si një zëvendësim potencial për LINSTOR si sistemi i ruajtjes në default në Cozystack.

Si arsye për krijimin e projektit të ri përmenden vështirësitë me mbështetje për projektin origjinal dhe transferimin e ndryshimeve në projektin kryesor, si dhe kufizimet arkitekturore të LINSTOR. Projekti origjinal përdor një model 'request-based' për përpunimin e kërkesave në kohë reale, i cili tregon probleme në shkallë, ndërsa qasja deklarative të përmirësimit Kubernetes dhe kuadri controller-runtime, sipas autorit, përshtatet shumë më mirë për ndërtimin e sistemeve të shpërndara.

Në dallim nga LINSTOR, arkitektura e Blockstor-it është plotësisht e bazuar në qasjen e Kubernetes controller-runtime. Konfigurimi dhe gjendja aktuale e sistemit paraqiten në formën e objekteve Kubernetes CRD, dhe sistemi vetë nuk është i dizajnuar për të funksionuar jashtë klasterit Kubernetes.

Disa nga mundësitë kryesore të Blockstor janë:

  • Tomas e replikueshme mbi DRBD tĂ« bazuara nĂ« LVM, LVM-thin, ZFS, ZFS-thin dhe backend-e tĂ« skedarĂ«ve.
  • Vendosja automatike e replikave duke marrĂ« parasysh zonat, karakteristikat e nyjave dhe rregullat 'replicas-on-different'.
  • MbĂ«shtetje pĂ«r TieBreaker, kuorum dhe ndryshimin e madhĂ«sive tĂ« tomave pa ndaluar funksionimin.
  • MundĂ«si pĂ«r tĂ« punuar pa DRBD nĂ« modin lokal (single-replica diskful) ose sistem pa disk.
  • Kriptimi i volumit pĂ«rmes LUKS.
  • MbĂ«shtetje pĂ«r snapshot: krijimi, rikthimi, klonimi dhe rikuperimi si njĂ« burim tĂ« ri.
  • Shkarkimi i snapshot-eve brenda klasterit pĂ«rmes zfs send/recv dhe thin-send-recv.
  • Krijimi i storage pool-Ă«ve nga disqe fizike.
  • Imazhe kontejnerĂ«sh tĂ« mbledhura pĂ«r arkitekturĂ« tĂ« ndryshme (linux/amd64 dhe linux/arm64), publikuar nĂ« GHCR.

Tipar i projektit ishte përdorimi aktiv i mjeteve AI gjatë zhvillimit. Praktikisht e gjithë kodi u përgatit me Claude Code (modeli Opus 4.7) të kompanisë Anthropic. Zhvillimi u krye pothuajse në mënyrë të vazhdueshme për rreth 20 ditë. Në momente të veçanta, deri në 60 agjentë AI punonin njëkohësisht, dhe dialogu total i zhvillimit përbënte rreth 1320 kërkesa nga autori dhe rreth 36 mijë përgjigje nga modeli brenda një seance të vazhdueshme.

Doli me 1500 komitete, ku 83 mijë rreshta kodi morën realizimi dhe 137 mijë rreshta kodi ishin teste. Sipas një vlerësimi preliminar, u shpenzuan rreth 18.9 miliardë tokene, dhe kostoja ekuivalente e këtij volumi me përdorimin e çmimeve API do të ishte rreth 40 mijë dollarë.

Autori fillimisht priste një zhvillim pothuajse autonom nga forcat e modelit AI, por logjika e komplikuar e DRBD kërkonte pjesëmarrje të vazhdueshme të njeriut. Scenarët më të komplikuar ishin ato të përputhjes së gjendjeve DRBD, puna me Generation Identifier (GI), kalimi i sinkronizimit fillestar dhe trajtimi i skenarëve split-brain.

Duke qenë se LINSTOR origjinal shpërndahet nën licencën GPL, nuk ishte e mundur të përdorej kodi i tij direkt. Pjesa kryesore e realizimit u krijua mbi analizën e kontratave të API-it, sjelljes së utiliteteve, klientit Python të LINSTOR, si dhe projekteve të tjera të licencuara, duke përfshirë piraeus-operator dhe CSI-draiver.

Në rastet më të komplikuara u përdor një skemë me ndarjen e roleve të agjentëve AI: një agjent analizoi kodin burimor të LINSTOR dhe formoi një specifikim tekstual të sjelljes, pas së cilës një agjent tjetër realizoi funksionalitetin ekskluzivisht në përputhje me këtë specifikim pa kopjimin e kodit burimor. Për shkak të mungesës së testeve të hapura në projektin origjinal, baza e testeve duhej të formohej nga vetë.

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster