1. 首页 > 软件安装教程 > 正文

QEMU安装配置-QEMU虚拟化安装配置_升级迁移详细过程

1. QEMU概述与环境规划

QEMU是一个开源的虚拟化软件,允许用户在单个物理计算机上运行多个操作系统。QEMU是开发、测试和演示的理想工具,适用于个人和小型团队。更多学习教程www.fgedu.net.cn

1.1 QEMU版本说明

QEMU目前主要版本为7.x系列,本教程以QEMU 7.0.0为例进行详细讲解。QEMU 7.x版本相比之前版本在性能、稳定性和功能方面都有显著提升,支持更多的虚拟化特性。

# 查看QEMU版本
$ qemu-system-x86_64 –version
QEMU emulator version 7.0.0
Copyright (c) 2003-2022 Fabrice Bellard and the QEMU Project developers

# 查看系统版本
$ cat /etc/os-release
NAME=”Oracle Linux Server”
VERSION=”8.9″
ID=”ol”
PRETTY_NAME=”Oracle Linux Server 8.9″

# 查看内核版本
$ uname -r
5.4.17-2136.302.7.2.el8uek.x86_64

1.2 环境规划

本次安装环境规划如下:

主机环境:
– 操作系统:Oracle Linux Server 8.9
– CPU:Intel Core i7-10700K
– 内存:32GB
– 磁盘:512GB SSD + 2TB HDD
– 网络:千兆以太网

QEMU版本:7.0.0
虚拟机配置:
– 操作系统:Ubuntu 22.04 LTS
– CPU:4核
– 内存:8GB
– 磁盘:100GB
– 网络:NAT

2. 硬件环境要求

QEMU作为虚拟化软件,对硬件资源要求根据虚拟机数量和配置而定。学习交流加群风哥微信: itpux-com

2.1 物理主机环境要求

# 主机硬件要求
– CPU:至少4核,支持Intel VT-x或AMD-V虚拟化技术
– 内存:至少8GB,建议16GB以上
– 磁盘:至少50GB可用空间,建议使用SSD
– 网络:千兆以太网

# 检查CPU虚拟化支持
# lscpu | grep -E “(vmx|svm)”

# 检查内存
# free -h
total used free shared buff/cache available
Mem: 32G 8.4G 23.1G 512M 512M 23.4G
Swap: 8G 0B 8G

# 检查磁盘空间
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 512G 100G 412G 20% /
/dev/sdb1 2TB 500G 1.5T 25% /data

生产环境建议:主机至少16GB内存,使用SSD存储以提高虚拟机性能。CPU建议8核以上,以支持多个虚拟机同时运行。

3. 操作系统环境准备

在安装QEMU之前,需要对操作系统进行必要的配置和优化。

3.1 操作系统版本检查

# 检查操作系统版本
# cat /etc/os-release
NAME=”Oracle Linux Server”
VERSION=”8.9″
ID=”ol”
PRETTY_NAME=”Oracle Linux Server 8.9″

# 检查内核版本
# uname -r
5.4.17-2136.302.7.2.el8uek.x86_64

# 检查SELinux状态
# getenforce
Enforcing

# 检查防火墙状态
# systemctl status firewalld
● firewalld.service – firewalld – dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running)

3.2 依赖服务安装

# 安装依赖包
# dnf install -y wget curl tar gzip gcc kernel-devel kernel-headers

# 关闭防火墙
# systemctl stop firewalld
# systemctl disable firewalld

# 关闭SELinux
# setenforce 0
# sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/’ /etc/selinux/config

# 安装内核开发包
# dnf install -y kernel-devel-$(uname -r) kernel-headers-$(uname -r)

# 重启系统
# reboot

4. QEMU安装配置

完成环境准备后,开始安装QEMU。

4.1 安装QEMU

# 安装QEMU
# dnf install -y qemu-kvm qemu-img libvirt virt-install virt-manager

# 启动libvirt服务
# systemctl start libvirtd
# systemctl enable libvirtd

# 验证安装
# qemu-system-x86_64 –version
QEMU emulator version 7.0.0

# 验证libvirt服务
# systemctl status libvirtd

4.2 初始化QEMU

# 启动virt-manager
# virt-manager

# 完成初始化向导
# 1. 接受许可协议
# 2. 配置用户体验设置
# 3. 完成初始化

# 验证QEMU启动
# qemu-system-x86_64 –version

5. QEMU配置优化

为了提高QEMU的性能和稳定性,需要进行一些配置优化。

5.1 基本配置优化

# 编辑libvirt配置文件
# vi /etc/libvirt/qemu.conf

# 配置内存
memory_backing_dir = “/dev/shm”

