OpenEuler 中配置 KVM 虚拟化环境指南

简介: 本文档详细介绍了如何在OpenEuler系统中配置和管理KVM虚拟化环境,包括环境准备、组件安装、虚拟机安装及管理命令等,适合初学者和有经验的用户。内容覆盖了从桥接网卡配置到虚拟机的安装与管理,以及常见问题的解决方法,帮助用户高效利用虚拟化技术。

0x00 前言

随着云计算和虚拟化技术的迅猛发展,KVM(Kernel-based Virtual Machine)作为一种高效的虚拟化解决方案,越来越受到企业和开发者的青睐。OpenEuler 作为一个开源操作系统,旨在为用户提供稳定、安全的运行环境,其内置的 KVM 支持使得用户能够轻松构建和管理虚拟机,从而实现资源的灵活分配和高效利用。

本指南旨在为读者提供一个详细的步骤说明,帮助大家在 OpenEuler 系统中配置 KVM 虚拟化环境。无论您是初学者还是有一定经验的用户,这份指南都将涵盖从环境准备、安装到虚拟机管理的各个方面,确保您能够顺利地搭建并管理自己的虚拟化平台。

通过本指南,您将学习到:

  • KVM 的基本概念和优势
  • OpenEuler 的环境准备与安装
  • KVM 的配置与管理
  • 常见问题的解决方案

希望本指南能够帮助您在虚拟化的旅程中迈出坚实的一步,为您的项目带来更多的灵活性与高效性。

0x01 桥接网卡

首先我们需要先配置一个桥接网卡用于我们的电脑宿主机访问该系统里KVM虚拟化主机

#进入网络脚本路径
cd /etc/sysconfig/network-scripts/
#创建一个桥接网卡
nmcli c a con-name br0 ifname br0 type bridge
#将ens33的连接修改为从属连接
nmcli c modify 'ens33' connection.slave-type bridge master br0
然后配置需要的静态ip,对网桥网卡进行配置,配置完nmcli c r,再分别nmcli c up 本地网卡,nmcli c up br0

0x02 安装组件

最低硬件需求

在openEuler系统中安装虚拟化组件,最低硬件要求:

  • AArch64处理器架构:ARMv8以上并且支持虚拟化扩展
  • x86_64处理器架构:支持VT-x
  • 2核CPU
  • 4GB的内存
  • 16GB可用磁盘空间

这里首先需要配置好yum源

安装必要的组件

yum install -y qemu libvirt virt-install
 systemctl start libvirtd
 systemctl enable libvirtd

检查是否安装成功

rpm -qi qemu
rpm -qi libvirt

KVM模块已经集成在openEuler内核中,因此不需要单独安装。

传输镜像到机器上

0x03 安装虚拟机

virt-install \
  --name oepneuler-1 \
  --video vga \
  --memory 1024 \
  --vcpus 1 \
  --disk size=20 \
  --cdrom /kvm/openEuler.iso \
  --network bridge=br0 \
  --graphics vnc,listen=0.0.0.0,port=5900 \
  --noautoconsole
  
#如果提示磁盘大小报错,virsh pool-list --all 检查磁盘大小没问题后使用
  --check disk_size=off  # 关闭磁盘大小检查 
#一键复制版
virt-install --name oepneuler-1 --video vga --memory 1024 --vcpus 1 --disk size=20 --cdrom /kvm/openEuler.iso --network bridge=br0 --graphics vnc,listen=0.0.0.0,port=5900 --noautoconsole
virt-install --name vm01 \
  --video virtio \
  --memory 2048 \
  --vcpus 2 \
  --disk size=110 \
  --cdrom /kvm/openeuler.iso \
  --network bridge=br0 \
  --graphics vnc,listen=0.0.0.0,port=5900 \
  --noautoconsole \
  --check all=off

参数解释

● --name oepneuler-1:
  ○ 设置虚拟机的名称为 oepneuler-1。
● --video vga:
  ○ 指定虚拟机的显卡类型为 vga。这通常用于图形界面操作。
● --memory 1024:
  ○ 分配 1024 MB(即 1 GB)的内存给虚拟机。
● --vcpus 1:
  ○ 为虚拟机分配 1 个虚拟 CPU。
● --disk size=20:
  ○ 创建一个大小为 20 GB 的虚拟磁盘。默认情况下,磁盘类型为 qcow2(可扩展的磁盘格式)。
● --cdrom /kvm/openEuler.iso:
  ○ 指定一个 ISO 文件作为虚拟机的安装介质。在这个示例中,使用的是位于 /kvm/ 目录下的 openEuler.iso。
● --network bridge=br0:
  ○ 让虚拟机通过 br0 网络桥接连接到主机的网络。这允许虚拟机与外部网络通信。
