Keluaran pertama Blockstor, sistem pengurusan storan blok teragih sumber terbuka untuk Kubernetes yang menyediakan replikasi data melalui DRBD, kini tersedia. Blockstor serasi dengan REST API dengan LINSTOR dan berfungsi dengan lancar dengan ekosistem klien sedia ada, termasuk utiliti baris arahan linstor, pemacu CSI, operator Piraeus, pengawal-ha dan pustaka golinstor. Projek ini merupakan pelaksanaan bilik bersih dalam Go, bukan menggunakan kod sumber asal. Kod ini diedarkan di bawah lesen Apache 2.0 dan dibangunkan dalam platform Cozystack (projek CNCF Sandbox).
Penulis projek ini ialah Andrey Kvapil (@kvaps), pengasas Cozystack dan ahli organisasi bukan berasaskan keuntungan Piraeus, yang sedang membangunkan pengendali LINSTOR dan pemacu CSI untuk Kubernetes. Beliau dikenali dalam komuniti Kubernetes sebagai penyokong LINSTOR dan telah memberikan banyak ceramah teknikal mengenai topik tersebut. Pada mulanya diilhamkan sebagai inisiatif kecil "Jumaat", projek ini akhirnya berkembang menjadi kira-kira 20 hari kerja berterusan. Pada masa ini, projek ini sedang dibangunkan sebagai projek penyelidikan, tetapi sedang dipertimbangkan untuk masa depan sebagai pengganti berpotensi untuk LINSTOR sebagai sistem storan lalai dalam Cozystack.
Sebab-sebab yang dinyatakan untuk mewujudkan projek baharu ini termasuk kesukaran menyelenggara projek asal dan memindahkan perubahan kepada projek utama, serta batasan seni bina LINSTOR. Projek asal menggunakan model pemprosesan permintaan masa nyata berasaskan permintaan, yang mendedahkan masalah pada skala besar, manakala penulis percaya pendekatan penyelarasan deklaratif Kubernetes dan masa jalan pengawal rangka kerja jauh lebih sesuai untuk membina sistem teragih.
Tidak seperti LINSTOR, seni bina Blockstor sepenuhnya berdasarkan pendekatan masa jalan pengawal Kubernetes. Konfigurasi dan keadaan semasa sistem diwakili sebagai objek CRD Kubernetes, dan sistem itu sendiri tidak direka bentuk untuk beroperasi di luar kluster Kubernetes.
Antara ciri-ciri utama Blockstor:
- Jilid yang direplikasi di atas DRBD berdasarkan LVM, LVM-thin, ZFS, ZFS-thin dan bahagian belakang fail.
- Penempatan replika automatik berdasarkan zon, sifat nod dan peraturan replika-pada-berbeza.
- Sokongan untuk TieBreaker, kuorum dan pensaiz semula kelantangan langsung.
- Keupayaan untuk berfungsi tanpa DRBD dalam mod storan setempat (cakera replika tunggal) atau tanpa cakera.
- Menyulitkan jilid menggunakan LUKS.
- Sokongan snapshot: cipta, undurkan, klon dan pulihkan sebagai sumber baharu.
- Memindahkan snapshot dalam kluster menggunakan zfs send/recv dan thin-send-recv.
- Mencipta kolam storan daripada cakera fizikal.
- Imej kontena yang disusun untuk seni bina yang berbeza (linux/amd64 dan linux/arm64) diterbitkan dalam GHCR.
Satu ciri tersendiri projek ini ialah penggunaan alat AI yang meluas semasa pembangunan. Hampir semua kod disediakan menggunakan Claude Code (model Opus 4.7) daripada Anthropic. Pembangunan berjalan hampir sepanjang masa selama kira-kira 20 hari. Pada ketika-saat tertentu, sehingga 60 ejen AI dijalankan secara serentak, dan dialog pembangunan keseluruhan terdiri daripada kira-kira 1320 permintaan daripada pengarang dan kira-kira 36 respons model dalam satu sesi berterusan.
Output akhir terdiri daripada 1500 komitmen, yang terdiri daripada 83 baris kod untuk pelaksanaan dan 137 baris kod lagi untuk pengujian. Menurut anggaran awal, sejumlah kira-kira 18.9 bilion token telah dibelanjakan, dan kos setara bagi jumlah ini menggunakan pelan API adalah kira-kira $40.
Penulis pada mulanya membayangkan pembangunan yang hampir sepenuhnya autonomi oleh model AI, tetapi logik DRBD yang kompleks memerlukan intervensi manusia yang berterusan. Aspek yang paling mencabar termasuk senario penumpuan antara keadaan DRBD, bekerja dengan Pengenal Generasi (GI), melangkau penyegerakan awal dan memproses senario otak berpecah.
Oleh kerana LINSTOR asal diedarkan di bawah GPL, kodnya tidak boleh digunakan secara langsung. Sebahagian besar pelaksanaannya dicipta dengan menganalisis kontrak API, tingkah laku utiliti, klien Python LINSTOR dan projek yang serasi dengan lesen, termasuk operator piraeus dan pemacu CSI.
Dalam kes yang paling kompleks, skema dengan peranan ejen AI yang berasingan telah digunakan: seorang ejen menganalisis kod sumber LINSTOR dan menghasilkan spesifikasi tingkah laku tekstual, selepas itu ejen lain melaksanakan fungsi tersebut semata-mata berdasarkan spesifikasi ini, tanpa menyalin kod sumber secara langsung. Disebabkan kekurangan ujian sumber terbuka untuk projek asal, pangkalan ujian perlu dibina secara bebas.
Sumber: opennet.ru
