一、系统架构概览
┌─────────────────────────────────────────┐
│ Cockpit Web UI (端口 9090) │
│ 虚拟机管理界面 │
└─────────────────────────────────────────┘
↓
┌─────────────────────────────────────────┐
│ KVM + QEMU + libvirt │
│ (虚拟化引擎层) │
└─────────────────────────────────────────┘
↓
┌─────────────────────────────────────────┐
│ 华为鲲鹏BoostKit虚拟化组件 │
│ (性能优化层 - 可选但推荐) │
└─────────────────────────────────────────┘
↓
┌─────────────────────────────────────────┐
│ openEuler 24.03 LTS (操作系统) │
└─────────────────────────────────────────┘
↓
┌─────────────────────────────────────────┐
│ TaiShan 200 2280 + 鲲鹏920处理器 │
│ (硬件层 - DDR4 ECC内存) │
└─────────────────────────────────────────┘
二、准备工作
2.1 硬件确认
- 服务器型号: TaiShan 200 2280
- 处理器: 鲲鹏920 (ARM64架构)
- 内存: DDR4 ECC Registered DIMM
- 最低要求 :
- 2核CPU
- 4GB内存
- 16GB可用磁盘空间
2.2 下载openEuler系统
官方下载地址: https://www.openeuler.org/zh/download/
选择版本:
- 推荐: openEuler 24.03 LTS SP3 (最新长期支持版)
- 架构: aarch64 (ARM64)
- 文件: openEuler-24.03-LTS-SP3-aarch64-dvd.iso
国内镜像站:
三、安装openEuler操作系统
3.1 系统安装步骤
-
制作启动U盘 (如果需要)
- 使用Rufus或dd命令制作启动盘
-
启动安装
- 选择"Install openEuler"
- 语言选择:中文或英文
-
分区建议
/boot/efi - 512MB (EFI分区) /boot - 1GB (启动分区) swap - 16GB (交换分区,根据内存大小调整) / - 剩余空间 (根分区) -
网络配置
- 配置静态IP地址
- 设置主机名
-
用户设置
- 设置root密码
- 创建普通用户(可选)
-
安装类型
- 选择"最小安装"或"服务器"
3.2 系统初始化
安装完成后,重启进入系统:
bash
# 更新系统
dnf update -y
# 配置yum源(如果需要)
# openEuler默认源速度较快,通常无需更改
# 安装必要工具
dnf install -y vim wget net-tools
官方文档: https://docs.openeuler.org/zh/docs/24.03_LTS/docs/Installation/installation.html
四、安装虚拟化组件(KVM + QEMU + libvirt)
4.1 验证硬件虚拟化支持
bash
# 检查CPU是否支持虚拟化
lscpu | grep Virtualization
# 对于ARM架构,查看是否有virtualization扩展
cat /proc/cpuinfo | grep Features
4.2 安装虚拟化软件包
bash
# 安装QEMU
dnf install -y qemu
# 安装libvirt
dnf install -y libvirt
# 安装libvirt客户端工具
dnf install -y libvirt-client
# 安装virt-install(用于创建虚拟机)
dnf install -y virt-install
# 安装virt-manager依赖(如果使用GUI)
dnf install -y virt-viewer
# 安装桥接网络工具
dnf install -y bridge-utils
4.3 启动libvirt服务
bash
# 启动libvirtd服务
systemctl start libvirtd
# 设置开机自启动
systemctl enable libvirtd
# 查看服务状态
systemctl status libvirtd
4.4 验证安装
bash
# 检查KVM模块是否加载
ls /dev/kvm
ls /sys/module/kvm
# 查看QEMU版本
rpm -qi qemu
# 查看libvirt版本
rpm -qi libvirt
# 测试virsh命令
virsh list --all
官方文档: https://docs.openeuler.org/zh/docs/24.03_LTS/docs/Virtualization/安装虚拟化.html
五、安装Cockpit Web管理界面
5.1 安装Cockpit
bash
# 安装Cockpit主程序
dnf install -y cockpit
# 启动Cockpit服务
systemctl enable --now cockpit.socket
# 查看服务状态
systemctl status cockpit.socket
5.2 安装虚拟机管理插件
bash
# 注意:openEuler 24.03可能没有cockpit-machines包
# 需要手动下载CentOS Stream的包
# 下载libvirt-dbus(前置依赖)
wget https://mirror.stream.centos.org/9-stream/AppStream/aarch64/os/Packages/libvirt-dbus-1.4.1-5.el9.aarch64.rpm
# 下载cockpit-machines
wget https://mirror.stream.centos.org/9-stream/AppStream/aarch64/os/Packages/cockpit-machines-326-1.el9.noarch.rpm
# 先安装libvirt-dbus
dnf install -y ./libvirt-dbus-1.4.1-5.el9.aarch64.rpm
# 再安装cockpit-machines
dnf install -y ./cockpit-machines-326-1.el9.noarch.rpm
# 重启cockpit服务
systemctl restart cockpit.socket
5.3 配置防火墙
bash
# 添加Cockpit服务到防火墙
firewall-cmd --permanent --zone=public --add-service=cockpit
# 或者直接开放9090端口
firewall-cmd --permanent --zone=public --add-port=9090/tcp
# 重新加载防火墙
firewall-cmd --reload
# 查看防火墙规则
firewall-cmd --list-all
5.4 访问Cockpit界面
打开浏览器访问: https://服务器IP:9090
- 使用root或系统用户登录
- 可以看到"虚拟机"选项卡(如果cockpit-machines安装成功)
参考文档:
- openEuler论坛: https://forum.openeuler.org/t/topic/7686
- Cockpit官网: https://cockpit-project.org/
六、配置华为鲲鹏BoostKit优化(可选但推荐)
6.1 关于鲲鹏BoostKit
鲲鹏BoostKit虚拟化基于TaiShan 200服务器,端到端打通硬件、操作系统、虚拟化软件的全堆栈,并根据鲲鹏架构进行深度性能调优。
6.2 获取BoostKit组件
官方资源:
- 鲲鹏社区: https://www.hikunpeng.com/zh/developer/boostkit/virtualization
- GitHub仓库: https://github.com/kunpengcompute/Kunpeng
6.3 主要优化内容
鲲鹏BoostKit虚拟化从硬件参数、操作系统内核及虚拟化平台进行性能调优,包括:
-
硬件层优化
- NUMA亲和性配置
- CPU pinning优化
-
操作系统优化
- 内核参数调优
- 大页内存配置
-
虚拟化平台优化
- QEMU优化版本
- KAE硬件加速引擎
6.4 基础性能优化配置
bash
# 1. 启用大页内存
echo 2048 > /proc/sys/vm/nr_hugepages
# 永久生效,编辑 /etc/sysctl.conf
cat >> /etc/sysctl.conf << EOF
vm.nr_hugepages = 2048
EOF
# 2. NUMA优化(查看NUMA节点)
numactl --hardware
# 3. 修改QEMU配置(针对鲲鹏920)
vim /etc/libvirt/qemu.conf
# 取消以下行的注释:
# user = "root"
# group = "root"
七、创建和管理虚拟机
7.1 准备虚拟机镜像
bash
# 创建存储目录
mkdir -p /var/lib/libvirt/images
# 创建虚拟机磁盘
qemu-img create -f qcow2 /var/lib/libvirt/images/vm1.qcow2 50G
# 下载操作系统ISO(以openEuler为例)
wget -P /var/lib/libvirt/images/ \
https://repo.openeuler.org/openEuler-24.03-LTS/ISO/aarch64/openEuler-24.03-LTS-aarch64-dvd.iso
7.2 使用virt-install创建虚拟机
bash
virt-install \
--name vm1 \
--vcpus 4 \
--memory 4096 \
--disk path=/var/lib/libvirt/images/vm1.qcow2,format=qcow2,bus=virtio \
--cdrom /var/lib/libvirt/images/openEuler-24.03-LTS-aarch64-dvd.iso \
--network network=default \
--graphics vnc,listen=0.0.0.0 \
--os-variant generic \
--boot uefi
7.3 使用Cockpit Web界面管理
- 登录Cockpit:
https://服务器IP:9090 - 点击左侧"虚拟机"菜单
- 可以进行以下操作:
- 创建新虚拟机
- 启动/停止虚拟机
- 创建快照
- 恢复快照
- 删除快照
- 克隆虚拟机
- 查看虚拟机控制台(VNC)
- 管理虚拟机配置
7.4 快照管理(命令行)
bash
# 创建快照
virsh snapshot-create-as vm1 snapshot1 --description "第一个快照"
# 列出所有快照
virsh snapshot-list vm1
# 查看快照详情
virsh snapshot-info vm1 snapshot1
# 恢复快照
virsh snapshot-revert vm1 snapshot1
# 删除快照
virsh snapshot-delete vm1 snapshot1
7.5 虚拟机常用管理命令
bash
# 列出所有虚拟机
virsh list --all
# 启动虚拟机
virsh start vm1
# 关闭虚拟机
virsh shutdown vm1
# 强制关闭
virsh destroy vm1
# 删除虚拟机
virsh undefine vm1
# 克隆虚拟机
virt-clone --original vm1 --name vm2 \
--file /var/lib/libvirt/images/vm2.qcow2
八、网络配置
8.1 创建桥接网络
bash
# 查看当前网络
nmcli connection show
# 创建桥接网卡
nmcli connection add type bridge ifname br0 con-name br0
# 将物理网卡添加到桥接
nmcli connection add type bridge-slave ifname eth0 master br0
# 配置桥接IP
nmcli connection modify br0 ipv4.addresses 192.168.1.100/24
nmcli connection modify br0 ipv4.gateway 192.168.1.1
nmcli connection modify br0 ipv4.dns 8.8.8.8
nmcli connection modify br0 ipv4.method manual
# 激活桥接
nmcli connection up br0
8.2 虚拟机使用桥接网络
在创建虚拟机时使用桥接:
bash
--network bridge=br0
九、性能监控和优化
9.1 使用Cockpit监控
- 实时查看CPU、内存、网络、磁盘使用情况
- 查看虚拟机资源占用
- 查看系统日志
9.2 命令行监控
bash
# 查看虚拟机资源使用
virt-top
# 查看特定虚拟机状态
virsh dominfo vm1
# 查看虚拟机统计信息
virsh domstats vm1
十、故障排查
10.1 常见问题
问题1: /dev/kvm不存在
bash
# 检查内核模块
lsmod | grep kvm
# 手动加载KVM模块(如果需要)
modprobe kvm
问题2: 权限问题
bash
# 修改QEMU配置
vim /etc/libvirt/qemu.conf
# 设置:
user = "root"
group = "root"
# 重启libvirtd
systemctl restart libvirtd
问题3: Cockpit无法访问
bash
# 检查防火墙
firewall-cmd --list-all
# 检查服务状态
systemctl status cockpit.socket
# 查看日志
journalctl -u cockpit -f
十一、官方文档汇总
openEuler官方文档
- 安装指南: https://docs.openeuler.org/zh/docs/24.03_LTS/docs/Installation/installation.html
- 虚拟化文档: https://docs.openeuler.org/zh/docs/24.03_LTS/docs/Virtualization/虚拟化.html
- 下载中心: https://www.openeuler.org/zh/download/
鲲鹏BoostKit资源
- 鲲鹏社区: https://www.hikunpeng.com/zh/developer
- BoostKit虚拟化: https://www.hikunpeng.com/zh/developer/boostkit/virtualization
- GitHub: https://github.com/kunpengcompute/Kunpeng
Cockpit文档
十二、总结
这套方案提供:
✅ 完整的Web UI管理 - 通过Cockpit轻松管理虚拟机
✅ 快照和恢复功能 - 完整支持虚拟机快照管理
✅ 性能优化 - 结合鲲鹏BoostKit获得最佳性能
✅ 官方支持 - 基于openEuler和华为鲲鹏官方技术栈
✅ 类PVE体验 - Web界面操作简单直观
如果遇到问题,可以:
- 查看openEuler官方文档
- 访问openEuler论坛: https://forum.openeuler.org/
- 访问鲲鹏社区: https://bbs.huaweicloud.com/forum/forum-931-1.html
祝部署顺利!