Bol zverejnený systém ukladania Blockstor, ktorý je alternatívou k LINSTOR

Prvý vydanie Blockstor je k dispozícii — otvorený systém správy distribuovaného blokového úložiska pre Kubernetes, ktorý zabezpečuje replikáciu dát nad DRBD. Blockstor je kompatibilný s REST API LINSTOR a dokáže fungovať bez zmien s existujúcou ekosystémom klientov, vrátane príkazového nástroja linstor, CSI ovládača, operátora Piraeus, ha-controller a knižnice golinstor. Projekt predstavuje plne samostatnú (clean-room) implementáciu v jazyku Go, ktorá nevyužíva zdrojový kód originálu. Kód je distribuovaný pod licenciou Apache 2.0 a vyvíja sa v rámci platformy Cozystack (projekt CNCF Sandbox).

Autorom projektu je Andrej Kvapil (@kvaps), zakladateľ Cozystack a účastník neziskovej organizácie Piraeus, v rámci ktorej sa vyvíjajú operátor a CSI ovládač LINSTOR pre Kubernetes. Autor je známy v komunity Kubernetes ako popularizátor LINSTOR a viackrát vystúpil s technickými prednáškami na toto téma. Pôvodne bola vývoj plánovaný ako malá "piatková" iniciatíva, avšak nakoniec sa premenil na približne 20 dní nepretržitej práce. V súčasnosti sa projekt vyvíja ako výskumný, ale do budúcnosti sa zvažuje ako možná náhrada LINSTOR ako predvoľba úložiskového systému v Cozystack.

Medzi dôvody vzniku nového projektu patrí zložitosti spojené s údržbou originálneho projektu a prenosom zmien do hlavného projektu, ako aj architektonické obmedzenia LINSTOR. Originálny projekt používa model "request-based" pre spracovanie požiadaviek v reálnom čase, ktorý vykazuje problémy pri veľkých mierkach, zatiaľ čo deklaratívny reconciliation prístup Kubernetes a framework controller-runtime, podľa autora, oveľa lepšie vyhovuje pre budovanie distribuovaných systémov.

Na rozdiel od LINSTOR je architektúra Blockstor úplne založená na prístupe Kubernetes controller-runtime. Konfigurácia a aktuálny stav systému sú reprezentované vo forme Kubernetes CRD objektov, a samotný systém nie je navrhnutý na prácu mimo Kubernetes klastra.

Medzi hlavné funkcie Blockstor patrí:

  • Replikované nad DRBD zväzky na báze LVM, LVM-thin, ZFS, ZFS-thin a súborových backendov.
  • Automatické umiestnenie replik s ohľadom na zóny, vlastnosti uzlov a pravidlá "replicas-on-different".
  • Podpora TieBreaker, quorum a zmena veľkosti zväzkov bez zastavenia prevádzky.
  • Možnosť práce bez DRBD v režime lokálneho (single-replica diskful) alebo bezdiskového úložiska.
  • Šifrovanie zväzkov cez LUKS.
  • Podpora snímok: vytváranie, obnova, klonovanie a obnovenie ako nového zdroja.
  • Prenos snímok v rámci klastru cez zfs send/recv a thin-send-recv.
  • Vytváranie storage pool’ov z fyzických diskov.
  • Zosnímané kontajnerové obrazy pre rôzne architektúry (linux/amd64 a linux/arm64), publikované v GHCR.

Osobitosťou projektu bolo aktívne využívanie AI nástrojov pri vývoji. Takmer celý kód bol pripravený pomocou Claude Code (model Opus 4.7) spoločnosti Anthropic. Vývoj prebiehal takmer bez prestania počas približne 20 dní. V niektorých momentoch naraz pracovalo až 60 AI agentov a celkový dialóg vývoja sa skladal z približne 1320 otázok zo strany autora a okolo 36 tisíc odpovedí modelu v rámci jednej kontinuálnej relácie.

Na výstupe sa podarilo dosiahnuť 1500 commitov, v ktorých 83 tisíc riadkov kódu obsadila implementácia a ďalších 137 tisíc riadkov kódu testy. Podľa predbežných odhadov bolo celkovo spotrebovaných približne 18.9 miliardy tokenov a ekvivalentná cena takéhoto objemu pri používaní API taríf by predstavovala okolo 40 tisíc dolárov.

Autor pôvodne počítal s takmer úplne autonómnym vývojom pomocou AI modelu, avšak zložitá logika DRBD si vyžiadala neustálu účasť človeka. Najzložitejšími sa ukázali scenáre zladenia stavov DRBD, práca s Generation Identifier (GI), preskakovanie pôvodnej synchronizácie a spracovanie split-brain scenárov.

Keďže originálny LINSTOR sa distribuuje pod licenciou GPL, použiť jeho kód priamo nebolo možné. Hlavná časť implementácie sa vytvárala na základe analýzy API kontraktov, správania utilít, Python klienta LINSTOR a taktiež licenčne kompatibilných projektov, vrátane piraeus-operator a CSI ovládača.

V najzložitejších prípadoch sa aplikoval model rozdelenia rolí AI agentov: jeden agent analyzoval zdrojový kód LINSTOR a vytváral textovú špecifikáciu správania, na základe ktorej druhý agent implementoval funkcionalitu výhradne podľa tejto špecifikácie bez priameho kopírovania zdrojového kódu. Vzhľadom na absenciu otvorených testov v originálnom projekte bolo potrebné zostaviť testovú základňu samostatne.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster