Banner Journal - Apa itu Virsh adalah

Apa itu Virsh? Pengertian, Fungsi, dan Cara Menggunakannya

Saat mengelola server virtual berbasis KVM, banyak administrator membutuhkan cara yang cepat dan efisien untuk mengatur VPS tanpa bergantung pada tampilan grafis. Virsh adalah salah satu tools penting yang sering digunakan karena mampu menjalankan berbagai perintah manajemen virtualisasi langsung melalui terminal.

Selain itu, Virsh merupakan utilitas command line yang menjadi bagian dari libvirt dan digunakan untuk mengelola virtual machine, jaringan virtual, storage, hingga status hypervisor pada sistem Linux.

Di artikel ini, kita akan membahas pengertian Virsh, fungsi utamanya, serta contoh cara menggunakannya agar lebih mudah dipahami, baik oleh pemula maupun administrator server.

Apa itu Virsh?

Virsh adalah utilitas berbasis command line yang digunakan untuk mengelola lingkungan virtualisasi melalui libvirt di sistem Linux. Tool ini memungkinkan administrator server menjalankan berbagai perintah untuk membuat, menyalakan, mematikan, memantau, hingga mengatur konfigurasi mesin virtual (virtual machine / VM) langsung dari terminal.

Selain itu, Virsh berfungsi sebagai interface teks untuk berkomunikasi dengan layanan libvirt. Karena itu, Virsh banyak digunakan pada server berbasis KVM (Kernel-based Virtual Machine), meskipun juga dapat mendukung teknologi virtualisasi lain yang kompatibel dengan libvirt.

Penjelasan sederhana tentang Virsh adalah sebagai berikut:

Promo Hosting Murah Rumahweb

Virsh > Libvirt > KVM > VM
  • Virsh = Tool CLI untuk akses libvirt
  • Libvirt = Engine untuk mengelola KVM
  • KVM = Teknologi Virtualisasi
  • VM = Virtual Machine (VPS)

Bagi pengguna VPS KVM atau dedicated server, Virsh menjadi pilihan populer karena ringan, cepat, dan tidak membutuhkan interface grafis. Tool ini sangat cocok digunakan untuk pengelolaan server jarak jauh melalui SSH, terutama pada lingkungan produksi yang mengutamakan efisiensi resource.

Fungsi Utama Virsh

Sebagai tool manajemen virtualisasi berbasis command line, Virsh memiliki banyak fungsi penting untuk membantu administrator mengelola VM dengan lebih efisien. Hampir seluruh aktivitas dasar hingga lanjutan pada lingkungan KVM dapat dilakukan langsung melalui terminal.

Berikut beberapa fungsi utama Virsh:

  • Mengelola Status Virtual Machine: Virsh dapat digunakan untuk menyalakan, mematikan, restart, suspend, maupun melanjutkan kembali VM yang sedang berjalan.
  • Melihat Daftar dan Informasi VM: Anda bisa menampilkan daftar seluruh VM aktif maupun nonaktif, lengkap dengan status masing-masing.
  • Membuat dan Menghapus Virtual Machine: Virsh mendukung proses pembuatan VM baru dari file konfigurasi XML, serta menghapus VM yang sudah tidak digunakan lagi.
  • Mengelola Snapshot dan Backup: Virsh memungkinkan Anda membuat snapshot backup sebelum update sistem atau perubahan besar.
  • Mengatur Resource Server: Administrator dapat mengubah alokasi CPU, RAM, storage, maupun network interface pada VM sesuai kebutuhan workload yang berjalan.
  • Monitoring dan Troubleshooting: Virsh menyediakan informasi penggunaan resource, log status, serta koneksi hypervisor sehingga memudahkan proses analisis saat terjadi kendala.
  • Otomasi Melalui Script: Karena berbasis command line, Virsh sangat cocok digunakan dalam script Bash, cron job, maupun sistem automasi untuk mengelola banyak VM sekaligus.
Fungsi Utama Virsh adalah

Dengan berbagai fungsi tersebut, Virsh menjadi tool penting bagi administrator yang ingin mengelola virtualisasi Linux secara cepat, ringan, dan fleksibel tanpa bergantung pada panel grafis.

Cara Install Virsh

Sebelum menggunakan Virsh, Anda perlu memasang paket libvirt-client atau paket sejenis yang menyediakan utilitas command line Virsh. Proses instalasinya cukup mudah dan dapat dilakukan sesuai distribusi Linux yang digunakan.

Install Virsh di Ubuntu / Debian

Jalankan perintah berikut:

sudo apt update
sudo apt install libvirt-clients -y

Setelah proses selesai, cek apakah Virsh sudah terpasang:

virsh --version

Jika berhasil, sistem akan menampilkan versi Virsh yang terinstal.

Install Virsh di CentOS / AlmaLinux / Rocky Linux

Gunakan perintah berikut:

sudo dnf install libvirt-client -y

