Episode ini menambahkan virtual machine di atas NAS: VM di TrueNAS SCALE berbasis KVM dan QEMU, nested virtualization, dan passthrough GPU. Kalian juga belajar penyimpanan VM dengan zvol, disk passthrough, serta backup VM yang konsisten memakai snapshot.

Selain container, NAS modern bisa menjalankan virtual machine penuh. Episode 19 ini membahas virtualisasi di NAS: membuat VM di TrueNAS SCALE berbasis KVM dan QEMU, memahami nested virtualization, meneruskan GPU ke VM, serta merancang penyimpanan VM yang aman dan mudah di-backup.
Virtualisasi memberi kalian kebebasan menjalankan sistem operasi berbeda di atas NAS — dari router virtual, Windows untuk keperluan tertentu, hingga server Linux tambahan. Karena semua berjalan di atas storage ZFS, data VM menikmati checksum, snapshot, dan replication yang sudah kalian bangun.
Di akhir episode ini kalian akan bisa membuat VM di TrueNAS SCALE, memahami batasan nested virtualization, melakukan passthrough GPU, memilih antara zvol dan disk passthrough, serta membackup VM dengan snapshot yang konsisten.
TrueNAS SCALE memakai KVM (kernel-based virtual machine) bersama QEMU sebagai emulator. KVM memanfaatkan virtualisasi hardware CPU sehingga VM berjalan mendekati kecepatan native. Menu Virtualization di Web UI memandu pembuatan VM.
egrep -c '(vmx|svm)' /proc/cpuinfoPerintah di atas menghitung core dengan flag virtualisasi Intel (vmx) atau AMD (svm). Angka nol berarti VM harus berjalan dalam mode emulasi yang jauh lebih lambat.
Saat membuat VM, kalian memilih OS type, CPU, RAM, dan sumber instalasi ISO. Untuk penyimpanan, pilih zvol sebagai disk — ini mengikat VM ke storage ZFS yang sudah terproteksi.
midclt call vm.query | python3 -m json.toolPerintah midclt call vm.query menampilkan daftar VM beserta statusnya. Gunakan ini untuk memverifikasi VM berjalan dan memantau resource yang dipakai.
Nested virtualization memungkinkan VM menjalankan hypervisor di dalamnya — misalnya menjalankan Proxmox di dalam VM TrueNAS. Fitur ini berguna untuk lab, tetapi hanya jika CPU dan hypervisor host mendukung flag nested.
modprobe kvm_intel nested=1Perintah modprobe kvm_intel nested=1 mengaktifkan nested virtualization pada kernel host. Nama modul menyesuaikan vendor CPU: kvm_intel untuk Intel, kvm_amd untuk AMD.
Nested virtualization menambah lapisan yang menurunkan performa dan membuat troubleshooting lebih sulit. Gunakan untuk lab dan pengujian, bukan untuk produksi. Pastikan juga parameter nested diaktifkan secara persisten melalui konfigurasi modprobe.
Passthrough GPU menyerahkan perangkat GPU fisik langsung ke satu VM, memberi VM akses penuh untuk workload seperti transcoding media atau rendering. Di TrueNAS SCALE, GPU dikonfigurasi lewat pengaturan VM, dan passthrough PCIe memerlukan dukungan IOMMU.
dmesg | grep -i iommuOutput dmesg menunjukkan apakah IOMMU aktif. Tanpa IOMMU, passthrough PCIe tidak bisa dilakukan; aktifkan lewat parameter kernel intel_iommu=on atau amd_iommu=on.
Satu GPU hanya bisa diberikan ke satu VM. Jika NAS dipakai untuk banyak hal, pertimbangkan apakah GPU benar-benar dibutuhkan di VM atau cukup dipakai host. Passthrough juga menonaktifkan GPU dari host, jadi pastikan tidak ada layanan host yang membutuhkannya.
Zvol adalah pilihan terbaik untuk disk VM: block device yang di-back oleh ZFS, mendapat checksum dan snapshot. Karena berperilaku seperti disk nyata, filesystem di dalam VM berjalan normal.
zfs create -V 50g -o sync=always tank/vms/vm-01Perintah zfs create -V 50g -o sync=always tank/vms/vm-01 membuat disk virtual 50 gigabyte. Opsi sync=always memastikan write dianggap selesai hanya setelah tersimpan di disk.
Selain zvol, TrueNAS SCALE mendukung disk passthrough: menyerahkan satu disk fisik utuh ke VM, misalnya untuk storage langsung atau data yang tidak ingin di bawah kontrol ZFS. Trade-off-nya: disk kehilangan proteksi ZFS dan tidak bisa di-snapshot sebagai satu unit.
Snapshot zvol dilakukan saat VM sedang berjalan bisa menghasilkan kondisi tidak konsisten karena cache filesystem di dalam VM belum ditulis ke disk. Solusinya: snapshot ZFS dikombinasikan dengan quiesce — misalnya snapshot VM dari dalam sistem operasi VM sebelum snapshot ZFS diambil.
zfs snapshot tank/vms/vm-01@sebelum-updatePerintah zfs snapshot tank/vms/vm-01@sebelum-update membuat snapshot disk VM. Untuk konsistensi penuh, lakukan snapshot dari dalam VM atau pause VM sesaat saat snapshot diambil.
Karena zvol bisa direplikasi seperti dataset biasa, seluruh VM bisa digandakan ke lokasi lain dengan zfs send.
Info
Snapshot zvol untuk VM membutuhkan kehati-hatian ekstra. Snapshot tanpa sinkronisasi dari dalam VM bisa memulihkan data yang tidak konsisten. Selalu kombinasikan snapshot ZFS dengan quiesce dari sistem operasi VM.
Di episode 19 ini kalian sudah menambahkan virtualisasi di NAS: membuat VM berbasis KVM dan QEMU di TrueNAS SCALE, memahami nested virtualization, meneruskan GPU lewat passthrough, memilih penyimpanan zvol atau disk passthrough, serta membackup VM dengan snapshot yang konsisten.
Inti yang harus dibawa pulang:
Di episode 20 selanjutnya kita akan membahas high availability dan scale-out — dari TrueNAS HA enterprise dengan failover dan fencing, hingga scale-out dengan cluster, object storage MinIO dan Garage, serta integrasi Ceph untuk distributed storage. Satu NAS sudah hebat, sekarang saatnya membuat sistem yang tidak pernah berhenti.