# 配置CPU
cpu_mode = “host-passthrough”

# 重启libvirt服务
# systemctl restart libvirtd

5.2 网络配置

# 配置网络连接
# 查看默认网络
# virsh net-list –all

# 启动默认网络
# virsh net-start default

# 配置默认网络自动启动
# virsh net-autostart default

6. 虚拟机配置

QEMU允许用户创建和配置虚拟机,以运行不同的操作系统。

6.1 创建虚拟机

# 创建虚拟机
# virt-install \
–name ubuntu2204 \
–ram 8192 \
–vcpus 4 \
–disk path=/var/lib/libvirt/images/ubuntu2204.qcow2,size=100 \
–cdrom /path/to/ubuntu-22.04-desktop-amd64.iso \
–network network=default \
–graphics vnc,listen=0.0.0.0 \
–noautoconsole

# 查看虚拟机状态
# virsh list –all

6.2 配置虚拟机

# 编辑虚拟机配置
# virsh edit ubuntu2204

# 配置硬件
8388608
4

# 保存配置
# 按Esc键,输入:wq保存退出

# 重启虚拟机
# virsh reboot ubuntu2204

7. 网络配置

QEMU支持多种网络连接模式,包括NAT、桥接和仅主机模式。

7.1 NAT网络配置

# 配置NAT网络
# virsh net-edit default


default
55555555-5555-5555-5555-555555555555








# 重启网络
# virsh net-destroy default
# virsh net-start default

7.2 桥接网络配置

# 创建桥接网络
# virsh net-define /dev/stdin <
br0
66666666-6666-6666-6666-666666666666



EOF

# 启动桥接网络
# virsh net-start br0

# 配置桥接网络自动启动
# virsh net-autostart br0

8. 存储配置

QEMU支持多种存储选项,包括虚拟磁盘和共享文件夹。

8.1 虚拟磁盘配置

# 创建虚拟磁盘
# qemu-img create -f qcow2 /var/lib/libvirt/images/ubuntu2204-data.qcow2 50G

# 附加虚拟磁盘
# virsh attach-disk ubuntu2204 /var/lib/libvirt/images/ubuntu2204-data.qcow2 vdb –driver qemu –subdriver qcow2 –persistent

# 扩展虚拟磁盘
# qemu-img resize /var/lib/libvirt/images/ubuntu2204.qcow2 +50G

8.2 共享文件夹配置

# 配置共享文件夹
# 1. 在主机上创建共享目录
# mkdir -p /data/share

# 2. 编辑虚拟机XML配置
# virsh edit ubuntu2204

# 添加共享文件夹配置

# 3. 重启虚拟机
# virsh reboot ubuntu2204

# 4. 在虚拟机中挂载共享文件夹
# mount -t 9p -o trans=virtio share /mnt/share

9. 性能优化

在生产环境中,需要对QEMU进行性能优化以提高虚拟机运行效率。from:www.itpux.com

9.1 内存优化

# 配置虚拟机内存
# virsh edit ubuntu2204

8388608
8388608

# 重启虚拟机
# virsh reboot ubuntu2204

9.2 处理器优化

# 配置虚拟机处理器
# virsh edit ubuntu2204

4

# 重启虚拟机
# virsh reboot ubuntu2204

9.3 磁盘优化

# 配置虚拟磁盘
# 1. 创建预分配虚拟磁盘
# qemu-img create -f qcow2 -o preallocation=full /var/lib/libvirt/images/ubuntu2204.qcow2 100G

# 2. 整理虚拟磁盘
# qemu-img convert -O qcow2 /var/lib/libvirt/images/ubuntu2204.qcow2 /var/lib/libvirt/images/ubuntu2204-new.qcow2
# mv /var/lib/libvirt/images/ubuntu2204-new.qcow2 /var/lib/libvirt/images/ubuntu2204.qcow2

10. 升级迁移

本节介绍QEMU的版本升级和虚拟机迁移方法。

10.1 QEMU版本升级

# 备份虚拟机
# virsh dumpxml ubuntu2204 > /backup/ubuntu2204.xml
# qemu-img convert -O qcow2 /var/lib/libvirt/images/ubuntu2204.qcow2 /backup/ubuntu2204.qcow2

# 升级QEMU
# dnf update -y qemu-kvm qemu-img libvirt

# 验证升级
# qemu-system-x86_64 –version

10.2 虚拟机迁移

# 导出虚拟机
# virsh dumpxml ubuntu2204 > /backup/ubuntu2204.xml
# scp /backup/ubuntu2204.xml root@target:/backup/
# scp /var/lib/libvirt/images/ubuntu2204.qcow2 root@target:/var/lib/libvirt/images/

