Byl vydán Blockstor, alternativa k LINSTORu.

První verze Blockstoru, open-source distribuovaného systému pro správu blokového úložiště pro Kubernetes, který poskytuje replikaci dat přes DRBD, je nyní k dispozici. Blockstor je kompatibilní s REST API a LINSTOR a bezproblémově spolupracuje se stávajícím klientským ekosystémem, včetně utility příkazového řádku linstor, ovladače CSI, operátoru Piraeus, ha-controlleru a knihovny golinstor. Projekt je implementací v jazyce Go v čisté místnosti, bez použití původního zdrojového kódu. Kód je distribuován pod licencí Apache 2.0 a je vyvíjen v rámci platformy Cozystack (projekt CNCF Sandbox).

Autorem projektu je Andrey Kvapil (@kvaps), zakladatel Cozystacku a člen neziskové organizace Piraeus, která vyvíjí operátor LINSTOR a ovladač CSI pro Kubernetes. V komunitě Kubernetes je známý jako zastánce LINSTORu a přednesl řadu technických přednášek na toto téma. Projekt, původně koncipovaný jako malá „páteční“ iniciativa, se nakonec vyvinul v přibližně 20 dní nepřetržité práce. V současné době je projekt vyvíjen jako výzkumný projekt, ale do budoucna je zvažován jako potenciální náhrada za LINSTOR jako výchozí úložný systém v Cozystacku.

Mezi důvody uváděné pro vytvoření nového projektu patří potíže s údržbou původního projektu a přenosem změn do hlavního projektu, stejně jako architektonická omezení systému LINSTOR. Původní projekt používá model zpracování požadavků v reálném čase založený na požadavcích, který odhaluje problémy ve velkém měřítku, zatímco autor se domnívá, že deklarativní přístup Kubernetes založený na sladění a framework controller-runtime jsou výrazně vhodnější pro budování distribuovaných systémů.

Na rozdíl od LINSTORu je architektura Blockstoru zcela založena na přístupu Kubernetes controller-runtime. Konfigurace systému a jeho aktuální stav jsou reprezentovány jako objekty Kubernetes CRD a samotný systém není navržen pro provoz mimo cluster Kubernetes.

Mezi hlavní vlastnosti Blockstoru patří:

  • Replikované svazky nad DRBD založené na LVM, LVM-thin, ZFS, ZFS-thin a souborových backendech.
  • Automatické umisťování replik na základě zón, vlastností uzlů a pravidel replik na různých místech.
  • Podpora pro TieBreaker, kvorum a změnu velikosti živého svazku.
  • Schopnost pracovat bez DRBD v lokálním (jedna replika na plný disk) nebo bezdiskovém režimu úložiště.
  • Šifrování svazků pomocí LUKS.
  • Podpora snapshotů: vytvoření, vrácení zpět, klonování a obnovení jako nový zdroj.
  • Přenos snapshotů v rámci clusteru pomocí zfs send/recv a thin-send-recv.
  • Vytváření úložných fondů z fyzických disků.
  • Kontejnerové obrazy kompilované pro různé architektury (linux/amd64 a linux/arm64) publikované v GHCR.

Charakteristickým rysem projektu bylo rozsáhlé využití nástrojů umělé inteligence během vývoje. Téměř veškerý kód byl připraven pomocí Claude Code (model Opus 4.7) od společnosti Anthropic. Vývoj probíhal téměř nepřetržitě po dobu přibližně 20 dnů. V určitých okamžicích běželo současně až 60 agentů umělé inteligence a celkový vývojový dialog sestával z přibližně 1 320 požadavků od autora a přibližně 36 000 odpovědí modelu v rámci jedné nepřetržité relace.

Konečný výstup sestával z 1 500 commitů, které zahrnovaly 83 000 řádků kódu pro implementaci a dalších 137 000 řádků kódu pro testování. Podle předběžných odhadů bylo celkem utraceno přibližně 18.9 miliard tokenů a ekvivalentní náklady tohoto objemu s využitím plánů API by činily přibližně 40 000 dolarů.

Autor si zpočátku představoval téměř zcela autonomní vývoj pomocí modelu umělé inteligence, ale složitá logika DRBD vyžadovala neustálý lidský zásah. Mezi nejnáročnější aspekty patřily scénáře konvergence mezi stavy DRBD, práce s identifikátorem generace (GI), přeskakování počáteční synchronizace a zpracování scénářů s rozděleným mozkem.

Protože je původní LINSTOR distribuován pod licencí GPL, jeho kód nebylo možné použít přímo. Většina implementace byla vytvořena analýzou API kontraktů, chování utilit, Python klienta LINSTOR a licenčně kompatibilních projektů, včetně piraeus-operator a ovladače CSI.

V nejsložitějších případech bylo použito schéma s oddělenými rolemi agentů umělé inteligence: jeden agent analyzoval zdrojový kód LINSTOR a vygeneroval textovou specifikaci chování, načež další agent implementoval funkcionalitu výhradně na základě této specifikace, aniž by přímo kopíroval zdrojový kód. Vzhledem k nedostatku open-source testů pro původní projekt musela být testovací základna vytvořena nezávisle.

Zdroj: opennet.ru

Kupte si spolehlivý hosting pro stránky s DDoS ochranou, VPS VDS servery 🔥 Kupte si spolehlivý webhosting s ochranou DDoS, VPS VDS servery | ProHoster