Sekarang kita masuk topik yang ramai orang rasa “advanced” tapi sebenarnya sangat praktikal — virtualisasi. Bayangkan anda boleh jalankan beberapa komputer di dalam satu komputer fizikal. Tak perlu beli banyak mesin, tak perlu banyak kabel. Satu kotak, banyak OS. Menarik kan?
Apa yang anda akan belajar:
Nota Beginner: Anggap VM seperti satu komputer penuh di dalam komputer anda — ada OS sendiri, RAM sendiri, semuanya. Ia lebih berat, tetapi lebih fleksibel. LXC pula lebih ringan dan laju untuk banyak service Linux. Normal je kalau confuse antara dua ni pada awalnya!
Virtualisasi membolehkan satu mesin fizikal menjalankan beberapa sistem atau persekitaran kerja pada masa yang sama.
Untuk beginner, ini sangat berguna kerana anda boleh belajar banyak benda tanpa perlu membeli banyak komputer. Satu PC sahaja dah cukup untuk jalankan server, NAS, Docker host, dan macam-macam lagi.
Dalam dunia kerja sebenar pula, kemahiran ini memang sangat bernilai. Hampir semua syarikat IT guna virtualisasi dalam infrastruktur mereka.
Virtualisasi mencipta versi maya bagi sumber pengkomputeran fizikal — termasuk server, storan, rangkaian, dan OS. Satu mesin fizikal (host) boleh menjalankan banyak mesin maya (guest).
Analogi mudah: Bayangkan satu bangunan pejabat (mesin fizikal) yang dibahagikan kepada banyak bilik (VM). Setiap bilik ada penghuni sendiri, pintu sendiri, tapi semua berkongsi bangunan yang sama.
1. Virtualisasi Penuh (Full Virtualization) - Mesin maya mempunyai perkakasan maya yang lengkap - Boleh menjalankan mana-mana OS tanpa pengubahsuaian - Contoh: KVM, VMware ESXi - Penggunaan: VM Windows, VM Linux penuh
2. Paravirtualization - OS guest diubah suai untuk berkomunikasi dengan hypervisor - Prestasi lebih baik berbanding virtualisasi penuh - Contoh: Xen (PV mode) - Penggunaan: Server Linux berprestasi tinggi
3. Virtualisasi Container (OS-level) - Berkongsi kernel host - Sangat ringan dan pantas - Contoh: LXC, Docker - Penggunaan: Microservices, aplikasi tunggal
Nota Beginner: Untuk homelab, anda paling kerap jumpa jenis pertama (Full Virtualization melalui KVM) dan jenis ketiga (container melalui LXC/Docker). Jadi fokus pada dua ni dulu.
Untuk homelab, sentiasa gunakan Hypervisor Jenis 1. Ia dipasang terus atas perkakasan, jadi prestasi lebih baik dan overhead lebih rendah.
Okay, sekarang bahagian yang paling hands-on. Saya akan tunjukkan langkah demi langkah macam mana nak guna Proxmox VE.
Setelah memasang Proxmox, antara muka web boleh diakses di https://IP-pelayan:8006. Antara muka ini menyediakan:
https://IP-pelayan:8006
Nota Beginner: Jangan terasa overwhelmed dengan banyaknya menu dan pilihan. Anda hanya perlu fokus pada bahagian VM/CT dan Storage untuk bermula. Yang lain tu untuk kemudian.
Storan Tempatan:
local → /var/lib/vz (ISO, template, backup) local-lvm → LVM thin pool (VM disks, CT volumes)
Menambah storan NFS (dari NAS):
nas-backup
10.0.0.10
/mnt/pool/backup
Menambah storan ZFS:
Jika server mempunyai cakera tambahan:
# Cipta ZFS pool zpool create -f datapool mirror /dev/sdb /dev/sdc # Tambah di antara muka web: # Datacenter → Storage → Add → ZFS # Pool: datapool # Content: Disk image, Container
Ini bahagian yang paling best — cipta VM pertama anda!
Langkah Mencipta VM:
Nota Beginner: Kalau anda tak pasti nak letak berapa core atau RAM, mulakan dengan 2 core dan 4GB RAM dulu. Anda boleh tambah kemudian tanpa perlu buat VM baru. Satu langkah pada satu masa!
Amalan Terbaik VM:
Tip Prestasi: ✓ Gunakan VirtIO untuk cakera dan rangkaian ✓ CPU Type: host (bukan default kvm64) ✓ Aktifkan NUMA untuk server berbilang soket ✓ Gunakan SSD untuk storan VM ✓ Aktifkan ballooning untuk pengurusan RAM dinamik
LXC adalah alternatif yang lebih ringan kepada VM penuh. Ia berkongsi kernel host dan menggunakan sumber yang jauh lebih sedikit.
Tip dari saya — kalau service tu hanya perlu Linux dan tak perlu kernel khas, guna LXC. Ia jauh lebih cepat dan jimat resource.
Perbandingan VM vs LXC:
Mencipta Container LXC:
CT ID: 200 Hostname: pihole Password: [kata laluan] Template: debian-12-standard Root Disk: 8GB CPU Cores: 1 Memory: 512MB Network: vmbr0, DHCP atau statik DNS Domain: lab.local DNS Server: 10.0.0.1
Bila Guna VM vs LXC:
Nota Beginner: Kalau anda tak pasti nak guna VM atau LXC, tanya diri sendiri: “Service ni perlu Windows atau kernel khas?” Kalau tidak, LXC biasanya pilihan yang lebih baik.
Template membolehkan anda cipta VM baru dalam beberapa saat sahaja, tanpa perlu install dari awal setiap kali. Dari pengalaman saya, ini salah satu ciri yang paling jimat masa.
Mencipta Template VM:
Pasang dan konfigurasi VM seperti yang dikehendaki
Pasang cloud-init agent (pilihan):
sudo apt install cloud-init qemu-guest-agent
Bersihkan:
sudo cloud-init clean sudo truncate -s 0 /etc/machine-id
Shutdown VM
Klik kanan → Convert to Template
Clone dari Template:
Backup adalah perkara yang ramai orang abaikan sehingga terlambat. Saya cadangkan anda setup backup automatik dari awal. Tak susah pun, dan anda akan bersyukur kemudian.
Konfigurasi Sandaran Automatik:
Storage: nas-backup Schedule: Harian pada 02:00 Mode: Snapshot Compress: ZSTD Retention: Simpan 7 sandaran Mail: admin@homelab.local
Pemulihan:
Memantau Penggunaan:
Proxmox menyediakan graf masa nyata untuk: - Penggunaan CPU - Penggunaan memori - I/O rangkaian - I/O cakera
Resource Pool:
Kumpulkan VM/CT ke dalam Resource Pool untuk pengurusan yang lebih baik:
production
development
testing
Nota Beginner: Resource Pool hanya untuk organisasi — ia tak hadkan sumber secara automatik. Tapi ia sangat membantu bila anda dah ada banyak VM dan container, supaya tak serabut.
Salah satu kesilapan biasa ialah bagi terlalu banyak resource kepada VM sehingga host sendiri jadi lambat.
Panduan over-commit: CPU: Boleh over-commit sehingga 4:1 (4 vCPU per teras fizikal) RAM: Elakkan over-commit (atau gunakan ballooning dengan berhati-hati) Storan: Thin provisioning OK, tetapi pantau penggunaan sebenar
Sentiasa ambil snapshot sebelum membuat perubahan besar. Ini macam “save game” — kalau sesuatu tak kena, anda boleh revert.
# Melalui CLI qm snapshot 100 before-upgrade --description "Sebelum naik taraf" # Melalui antara muka web VM → Snapshots → Take Snapshot
Cloud-init membolehkan konfigurasi automatik VM baharu. Sangat berguna kalau anda selalu buat VM baru.
# cloud-init config hostname: web-server manage_etc_hosts: true users: - name: admin sudo: ALL=(ALL) NOPASSWD:ALL ssh_authorized_keys: - ssh-ed25519 AAAA...kunci-anda packages: - docker.io - docker-compose runcmd: - systemctl enable docker - systemctl start docker
Tetapkan tag kepada VM/CT untuk memudahkan pengurusan: - production, development, testing - linux, windows - docker, database, web
linux
windows
docker
database
web
Tip dari saya — buat convention tag dari awal. Nanti bila dah ada 20+ VM/CT, anda akan sangat bersyukur.
Dalam bab ini, kita telah belajar tentang:
Virtualisasi memberi anda fleksibiliti yang luar biasa. Dengan satu mesin fizikal, anda boleh bina keseluruhan lab IT yang lengkap. Jangan risau kalau bab ni rasa banyak — anda tak perlu kuasai semuanya sekaligus. Buat satu VM, buat satu LXC, dan belajar dari situ.
Seterusnya, kita akan meneroka teknologi container dengan Docker — satu lagi kemahiran yang sangat berharga untuk kerjaya IT anda!