Megjelent a Blockstor első kiadása - egy nyílt forráskódú elosztott blokk tároló kezelő rendszer Kuberneteshez, amely az adatreplicációt a DRBD-re alapozva biztosítja. A Blockstor REST API-val kompatibilis a LINSTOR-ral, és változtatások nélkül képes működni a meglévő ügyfélecoszisztémával, beleértve a linstor parancssori segédprogramot, a CSI meghajtót, a Piraeus operátort, az ha-controllert és a golinstor könyvtárat. A projekt egy teljesen önálló (clean-room) megvalósítás a Go nyelven, amely nem használja az eredeti forráskódot. A kód az Apache 2.0 licenc alatt kerül forgalmazásra, és a Cozystack platform keretein belül fejlődik (CNCF Sandbox projekt).
A projekt szerzője Andrej Kvapil (@kvaps), a Cozystack alapítója és a Piraeus nonprofit szervezet résztvevője, amely a LINSTOR operátort és CSI meghajtót fejleszti Kuberneteshez. A szerző ismert a Kubernetes közösségben mint a LINSTOR népszerűsítője, és többször is tartott technikai előadásokat a témában. A fejlesztést eredetileg egy kis "pénteki" kezdeményezésként tervezték, de végül körülbelül 20 nap folyamatos munkába torkollott. Jelenleg a projekt kutatás-fejlesztésként fejlődik, de a jövőben lehetséges LINSTOR alternatívaként való szereplését is fontolgatják a Cozystack alapértelmezett tárolási rendszerének.
Az új projekt létrehozásának okai között említést nyernek az eredeti projekt karbantartásának nehézségei és a változások fő projektbe való átvitele, valamint a LINSTOR architektúrájának korlátai. Az eredeti projekt "request-based" valós idejű kéréskezelési modellt használ, amely problémákat mutat méretezett környezetben, míg a Kubernetes deklaratív reconciliációs megközelítése és a controller-runtime keretrendszer a szerző szerint jelentősen jobban illeszkedik az elosztott rendszerek felépítéséhez.
A Blockstor architektúrája teljes mértékben a Kubernetes controller-runtime megközelítésére épül, ellentétben a LINSTOR-ral. A rendszer konfigurációja és aktuális állapota Kubernetes CRD-objektumok formájában van ábrázolva, és maga a rendszer nem készült arra, hogy Kubernetes klaszteren kívül működjön.
A Blockstor főbb képességei között szerepel:
- Replikálható, DRBD alapú LVM, LVM-thin, ZFS, ZFS-thin és fájlrendszer backendek.
- Automatikus replikáció elhelyezés a zónák, csomópontok tulajdonságai és a "replicas-on-different" szabályok figyelembevételével.
- Támogatja a TieBreaker-t, a quorum-ot és a kötetek méretének megváltoztatását szolgáltatás leállítása nélkül.
- A helyi (single-replica diskful) vagy lemeztelen tároló üzemmódban való működés lehetősége DRBD nélkül.
- Kötetek titkosítása LUKS-on keresztül.
- Snapshotok támogatása: létrehozás, visszaállítás, klónozás és új erőforrásként való helyreállítás.
- Snapshotok átvitele a klaszterben zfs send/recv és thin-send-recv segítségével.
- Storage pool-ok létrehozása fizikai lemezekből.
- Különböző architektúrákra gyűjtött konténerképek (linux/amd64 és linux/arm64), amelyek a GHCR-en kerültek közzétételre.
A projekt egyik jellegzetessége az AI-eszközök aktív alkalmazása volt a fejlesztés során. Gyakorlatilag az összes kódot a Claude Code (Opus 4.7 modell) által készítette az Anthropic. A fejlesztés szinte folyamatosan zajlott körülbelül 20 napon keresztül. Egyes pillanatokban akár 60 AI-ügynök is dolgozott egyszerre, és a teljes fejlesztési párbeszéd körülbelül 1320 kérdésből és mintegy 36 ezer modell válaszból állt egy folyamatos munkamenet keretein belül.
Végül 1500 commit született, amelyekben 83 ezer sor kódot foglalt magába a megvalósítás, és további 137 ezer sor kódot a tesztek. Előzetes becslések alapján összesen körülbelül 18,9 milliárd token került felhasználásra, és ennek a mennyiségnek az API-díjtételek szerinti költsége körülbelül 40 ezer dollár lenne.
Az író eredetileg szinte teljesen autonóm AI-modellek használatát tervezte a fejlesztéshez, azonban a DRBD bonyolult logikája folyamatos emberi részvételt igényelt. A legbonyolultabbak a DRBD állapotok egyeztetésére, a Képzőazonosító (GI) kezelésére, az eredeti szinkronizálás kihagyására és a split-brain forgatókönyvek feldolgozására vonatkozó forgatókönyvek voltak.
Mivel az eredeti LINSTOR GPL licenc alatt terjed, a kódot közvetlenül használni nem lehetett. A megvalósítás fő részét az API-szerződések, a segédprogramok viselkedésének, a LINSTOR Python kliens és más kompatibilis projektek, például a piraeus-operator és CSI driver elemzése alapján készítették.
A legbonyolultabb esetekben az AI-ügynökök szerepeinek megosztásának sémáját alkalmazták: az egyik ügynök elemezte a LINSTOR forrást, és szöveges specifikációt alkotott a viselkedéséről, ezután a másik ügynök kizárólag ezen specifikáció alapján valósította meg a funkcionalitást, anélkül, hogy közvetlenül másolta volna a forrást. Az eredeti projekt nyitott tesztjeinek hiánya miatt a tesztbázist saját maguknak kellett kialakítaniuk.
Forrás: opennet.ru