● --graphics vnc,listen=0.0.0.0,port=5900:
  ○ 配置虚拟机的图形输出使用 VNC 协议。listen=0.0.0.0 表示 VNC 服务器将监听所有可用的网络接口,port=5900 指定 VNC 服务器使用的端口号。
● --noautoconsole:
  ○ 不自动打开控制台。这意味着在虚拟机启动后,你不会被自动连接到 VNC 会话,而是需要手动连接。

ss -anltp 可以看到监听端口

通过vnc软件连接上 我这里用remmina进行连接

测试桥接网卡成功生效成功与外部机器进行连接

0x04 虚拟机管理命令

virsh是用于管理虚拟机的命令行工具,提供了一系列命令来创建、启动、停止和管理虚拟机。以下是一些常用的 virsh命令及其功能:

管理

virsh list --all # 列出所有虚拟机及其状态
virsh start vm-01 # 启动虚拟机 vm-01
virsh shutdown vm-01 # 优雅地关闭虚拟机 vm-01
virsh destroy vm-01 # 强制停止虚拟机 vm-01(相当于断电)
virsh reboot vm-01 # 重启虚拟机 vm-01
virsh dominfo vm-01 # 显示虚拟机 vm-01 的详细信息
virsh dumpxml vm-01 # 查看虚拟机 vm-01 的 XML 配置
virsh define vm-01.xml # 根据 XML 文件定义新的虚拟机
virsh undefine vm-01 # 删除虚拟机 vm-01 的定义
virsh suspend vm-01 # 暂停虚拟机 vm-01
virsh resume vm-01 # 恢复虚拟机 vm-01
virsh console vm-01 # 连接到虚拟机 vm-01 的控制台
virsh start vm-01 --autostart # 设置虚拟机 vm-01 为开机自启动
virsh list # 列出正在运行的虚拟机

快照

virsh snapshot-create vm-01 #为vm-01虚拟机创建快照
virsh snapshot-create-as vm-01 snap-test #创建快照的同时,指定快照名称snap-test
qemu-img snapshot -1 /kvm/os/vm-01.qcow2 #查看快照
virsh snapshot-list vm-01 #查看快照
virsh snapshot-revert vm-01 snap-test #恢复虚拟机至快照状态
virsh snapshot-delete vm-01 snap-test #删除指定快照
virsh snapshot-current vm-01 #删除当前快照(即最近一个快照)
virsh snapshot-delete vm-01 --current #同上

克隆

virt-clone -o vm-01 -n vm-02 -f/kvm/os/vm-02.qcow2
virsh start vm-02 #启动虚拟机后,修改hostname,ip等
相关文章
|
2月前
|
存储 Linux 调度
KVM 虚拟化的功能特性
【10月更文挑战第13天】虚拟化技术创建实体资源的虚拟版本,提升资源利用率。KVM(Kernel-based Virtual Machine)作为全虚拟化解决方案,借助Linux内核实现Hypervisor功能,通过模块化方式提供高效的虚拟化环境。
|
3月前
|
KVM 虚拟化
虚拟化技术概述及KVM环境安装
关于虚拟化技术概述及KVM环境安装的教程,涵盖了虚拟化的定义、分类、管理工具,以及KVM的系统需求、安装步骤和使用指南。
83 11
虚拟化技术概述及KVM环境安装
|
2月前
|
监控 安全 物联网
|
4月前
|
jenkins Linux 持续交付
在Linux中,如何使用Jenkins和Ansible进行虚拟化环境的自动化和持续集成/持续部署(CI/CD)?
在Linux中,如何使用Jenkins和Ansible进行虚拟化环境的自动化和持续集成/持续部署(CI/CD)?
|
4月前
|
Linux KVM 虚拟化
在Linux中,KVM和Docker在Linux虚拟化中的区别是什么?
在Linux中,KVM和Docker在Linux虚拟化中的区别是什么?
|
5月前
|
JSON API 开发工具
Citrix XenDesktop 是一个桌面虚拟化解决方案,它允许企业集中管理虚拟桌面环境。
Citrix XenDesktop 是一个桌面虚拟化解决方案,它允许企业集中管理虚拟桌面环境。
|
7月前
|
存储 Linux KVM
虚拟化技术之KVM安装与使用
虚拟化技术之KVM安装与使用
|
4月前
|
存储 Linux 调度
OpenStack如何支持虚拟化技术?
【8月更文挑战第21天】
222 0
|
2月前
|
存储 分布式计算 分布式数据库
云计算和虚拟化技术
云计算是指把计算资源、存储资源、网络资源、应用软件等集合起来,采用虚拟化技术,将这些资源池化,组成资源共享池,共享池即是“云”。
146 64
|
1月前
|
存储 持续交付 虚拟化

相关课程

更多