当前位置: 首页 > news >正文

在openEuler上实战:使用libvirt与QEMU-KVM部署企业级虚拟机

1. 为什么选择openEuler+KVM虚拟化方案

最近几年我在多个企业级项目中部署过虚拟化平台,实测下来openEuler+KVM这套组合特别适合需要高可靠性的生产环境。相比传统VMware方案,它有几个明显的优势:首先是完全开源免费,不用担心许可证问题;其次是性能损耗极小,我在同样配置的物理机上测试,KVM虚拟机的性能可以达到物理机95%以上;最重要的是与华为生态深度整合,比如鲲鹏处理器有专门的优化。

记得第一次给客户部署时,他们技术总监还担心开源方案不够稳定。结果上线半年多,二十多台虚拟机愣是没出过一次故障。后来他们把所有测试环境都迁移到了这个平台,每年省下大几十万的软件授权费用。

2. 环境准备与依赖检查

2.1 硬件兼容性验证

在开始前,强烈建议先跑一遍硬件检查。有次我遇到个坑:客户用的是某品牌服务器,虽然CPU支持VT-x技术,但BIOS里默认关闭了。结果装完系统才发现无法启用KVM,又得重启进BIOS设置。

验证命令很简单:

grep -E '(vmx|svm)' /proc/cpuinfo

如果有输出说明CPU支持虚拟化。再检查内核模块:

lsmod | grep kvm

正常应该看到kvm_intel或kvm_amd模块。如果是ARM架构的鲲鹏服务器,对应的模块是kvm_arm64。

2.2 系统环境配置

openEuler 22.03 LTS是我最推荐的版本,长期支持周期有5年。安装时要注意:

  1. 选择"带GUI的服务器"模式,后续用virt-manager管理更方便
  2. 分区时给/var目录多分配些空间,虚拟机镜像默认就存在这里
  3. 防火墙建议先用firewall-cmd放行libvirt的默认端口

3. 组件安装与调优

3.1 一站式安装所有依赖

很多教程让你一个个装组件,其实openEuler有虚拟化组套件:

dnf groupinstall "Virtualization Host"

这条命令会同时安装:

  • QEMU-KVM(版本通常比社区版更新)
  • libvirt全家桶(含virt-install等工具)
  • 必要的桥接网络组件

装完后别急着用,先改两个配置:

  1. 修改/etc/libvirt/libvirtd.conf:
listen_tls = 0 listen_tcp = 1 auth_tcp = "none"
  1. 修改/etc/libvirt/qemu.conf:
user = "root" group = "root" dynamic_ownership = 0

3.2 服务启动的坑

启动libvirtd时可能会遇到报错:

systemctl start libvirtd

如果失败,大概率是SELinux的问题。可以临时禁用:

setenforce 0

但生产环境建议配置正确的安全策略:

semanage permissive -a virt_qemu_selinux

4. 网络配置实战

4.1 桥接网络方案选型

我见过三种主流配置方式:

  1. 传统桥接:适合物理机直连交换机
  2. NAT模式:适合云环境多租户隔离
  3. OVS虚拟交换:需要SDN高级功能时用

中小企业最常用的是第一种,配置示例:

nmcli con add type bridge ifname br0 nmcli con add type bridge-slave ifname eno1 master br0 nmcli con modify br0 ipv4.addresses '192.168.1.100/24' nmcli con modify br0 ipv4.gateway '192.168.1.1' nmcli con modify br0 ipv4.dns '8.8.8.8' nmcli con modify br0 ipv4.method manual nmcli con up br0

4.2 多网卡绑定技巧

对于需要高可用的场景,建议做网卡绑定。有次客户机房交换机故障,幸亏做了bonding才没断网:

nmcli con add type bond ifname bond0 mode active-backup nmcli con add type bond-slave ifname eno1 master bond0 nmcli con add type bond-slave ifname eno2 master bond0 nmcli con add type bridge ifname br0 nmcli con add type bridge-slave ifname bond0 master br0

5. 虚拟机创建全流程

5.1 镜像制作黑科技

qcow2镜像有个隐藏技巧:支持后备镜像链。比如基础镜像装好系统后,其他虚拟机都可以用差分镜像:

qemu-img create -f qcow2 -b base.qcow2 vm01.qcow2

这样既节省空间,更新系统时只要改基础镜像就行。不过要注意后备镜像路径最好是绝对路径。

5.2 自动化安装系统

手动安装太麻烦,我习惯用kickstart自动化。先准备ks.cfg文件,然后用virt-install:

virt-install \ --name vm01 \ --memory 4096 \ --vcpus 4 \ --disk path=/var/lib/libvirt/images/vm01.qcow2,size=100 \ --network bridge=br0 \ --os-type linux \ --os-variant openeuler22.03 \ --location /path/to/iso \ --initrd-inject=/path/to/ks.cfg \ --extra-args "inst.ks=file:/ks.cfg console=tty0 console=ttyS0,115200n8"

6. 生产环境调优指南

