GNU/Linux >> Belajar Linux >  >> Cent OS

Instal Dan Konfigurasi KVM Di Server CentOS 8

Panduan langkah demi langkah ini menjelaskan apa itu KVM, dan cara menginstal dan mengkonfigurasi KVM di sistem operasi CentOS 8 Linux.

Panduan ini secara resmi diuji dalam edisi server minimal CentOS 8. Namun, itu juga harus bekerja di RHEL 8 dan klonnya seperti AlmaLinux 8 dan Rocky Linux 8.

Apa itu KVM?

KVM , kependekan dari K V . berbasis ernel irtual M achine, adalah modul kernel FreeBSD dan Linux yang memungkinkan kernel untuk bertindak sebagai hypervisor.

Mulai dari kernel versi 2.6.20, KVM digabung ke kernel utama Linux.

Dengan menggunakan KVM, Anda dapat dengan mudah menyiapkan lingkungan virtualisasi di mesin Linux dan menerapkan berbagai sistem operasi tamu termasuk Linux, Windows, BSD, Mac OS, dan banyak lagi.

Sekarang mari kita lihat cara menginstal dan mengkonfigurasi KVM di CentOS 8 Linux.

Prasyarat

Sebelum menginstal KVM, pastikan terlebih dahulu sistem Anda mendukung virtualisasi perangkat keras. Kami telah mendokumentasikan beberapa cara berbeda untuk mengidentifikasi apakah sistem Linux mendukung Virtualisasi dalam panduan berikut.

  • Cara Mengetahui Apakah CPU Mendukung Teknologi Virtualisasi (VT)

Jika sistem Anda mendukung virtualisasi perangkat keras, lanjutkan langkah-langkah berikut.

1. Instal Dan Konfigurasi KVM Di Server CentOS 8

Untuk tujuan panduan ini, saya akan menggunakan sistem berikut:

Server virtualisasi KVM:

  • OS – Server minimal CentOS 8 (Tanpa GUI)
  • Alamat IP :192.168.225.53/24

Meskipun diuji pada CentOS 8, panduan ini juga harus baik-baik saja di RHEL 8.

1.1. Instal KVM di CentOS 8

Catatan: Semua perintah yang diberikan melalui tutorial ini harus dijalankan sebagai root pengguna. Jika Anda telah masuk sebagai pengguna biasa, tambahkan sudo di depan semua perintah berikan di bawah ini.

Instal Kvm dan semua dependensi yang diperlukan untuk menyiapkan lingkungan virtualisasi pada server CentOS 8 Anda menggunakan perintah sebagai root pengguna:

# dnf install qemu-kvm libvirt virt-install

Di sini,

  • emu-kvm - Metapackage QEMU untuk dukungan KVM (yaitu virtualisasi penuh QEMU pada perangkat keras x86),
  • libvirt - program untuk perpustakaan libvirt,
  • pasang-virt - program untuk membuat dan mengkloning mesin virtual.

Setelah KVM diinstal, aktifkan dan mulai libvertd layanan (Jika belum dimulai):

# systemctl aktifkan libvirtd
# systemctl start libvirtd

Anda juga dapat menggabungkan kedua perintah dan menjalankannya sebagai satu baris seperti di bawah ini:

# systemctl aktifkan --sekarang libvirtd

Periksa status layanan libvirtd dengan perintah:

# systemctl status libvirtd

Contoh keluaran:

