Virsh , kependekan dari Vir sebenarnya Sh ell, adalah antarmuka pengguna baris perintah untuk mengelola mesin tamu virtual. Virsh memungkinkan Anda untuk membuat, membuat daftar, mengedit, memulai, memulai kembali, menghentikan, menangguhkan, melanjutkan, mematikan, dan menghapus VM. Saat ini mendukung KVM, LXC, Xen, QEMU, OpenVZ, VirtualBox dan VMware ESX. Dalam panduan ini, kita akan membahas cara mengelola KVM mesin virtual dengan antarmuka pengguna manajemen Virsh di Linux.
Pastikan Anda telah menginstal utilitas KVM dan Virsh di mesin Linux Anda. Panduan berikut menjelaskan cara menginstal KVM pada sistem berbasis DEB dan RPM.
- Instal Dan Konfigurasi KVM Di Server Tanpa Kepala Ubuntu 20.04
- Instal Dan Konfigurasi KVM Di Server CentOS 8
- Instal Dan Konfigurasi KVM Di OpenSUSE Tumbleweed
1. Kelola Mesin Virtual KVM Dengan perintah Virsh
Jika Anda baru mengenal Virsh dan KVM, lebih baik mulai dengan membaca manual bantuan. Ini akan memberikan ide dasar tentang cara menggunakan Virsh.
1.1. Mendapatkan bantuan
Masukkan perintah berikut untuk melihat daftar perintah yang tersedia beserta deskripsi singkatnya:
$ virsh help
Anda akan melihat daftar lengkap perintah virsh yang tersedia untuk mengelola mesin virtual KVM dari baris perintah.
Anda tidak harus menghafal semuanya. Cukup baca deskripsi perintah yang ingin Anda jalankan dan gunakan.
Perintah dikelompokkan ke dalam bagian berikut:
- Pengelolaan Domain,
- Pemantauan Domain,
- Host dan Hypervisor,
- Pos pemeriksaan,
- Antarmuka,
- Filter Jaringan,
- Jaringan,
- Perangkat Node,
- Rahasia,
- Snapshot,
- Cadangan,
- Kolam Penyimpanan,
- Volume Penyimpanan,
- Virsh itu sendiri.
Setiap bagian berisi perintah yang terkait untuk melakukan serangkaian tugas tertentu. Anda dapat melihat bagian bantuan grup, misalnya Jaringan , seperti di bawah ini:
$ virsh help Networking
Anda akan melihat perintah yang terkait untuk melakukan tugas jaringan:
Networking (help keyword 'network'): net-autostart autostart a network net-create create a network from an XML file net-define define an inactive persistent virtual network or modify an existing persistent one from an XML file net-destroy destroy (stop) a network net-dhcp-leases print lease info for a given network net-dumpxml network information in XML net-edit edit XML configuration for a network net-event Network Events net-info network information net-list list networks net-name convert a network UUID to network name net-start start a (previously defined) inactive network net-undefine undefine a persistent network net-update update parts of an existing network's configuration net-uuid convert a network name to network UUID net-port-list list network ports net-port-create create a network port from an XML file net-port-dumpxml network port information in XML net-port-delete delete the specified network port
Anda selanjutnya dapat menampilkan bagian bantuan dari perintah tertentu juga. Misalnya, saya akan menampilkan bagian bantuan "net-name" perintah:
$ virsh help net-name NAME net-name - convert a network UUID to network name SYNOPSIS net-name <network> OPTIONS [--network] <string> network uuid
1.2. Daftar mesin virtual
Untuk melihat daftar mesin virtual tamu dalam mode run atau suspend, jalankan perintah berikut:
$ virsh list Id Name State --------------------
Seperti yang Anda lihat, tidak ada tamu dalam mode run atau suspend.
Anda dapat menggunakan --tidak aktif opsi untuk mencantumkan tamu yang tidak aktif.
Untuk melihat semua mesin tamu, jalankan:
$ virsh list --all Id Name State -------------------------------- - centos8-uefi shut off - nginx_centos8 shut off
Seperti yang Anda lihat pada output di atas, saya memiliki dua mesin virtual yaitu "centos8-uefi" dan "nginx_centos8". Keduanya dimatikan.
1.3. Mulai mesin virtual
Untuk memulai mesin virtual, misalnya "centos8-uefi", jalankan:
$ virsh start centos8-uefi
Anda akan melihat output seperti di bawah ini:
Domain centos8-uefi started
Untuk memverifikasi apakah VM berjalan, gunakan "list" perintah:
$ virsh list Id Name State ------------------------------ 1 centos8-uefi running
1.4. Hemat mesin virtual
Untuk menyimpan status VM yang sedang berjalan saat ini, jalankan:
$ virsh save centos8-uefi centos8-save Domain centos8-uefi saved to centos8-save
Perintah ini menghentikan tamu bernama "centos8-uefi" dan menyimpan data ke file bernama "centos8-save". Ini akan memakan waktu beberapa saat tergantung pada jumlah memori yang digunakan oleh mesin tamu Anda.
1.5. Pulihkan mesin Virtual
Untuk mengembalikan status VM yang disimpan sebelumnya, cukup tentukan nama file seperti di bawah ini:
$ virsh restore centos8-save Domain restored from centos8-save
Verifikasi apakah VM dipulihkan menggunakan perintah "daftar":
$ virsh list Id Name State ------------------------------ 4 centos8-uefi running
1.6. Mulai ulang mesin Virtual
Untuk memulai ulang VM yang sedang berjalan, jalankan:
$ virsh reboot centos8-uefi Domain centos8-uefi is being rebooted
1.7. Tangguhkan/Jeda Mesin virtual
Untuk menangguhkan VM yang sedang berjalan, lakukan:
$ virsh suspend centos8-uefi Domain centos8-uefi suspended
Verifikasi dengan perintah "daftar":
$ virsh list Id Name State ----------------------------- 1 centos8-uefi paused
1.8. Lanjutkan Mesin virtual
Untuk melanjutkan VM yang dijeda, jalankan:
$ virsh resume centos8-uefi Domain centos8-uefi resumed
1.9. Hentikan mesin Virtual yang aktif
Untuk menghentikan paksa VM yang aktif, dan membiarkannya dalam status tidak aktif, jalankan:
$ virsh destroy centos8-uefi Domain centos8-uefi destroyed
Anda juga dapat menghentikan VM dengan anggun alih-alih memaksanya seperti di bawah ini:
$ virsh destroy centos8-uefi --graceful Domain centos8-uefi destroyed
1,10. Matikan mesin virtual
Untuk mematikan VM yang sedang berjalan, lakukan:
$ virsh shutdown centos8-uefi Domain centos8-uefi is being shutdown
1.11. Ambil XML dump mesin virtual
Untuk menampilkan file konfigurasi XML VM dalam output standar, jalankan:
$ virsh dumpxml centos8-uefi
Perintah ini akan menampilkan detail konfigurasi lengkap (software dan hardware) dari mesin virtual:
Anda juga dapat mengekspor dump XML ke file alih-alih hanya menampilkannya dalam output standar seperti di bawah ini:
$ virsh dumpxml centos8-uefi > centos8.xml
Perintah ini akan membuang file XML "centos8-uefi" ke dalam file bernama "centos8.xml" dan menyimpannya di direktori kerja saat ini.
1.12. Buat mesin virtual dengan XML dump
Anda dapat membuat mesin tamu virtual baru menggunakan XML yang ada dari tamu yang dibuat sebelumnya. Pertama, buat XML dump seperti gambar di atas lalu buat VM baru menggunakan file XML seperti di bawah ini:
$ virsh create centos8.xml Domain centos8-uefi created from centos8.xml
Perintah ini akan membuat VM baru dan segera memulainya. Anda dapat memverifikasinya menggunakan perintah:
1.13. Edit file konfigurasi XML mesin virtual
Jika Anda ingin membuat perubahan apa pun di mesin tamu, Anda cukup mengedit file konfigurasinya dan melakukan perubahan sesuai keinginan. Para tamu dapat diedit baik saat mereka berlari atau saat mereka offline.
$ virsh edit centos8-uefi
Perintah ini akan membuka file di editor default yang Anda atur dengan variabel $EDITOR.
1.14. Aktifkan akses konsol untuk mesin Virtual
Setelah membuat mesin tamu KVM, Anda dapat mengaksesnya melalui SSH, klien VNC, Virt-viewer, Virt-manager dan konsol web Cockpit dll. Namun, Anda tidak dapat mengaksesnya menggunakan perintah "virsh console". Perintah konsol digunakan untuk menghubungkan konsol serial virtual untuk tamu. Untuk mengakses tamu KVM menggunakan perintah "virsh console", Anda harus mengaktifkan akses konsol serial di mesin tamu. Lihat panduan berikut untuk mengaktifkan akses konsol virsh:
- Cara Mengaktifkan Akses Konsol Virsh Untuk Tamu KVM
1,15. Ganti nama mesin Virtual
Jika Anda ingin mengganti nama mesin virtual, lihat panduan berikut.
- Cara Mengganti Nama Mesin Virtual Tamu KVM
1,16. Tampilkan ID Domain mesin virtual
Untuk menemukan id domain dari mesin virtual tamu yang sedang berjalan, jalankan:
$ virsh domid centos8-uefi 2
Harap dicatat bahwa tamu harus menjalankan untuk mendapatkan id domainnya.
1.17. Tampilkan Nama domain mesin virtual
Untuk mendapatkan nama domain VM yang sedang berjalan, jalankan:
$ virsh domname <domain-id or domain-uuid>
Contoh:
$ virsh domname 2 centos8-uefi
Di sini, 2 adalah id domain.
1,18. Tampilkan UUID mesin Virtual
Untuk menemukan UUID mesin tamu, jalankan:
$ virsh domuuid <domain-name or domain-id>
Contoh:
$ virsh domuuid centos8-uefi
Atau,
$ virsh domuuid 2
Contoh keluaran:
de4100c4-632e-4c09-8dcf-bbde29170268
1.19. Menampilkan detail mesin virtual
Untuk menampilkan informasi mesin tamu, gunakan nama domain, id domain atau uuid domain seperti di bawah ini:
$ virsh dominfo centos8-uefi
Atau,
$ virsh dominfo 2
Atau,
$ virsh dominfo de4100c4-632e-4c09-8dcf-bbde29170268
Contoh keluaran:
Id: -
Name: centos8-uefi
UUID: de4100c4-632e-4c09-8dcf-bbde29170268
OS Type: hvm
State: shut off
CPU(s): 2
Max memory: 2097152 KiB
Used memory: 2097152 KiB
Persistent: yes
Autostart: disable
Managed save: no
Security model: apparmor
Security DOI: 0
1,20. Tampilkan informasi host KVM
Untuk mendapatkan informasi sistem host Anda, jalankan:
$ virsh nodeinfo
Contoh keluaran:
CPU model: x86_64
CPU(s): 4
CPU frequency: 1167 MHz
CPU socket(s): 1
Core(s) per socket: 2
Thread(s) per core: 2
NUMA cell(s): 1
Memory size: 8058840 KiB
1.21. Menampilkan informasi CPU Virtual
Untuk menampilkan informasi CPU virtual, jalankan:
$ virsh vcpuinfo <domain-id or domain-name or domain-uuid>
Contoh:
$ virsh vcpuinfo centos8-uefi
VCPU: 0
CPU: 3
State: running
CPU time: 5.6s
CPU Affinity: yyyy
VCPU: 1
CPU: 1
State: running
CPU time: 0.0s
CPU Affinity: yyyy
1.22. Temukan alamat IP mesin virtual
Menemukan alamat IP mesin virtual bukanlah masalah besar. Jika Anda memiliki akses konsol ke mesin virtual, Anda dapat dengan mudah menemukan alamat IP-nya menggunakan perintah "ip". Namun, Anda juga dapat mengidentifikasi alamat IP VM KVM tanpa harus mengakses konsolnya. Panduan berikut menjelaskan cara menemukan alamat IP mesin virtual KVM.
- Cara Menemukan Alamat IP Mesin Virtual KVM
1,23. Hapus mesin Virtual
Jika Anda tidak menginginkan VM lagi, cukup hapus seperti di bawah ini:
$ virsh destroy centos8-uefi
$ virsh undefine centos8-uefi
Perintah pertama akan secara paksa menghentikan VM jika sudah berjalan. Dan perintah kedua akan menghapus definisi dan menghapusnya sepenuhnya.
Anda selanjutnya dapat menggunakan opsi berikut untuk menghapus volume penyimpanan dan snapshot juga.
--managed-save remove domain managed state file
--storage remove associated storage volumes (comma separated list of targets or source paths) (see domblklist)
--remove-all-storage remove all associated storage volumes (use with caution)
--delete-storage-volume-snapshots delete snapshots associated with volume(s)
--wipe-storage wipe data on the removed volumes
--snapshots-metadata remove all domain snapshot metadata (vm must be inactive)
2. Kelola jaringan Virtual
Semoga Anda belajar cara mengelola mesin virtual KVM dengan perintah Virsh di Linux. Bagian ini mencantumkan perintah penting untuk mengelola jaringan virtual KVM di Linux menggunakan utilitas baris perintah virsh.
2.1. Mencantumkan jaringan virtual
Untuk melihat daftar jaringan virtual yang tersedia, jalankan:
$ virsh net-list
Name State Autostart Persistent
--------------------------------------------
default active yes yes
Seperti yang Anda lihat, saya hanya memiliki satu jaringan virtual yang merupakan jaringan default.
2.2. Tampilkan detail jaringan virtual
Untuk melihat detail jaringan virtual, jalankan:
$ virsh net-dumpxml default
Ganti "default" dengan nama jaringan Anda pada perintah di atas.
Contoh keluaran:
<network connections='1'>
<name>default</name>
<uuid>ce25d978-e455-47a6-b545-51d01bcb9e6f</uuid>
<forward mode='nat'>
<nat>
<port start='1024' end='65535'/>
</nat>
</forward>
<bridge name='virbr0' stp='on' delay='0'/>
<mac address='52:54:00:ee:35:49'/>
<ip address='192.168.122.1' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.122.2' end='192.168.122.254'/>
</dhcp>
</ip>
</network>
2.3. Mulai jaringan virtual
Untuk memulai jaringan yang tidak aktif, jalankan:
$ virsh net-start <Name-Of-Inactive-Network>
Untuk memulai jaringan secara otomatis:
$ virsh net-autostart <network-name>
2.4. Buat jaringan virtual XML dump
Untuk membuat file konfigurasi XML dari jaringan virtual yang ada, jalankan:
$ virsh net-dumpxml default > default.xml
Perintah di atas akan membuat konfigurasi XML dari jaringan "default" dan menyimpannya dalam file bernama "default.xml" di direktori saat ini.
Anda dapat melihat file XML menggunakan perintah cat:
$ cat default.xml
<network connections='1'>
<name>default</name>
<uuid>ce25d978-e455-47a6-b545-51d01bcb9e6f</uuid>
<forward mode='nat'>
<nat>
<port start='1024' end='65535'/>
</nat>
</forward>
<bridge name='virbr0' stp='on' delay='0'/>
<mac address='52:54:00:ee:35:49'/>
<ip address='192.168.122.1' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.122.2' end='192.168.122.254'/>
</dhcp>
</ip>
</network>
2.5. Buat jaringan virtual baru dari file XML
Untuk membuat jaringan virtual baru menggunakan file XML yang ada dan segera memulainya, jalankan:
$ virsh net-create <Name-of-XMLfile>
Jika Anda ingin membuat jaringan dari file XML tetapi tidak ingin memulainya secara otomatis, jalankan:
$ virsh net-define <Name-of-XMLfile>
2.6. Nonaktifkan jaringan virtual
Untuk menonaktifkan jaringan yang aktif, jalankan:
$ virsh net-destroy <network-name>
2.7. Hapus jaringan virtual
Untuk menghapus jaringan virtual, nonaktifkan terlebih dahulu seperti gambar di atas lalu jalankan:
$ virsh net-undefine <Name-Of-Inactive-Network>
Virsh memiliki banyak perintah dan opsi. Belajar menggunakan alat baris perintah Virsh secara menyeluruh sudah cukup untuk menyiapkan lingkungan Virtual lengkap di Linux. Anda tidak memerlukan aplikasi GUI apa pun.
Untuk detail lebih lanjut, lihat halaman manual virsh.
$ man virsh
3. Kelola tamu KVM secara grafis
Mengingat semua perintah virsh hampir tidak mungkin dan juga tidak perlu. Jika Anda merasa sulit untuk melakukan semua tugas manajemen KVM dari baris perintah, Anda dapat mencoba alat manajemen KVM grafis seperti Virt-manager dan Cockpit.
- Mengelola Mesin Virtual KVM Menggunakan Cockpit Web Console
- Cara Mengelola Mesin Virtual KVM Dengan Virt-Manager
Kesimpulan
Jika Anda tahu cara mengelola mesin virtual KVM dengan antarmuka pengguna manajemen Virsh di Linux, Anda sudah setengah jalan untuk mengelola lingkungan virtualisasi tingkat perusahaan. Menyiapkan KVM dan mengelola mesin virtual KVM menggunakan perintah virsh sangat penting untuk semua administrator Linux.
Gambar unggulan oleh Elias Sch. dari Pixabay.