6.1 CPU绑定与NUMA优化

在高配服务器上,一定要做CPU亲和性设置。曾经有个MySQL虚拟机性能异常,后来发现跨NUMA节点访问内存:

<cputune> <vcpupin vcpu='0' cpuset='4'/> <vcpupin vcpu='1' cpuset='5'/> <emulatorpin cpuset='6'/> </cputune> <numatune> <memory mode='strict' nodeset='0'/> </numatune>

6.2 磁盘IO加速技巧

对于数据库等IO密集型应用,有几种优化方案:

  1. 使用virtio-scsi控制器:
<controller type='scsi' model='virtio-scsi'/>
  1. 启用多队列:
<driver name='qemu' type='qcow2' queues='4'/>
  1. 配合LVM缓存或bcache加速

7. 日常管理实用命令

7.1 监控与排错

我最常用的几个命令:

# 实时监控虚拟机状态 virsh domstats --all # 查看虚拟机控制台日志 virsh console <vmname> # 性能分析(类似top) virt-top

7.2 备份恢复方案

生产环境一定要有备份策略。我的方案是:

  1. 每日增量备份XML配置:
virsh dumpxml vm01 > /backup/vm01_$(date +%F).xml
  1. 每周全量备份镜像文件
  2. 使用LVM快照实现热备份

8. 常见故障处理

8.1 网络不通排查步骤

遇到最多的问题就是虚拟机连不上网,我的排查流程:

  1. 检查br0状态:brctl show
  2. 查看iptables规则:iptables -L -n -v
  3. 验证网卡MAC地址是否冲突
  4. 检查DHCP服务是否正常

8.2 虚拟机卡死处理

当虚拟机无响应时:

  1. 强制重启:virsh reset vm01
  2. 如果无效,用destroy后重新define
  3. 检查主机内存是否不足:free -h
  4. 查看是否有IO阻塞:iostat -x 1
http://www.jsqmd.com/news/851558/

相关文章:

  • AnyKernel3:Android内核刷机终极指南 - 5分钟构建通用刷机包
  • 安庆装修公司哪家靠谱?2026专业推荐让你放心选择 - 资讯焦点
  • 好喝的白酒推荐:多款优质佳酿解析,毛铺草本酒绿荞脱颖而出 - 资讯焦点
  • 用RISC-V给AED“换芯”:我们如何为心电分析SOC设计了一个1700倍速的协处理器
  • CANN/asc-devkit SIMD基础算术示例
  • 高性价比白酒送礼推荐:毛铺紫荞领衔,适配长辈、商务全场景 - 资讯焦点
  • 天邑TY1208-Z刷机后必做的5项优化设置(去广告、开权限、提速技巧全在这)
  • 3步掌握waifu2x-caffe:从低质图像到高清艺术的AI魔法
  • 2026年深圳市白蚁防治行业专业评估前五排名 - 资讯焦点
  • 别再为论文付费发愁!手把手教你用Sci-Hub域名绕过IEEE Xplore付费墙
  • 企业级应用如何借助Taotoken实现大模型API的容灾与负载均衡
  • 使用OpenClaw连接Taotoken实现自动化工作流的配置要点
  • csgo游戏搬砖,长期靠谱
  • Axure RP中文界面配置指南:3步完成专业原型设计工具本地化
  • 自家腌料没特色?姜师傅烤鸭、铁板鸭腌料味道好轻松帮你锁客 - 品牌2025
  • 电磁阀清洁度分析设备选型指南:西恩士优质厂家揭秘 - 工业设备研究社
  • 如何在Windows电脑上直接安装安卓应用:APK-Installer完全指南
  • ​ 2026平价白酒推荐排行榜:毛铺紫荞出圈,家用宴请皆合适 - 资讯焦点
  • 告别Camera2的复杂!用CameraX 1.3.0-alpha04轻松搞定Android外接USB摄像头
  • 晚上追剧解馋外卖推荐|外卖必点榜藏着本地超好吃的解馋美食 - 资讯焦点
  • 2026年南京特种设备许可证咨询代办公司最新推荐榜:制造/安装/改造维修许可证咨询代办 - 海棠依旧大
  • Twoyi核心组件解析:从UI渲染引擎到ROM管理的技术实现
  • 从Layout到仿真:一个硬件工程师用Allegro Sigrity搞定SI/PI/EMI的真实工作流
  • 在广东做软文发布、新闻稿发稿?选对服务商少走90%的弯路! - 代码非世界
  • Base64在不同项目中运行结果不一致问题
  • 同行想做爆款烤鸭,姜师傅升级进修培训闭眼选就行 - 品牌2025
  • 数字电路中的‘裁判’:深入拆解4位数值比较器(74LS85)的工作原理与级联技巧
  • 终极SPT-AKI存档编辑器:如何5分钟成为逃离塔科夫单机版掌控者
  • 青岛口碑少儿英语机构排行 师资与课程维度实测对比 - 真知灼见33
  • 深度解析mNetAssist:高效网络调试工具的3种协议测试实战指南