# 在目标服务器上导入虚拟机
# virsh define /backup/ubuntu2204.xml
# virsh start ubuntu2204

# 验证迁移
# virsh list –all

11. 备份恢复

本节介绍QEMU的备份和恢复方法。

11.1 虚拟机备份

# 创建备份脚本
# vi /data/scripts/backup_vm.sh

#!/bin/bash
BACKUP_DIR=”/backup/qemu”
DATE=$(date +%Y%m%d)

# 创建备份目录
mkdir -p $BACKUP_DIR

# 停止虚拟机
virsh shutdown ubuntu2204

# 备份虚拟机配置
virsh dumpxml ubuntu2204 > $BACKUP_DIR/ubuntu2204-$DATE.xml

# 备份虚拟磁盘
qemu-img convert -O qcow2 /var/lib/libvirt/images/ubuntu2204.qcow2 $BACKUP_DIR/ubuntu2204-$DATE.qcow2

# 启动虚拟机
virsh start ubuntu2204

# 清理旧备份(保留7天)
find $BACKUP_DIR -type f -mtime +7 -exec rm -f {} \;

# 添加执行权限
# chmod +x /data/scripts/backup_vm.sh

# 添加定时任务
# crontab -e
0 0 * * * /data/scripts/backup_vm.sh

11.2 虚拟机恢复

# 停止虚拟机
# virsh shutdown ubuntu2204

# 清理现有虚拟机
# virsh undefine ubuntu2204
# rm -f /var/lib/libvirt/images/ubuntu2204.qcow2

# 恢复虚拟机
# cp /backup/qemu/ubuntu2204-20230405.qcow2 /var/lib/libvirt/images/
# virsh define /backup/qemu/ubuntu2204-20230405.xml

# 启动虚拟机
# virsh start ubuntu2204

# 验证恢复
# virsh list –all

11.3 虚拟机监控

# 创建监控脚本
# vi /data/scripts/monitor_vm.sh

#!/bin/bash
LOG_FILE=”/var/log/qemu_monitor.log”
ALERT_EMAIL=”admin@fgedu.net.cn”

# 创建日志目录
mkdir -p /var/log

check_vm_status() {
echo “$(date): Checking VM status…” >> $LOG_FILE
vm_status=$(virsh list –all | grep ubuntu2204 | awk ‘{print $3}’)
if [ “$vm_status” != “running” ]; then
echo “$(date): VM ubuntu2204 is not running” >> $LOG_FILE
echo “VM ubuntu2204 is not running” | mail -s “VM Alert” $ALERT_EMAIL
virsh start ubuntu2204
else
echo “$(date): VM ubuntu2204 is running” >> $LOG_FILE
fi
}

check_host_resources() {
echo “$(date): Checking host resources…” >> $LOG_FILE
memory_usage=$(free -m | grep Mem | awk ‘{print $3/$2 * 100}’)
cpu_usage=$(top -bn1 | grep “Cpu(s)” | awk ‘{print $2 + $4}’)
disk_usage=$(df -h / | tail -1 | awk ‘{print $5}’ | sed ‘s/%//’)

if [ $(echo “$memory_usage > 90” | bc) -eq 1 ]; then
echo “$(date): Memory usage warning: $memory_usage%” >> $LOG_FILE
echo “Memory usage warning: $memory_usage%” | mail -s “Host Alert” $ALERT_EMAIL
fi

if [ $(echo “$cpu_usage > 90” | bc) -eq 1 ]; then
echo “$(date): CPU usage warning: $cpu_usage%” >> $LOG_FILE
echo “CPU usage warning: $cpu_usage%” | mail -s “Host Alert” $ALERT_EMAIL
fi

if [ $disk_usage -gt 90 ]; then
echo “$(date): Disk usage warning: $disk_usage%” >> $LOG_FILE
echo “Disk usage warning: $disk_usage%” | mail -s “Host Alert” $ALERT_EMAIL
fi
}

main() {
check_vm_status
check_host_resources
}

main

# 添加执行权限
# chmod +x /data/scripts/monitor_vm.sh

# 添加定时任务
# crontab -e
*/15 * * * * /data/scripts/monitor_vm.sh

生产环境建议:定期备份虚拟机,建议每天执行一次完整备份。监控脚本建议每15分钟执行一次,及时发现并处理问题。恢复操作前务必停止虚拟机,避免数据不一致。

通过以上步骤,QEMU安装配置、性能优化、升级迁移、备份恢复等内容已全部完成。QEMU作为开源虚拟化软件,能够高效地运行多个操作系统,是开发、测试和演示的理想工具。

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息