Category: Proxmox

  • Clone VM ke Storage Ceph via GUI Proxmox

    Clone VM ke Storage Ceph via GUI Proxmox

    Saya sedang membangun belajar Proxmox dengan Ceph untuk memahami konsep Hyper-Converged Infrastructure (HCI). Salah satu hal yang saya uji adalah bagaimana memindahkan VM dari storage lokal ke shared storage, dalam hal ini Ceph, dengan cara yang aman.

    Alih-alih langsung memindahkan disk (move), saya memilih metode clone. Pendekatan ini lebih aman karena VM asli tetap utuh, sehingga jika terjadi kesalahan, saya masih memiliki backup yang bisa digunakan.


    Teori Singkat

    Sebelum masuk ke langkah praktis, saya memahami dulu konsep dasarnya.

    VM yang berada di storage lokal seperti local-lvm hanya bisa diakses oleh satu node. Artinya, jika saya ingin melakukan live migration ke node lain, disk tersebut tidak bisa diakses oleh node tujuan.

    Sebaliknya, Ceph adalah shared storage. Semua node dalam cluster dapat mengakses disk yang sama. Inilah yang memungkinkan live migration tanpa perlu memindahkan disk secara fisik.

    Dengan kata lain:

    • Storage lokal = terbatas pada satu node
    • Ceph = bisa diakses semua node

    Kondisi Awal

    Saya memiliki VM dengan detail berikut:

    VM ID: 100
    Node: rafi1
    Storage: local-lvm
    OS: Alpine Linux

    VM ini masih berada di storage lokal, sehingga belum bisa digunakan untuk live migration.


    Langkah 1 — Clone VM melalui GUI

    Saya membuka Proxmox Web UI, lalu memilih VM yang ingin di-clone, yaitu VM 100. Setelah itu saya klik tombol Clone.

    Di form yang muncul, saya mengisi beberapa parameter:

    • Node: rafi1
    • VM ID: 105
    • Name: alphine-ceph
    • Target Storage: ceph-data tipe RBD
    • Mode: Full Clone

    Klik VM yang ingin diclone -> Klik More -> Pilih Clone

    Pilih Target Storage

    Pilih Ceph

    Pemilihan storage di sini sangat penting. Jika salah memilih, hasil clone tetap akan berada di storage lama. Saya juga memilih Full Clone agar disk benar-benar disalin ke Ceph, bukan sekadar referensi.


    Langkah 2 — Proses Clone

    Setelah menekan tombol Clone, saya melihat proses berjalan di bagian task Proxmox.

    • Baris pertama menunjukkan bahwa proses cloning dimulai dari disk sumber
    • Baris kedua menandakan disk baru berhasil dibuat
    • Baris ketiga menunjukkan proses transfer data ke Ceph beserta kecepatannya

    Dari sini saya bisa memastikan bahwa data benar-benar disalin, bukan dipindahkan.


    Langkah 3 — Verifikasi

    Meskipun saya menggunakan GUI, saya tetap melakukan verifikasi untuk memastikan semuanya benar. Pilih di hardware VM yang sudah dibuat tadi

    Ini menunjukkan bahwa disk VM sudah berada di Ceph. Ini adalah indikator paling penting bahwa proses clone berhasil sesuai tujuan.


    Langkah 4 — Menjalankan VM Clone

    Setelah memastikan konfigurasi benar, saya menjalankan VM hasil clone.

    Saya kemudian melakukan pengujian sederhana:

    • Ping ke IP VM berhasil
    • SSH ke VM juga berjalan normal

    Dari sini saya bisa menyimpulkan bahwa hasil clone tidak mengalami kerusakan dan siap digunakan.


    Insight dari Pengujian

    Dari pengalaman ini, saya memahami bahwa penggunaan Ceph benar-benar mengubah cara kerja migration.

    Pada storage lokal:

    • Disk harus ikut dipindahkan
    • Proses lebih lama
    • Berpotensi downtime

    Pada Ceph:

    • Disk tetap di tempat
    • Hanya memory yang dipindahkan
    • Hampir tidak ada downtime

    Ini menjelaskan mengapa Ceph sering digunakan di lingkungan production.


    Kendala yang Ditemui

    Selama pengujian, ada beberapa masalah yang sempat muncul:

    • Storage Ceph tidak muncul di GUI
      Ternyata saya belum menambahkan RBD ke Proxmox
    • Clone gagal
      Biasanya karena pool belum benar atau konfigurasi Ceph belum lengkap
    • Migration gagal
      Terjadi jika disk masih berada di storage lokal

    Semua masalah ini pada akhirnya berkaitan dengan satu hal: memastikan storage benar-benar shared.


    Kesimpulan

    Dari pengalaman saya, clone VM ke Ceph melalui GUI adalah metode yang sangat efektif dan aman. Prosesnya cukup sederhana, tetapi dampaknya besar karena memungkinkan penggunaan fitur lanjutan seperti live migration.

    Beberapa poin penting yang saya pelajari:

    • Selalu gunakan clone untuk percobaan awal
    • Pastikan memilih target storage yang benar
    • Gunakan Full Clone agar disk benar-benar berada di Ceph
    • Verifikasi hasil menggunakan CLI
    • Uji migration untuk memastikan semuanya berjalan sesuai harapan

    Penutup

    Langkah ini menjadi fondasi penting dalam memahami arsitektur Proxmox dengan Ceph. Setelah berhasil di tahap ini, saya merasa lebih siap untuk melanjutkan ke tahap berikutnya seperti High Availability dan desain infrastruktur yang lebih kompleks.

    Pengalaman ini juga menunjukkan bahwa memahami konsep di balik sistem jauh lebih penting daripada sekadar menjalankan perintah.

  • Cara Download ISO via Proxmox Web UI (dengan Verifikasi Checksum)

    Cara Download ISO via Proxmox Web UI (dengan Verifikasi Checksum)

    Di percobaan kali ini, saya ingin mencoba download ISO langsung dari Proxmox Web UI ke storage NFS, sekaligus mencoba fitur verifikasi checksum langsung dari UI tanpa perlu masuk shell atau CLI.

    Biasanya workflow lama itu:

    • ssh ke server → wget → attach ke nfs, atau
    • download di laptop → upload ke Proxmox → baru dipakai.

    Masalahnya:

    • makan waktu (double transfer)
    • ribet kalau file besar
    • dan yang paling sering dilupakan: tidak diverifikasi integritas file-nya

    Di sini saya setup:

    • Proxmox di 192.168.14.22
    • Storage NFS dengan ID: nfs-iso
    • Cluster: rafi2

    Yang menarik, Proxmox ternyata sudah menyediakan fitur verifikasi checksum langsung saat download (di bagian Advanced), jadi bisa pastikan ISO yang didapat benar-benar valid tanpa perlu command line lagi.


    Source ISO & Checksum

    Gunakan file resmi berikut:

    • File ISO Debian 12:
    https://cdimage.debian.org/cdimage/archive/12.0.0/amd64/iso-cd/debian-12.0.0-amd64-netinst.iso
    • SHA256 Checksum:
    https://cdimage.debian.org/cdimage/archive/12.0.0/amd64/iso-cd/SHA256SUMS


    Kenapa Ini Lebih Mudah?

    Dengan kombinasi:

    • Download langsung dari server
    • Storage NFS
    • Verifikasi checksum di UI

    Kita dapat:

    • Lebih cepat
    • Lebih aman (tidak pakai ISO corrupt)
    • Lebih clean (tanpa CLI tambahan)

    Langkah-Langkah

    1. Masuk ke Storage NFS

    Di Proxmox Web UI:

    • Masuk ke node salah satu cluster
    • Pilih storage nfs-iso
    • Masuk ke tab ISO Images
    • Klik Download from URL

    Di sini akan terlihat tombol:


    2. Input URL ISO

    Klik Download from URL, lalu akan muncul pop-up.

    Isi:

    • URL:
    https://cdimage.debian.org/cdimage/archive/12.0.0/amd64/iso-cd/debian-12.0.0-amd64-netinst.iso


    3. Gunakan Fitur “Query URL”

    Klik tombol Query URL, maka Proxmox akan mengambil metadata file.

    Akan muncul:

    • File Name
    • File Size
    • MIME Type

    Ini berguna untuk memastikan:

    • Link valid
    • File benar ISO
    • Ukuran sesuai ekspektasi

    4. Aktifkan Advanced (Checksum di UI)

    Centang opsi:
    ➡️ Advanced

    Setelah dicentang, akan muncul:

    • Checksum
    • Hash Algorithm
    • Decompression Algorithm

    • Pilih
      • Hash Algorithm: SHA256
      • Decompression: biarkan default (karena file ISO tidak dikompres)

    5. Isi Checksum SHA256

    Ambil nilai checksum dari file:

    SHA256SUMS

    Lalu:

    • Paste checksum untuk file:
    debian-12.0.0-amd64-netinst.iso

    Proxmox akan otomatis memverifikasi file setelah download selesai.


    6. Download ISO

    Klik Download

    Akan muncul:

    Di sini kita bisa lihat:

    • Progress download
    • Status verifikasi checksum

    7. Hasil Akhir

    Kalau semua sukses:

    • Task status: OK
    • File .iso muncul di:
    nfs-iso → ISO Images

    Dan yang paling penting:
    ✔️ ISO sudah terverifikasi (tidak corrupt)


    Penjelasan Singkat SHA256

    SHA256 adalah algoritma hash yang menghasilkan “sidik jari digital” dari sebuah file.

    Artinya:

    • File asli → hash tertentu
    • File berubah sedikit saja → hash berubah total

    Dengan fitur ini di Proxmox:

    • Kita tidak perlu manual sha256sum
    • Tidak perlu SSH
    • Semua langsung di UI

    Insight dari Percobaan Ini

    Jujur, fitur Advanced + Checksum di Proxmox ini underrated banget.

    Karena biasanya orang:

    • download ISO
    • langsung pakai

    Padahal idealnya:

    Download + Verify = Standard Practice

    Dengan cara ini:

    • Lebih aman dari ISO corrupt
    • Lebih cepat troubleshooting (kalau gagal)
    • Lebih cocok untuk environment production

    Akhir Kata Rafi

    Workflow terbaik versi saya untuk download dan import ISO:

    1. Download ISO via Proxmox
    2. Simpan di NFS
    3. Aktifkan checksum verification di UI
    4. Pakai ISO yang sudah pasti valid

    Simple, cepat, dan tetap profesional.

  • Pre-Setup Rocky Linux 8 via Cloud-Init di Proxmox

    Pre-Setup Rocky Linux 8 via Cloud-Init di Proxmox

    Hari ini saya ingin mencoba sesuatu yang menurut saya cukup menarik di Proxmox, yaitu membuat VM yang sudah langsung siap pakai tanpa perlu setup manual di dalamnya. Target saya sederhana: deploy Rocky Linux 8 yang sudah punya user, password, dan IP sejak pertama kali boot. Ini masih tahap saya belajar dan ingin uji coba, jadi saya catat semua prosesnya sebagai referensi pribadi sekaligus bahan belajar.

    Dari yang saya pahami, Cloud-Init memungkinkan kita melakukan konfigurasi awal VM langsung dari sisi Proxmox. Jadi bukan lagi install OS lalu konfigurasi manual, tapi kita “siapkan semuanya dari luar” sebelum VM dinyalakan. Ini yang ingin saya buktikan apakah benar-benar mempermudah workflow.


    STEP 1 — Download Image Rocky Linux

    Langkah pertama yang saya lakukan adalah mengambil image Rocky Linux yang memang sudah mendukung Cloud-Init. Saya download langsung dari node Proxmox agar lebih cepat dan tidak perlu upload manual lewat web.

    wget https://download.rockylinux.org/pub/rocky/8/images/x86_64/Rocky-8-GenericCloud.latest.x86_64.qcow2

    Output yang muncul menunjukkan proses download hingga selesai dengan ukuran sekitar 1GB lebih. Image ini berbeda dengan ISO biasa karena sudah disiapkan khusus untuk Cloud-Init, jadi tidak perlu proses instalasi OS lagi.


    STEP 2 — Membuat VM Kosong

    Setelah image siap, saya membuat VM baru tanpa menggunakan ISO. Tujuannya karena disk utama nanti akan diisi dari hasil import image Rocky tadi, bukan dari installer.

    • Masuk Web UI Proxmox
    • Create VM dengan spesifikasi
      • OS: Do not use any media
      • Disk Size: 10 GB
      • CPU: 2 Cores
      • Memory: 2GB

    Di tahap ini VM sebenarnya belum bisa dipakai karena belum memiliki disk OS. Tapi ini jadi fondasi awal sebelum disk dimasukkan.


    STEP 3 — Import Disk ke Storage

    Selanjutnya saya import image ke storage Proxmox yang saya gunakan, yaitu nfs-vm. Proses ini akan mengubah file .qcow2 menjadi format yang sesuai dengan storage.

    qm importdisk 200 Rocky-8-GenericCloud.latest.x86_64.qcow2 nfs-vm

    Output:

    
    
    
    
    
    
    
    
    

    Artinya disk sudah berhasil masuk, tapi masih status unused0. Ini penting dipahami karena disk belum otomatis terpasang ke VM.


    STEP 4 — Attach Disk ke VM

    Di sini saya mulai menghubungkan disk ke VM sebagai disk utama. Saya menggunakan controller virtio-scsi supaya performanya lebih optimal.

    qm set 200 --scsihw virtio-scsi-pci --scsi0 nfs-vm:200/vm-200-disk-0.raw

    Setelah ini, disk sudah berubah dari unused0 menjadi scsi0. Artinya sekarang VM sudah punya disk OS dan siap untuk boot.

    Hal penting yang saya perhatikan di step ini:

    • Disk harus hanya satu (jangan double .raw dan .qcow2)
    • Disk utama harus di scsi0
    • Format NFS harus storage:VMID/file

    STEP 5 — Menambahkan Cloud-Init Drive

    Langkah ini cukup krusial karena tanpa Cloud-Init drive, semua konfigurasi tidak akan terbaca oleh VM saat boot.

    Via CLI

    qm set 200 --ide2 nfs-vm:cloudinit

    Output:

    Setelah ditambahkan, Proxmox akan punya media khusus untuk menyimpan konfigurasi Cloud-Init. Ini yang nantinya dibaca oleh Rocky Linux saat pertama kali dijalankan.


    STEP 6 — Pre-Setup Konfigurasi VM

    Di tahap ini saya mulai melakukan konfigurasi awal sesuai tujuan saya.

    Di bagian ini, Proxmox sebenarnya sedang membuat file konfigurasi Cloud-Init yang berisi:

    • user baru
    • password
    • konfigurasi network

    Yang saya set di sini:

    • user: rafi
    • password: ******
    • IP: statis

    STEP 7 — Mengatur Boot dan Console

    Sebelum VM dijalankan, saya memastikan boot sudah mengarah ke disk utama dan console aktif untuk troubleshooting jika diperlukan.

    qm set 200 --boot c --bootdisk scsi0
    qm set 200 --serial0 socket --vga serial0

    Step ini penting walaupun terlihat sederhana, karena salah boot order bisa bikin VM tidak jalan dengan benar.


    STEP 8 — Menjalankan VM

    Setelah semua konfigurasi selesai, jalankan VM untuk melihat apakah semua yang saya setup benar-benar bekerja.

    Di tahap ini terlihat bahwa konfigurasi langsung diterapkan dan benar-benar jalan via Cloud-Init.

    • user sudah otomatis dibuat
    • password bisa dipakai login
    • IP langsung aktif
    • tidak perlu setup manual

    Catatan Penting dari Percobaan Ini

    Selama menyusun dan memahami step ini, ada beberapa hal yang menurut saya cukup penting:

    • Cloud-Init tidak akan jalan tanpa ide2 (step ke 5)
    • Disk harus benar-benar di scsi0
    • Error paling sering biasanya di attach disk atau format storage

    Akhir Kata Rafi…

    Dari yang saya pelajari, Cloud-Init ini sebenarnya sangat powerful untuk automation, tapi setup awalnya cukup sensitif. Salah satu step saja bisa bikin semuanya tidak jalan, jadi harus benar-benar teliti di awal.

    Kalau ini berhasil, saya merasa ini bisa sangat membantu untuk:

    • bikin template VM
    • deploy banyak VM sekaligus
    • automation environment