mirror of
https://github.com/ditatompel/insights.git
synced 2025-01-08 03:12:06 +07:00
Added new article: "Install virt-manager on Arch Linux"
This commit is contained in:
parent
8eaf905442
commit
f83b171781
3 changed files with 296 additions and 0 deletions
Binary file not shown.
After Width: | Height: | Size: 48 KiB |
|
@ -0,0 +1,148 @@
|
||||||
|
---
|
||||||
|
title: Cara Install Virt-Manager (Libvirt GUI) di Arch Linux
|
||||||
|
description: Tutorial cara instalasi Virt-Manager, sebuah libvirt GUI untuk mempermudah kita dalam melakukan manajemen mesin virtualiasi atau emulator (KVM/QEMU) di komputer kita.
|
||||||
|
summary: Tutorial cara instalasi Virt-Manager, sebuah libvirt GUI untuk mempermudah kita dalam melakukan manajemen mesin virtualiasi atau emulator (KVM/QEMU) di komputer kita.
|
||||||
|
date: 2024-09-11T03:08:45+07:00
|
||||||
|
lastmod:
|
||||||
|
draft: false
|
||||||
|
noindex: false
|
||||||
|
nav_weight: 1000
|
||||||
|
categories:
|
||||||
|
- Self-Hosted
|
||||||
|
- SysAdmin
|
||||||
|
tags:
|
||||||
|
- KVM
|
||||||
|
- libvirt
|
||||||
|
- QEMU
|
||||||
|
images:
|
||||||
|
authors:
|
||||||
|
- ditatompel
|
||||||
|
---
|
||||||
|
|
||||||
|
Saya sudah beberapa kali menulis artikel yang berhubungan dengan
|
||||||
|
[**KVM**][kvm_web]/[**QEMU**][qemu_web] dan [**Virt-Manager**][virtmanager_web],
|
||||||
|
tapi saya belum punya tulisan tentang bagaimana cara menginstall dan
|
||||||
|
mengkonfigurasi Virt-Manager di Arch Linux. Maka ijinkan saya untuk
|
||||||
|
mendokumentasikannya disini.
|
||||||
|
|
||||||
|
**Virt-Manager** adalah GUI untuk `libvirt` yang dapat mempermudah kita dalam
|
||||||
|
melakukan manajemen mesin virtualiasi/emulator di komputer kita.
|
||||||
|
|
||||||
|
## Pengantar: Antara KVM dan QEMU
|
||||||
|
|
||||||
|
Sebelum memulai dan agar lebih memahami opsi apa saja yang nantinya bisa
|
||||||
|
digunakan di _virt-manager_, saya ingin sedikit membahas mengenai **KVM**
|
||||||
|
dan **QEMU**. Banyak orang beranggapan bahwa KVM dan QEMU adalah suatu hal
|
||||||
|
yang sama. Hal ini tidak benar.
|
||||||
|
|
||||||
|
**KVM merupakan _full-virtualization_** dimana dia menggunakan _hardware_ untuk
|
||||||
|
teknologi virtualisasinya. Agar dapat menggunakan tekologi KVM, CPU Anda harus
|
||||||
|
mensupport virtualisasi (dalam hal ini `Intel VT-x` untuk prosesor **Intel**
|
||||||
|
dan `AMD-V` untuk prosesor **AMD**).
|
||||||
|
|
||||||
|
Sedangkan **QEMU merupakan sebuah emulator**. Dia dapat melaukan emulasi sistem
|
||||||
|
secara penuh meskipun _hardware_ yang Anda miliki tidak mensupport virtualiasi.
|
||||||
|
QEMU dapat melakukan emulasi perangkat seperti _storage_, _network device_,
|
||||||
|
dan lain-lain. Dia juga dapat melakukan emulasi ke arsitektur CPU yang berbeda,
|
||||||
|
misalnya: host `x86_64` melakukan emulasi arsitektur ARM pada
|
||||||
|
_guest virtual machine_-nya.
|
||||||
|
|
||||||
|
Jika dilihat dari sisi performa, KVM jauh lebih unggul dibandingkan QEMU karena
|
||||||
|
KVM langsung menggunakan hardware. KVM juga sangat optimal untuk virtualiasi
|
||||||
|
sistem Linux dan menyediakan manajemen sumber daya yang lebih baik daripada
|
||||||
|
QEMU.
|
||||||
|
|
||||||
|
Dari segi kompatibilitas, QEMU lebih unggul karena dia dapat melakukan emulasi
|
||||||
|
ke banyak arsitektur CPU, emulasi ke perangkat seperti _storage_, _network_,
|
||||||
|
_display adapter_, dan lain-lain. QEMU juga tidak memerlukan hardware yang
|
||||||
|
mensupport teknologi virtualiasi untuk menjalankannya.
|
||||||
|
|
||||||
|
Untuk melakukan pengecekan apakah CPU yang Anda gunakan mensupport virtualisasi
|
||||||
|
dapat menggunakan perintah:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
lscpu | grep Virtualization
|
||||||
|
```
|
||||||
|
|
||||||
|
Jika perintah diatas tidak menghasilkan output apapun, maka Anda hanya dapat
|
||||||
|
menggunakan QEMU.
|
||||||
|
|
||||||
|
Jika CPU Anda mensupport virtualiasi Anda dapat menggunakan KVM+QEMU yang
|
||||||
|
mengkombinasikan akselerasi hardware serta virtualiasi CPU dan RAM secara penuh.
|
||||||
|
|
||||||
|
> **Catatan**: Kebanyakan CPU _mid-range_ hingga _high-end_ yang diproduksi 10
|
||||||
|
> tahun terakhir seharusnya mensupport virtualisasi. Jika dari pengecekan
|
||||||
|
> `lscpu` diatas tidak menghasilkan apapun, silahkan cek konfigurasi BIOS dan
|
||||||
|
> mengaktifkan fitur tersebut.
|
||||||
|
|
||||||
|
## Instalasi Software Yang Dibutuhkan
|
||||||
|
|
||||||
|
Pertama, install `libvirt`, `dnsmasq`, `qemu-desktop` dan `virt-manager`:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
sudo pacman -S libvirt dnsmasq qemu-desktop virt-manager
|
||||||
|
```
|
||||||
|
|
||||||
|
Disini, `dnsmasq` diperlukan untuk konektifitas jaringan untuk guest (DHCP).
|
||||||
|
Sedangkan `qemu-desktop` diperlukan untuk desktop GUI.
|
||||||
|
|
||||||
|
Jika Anda hanya menjalankan _virtual machine_ secara _headless_, Anda bisa
|
||||||
|
mengganti `qemu-desktop` dengan `qemu-base`. Baik `qemu-base` dan
|
||||||
|
`qemu-desktop` hanya support emulasi `x86_64`. jika Anda akan menggunakan
|
||||||
|
arsitektur seperti ARM di _virtual machine_, Anda perlu menginstall
|
||||||
|
`qemu-emulators-full`.
|
||||||
|
|
||||||
|
## Konfigurasi Hak Akses
|
||||||
|
|
||||||
|
Supaya user biasa dapat menggunakan `virt-manager`, tambahkan user Anda ke
|
||||||
|
group `libvirt` dengan perintah :
|
||||||
|
|
||||||
|
```shell
|
||||||
|
sudo usermod -aG libvirt <username_anda>
|
||||||
|
```
|
||||||
|
|
||||||
|
Kemudian ubah atau tambahkan konfigurasi berikut ke `/etc/libvirt/libvirtd.conf`:
|
||||||
|
|
||||||
|
```plain
|
||||||
|
unix_sock_group = "libvirt"
|
||||||
|
unix_sock_ro_perms = "0770"
|
||||||
|
```
|
||||||
|
|
||||||
|
konfigurasi diatas mengubah kepemilikan **libvirt UNIX socket** ke group
|
||||||
|
`libvirt` dan mereka yang berada di dalam group `libvirt` dapat melakukan
|
||||||
|
_read_ maupun _write_.
|
||||||
|
|
||||||
|
## Menggunakan Virt-Manager
|
||||||
|
|
||||||
|
Sebelum menjalankan GUI (`virt-manager`), jalankan `libvirtd` dengan perintah:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
sudo systemctl start libvirtd
|
||||||
|
```
|
||||||
|
|
||||||
|
Hal ini supaya kita dapat menggunakan QEMU/KVM tidak pada **user session**
|
||||||
|
sehingga _guest machine_ nantinya dapat terkoneksi ke jaringan.
|
||||||
|
|
||||||
|
{{< youtube Y01SwRqkX8I >}}
|
||||||
|
|
||||||
|
Setelah _libvirt daemon_ berjalan, Anda bisa menjalankan `virt-manager` dan
|
||||||
|
mulai menambahkan koneksi `QEMU/KVM`. Setelah itu cobalah membuat
|
||||||
|
_virtual machine_ yang ingin dicoba. Jika mengalami kesulitan, mengikuti video
|
||||||
|
yang saya sertakan diatas mungkin sedikit banyak dapat membantu.
|
||||||
|
|
||||||
|
Untuk menjalankan Windows VM, Anda memerlukan `swtpm` dan mengkonfigurasi
|
||||||
|
TPM hardware. Silahkan baca artikel saya sebelumnya:
|
||||||
|
["Menjalankan Windows 11 VM (TPM dan Secure-Boot) di Linux"]({{< ref "/tutorials/run-windows-11-tpm-and-secure-boot-on-kvm" >}}).
|
||||||
|
|
||||||
|
## Referensi
|
||||||
|
|
||||||
|
- [KVM Arch Wiki][kvm_aw]
|
||||||
|
- [QEMU Arch Wiki][qemu_aw]
|
||||||
|
- [Virt-Manager Arch Wiki][virtmanager_aw]
|
||||||
|
|
||||||
|
[kvm_web]: https://linux-kvm.org/page/Main_Page "KVM Website"
|
||||||
|
[kvm_aw]: https://wiki.archlinux.org/title/KVM "KVM Arch Wiki"
|
||||||
|
[qemu_web]: https://www.qemu.org/ "QEMU Website"
|
||||||
|
[qemu_aw]: https://wiki.archlinux.org/title/QEMU "QEMU Arch Wiki"
|
||||||
|
[virtmanager_web]: https://virt-manager.org/ "Virt-Manager official website"
|
||||||
|
[virtmanager_aw]: https://wiki.archlinux.org/title/Virt-manager "Virt Manager Arch Wiki"
|
|
@ -0,0 +1,148 @@
|
||||||
|
---
|
||||||
|
title: How to Install Virt-Manager (Libvirt GUI) on Arch Linux
|
||||||
|
description: Tutorial on how to install Virt-Manager, a graphical user interface for libvirt that makes it easier for us to manage KVM/QEMU virtualization machines on our computers.
|
||||||
|
summary: Tutorial on how to install Virt-Manager, a graphical user interface for libvirt that makes it easier for us to manage KVM/QEMU virtualization machines on our computers.
|
||||||
|
# linkTitle:
|
||||||
|
date: 2024-09-11T03:08:45+07:00
|
||||||
|
lastmod:
|
||||||
|
draft: false
|
||||||
|
noindex: false
|
||||||
|
# comments: false
|
||||||
|
nav_weight: 1000
|
||||||
|
categories:
|
||||||
|
- Self-Hosted
|
||||||
|
- SysAdmin
|
||||||
|
tags:
|
||||||
|
- KVM
|
||||||
|
- libvirt
|
||||||
|
- QEMU
|
||||||
|
images:
|
||||||
|
authors:
|
||||||
|
- ditatompel
|
||||||
|
---
|
||||||
|
|
||||||
|
I have written several articles related to [**KVM**][kvm_web]/[**QEMU**][qemu_web]
|
||||||
|
and [**Virt-Manager**][virtmanager_web], but I have not written about how to
|
||||||
|
install and configure Virt-Manager on Arch Linux. This is a tutorial that will
|
||||||
|
cover both aspects.
|
||||||
|
|
||||||
|
**Virt-Manager** is a graphical user interface (GUI) for `libvirt` that makes
|
||||||
|
it easier for us to manage virtualization machines or emulators on our
|
||||||
|
computers.
|
||||||
|
|
||||||
|
## Introduction: Between KVM and QEMU
|
||||||
|
|
||||||
|
Before we begin and to better understand the options available in
|
||||||
|
`virt-manager`, I would like to discuss a brief overview of KVM and QEMU.
|
||||||
|
Many people assume that KVM and QEMU are one and the same thing. However,
|
||||||
|
this is not true.
|
||||||
|
|
||||||
|
**KVM is a full virtualization** technology that utilizes hardware for its
|
||||||
|
virtualization capabilities. To use KVM, your CPU must support virtualization
|
||||||
|
(in this case, `Intel VT-x` for **Intel processors** and `AMD-V` for
|
||||||
|
**AMD processors**).
|
||||||
|
|
||||||
|
On the other hand, **QEMU is an emulator**. It can emulate a complete system
|
||||||
|
even if the hardware you have does not support virtualization. QEMU can emulate
|
||||||
|
devices such as storage, network interfaces, and others. Moreover, it can also
|
||||||
|
emulate different CPU architectures: for example, an `x86_64` host can emulate
|
||||||
|
the `ARM` architecture on a guest virtual machine.
|
||||||
|
|
||||||
|
In terms of performance, KVM is significantly superior to QEMU because it
|
||||||
|
utilizes hardware directly. As such, KVM is very optimal for Linux system
|
||||||
|
virtualization and provides better resource management than QEMU.
|
||||||
|
|
||||||
|
In terms of compatibility, QEMU is superior due to its ability to emulate many
|
||||||
|
CPU architectures, emulate devices such as storage, network, display adapters,
|
||||||
|
and others. Additionally, QEMU does not require hardware that supports
|
||||||
|
virtualization technology to run it.
|
||||||
|
|
||||||
|
To verify whether the CPU you are using supports virtualization, you can use
|
||||||
|
the command:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
lscpu | grep Virtualization
|
||||||
|
```
|
||||||
|
|
||||||
|
If the command above produces no output, then you can only use QEMU. However,
|
||||||
|
if your CPU does support virtualization, you can utilize KVM + QEMU, which
|
||||||
|
combines hardware acceleration with full CPU and memory virtualization.
|
||||||
|
|
||||||
|
> **Note:** Most mid-range to high-end CPUs manufactured within the last 10
|
||||||
|
> years should support virtualization. If the `lscpu` check above does not
|
||||||
|
> produce any output, please check your BIOS configuration and ensure that
|
||||||
|
> the feature is enabled.
|
||||||
|
|
||||||
|
## Required Software Installation
|
||||||
|
|
||||||
|
First, install `libvirt`, `dnsmasq`, `qemu-desktop`, and `virt-manager` using
|
||||||
|
the following command:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
sudo pacman -S libvirt dnsmasq qemu-desktop virt-manager
|
||||||
|
```
|
||||||
|
|
||||||
|
Here, `dnsmasq` is necessary for guest network connectivity (DHCP).
|
||||||
|
Additionally, `qemu-desktop` is required to enable GUI desktop support. If you
|
||||||
|
plan to run virtual machines headless only, you can replace `qemu-desktop` with
|
||||||
|
`qemu-base`. Note that both `qemu-base` and `qemu-desktop` are limited to
|
||||||
|
`x86_64` emulation. However, if you intend to use architectures like ARM in
|
||||||
|
your virtual machines, you will need to install the `qemu-emulators-full`
|
||||||
|
package.
|
||||||
|
|
||||||
|
## Access Rights Configuration
|
||||||
|
|
||||||
|
To enable regular users to use `virt-manager`, add your user to the `libvirt`
|
||||||
|
group using the following command:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
sudo usermod -aG libvirt <your_username>
|
||||||
|
```
|
||||||
|
|
||||||
|
Next, modify or add the following configuration to `/etc/libvirt/libvirtd.conf`:
|
||||||
|
|
||||||
|
```plain
|
||||||
|
unix_sock_group = "libvirt"
|
||||||
|
unix_sock_ro_perms = "0770"
|
||||||
|
```
|
||||||
|
|
||||||
|
The above configuration sets the group access rights for
|
||||||
|
**libvirt UNIX socket** to the `libvirt` group, allowing members of this group
|
||||||
|
to perform read and write operations.
|
||||||
|
|
||||||
|
## Using Virt-Manager
|
||||||
|
|
||||||
|
Before running `virt-manager` in GUI mode, start the **libvirt daemon** using
|
||||||
|
the following command:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
sudo systemctl start libvirtd
|
||||||
|
```
|
||||||
|
|
||||||
|
This is necessary to enable QEMU/KVM operations outside of your **user session**
|
||||||
|
and allow the guest machine to connect to the network later.
|
||||||
|
|
||||||
|
{{< youtube Y01SwRqkX8I >}}
|
||||||
|
|
||||||
|
Once the libvirt daemon is running, you can run `virt-manager` and begin adding
|
||||||
|
QEMU/KVM connections. After that, try creating the virtual machine you want to
|
||||||
|
test. If you encounter difficulties, referring to the video included above may
|
||||||
|
provide some assistance.
|
||||||
|
|
||||||
|
To run Windows VM, you will need `swtpm` and configure TPM. For more
|
||||||
|
information, please refer to my previous article:
|
||||||
|
["Running Windows 11 VM (TPM And Secure-Boot) On Linux"]({{< ref "/tutorials/run-windows-11-tpm-and-secure-boot-on-kvm" >}}).
|
||||||
|
You can also use VirtIO-FS for [sharing data between the host and guest virtual machines]({{< ref "/tutorials/virt-manager-sharing-data-between-host-and-guests-libvirt-virtio-fs" >}}).
|
||||||
|
|
||||||
|
## Resources
|
||||||
|
|
||||||
|
- [KVM Arch Wiki][kvm_aw]
|
||||||
|
- [QEMU Arch Wiki][qemu_aw]
|
||||||
|
- [Virt-Manager Arch Wiki][virtmanager_aw]
|
||||||
|
|
||||||
|
[kvm_web]: https://linux-kvm.org/page/Main_Page "KVM Website"
|
||||||
|
[kvm_aw]: https://wiki.archlinux.org/title/KVM "KVM Arch Wiki"
|
||||||
|
[qemu_web]: https://www.qemu.org/ "QEMU Website"
|
||||||
|
[qemu_aw]: https://wiki.archlinux.org/title/QEMU "QEMU Arch Wiki"
|
||||||
|
[virtmanager_web]: https://virt-manager.org/ "Virt-Manager official website"
|
||||||
|
[virtmanager_aw]: https://wiki.archlinux.org/title/Virt-manager "Virt Manager Arch Wiki"
|
Loading…
Reference in a new issue