Detailed Operation Manual for Building a KVM Virtualization Platform on CentOS 8

1. Environment Preparation

1. Hardware Check

bash

egrep -c ‘(vmx|svm)’ /proc/cpuinfo # Return value>0 indicates support for virtualization

lsmod | grep kvm # Check KVM module

2. System Update

bash

dnf update -y

reboot

3. Install KVM Components

bash

dnf install -y qemu-kvm libvirt virt-install virt-viewer bridge-utils

systemctl enable –now libvirtd

2. Network Configuration (Bridged Network)

1. Create Bridge br0

bash

nmcli connection add type bridge con-name br0 ifname br0

nmcli connection modify br0 ipv4.method manual ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1

nmcli connection add type bridge-slave con-name br0-slave ifname eno1 master br0

nmcli connection down eno1 && nmcli connection up br0-slave

2. Verify Bridge

bash

virsh net-list –all

brctl show

3. Create Virtual Machine

1. Prepare Storage Pool

bash

mkdir -p /var/kvm/images

virsh pool-define-as kvm-pool dir – – – – “/var/kvm/images”

virsh pool-start kvm-pool

virsh pool-autostart kvm-pool

2. Install CentOS Virtual Machine

bash

virt-install \

–name=centos-vm1 \

–ram=2048 \

–vcpus=2 \

–disk path=/var/kvm/images/centos-vm1.qcow2,size=20 \

–os-variant=centos8 \

–network bridge=br0 \

–graphics vnc \

–location=http://mirrors.aliyun.com/centos/8/BaseOS/x86_64/os/ \

–extra-args=”ks=http://your-kickstart-server/ks.cfg”

4. Daily Operations and Maintenance

1. Common Commands

bash

virsh list –all # View Virtual Machines

virsh start centos-vm1 # Start

virsh shutdown centos-vm1 # Normal Shutdown

virsh destroy centos-vm1 # Force Shutdown

virsh edit centos-vm1 # Edit Configuration

2. Resource Adjustment

bash

virsh setvcpus centos-vm1 4 –config # Increase CPU

virsh setmaxmem centos-vm1 8G –config

virsh setmem centos-vm1 4G –config # Adjust Memory

5. Data Backup Solutions

1. Virtual Machine Snapshots

bash

virsh snapshot-create-as centos-vm1 –name “snap2023”

virsh snapshot-list centos-vm1

virsh snapshot-revert centos-vm1 snap2023

2. Full Backup

bash

# Cold Backup

virsh dumpxml centos-vm1 > /backup/centos-vm1.xml

rsync -av /var/kvm/images/centos-vm1.qcow2 /backup/

# Hot Backup (LVM Environment)

virsh blockcopy centos-vm1 vda –wait –finish –verbose /backup/vm1-backup.img

6. Network Monitoring

1. Install Monitoring Tools

bash

dnf install nload iftop nethogs -y

2. Configure Zabbix Agent

bash

dnf install zabbix-agent

sed -i ‘s/Server=127.0.0.1/Server=zabbix-server-ip/’ /etc/zabbix/zabbix_agentd.conf

systemctl enable –now zabbix-agent

Recommended Monitoring Items

  • Bridge Traffic
  • Virtual Machine CPU/Memory Usage
  • Remaining Space in Storage Pool

7. Security Hardening

1. Restrict VNC Access

xml

<!– In the Virtual Machine XML –>

<graphics type=’vnc’ port=’-1′ listen=’127.0.0.1′ passwd=’YourStrongPass’/>

2. Enable SELinux

bash

setenforce 1

semanage fcontext -a -t virt_image_t “/var/kvm/images(/.*)?”

restorecon -Rv /var/kvm/images

3. Firewall Rules

bash

firewall-cmd –add-service={dhcp,dns} –permanent

firewall-cmd –zone=public –add-port=5900-5910/tcp –permanent # VNC Range

firewall-cmd –reload

8. Expansion and Upgrade

1. Storage Expansion

bash

qemu-img resize /var/kvm/images/centos-vm1.qcow2 +10G

virsh blockresize centos-vm1 /var/kvm/images/centos-vm1.qcow2 30G

Inside the Virtual Machine

bash

growpart /dev/vda 1

xfs_growfs / # For XFS File System

2. Migrate to Cluster

bash

# Install oVirt/RHEV Management Platform

dnf install http://resources.ovirt.org/pub/yum-repo/ovirt-release44.rpm

dnf install ovirt-engine

engine-setup

9. Disaster Recovery

1. Virtual Machine Rebuilding Process

bash

virsh define /backup/centos-vm1.xml

virsh start centos-vm1

2. Quick Recovery Script

bash

#!/bin/bash

virsh destroy $VM_NAME

cp /backup/${VM_NAME}.qcow2 /var/kvm/images/

virsh start $VM_NAME

10. Precautions

  1. Resource Reservation: Host machine reserves 15% memory +1 CPU core
  2. Regular Maintenance:

bash

echo 3 > /proc/sys/vm/drop_caches # Clear Cache

dnf update -y && reboot # Quarterly Update

  1. Performance Monitoring: Use virt-top to view resources in real-time
  2. Security Audit:

bash

ausearch -m avc -ts today # Check SELinux Denial Events

virsh domstats –state # Check for Abnormal States

Important: CentOS 8 has stopped maintenance at the end of 2021, it is recommended to migrate to Rocky Linux 8/AlmaLinux 8 or CentOS Stream

This manual covers KVM lifecycle management, parameters should be adjusted based on hardware environment during actual deployment, and backup validity should be regularly verified.

#kvm#Centos8#virtualization

Leave a Comment