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
- Resource Reservation: Host machine reserves 15% memory +1 CPU core
- Regular Maintenance:
bash
echo 3 > /proc/sys/vm/drop_caches # Clear Cache
dnf update -y && reboot # Quarterly Update
- Performance Monitoring: Use virt-top to view resources in real-time
- 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