Lewati ke konten utama

Block Storage

Fitur Block Storage memungkinkan pelanggan untuk membuat dan mengelola volume penyimpanan blok (block volume) independen yang dapat di-attach (tempel) ke Virtual Machine (Instance) mana pun atau di-detach (lepas) dan dipindahkan ke instance lain kapan saja.

[!TIP] Notifikasi Real-Time (SSE) Sebagian besar operasi yang mengubah status Block Storage (seperti pembuatan, penempelan, pelepasan, perubahan ukuran, dan penghapusan) diproses di latar belakang secara asinkron (mengembalikan status 202 Accepted atau sukses inisiasi). Oleh karena itu, sistem akan mengirimkan pembaruan status final (Available, In-Use, dll.) secara real-time ke Frontend melalui koneksi Server-Sent Events (SSE).

Silakan merujuk ke halaman dokumentasi Global Events (SSE) untuk panduan cara mendengarkan (subscribe) notifikasi perubahan status pada Block Storage ini.


1. Melihat Daftar Block Storage

Mendapatkan daftar seluruh volume Block Storage yang dimiliki oleh pelanggan.

Request
GET /api/storage/block

Respons (200 OK): Akan mereturn array yang berisi daftar block storage dengan status mereka saat ini (Available, In-Use, dsb.) beserta kapasitas dan tipe tier penyimpanan yang digunakan.


2. Mendapatkan Tipe Block Storage

Menampilkan jenis penyimpanan (misal: SSD, NVMe, HDD) dan tier harga yang tersedia untuk pembuatan volume.

Request
GET /api/storage/block/types

3. Mendapatkan Opsi Block Storage

Mendapatkan daftar volume Block Storage yang sedang dalam keadaan bebas (Available) dan dapat ditempelkan (attach) ke sebuah Virtual Machine.

Request
GET /api/storage/block/options

Respons (200 OK): Akan mereturn array yang berisi daftar block storage yang siap di-attach.


4. Membuat Block Storage Baru

Pelanggan dapat membuat volume independen yang terpisah dari instance.

Request
POST /api/storage/block
Content-Type: application/json
Request Body
{
"name": "Volume Data",
"tier_id": 1,
"size_gb": 50,
"description": "Penyimpanan tambahan untuk database"
}

Respons (202 Accepted): Volume akan dibuat di latar belakang dan statusnya pada awalnya mungkin Pending sebelum berubah menjadi Available.


5. Menempelkan (Attach) Volume

Volume dengan status Available dapat ditempelkan ke sebuah Virtual Machine (Instance) agar dapat dibaca/ditulis dari dalam instance tersebut.

Penting: Virtual Machine (Instance) tujuan harus dalam keadaan STOPPED sebelum volume dapat di-attach.

Request
PATCH /api/storage/block/{uuid}/attach
Content-Type: application/json
Request Body
{
"instance_id": "xxx-instance-uuid-xxx"
}

Catatan: Setelah di-attach, status volume akan berubah menjadi In-Use dan muncul sebagai disk baru di dalam Virtual Machine yang dituju.


6. Melepas (Detach) Volume

Untuk mencopot volume dari instance (misalnya untuk dipindahkan ke instance lain), gunakan endpoint ini.

Request
PATCH /api/storage/block/{uuid}/detach

Perhatian: Sangat disarankan untuk melakukan unmount disk dari dalam sistem operasi instance terlebih dahulu untuk mencegah korupsi data. Selanjutnya, pastikan Virtual Machine (Instance) dalam keadaan STOPPED sebelum memanggil endpoint ini.


7. Mengubah Ukuran (Resize) Volume

Kapasitas Block Storage dapat ditambah kapasitasnya. Ukuran tidak dapat dikurangi demi keamanan data.

Request
PATCH /api/storage/block/{uuid}/resize
Content-Type: application/json
Request Body
{
"new_size_gb": 100
}

8. Menghapus Block Storage

Menghapus volume Block Storage secara permanen. Anda harus melakukan detach volume dari instance (status harus Available) sebelum volume bisa dihapus.

Request
DELETE /api/storage/block/{uuid}

Peringatan: Tindakan ini bersifat permanen. Seluruh data di dalam volume akan hilang dan tidak dapat dipulihkan.