Pada versi lama CentOS, Anda juga bisa menggunakan:

sudo yum install libvirt-client -y

Lalu cek versinya:

virsh --version

Menjalankan Service Libvirt

Agar Virsh dapat terhubung ke hypervisor lokal, pastikan layanan libvirt aktif:

sudo systemctl enable --now libvirtd

Pada beberapa distro terbaru, nama servicenya bisa berbeda, misalnya:

sudo systemctl enable --now virtqemud

Verifikasi Koneksi Virsh

Setelah instalasi selesai, uji koneksi dengan perintah:

virsh list --all

Jika berhasil, sistem akan menampilkan daftar virtual machine yang tersedia, atau tabel kosong jika belum ada VM.

Cara Menggunakan Virsh

Sebelum menggunakan Virsh, pastikan server telah terinstall KVM dan Libvirt dengan status aktif.

Setelah itu, install Virsh menggunakan perintah :

sudo apt-get install virsh

Hubungkan ke kvm. Ini bisa lokal, atau bahkan jauh (remote). Dalam kebanyakan kasus, jika ingin mengelola VM yang berjalan di KVM lokal maka perintahnya :

$ virsh connect qemu:///system
Connecting to uri: qemu:///system

Setelah terhubung ke kvm, tes perintah virsh seperti contoh dibawah ini :

$ virsh list
 Id Name                 State
----------------------------------
  1 foo                  running

Pada contoh diatas, terdapat satu VM dengan nama foo dengan status running.

Contoh Perintah Virsh Untuk Mengelola KVM

Berikut beberapa perintah virsh yang berguna dan harus diketahui oleh setiap administrator sistem.

1. Manajemen VM

Melihat daftar VM yang aktif

virsh list
virsh list --all
# virsh list
 Id     Name     State
--------------------------
 1      VM1   running
 2      VM2   running
 12     VM3   running


# virsh list --all
 Id     Name     State
--------------------------
 84   VM1   running
 85   VM2   running
 -    VM3   shut off
 -    VM4   shut off

Tambahkan –all untuk melihat semua VM termasuk yang tidak aktif

Menjalankan / menghentikan VM

virsh start vm1
virsh shutdown vm1
virsh reboot vm1
virsh reset vm1
virsh destroy vm1
# virsh shutdown VM1
Domain 'VM1' is being shutdown

# virsh list --all | grep VM1
 -      VM1   shut off

# virsh start VM1
Domain 'VM1' started

# virsh list --all | grep VM1
 2216   VM1   running

# virsh reboot VM1
Domain 'VM1' is being rebooted

Penjelasan sederhana untuk perintah-perintah diatas.

  • shutdown = seperti klik Shutdown pada PC, menghentikan/stop vm dengan aman
  • reboot = seperti klik Restart pada PC, menghentikan/stop vm dengan aman dan melakukan start
  • reset = seperti tekan tombol Reset pada PC, bertujuan untuk melakukan stop vm dengan paksa dengan resiko kehilangan data/korup. Perintah ini disarankan hanya dilakukan ketika vm mengalami hang dan tidak bisa dilakukan shutdown/reboot
  • destroy = cabut kabel listrik langsung. Perintah ini untuk memaksa mematikan/stop vm. mirip dengan perintah reset tetapi vm tidak dinyalakan lagi.

Suspend / Resume VM

virsh suspend vm1
virsh resume vm1
# virsh suspend VM1
Domain 'VM1' suspended

# virsh list --all | grep VM1
 2216   VM1   paused

# virsh resume VM1
Domain 'VM1' resumed

# virsh list --all | grep VM1
 2216   VM1   running

Autostart VM

virsh autostart vm1
virsh autostart vm1 --disable
# virsh autostart VM1
Domain 'VM1' marked as autostarted

# virsh autostart VM1 --disable
Domain 'MV1' unmarked as autostarted

Perintah autostart digunakan untuk mengatur apakah sebuah VM akan otomatis menyala saat host (server) booting

2. Monitoring & Informasi VM

Info umum VM

virsh dominfo vm1
# virsh dominfo VM1
Id:             2216
Name:           VM1
UUID:           b0170c7f-723d-443c-9695-xxxxxxxx
OS Type:        hvm
State:          running
CPU(s):         2
CPU time:       734.8s
Max memory:     4194304 KiB
Used memory:    4194304 KiB
Persistent:     yes
Autostart:      disable
Managed save:   no
Security model: none
Security DOI:   0

Perintah dominfo digunakan untuk melihat informasi detail sebuah VM seperti status VM, CPU, RAM, dan konfigurasi lain seperti Autostart.

Statistik VM

virsh domstate vm1

# virsh domstate VM1
running

Digunakan untuk melihat status (state) VM secara singkat

