Jump to content

Proxmox Hello World

From Haidhi Wiki
Revision as of 03:28, 26 June 2026 by SanzSkuy (talk | contribs) (Created page with "'''Proxmox Hello World''' adalah panduan bertahap untuk memahami Proxmox VE dari dasar — bukan sekadar menghafal tombol, melainkan mengerti cara kerja mesinnya. Panduan disusun ''CLI-first'': setiap kali sebuah tugas bisa dilakukan lewat antarmuka web, sebaiknya dicoba juga lewat command line, karena pada lingkungan cluster/HPC nyata antarmuka grafis biasanya tidak tersedia. Target versi: '''Proxmox VE 9.x''' (basis Debian 13 "Trixie"). {| class="wikitable" |- !...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Proxmox Hello World adalah panduan bertahap untuk memahami Proxmox VE dari dasar — bukan sekadar menghafal tombol, melainkan mengerti cara kerja mesinnya. Panduan disusun CLI-first: setiap kali sebuah tugas bisa dilakukan lewat antarmuka web, sebaiknya dicoba juga lewat command line, karena pada lingkungan cluster/HPC nyata antarmuka grafis biasanya tidak tersedia.

Target versi: Proxmox VE 9.x (basis Debian 13 "Trixie").

Prinsip Keterangan
CLI-first Biasakan tangan mengetik, bukan mengklik
Pahami kenapa Tiap langkah disertai alasan, bukan instruksi buta
Snapshot dulu Selalu amankan sebelum bereksperimen

Fase 0 — Pondasi: sistem yang sehat

Wajib dilakukan sekali di awal. Instalasi baru Proxmox mengarah ke enterprise repository yang memerlukan subscription, sehingga apt update akan menghasilkan error 401 Unauthorized. Ini harus diperbaiki lebih dahulu.

0.1 Membuka shell

Pada web UI: klik node (panel kiri) → tombol >_ Shell (pojok kanan atas). Sebuah shell root terbuka langsung di browser, tanpa perlu SSH terpisah.

0.2 Menonaktifkan repo enterprise

Proxmox VE 9 memakai format repositori baru (deb822, file .sources), berbeda dari versi 8 yang berformat baris tunggal. Cara menonaktifkan sebuah repo deb822 adalah menambahkan baris Enabled: false.

echo 'Enabled: false' >> /etc/apt/sources.list.d/pve-enterprise.sources
echo 'Enabled: false' >> /etc/apt/sources.list.d/ceph.sources

Catatan: Repo Ceph ikut dimatikan karena Ceph adalah distributed storage untuk cluster produksi. Pada lab single-node tidak diperlukan, dan repo enterprise-nya hanya menambah error 401.

0.3 Menambahkan repo no-subscription

Types: deb
URIs: http://download.proxmox.com/debian/pve
Suites: trixie
Components: pve-no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg

Buat file tersebut dengan perintah:

cat > /etc/apt/sources.list.d/proxmox.sources << 'EOF'
Types: deb
URIs: http://download.proxmox.com/debian/pve
Suites: trixie
Components: pve-no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
EOF

Anatomi file deb822:

Kunci Arti
Types: deb Repo paket binary (bukan source code)
URIs: Server tempat mengambil paket
Suites: trixie Codename Debian basis. Proxmox 9 = Debian 13 = trixie. Salah isi → "Release not found"
Components: Channel; pve-no-subscription tidak butuh lisensi
Signed-By: Keyring untuk verifikasi tanda tangan paket (anti-tampering)

0.4 Update dan upgrade

apt update && apt full-upgrade -y

Catatan: Gunakan full-upgrade, bukan upgrade biasa. full-upgrade boleh menambah/menghapus paket bila dependency berubah — penting untuk update kernel Proxmox. upgrade saja kadang menahan paket dan macet.

0.5 (Opsional) Menghilangkan popup "No valid subscription"

Murni kosmetik dan tidak memengaruhi fungsi apa pun. Bila ingin dihilangkan:

sed -i "s/data.status.toLowerCase() !== 'active'/false/g" \
  /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
systemctl restart pveproxy

Catatan: Modifikasi ini akan tertimpa setiap kali paket proxmox-widget-toolkit diperbarui. Jalankan ulang bila perlu.

0.6 Reboot dan verifikasi

reboot
# setelah menyala kembali:
pveversion        # ringkas
pveversion -v     # detail semua komponen

Fase 1 — Peta mental: anatomi Proxmox

Hierarki

Datacenter                ← level paling atas (semua node + setting global)
  └── Node (pve)          ← satu mesin fisik/host
        ├── VM (KVM)      ← virtual machine penuh, punya kernel sendiri
        └── CT (LXC)      ← container, berbagi kernel host

VM (KVM) vs Container (LXC)

Aspek VM / KVM Container / LXC
Isolasi Penuh (hardware virtual) Proses (berbagi kernel host)
Kernel Sendiri Ikut host
Overhead Lebih berat Sangat ringan
Boot Hitungan detik Instan
OS Apa saja (Windows, BSD, dll) Linux saja
Use case Butuh isolasi / OS berbeda Banyak service Linux ringan

Catatan: Relevansi HPC: container padat dan murah sehingga bisa ditumpuk banyak di satu host. Namun workload yang butuh kontrol kernel/driver (mis. GPU passthrough, kernel module khusus) lebih cocok di VM.

Lokasi file penting

Path Isi
/etc/pve/ Config cluster — filesystem khusus (lihat di bawah)
/etc/pve/qemu-server/<VMID>.conf Config tiap VM
/etc/pve/lxc/<CTID>.conf Config tiap container
/etc/network/interfaces Config jaringan host
/var/lib/vz/ Storage local (ISO, template, backup)

Catatan: /etc/pve bukan folder biasa, melainkan pmxcfs (Proxmox Cluster File System) — sebuah FUSE filesystem yang di-backing database SQLite dan otomatis ter-sinkronisasi ke seluruh node cluster. Inilah alasan config VM yang diubah di satu node langsung terlihat di node lain, dan alasan /etc/pve menjadi read-only saat cluster kehilangan quorum.

Fase 2 — Storage

pvesm status     # lihat semua storage + kapasitas

Instalasi baru umumnya memiliki dua storage:

Storage Tipe Fungsi
local Directory ISO, template container, backup
local-lvm LVM-thin Disk virtual VM & container

Catatan: LVM-thin memakai thin provisioning: sebuah VM bisa "dijanjikan" 32 GB walau fisik baru terpakai 2 GB — alokasi tumbuh sesuai pemakaian. Hemat ruang, tetapi waspadai over-provisioning.

Mengunggah ISO lewat CLI:

cd /var/lib/vz/template/iso/
wget https://...../debian-13-netinst.iso

Fase 3 — VM pertama (KVM)

Cara antarmuka: tombol Create VM lalu ikuti wizard. Cara command line:

# 1. Buat shell VM (ID 100)
qm create 100 --name testvm --memory 2048 --cores 2 \
  --net0 virtio,bridge=vmbr0

# 2. Tambah disk 32GB di local-lvm dengan controller virtio-scsi (tercepat)
qm set 100 --scsihw virtio-scsi-pci --scsi0 local-lvm:32

# 3. Pasang ISO sebagai CD-ROM
qm set 100 --ide2 local:iso/debian-13-netinst.iso,media=cdrom

# 4. Atur urutan boot: CD dulu, lalu disk
qm set 100 --boot order=ide2;scsi0

# 5. Nyalakan
qm start 100

Lifecycle command

qm list                              # semua VM
qm start 100
qm shutdown 100                      # shutdown sopan (ACPI)
qm stop 100                          # paksa mati
qm reboot 100
qm clone 100 101 --name clone-test   # gandakan VM
qm config 100                        # lihat semua setting
qm destroy 100                       # hapus permanen

Fase 4 — Container (LXC)

# 1. Update daftar template
pveam update

# 2. Lihat template tersedia
pveam available --section system

# 3. Download (nama persis dari output di atas)
pveam download local debian-13-standard_13.x_amd64.tar.zst

# 4. Buat container ID 200
pct create 200 local:vztmpl/debian-13-standard_13.x_amd64.tar.zst \
  --hostname ct1 \
  --memory 1024 \
  --cores 2 \
  --net0 name=eth0,bridge=vmbr0,ip=dhcp \
  --storage local-lvm \
  --password

# 5. Nyalakan & masuk
pct start 200
pct enter 200

Catatan: Container menyala instan dan ringan karena tidak mem-boot kernel sendiri. Perintahnya mirip qm tetapi berawalan pct.

Fase 5 — Networking

cat /etc/network/interfaces

Di sana terdapat vmbr0, sebuah Linux bridge yang berfungsi sebagai virtual switch. Semua VM/container "dicolokkan" ke bridge ini, lalu bridge tersambung ke NIC fisik host, sehingga guest memperoleh IP pada jaringan yang sama dengan host (mode bridged).

  • vmbr0 — switch virtual default, ter-bridge ke NIC fisik
  • Untuk jaringan terisolasi, buat vmbr1 tanpa bridge-ports fisik
  • Terapkan perubahan tanpa reboot: ifreload -a

Catatan: Untuk simulasi cluster HPC, sering dibuat bridge internal terpisah untuk traffic antar-node (mis. MPI) agar tidak bercampur dengan jaringan management.

Fase 6 — Snapshot & Backup

Snapshot adalah potret kondisi VM pada satu waktu; cepat, tetapi menempel di disk yang sama dan bukan pengganti backup.

qm snapshot 100 sebelum-eksperimen
qm rollback 100 sebelum-eksperimen
qm delsnapshot 100 sebelum-eksperimen

Backup adalah salinan utuh ke storage lain untuk disaster recovery.

vzdump 100 --storage local --mode snapshot --compress zstd

Backup terjadwal diatur lewat Datacenter → Backup → Add.

Catatan: Kebiasaan penting: lakukan snapshot SEBELUM tiap eksperimen berisiko. Ini jaring pengaman yang membuat berani mengulik.

Fase 7 — Cheat sheet command

Tool Fungsi Contoh
qm Manage VM (KVM) qm list
pct Manage container (LXC) pct enter 200
pvesm Manage storage pvesm status
pveam Manage template LXC pveam available
pvecm Manage cluster pvecm status
pvesh Akses REST API via CLI pvesh get /nodes
pveversion Cek versi pveversion -v
journalctl Baca log (troubleshooting) journalctl -xe

Catatan: pvesh adalah "senjata rahasia": semua aksi UI sebenarnya memanggil REST API yang sama. Menguasai pvesh berarti mampu mengotomasi apa pun.

Fase 8 — Cluster

Cluster adalah beberapa node Proxmox yang config-nya ter-sinkron via pmxcfs. Manfaatnya: satu UI untuk semua node, live migration VM antar-node, serta High Availability.

# Di node pertama: buat cluster
pvecm create lab-cluster

# Di node lain: gabung (jalankan dari node yang akan bergabung)
pvecm add <IP-node-pertama>

# Cek status
pvecm status
pvecm nodes

Catatan: Untuk uji coba di VirtualBox, kloning VM Proxmox menjadi 2–3 node (tiap node WAJIB beda hostname dan IP). Idealnya 3 node agar ada quorum: cluster butuh mayoritas node hidup untuk mengambil keputusan. Bila hanya 2 node dan satu mati, sisanya kehilangan quorum dan /etc/pve menjadi read-only.

Mindset penutup

  1. Snapshot sebelum mengulik. Selalu.
  2. Pahami /etc/pve — kunci sinkronisasi cluster dan alasan quorum penting.
  3. Semua adalah API. UI hanya pembungkus REST API; kuasai pvesh.
  4. Paksa CLI walau ada tombol — siapkan tangan untuk lingkungan tanpa GUI.
  5. Baca log saat error, jangan menebak: journalctl -xe, qm help <command>.

Lihat pula