● libvirtd.service - daemon virtualisasi Dimuat:dimuat (/usr/lib/systemd/system/libvirtd.service; diaktifkan; preset vendor:aktifkan> Aktif:aktif (berjalan) sejak Rabu 15-07-2020 14:27:32 WIB; 5 detik yang lalu Dokumen:man:libvirtd(8) https://libvirt.org PID Utama:1097 (libvirtd) Tugas:17 (batas:32768) Memori:57.0M CGroup:/system.slice/libvirtd.service 1097 / usr/sbin/libvirtd 15 Juli 14:27:28 centos8.ostechnix.lan systemd[1]:Memulai daemon Virtualisasi...15 Juli 14:27:32 centos8.ostechnix.lan systemd[1]:Memulai daemon Virtualisasi. 

Layanan libvertd aktif dan berjalan!

Verifikasi apakah modul KVM dimuat:

# lsmod | grep kvm

Contoh keluaran:

kvm_intel 294912 0kvm 786432 1 kvm_intelirqbypass 16384 1 kvm

Besar! Modul KVM dimuat. Mari kita buat jembatan jaringan sekarang.

1.2. Siapkan jaringan jembatan dengan KVM di CentOS

Jaringan yang dijembatani berbagi antarmuka jaringan nyata dari komputer host dengan VM lain untuk terhubung ke jaringan luar. Oleh karena itu setiap VM dapat mengikat secara langsung ke IPv4 yang tersedia atau IPv6 alamat, seperti komputer fisik.

Secara default KVM menyiapkan jembatan virtual pribadi, sehingga semua VM dapat berkomunikasi satu sama lain, di dalam komputer host.

Ini menyediakan subnet dan DHCP sendiri untuk mengonfigurasi jaringan tamu dan menggunakan NAT untuk mengakses jaringan host.

Lihat alamat IP antarmuka virtual default KVM menggunakan ip perintah:

# ip a

Contoh keluaran:

1:lo: mtu 65536 status noqueue qdisc grup UNKNOWN default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 cakupan host lo valid_lft selamanya prefer_lft selamanya inet6 ::1/128 host cakupan valid_lft selamanya preferen_lft selamanya2:enp0s3: mtu 1500 qdisc fq_codel status grup UP default qlen 1000 link/ether 08:00:27:b7:3a:84 brd ff:ff:ff:ff:ff:ff inet 192.168.225.52/24 brd 192.168.225.255 ruang lingkup global dynamic noprefixroute enp0s3 valid_lft 42217detik prefer_lft 42217detik inet6 2409:4072:918:98cf :ad3b:b969:8ec8:f9c7/64 lingkup global noprefixroute valid_lft selamanya prefer_lft selamanya inet6 fe80::b404:4d52:8bee:18bf/64 tautan lingkup noprefixroute valid_lft selamanya prefer_lft selamanya3:enp0s8: UP,LOW 1500 qdisc status fq_codel grup UP default qlen 1000 tautan/eter 08:00:27:2a:be:53 brd ff:ff:ff:ff:ff:ff4:enp0s9: mtu 1500 qdisc fq_codel state UP grup default qlen 1000 link/ether 08:00:27:41:91:4d brd ff:ff:ff:ff:ff:ff5:virbr0  : mtu 1500 qdisc status noqueue TURUN default grup qlen 1000 link/ether 52:54:00:5b:a4:cd brd ff:ff:ff:ff:ff:ff inet 192.168.122.1/24 brd 192.168.122.255 cakupan global virbr0 valid_lft selamanya prefered_lft selamanya6:virbr0-nic: mtu 1500 qdisc fq_codel master virbr0 status TURUN default grup qlen 1000 tautan/eter 52:54:00:5b:a4:cd brd ff:ff:ff:ff:ff:ff

Seperti yang Anda lihat, jaringan default KVM virbr0 menggunakan 192.168.122.1/24 Alamat IP. Semua VM akan menggunakan alamat IP di 192.168.122.0/24 Rentang IP dan OS host dapat dijangkau di 192.168.122.1 .

Anda harus dapat ssh ke OS host (di 192.168.122.1 ) dari dalam OS tamu dan gunakan scp untuk menyalin file bolak-balik.

Tidak apa-apa jika Anda hanya mengakses VM di dalam dari Host itu sendiri. Namun Anda tidak dapat mengakses VM dari sistem jarak jauh lain di jaringan.

Karena mereka menggunakan rentang IP yang berbeda yaitu 192.168.225.0/24 dalam hal ini. Untuk mengakses VM dari host jarak jauh lainnya, kita harus menyiapkan jembatan publik yang berjalan di jaringan host dan menggunakan server DHCP eksternal apa pun yang ada di jaringan host.

Untuk menempatkan ini dalam istilah awam, kita akan membuat semua VM menggunakan seri IP yang sama yang digunakan oleh sistem host.

Sebelum menyiapkan jaringan penghubung publik, kita harus menonaktifkan Netfilter untuk alasan kinerja dan keamanan . Netfilter saat ini diaktifkan pada bridge secara default.

Untuk menonaktifkan netfilter, buat file bernama /etc/sysctl.d/bridge.conf :

# vi /etc/sysctl.d/bridge.conf

Tambahkan baris berikut:

net.bridge.bridge-nf-call-ip6tables=0net.bridge.bridge-nf-call-iptables=0net.bridge.bridge-nf-call-arptables=0

Simpan dan tutup file.

Kemudian buat file lain bernama /etc/udev/rules.d/99-bridge.rules :

# vi /etc/udev/rules.d/99-bridge.rules

Tambahkan baris berikut:

TINDAKAN=="tambahkan", SUBSYSTEM=="modul", KERNEL=="br_netfilter", RUN+="/sbin/sysctl -p /etc/sysctl.d/bridge.conf"

Ini akan menyetel tanda yang diperlukan untuk menonaktifkan netfilter pada jembatan di tempat yang sesuai pada permulaan sistem. Simpan dan tutup file. Mulai ulang sistem Anda untuk menerapkan perubahan ini.

Selanjutnya, kita harus menonaktifkan jaringan default yang diinstal KVM untuk dirinya sendiri.

Temukan nama antarmuka jaringan default KVM menggunakan perintah "ip link":

# ip link

Contoh keluaran:

1:lo: mtu 65536 status qdisc noqueue mode UNKNOWN default grup DEFAULT qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00 :002:enp0s3: mtu 1500 qdisc status fq_codel mode UP DEFAULT grup default qlen 1000 link/ether 08:00:27:b7:3a:84 brd ff:ff:ff:ff:ff :ff3:enp0s8: mtu 1500 qdisc status fq_codel UP mode DEFAULT grup default qlen 1000 link/ether 08:00:27:2a:be:53 brd ff:ff:ff:ff:ff :ff4:enp0s9: mtu 1500 qdisc status fq_codel mode UP DEFAULT grup default qlen 1000 link/ether 08:00:27:41:91:4d brd ff:ff:ff:ff:ff :ff5:virbr0 : mtu 1500 qdisc status noqueue mode DOWN default grup DEFAULT qlen 1000 link/ether 52:54:00:5b:a4:cd brd ff:ff:ff:ff:ff:ff6 :virbr0-nic : mtu 1500 qdisc fq_codel master virbr0 status DOWN mode default grup DEFAULT qlen 1000 link/ether 52:54:00:5b:a4:cd brd ff:ff:ff:ff:ff:ff

Seperti yang Anda lihat pada output di atas, entri virbr0 dan virbr0-nic adalah jaringan KVM.

Mari kita hapus jaringan KVM default dengan perintah:

# default virsh net-destroy

Contoh keluaran:

Default jaringan dimusnahkan

Hapus definisi jaringan default dengan perintah:

# virsh net-undefine default

Contoh keluaran:

Default jaringan tidak ditentukan

Jika perintah di atas tidak berfungsi karena alasan apa pun, Anda dapat menggunakan perintah ini untuk menonaktifkan dan tidak menentukan jaringan default KVM:

# ip link hapus virbr0 type bridge
# ip link hapus virbr0-nic

Sekarang jalankan ip link sekali lagi untuk memverifikasi apakah virbr0 dan virbr0-nic antarmuka sebenarnya dihapus:

# ip link

Contoh keluaran:

1:lo: mtu 65536 status qdisc noqueue mode UNKNOWN default grup DEFAULT qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00 :002:enp0s3: mtu 1500 qdisc status fq_codel mode UP DEFAULT grup default qlen 1000 link/ether 08:00:27:b7:3a:84 brd ff:ff:ff:ff:ff :ff3:enp0s8: mtu 1500 qdisc status fq_codel UP mode DEFAULT grup default qlen 1000 link/ether 08:00:27:2a:be:53 brd ff:ff:ff:ff:ff :ff4:enp0s9: mtu 1500 qdisc status fq_codel mode UP DEFAULT grup default qlen 1000 link/ether 08:00:27:41:91:4d brd ff:ff:ff:ff:ff :ff

Nah, jaringan default KVM hilang.

Sekarang, mari kita siapkan jembatan publik KVM untuk digunakan saat membuat VM baru.

Buat antarmuka penghubung baru bernama br0 menggunakan nmcli perintah:

# nmcli connection tambahkan tipe bridge autoconnect yes con-name br0 ifname br0

Setel alamat IP untuk antarmuka jembatan:

# koneksi nmcli memodifikasi br0 ipv4.addresses 192.168.225.53/24 manual metode ipv4.

Setel Gateway untuk antarmuka jembatan:

# koneksi nmcli memodifikasi br0 ipv4.gateway 192.168.225.1

Setel DNS untuk antarmuka jembatan:

# koneksi nmcli memodifikasi br0 ipv4.dns 192.168.225.1

Selanjutnya kita perlu menghapus salah satu kartu antarmuka jaringan Anda dan menambahkannya sebagai slave ke bridge.

Harap dicatat bahwa jika server Anda hanya memiliki satu NIC dan Anda mengakses server melalui SSH, koneksi Anda akan dihentikan setelah menghapus NIC. Saya menyarankan Anda untuk melakukan langkah-langkah berikut di konsol server Anda.

Sebagai contoh, saya akan menambahkan enp0s8 antarmuka sebagai budak dari antarmuka jembatan br0 .

Untuk menghapus antarmuka jaringan enp0s8 , jalankan:

# koneksi nmcli del enp0s8

Ganti enp0s8 dengan kartu jaringan Anda sendiri.

Catatan: Jangan gunakan kartu antarmuka jaringan nirkabel untuk jembatan. Kebanyakan interlacing nirkabel tidak mendukung bridging. Selalu gunakan antarmuka jaringan kabel untuk konektivitas tanpa batas!

Selanjutnya, tambahkan enp0s8 ke jembatan menggunakan perintah:

# koneksi nmcli tambahkan tipe bridge-slave autoconnect yes con-name enp0s8 ifname enp0s8 master br0

Di sini, antarmuka jaringan jembatan br0 dilampirkan ke antarmuka jaringan host enp0s8 . Ganti nama antarmuka jaringan di atas yang sesuai dengan jaringan Anda.

Mulai ulang pengelola jaringan untuk menerapkan perubahan:

# systemctl restart NetworkManager

Jika memungkinkan, lebih baik untuk me-restart sistem Anda:

# reboot

Masuk ke server Anda dan periksa apakah alamat IP telah ditetapkan ke antarmuka jembatan:

$ ip a

Contoh keluaran:

1:lo: mtu 65536 status noqueue qdisc grup UNKNOWN default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 cakupan host lo valid_lft selamanya prefer_lft selamanya inet6 ::1/128 host cakupan valid_lft selamanya preferen_lft selamanya2:enp0s3: mtu 1500 qdisc fq_codel status grup BAWAH default qlen 1000 link/ether 08:00:27:b7:3a:84 brd ff:ff:ff:ff:ff:ff3:enp0s8 : mtu 1500 qdisc fq_codel master br0 status grup UP default qlen 1000 link/ether 08:00:27:2a:be:53 brd ff:ff:ff:ff:ff:ff4:enp0s9: mtu 1500 qdisc fq_codel status UP grup default qlen 1000 tautan/eter 08:00:27:41:91:4d brd ff:ff:ff:ff:ff:ff5:br0 : mtu 1500 qdisc status noqueue UP grup default qlen 1000 link/ether 08:00:27:2a:be:53 brd ff:ff:ff:ff:ff:ff inet  192.168.225.53/24 brd 192.168.225.255 lingkup global noprefixroute br0 valid_lft selamanya lebih disukai_lft selamanya inet6 2409:4072:6084:198:df03:d9ed:62eb:df34/64 lingkup global noprefixroute valid_lft selamanya preferen_lft selamanya inet6 fe80::e8c8:e98b:7fef link lingkup noprefixroute valid_lft selamanya prefered_lft selamanya

Seperti yang Anda lihat pada output di atas, antarmuka jaringan yang dijembatani br0 diberikan dengan alamat IP 192.168.225.53 dan enp0s8 entri sekarang memiliki master br0 masuk. Artinya enp0s8 milik jembatan.

Anda juga dapat menggunakan bridge perintah untuk menampilkan status jembatan:

# tautan jembatan tampilkan br0 3:enp0s8: mtu 1500 master br0 state forwarding priority 32 cost 100

Kami telah berhasil membuat antarmuka jembatan dan aktif. Kita perlu melakukan satu hal terakhir.

Kita harus mengkonfigurasi KVM untuk menggunakan antarmuka jembatan ini sebagai antarmuka default. Untuk melakukannya, buat XML file bernama host-bridge.xml :

# vi host-bridge.xml

Tambahkan baris berikut:

 host-bridge  Jalankan perintah berikut untuk memulai jembatan yang baru dibuat dan menjadikannya sebagai jembatan default untuk VM:

# virsh net-define host-bridge.xml
# virsh net-start host-bridge
# virsh net-autostart host-bridge

Verifikasi apakah jembatan aktif dan mulai menggunakan perintah:

# virsh net-list --all

Contoh keluaran:

Nama Status Autostart Persistent -------------------------------------------- ----- host-bridge aktif ya ya

Selamat! Kami telah berhasil menginstal dan mengonfigurasi KVM di server tanpa kepala CentOS 8.

2. Membuat dan mengelola mesin tamu KVM

Kami dapat membuat dan mengelola VM baik dari baris perintah atau menggunakan alat manajemen KVM seperti Cockpit dan Virt-manager. Lihat panduan berikut untuk detail selengkapnya.

  • Cara Mengelola Mesin Virtual KVM Dengan Program Virsh
  • Mengelola Mesin Virtual KVM Menggunakan Cockpit Web Console
  • Cara Mengelola Mesin Virtual KVM Dengan Virt-Manager

3. Aktifkan Akses Konsol Virsh Untuk Mesin Virtual

Setelah membuat tamu KVM, saya dapat mengaksesnya melalui SSH, klien VNC, Virt-viewer, Virt-manager dan konsol web Cockpit dll. Tapi saya tidak dapat mengaksesnya menggunakan virsh console memerintah. Untuk mengakses tamu KVM menggunakan "konsol virsh", lihat panduan berikut:

  • Cara Mengaktifkan Akses Konsol Virsh Untuk Tamu KVM

Panduan terkait KVM lainnya di blog ini

  • Instal Dan Konfigurasi KVM Di Server Tanpa Kepala Ubuntu 20.04
  • Instal Dan Konfigurasi KVM Di OpenSUSE Tumbleweed
  • Membuat Mesin Virtual KVM Menggunakan Gambar Qcow2 Di Linux
  • Cara Migrasi VM Virtualbox Ke VM KVM Di Linux
  • Aktifkan Dukungan UEFI Untuk Mesin Virtual KVM Di Linux
  • Cara Mengaktifkan Virtualisasi Bersarang Di KVM Di Linux
  • Menampilkan Statistik Sistem Virtualisasi Dengan Virt-top Di Linux
  • Cara Menemukan Alamat IP Mesin Virtual KVM
  • Cara Mengganti Nama Mesin Virtual Tamu KVM
  • Mengakses Dan Memodifikasi Gambar Disk Mesin Virtual Dengan Libguestfs
  • Buat Gambar Mesin Virtual dengan Cepat Dengan Pembuat Virt
  • Cara Menyelamatkan Mesin Virtual Dengan Virt-rescue
  • Cara Memperpanjang Ukuran Disk Mesin Virtual KVM Di Linux
  • Siapkan Folder Bersama Antara Host dan Tamu KVM
  • Cara Mengubah Lokasi Kumpulan Penyimpanan Default KVM Libvirt
  • [Terpecahkan] Tidak dapat mengakses file penyimpanan, Izin ditolak Kesalahan di KVM Libvirt
  • Cara Mengekspor Dan Mengimpor Mesin Virtual KVM Di Linux

Kesimpulan

Dalam panduan ini, kami membahas cara menginstal dan mengkonfigurasi KVM di edisi server CentOS 8.

Kami juga melihat cara membuat dan mengelola mesin virtual KVM dari baris perintah menggunakan virsh alat dan menggunakan alat GUI bernama Cockpit dan Virt-manager.

Terakhir, kami melihat cara mengaktifkan akses konsol virsh untuk mesin virtual KVM.

Pada tahap ini, Anda harus memiliki lingkungan virtualisasi yang berfungsi penuh di server CentOS 8 Anda.


Cent OS
  1. Instal dan Konfigurasikan server FTP di CentOS 7 / RHEL 7 – (vsftpfd)

  2. Cara Menginstal dan Mengonfigurasi Gitlab di CentOS 8

  3. Cara Menginstal dan Mengonfigurasi Postgres 13 di Centos 8

  1. Instal dan Konfigurasi HAProxy di RHEL 8 / CentOS 8 Linux

  2. Cara Menginstal dan Mengkonfigurasi VNC di CentOS 7

  3. Cara Menginstal dan Mengonfigurasi Server NFS di CentOS 8

  1. Cara Menginstal dan Mengkonfigurasi VNC di CentOS 8

  2. Instal dan Konfigurasi Server VNC di CentOS 7 dan RHEL 7

  3. Cara Instal dan Konfigurasi FreeIPA di Server CentOS 7