virsh domstats vm1
# virsh domstats VM1
Domain: 'VM1'
  state.state=1
  state.reason=5
  cpu.time=930232274665
  cpu.user=629660000000
  cpu.system=300560000000
  cpu.cache.monitor.count=0
  cpu.haltpoll.success.time=976711656
  cpu.haltpoll.fail.time=8409214271
  balloon.current=4194304
  balloon.maximum=4194304
  balloon.swap_in=0
  balloon.swap_out=0
  balloon.major_fault=0
  balloon.minor_fault=0
  balloon.unused=3740976
  balloon.available=3904340
  balloon.usable=3627616
  balloon.last-update=1776140516
  balloon.disk_caches=134000
  balloon.hugetlb_pgalloc=0
  balloon.hugetlb_pgfail=0
  balloon.rss=1283764
  vcpu.current=2
  vcpu.maximum=2
  vcpu.0.state=1
  vcpu.0.time=144470000000
  vcpu.0.wait=0

Digunakan untuk melihat statistik performa VM secara detail (lebih teknis dibanding dominfo)

virsh cpu-stats vm1
# virsh cpu-stats VM1
CPU0:
        cpu_time            32.964561065 seconds
        vcpu_time           26.069632448 seconds
CPU1:
        cpu_time             7.527186122 seconds
        vcpu_time            6.974434889 seconds
CPU2:
        cpu_time            34.620942406 seconds
        vcpu_time           27.784880035 seconds
CPU3:
        cpu_time             6.202301868 seconds
        vcpu_time            5.585880040 seconds
CPU4:
        cpu_time            24.501090288 seconds
        vcpu_time           18.939569736 seconds
CPU5:
        cpu_time             4.373740198 seconds
        vcpu_time            3.793086923 seconds
CPU6:
        cpu_time            34.335071667 seconds
        vcpu_time           27.429221376 seconds

Digunakan untuk melihat statistik penggunaan CPU dari sebuah VM secara lebih spesifik per vCPU.

virsh dommemstat vm1
# virsh dommemstat VM1
actual 4194304
swap_in 0
swap_out 0
major_fault 0
minor_fault 0
unused 3740976
available 3904340
usable 3627616
last_update 1776140516
disk_caches 134000
hugetlb_pgalloc 0
hugetlb_pgfail 0
rss 1287876

Digunakan untuk melihat statistik penggunaan memori (RAM) pada VM

Resource VM

virsh domblkinfo vm1 vda

# virsh domblkinfo v20587 vda
Capacity:       85899345920
Allocation:     10413273088
Physical:       10412490752

Digunakan untuk melihat informasi disk (block device) yang terpasang pada VM.

3. Konfigurasi VM

Definisi VM

  • virsh define vm.xml : Digunakan untuk mendaftarkan (define) VM ke dalam libvirt dari file konfigurasi XML
  • virsh undefine vm1 : digunakan untuk menghapus definisi (konfigurasi) VM dari libvirt.

Edit konfigurasi VM

  • virsh edit vm1 : Digunakan untuk mengedit konfigurasi VM (domain) dalam format XML secara langsung (dengan default menggunakan editor vi).

Dump XML config

  • virsh dumpxml vm1 > vm1.xml : Digunakan untuk menyimpan konfigurasi VM ke file XML.

4. Misc / Utility

virsh help

Digunakan untuk menampilkan daftar semua perintah yang tersedia beserta deskripsinya.

virsh uri
# virsh uri
qemu:///system

virsh uri digunakan untuk menampilkan URI (Uniform Resource Identifier) dari koneksi libvirt yang sedang digunakan.

Dari contoh diatas menandakan :

  • qemu > hypervisor yang digunakan (KVM/QEMU)
  • system > koneksi ke level system (butuh root)

Penutup

Virsh adalah tool command line yang sangat membantu administrator server dalam mengelola mesin virtual berbasis libvirt secara lebih cepat dan efisien. Melalui satu interface CLI, Anda dapat menjalankan berbagai kebutuhan virtualisasi mulai dari monitoring, konfigurasi, kontrol VM, hingga automasi pengelolaan server.

Dengan memahami cara kerja dan penggunaan virsh, proses manajemen virtualisasi dapat menjadi lebih sederhana, fleksibel, dan mudah dikontrol, terutama pada lingkungan server Linux dan VPS yang membutuhkan efisiensi serta stabilitas tinggi.

Bermanfaatkah Artikel Ini?

Klik bintang 5 untuk rating!

Rating rata-rata 0 / 5. Vote count: 0

Belum ada vote hingga saat ini!

Kami mohon maaf artikel ini kurang berguna untuk Anda!

Mari kita perbaiki artikel ini!

Beri tahu kami bagaimana kami dapat meningkatkan artikel ini?

Triyadi

Memberikan support kepada pelanggan Rumahweb dengan pengalaman sebagai technical support selama lebih dari 10 tahun. Selain itu aktif menulis di Journal Rumahweb mengenai domain, hosting, vps, email, dan tulisan lain seputar dunia IT