Penyediaan Dua VM Fedora (QEMU/KVM)
Untuk penyediaan dua VM dengan distribusi yang sama ini, saya gunakan imej
QEMU qcow2
bagiFedora Server 41
, yang dimuat turun dari laman ini di bawah seksyen For Intel and AMD x86_64 systems.Setiap satu VM ditetapkan alamat IP-nya sendiri dan hal ini dapat dicapai (terima kasih) dengan adanya fungsi untuk menambah peranti
TUN/TAP
. Fungsi ini membolehkan pengguna untuk menambah alamat IP yang ditugaskan kepada VM masing-masing melalui laluan (route) daripada alamat IP yang dimiliki oleh hos.Buat satu skrip untuk aktifkan peranti
tap
dan jalankannya di terminal.~/tapup
#!/usr/bin/env zsh # Add new TAP (network tap) devices in TAP mode sudo ip tuntap add dev tap1 mode tap sudo ip tuntap add dev tap2 mode tap # Bring up the tap devices, making them active sudo ip link set dev tap1 up sudo ip link set dev tap2 up # Add routes to the assigned IP addresses for each tap sudo ip route add 192.168.0.101 dev tap1 sudo ip route add 192.168.0.102 dev tap2
Urus firewall melalui
UFW
(Uncomplicated Firewall) untuk membenarkan trafik yang diperlukan.bash
sudo ufw allow from 192.168.0.0/24 to any sudo ufw allow in on tap1 sudo ufw allow in on tap2 sudo ufw allow out on tap1 sudo ufw allow out on tap2
Edit fail berikut:
/etc/default/ufw
DEFAULT_FORWARD_POLICY="ACCEPT"
Nyahkomen baris-baris di fail berikut:
/etc/ufw/sysctl.conf
net/ipv4/ip_forward=1 net/ipv6/conf/default/forwarding=1 net/ipv6/conf/all/forwarding=1
Tambah fail berikut dengan entri baris di bawah:
/etc/sysctl.d/99-arp-proxy.conf
net.ipv4.conf.tap1.proxy_arp=1 net.ipv4.conf.tap2.proxy_arp=1 net.ipv4.conf.wlan0.proxy_arp=1
Muat semula
sysctl
danufw
.bash
sudo sysctl --system sudo systemctl restart ufw sudo ufw reload sudo ufw status verbose
Salin imej yang dimuat turun dan namakan semula kedua-dua imej agar mempunyai nama unik untuk pelaksanaan, dan ubah saiz imej dengan arahan berikut:
bash
qemu-img resize Fedora-Server-KVM-41-1.4.x86_64_1.qcow2 30G qemu-img resize Fedora-Server-KVM-41-1.4.x86_64_2.qcow2 30G
Perintah baris untuk memulakan VM adalah seperti berikut (edit yang mana perlu bagi menjalankan kedua-duanya seperti nombor tap (
ifname=tap2
untuk VM2), alamatMAC
, dan nama imej):bash
qemu-system-x86_64 -enable-kvm -daemonize \ -machine type=q35,vmport=off \ -spice unix=on,addr=/tmp/vm_spice.socket,disable-ticketing=on \ -m 1G -cpu host -smp 2 \ -vga qxl -display gtk,gl=on,show-cursor=on \ -display spice-app,gl=on \ -nic tap,model=virtio-net-pci,id=nic0,ifname=tap1,script=no,downscript=no,mac=52:54:00:12:34:56 \ -drive media=disk,if=virtio,aio=native,cache.direct=on,file=laluan_ke_imej-Fedora-Server-KVM-41-1.4.x86_64_1.qcow2
Seusai membuat konfigurasi SSH, baris ketiga dan keempat (diwarnakan) yang menempatkan opsyen untuk membukavirt-viewer
boleh dibuang sebelum memulakan sesi berikutnya jika kerja-kerja di VM hanya dijalankan dari sistem hos.Setelah VM dijalankan, ada 5 perkara yang akan terpapar untuk dibuat penetapan:-
- Language settings;
- Time settings;
- Network configuration: Saya tetapkan nama hos dan masukkan yang berikut pada konfigurasi peranti
enp0s2
.- IPv4 address ⇒
192.168.0.101
- IPv4 netmask ⇒
255.255.255.0
- IPv4 gateway ⇒
192.168.0.50
(alamat IP hos) - Nameservers ⇒
8.8.8.8
- serta tanda “Connect automatically after reboot” (telah ditanda secara lalai) & “Apply configuration in installer”.
- IPv4 address ⇒
- Root password
- User creation
Pun begitu, sekiranya terlupa untuk set up konfigurasi rangkaian semasa imej server ini mula-mula boot, buat langkah-langkah di bawah untuk mendapatkan sambungan Internet secara manual (aplikasikan kepada kedua-dua VM).
VM1:
bash
sudo ip addr add 192.168.0.101/24 dev enp0s2 sudo ip route add default via 192.168.0.50 dev enp0s2 # this is the host IP address
VM2:
bash
sudo ip addr add 192.168.0.102/24 dev enp0s2 sudo ip route add default via 192.168.0.50 dev enp0s2 # this is the host IP address
Tambahkan fail berikut di kedua-dua VM dengan konfigurasi
DNS
sebagaimana berikut./etc/systemd/resolved.conf.d/dns_servers.conf
[Resolve] DNS=8.8.8.8
Dan mula semula servis
systemd-resolved
sertaping
laman web untuk kepastian bahawa sambungan rangkaian telah berjaya.bash
sudo systemctl restart systemd-resolved ping -c3 fedoraproject.org
Cuba
SSH
dari hos ke semua VM.- Language settings;
Ubah saiz peranti dengan kaedah berikut:-
bash
sudo parted /dev/vda
GNU Parted 3.6 Using /dev/vda Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) print Warning: Not all of the space available to /dev/vda appears to be used, you can fix the GPT to use all of the space (an extra 48234496 blocks) or continue with the current setting? Fix/Ignore? Fix Model: Virtio Block Device (virtblk) Disk /dev/vda: 32.2GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: pmbr_boot
Number Start End Size File system Name Flags 1 1049kB 2097kB 1049kB bios_grub 2 2097kB 1076MB 1074MB ext4 bls_boot 3 1076MB 7515MB 6439MB lvm
(parted) unit s (parted) print free Model: Virtio Block Device (virtblk) Disk /dev/vda: 62914560s Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: pmbr_boot
Number Start End Size File system Name Flags 34s 2047s 2014s Free Space 1 2048s 4095s 2048s bios_grub 2 4096s 2101247s 2097152s ext4 bls_boot 3 2101248s 14678015s 12576768s lvm 14678016s 62914526s 48236511s Free Space
(parted) resizepart 3 62914526s (parted) unit compact (parted) print free Model: Virtio Block Device (virtblk) Disk /dev/vda: 32.2GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: pmbr_boot
Number Start End Size File system Name Flags 17.4kB 1049kB 1031kB Free Space 1 1049kB 2097kB 1049kB bios_grub 2 2097kB 1076MB 1074MB ext4 bls_boot 3 1076MB 32.2GB 31.1GB lvm
(parted) quit Information: You may need to update /etc/fstab.bash
sudo pvresize /dev/vda3
Physical volume "/dev/vda3" changed 1 physical volume(s) resized or updated / 0 physical volume(s) not resized
bash
sudo lvresize -l +100%FREE -r sysvg/root
Size of logical volume sysvg/root changed from <6.00 GiB (1535 extents) to <29.00 GiB (7423 extents). File system xfs found on sysvg/root mounted at /. Extending file system xfs to <29.00 GiB (31134318592 bytes) on sysvg/root... xfs_growfs /dev/sysvg/root meta-data=/dev/mapper/sysvg-root isize=512 agcount=4, agsize=392960 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=1, sparse=1, rmapbt=1 = reflink=1 bigtime=1 inobtcount=1 nrext64=1 data = bsize=4096 blocks=1571840, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0, ftype=1 log =internal log bsize=4096 blocks=16384, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 1571840 to 7601152 xfs_growfs done Extended file system xfs on sysvg/root. Logical volume sysvg/root successfully resized.
Apabila sudah selesai, boleh hentikan dan padam peranti
tap
dengan e.g. skrip di bawah:~/tapdn
#!/usr/bin/env zsh # Flush the routing table for the TAP devices sudo ip route flush dev tap1 sudo ip route flush dev tap2 # Bring down the TAP devices sudo ip link set dev tap1 down sudo ip link set dev tap2 down # Delete the TAP devices sudo ip link del dev tap1 sudo ip link del dev tap2 # Remove the TAP devices from the system sudo ip tuntap del dev tap1 mode tap sudo ip tuntap del dev tap2 mode tap