14
2025
04
17:28:01

部署和使用 KVM 虚拟化环境

KVM 介绍

KVM 是 Kernel-based Virtual Machine 的简称,是一个开源的系统虚拟化系统虚拟化模块,自 Linux 2.6.20 之后集成在 Linux 的各个主要发行版本中。它使用 Linux 自身的调度器进行管理,所以相对于 Xen,其核心源码很少。

KVM 本身不模拟任何硬件设备,它主要用于使能硬件提供的虚拟化能力,比如 Intel VT-x, AMD-V, ARM virtualization extensions 等。主板、内存及 I/O 等设备的模拟由用户态的 QEMU 完成。用户态 QEMU 配合内核KVM 模块共同完成虚拟机的硬件模拟,客户机操作系统运行在 QEMU 和 KVM 模拟的硬件上。

图片

虚拟化组件

完整的 KVM 虚拟化环境由多组件配合:

  • 「KVM:」 提供核心的虚拟化基础设施,使 Linux 系统成为一个 hypervisor,支持多个虚拟机同时在该主机上运行。
  • 「QEMU:」 模拟处理器并提供一组设备模型,配合 KVM 实现基于硬件的虚拟化模拟加速。
  • 「Libvirt:」 为管理虚拟机提供工具集,主要包含统一、稳定、开放的应用程序接口(API)、守护进程 (Libvirtd)和一个默认命令行管理工具(virsh)。
  • 「Open vSwitch:」 为虚拟机提供虚拟网络的工具集,支持编程扩展,以及标准的管理接口和协议(如NetFlow, sFlow,IPFIX, RSPAN, CLI, LACP, 802.1ag)(可选,也可以使用 Linux 自身的网络)。

安装步骤

安装 Linux 操作系统

这里使用 openEuler 24.03 LTS-SP1 操作系统,安装 openEuler 环境可以直接查看下面这篇文章,这里就不再赘述了。

图片

创建应用

双击打开桌面图标“我的模板”。

图片

在我的模板中,找到之前已经创建好的 openEuler 的模板,点击“部署”。

图片

填写好相关信息。

图片

这时候在桌面上就可以看到创建中的应用的图标了。

图片

基础环境配置

点击打开名为“kvm-node”的应用,完成接下来的配置。

修改主机名

双击桌面图标“kvm-node”。

图片

输入账号密码,登录 openEuler 操作系统。

图片

执行命令修改主机名,修改完主机名以后需要退出重新登录一下才生效。

hostnamectl set-hostname kvm-node
bash

图片

关闭 SElinux 和防火墙。

临时关闭 SElinux。

setenforce 0

图片

修改配置文件永久关闭。

sed -i 's/^SELINUX=enforcing/SELINUX=disabled/'  /etc/selinux/config
cat  /etc/selinux/config

图片

关闭防火墙并设置为开机不启动。

systemctl stop firewalld
systemctl disable firewalld

图片

配置软件源(可选)

openEuler 默认是官方在线源,如果觉得安装软件的速度慢,可以修改为华为云或阿里云的软件源地址。

sed -i "s@http://repo.openeuler.org/openEuler-24.03-LTS-SP1/@https://mirrors.aliyun.com/openeuler/openEuler-24.03-LTS-SP1/@g" /etc/yum.repos.d/openEuler.repo
dnf clean all
dnf makecache

安装虚拟化核心组件

安装 QEMU 组件。

yum install -y qemu

图片
图片

安装 libvirt 组件。

yum install -y libvirt

图片

启动 libvirtd 服务并设为开机自启。

systemctl start libvirtd
systemctl enable libvirtd

图片

验证安装

查看内核是否支持KVM虚拟化,即查看 /dev/kvm 和 /sys/module/kvm 文件是否存在。


ls /dev/kvm
ls /sys/module/kvm

图片

确认 QEMU 是否安装成功。

rpm -qi qemu

图片

确认 libvirt 是否安装成功。

rpm -qi libvirt

图片

查看 libvirt 服务是否启动成功。

systemctl status libvirtd

图片

创建虚拟机

创建磁盘文件

创建一个目录用于存储虚拟机的磁盘文件。

mkdir -p /data/images
cd /data/images

图片

使用 qemu-img 工具的 create 命令,创建磁盘文件。

qemu-img create -f qcow2 openEuler-image.qcow2 40G

图片

查询 openEuler-image.qcow2 镜像信息。

qemu-img info openEuler-image.qcow2 

图片

下载镜像文件

将 openEuler 的安装镜像文件下载到 /data/iso 目录中。

这里是示例在 KVM 中安装 openEuler 系统,所以下载的是 openEuler 的镜像,需要安装什么系统就下载什么镜像。

mkdir -p /data/iso
cd /data/iso
wget https://cloud.grbj.cn/d/%E7%B3%BB%E7%BB%9F%E9%95%9C%E5%83%8F/Linux/openEuler-24.03-LTS-x86_64-dvd.iso?sign=jpm5p1JJXIxDVq_geQVNmTM4cL_MygMhWI541j8BVZo=:0 --no-check-certificate -O openEuler-24.03-LTS-x86_64-dvd.iso
ls -l

图片
图片
图片

准备虚拟化网络

创建桥接网络

此处以创建 br0 桥接网卡并绑定物理网卡为例。

创建名为 br0 的桥接网卡。

nmcli connection add ifname br0 type bridge con-name br0

图片

查看物理网卡名称。

ifconfig

图片

桥接网卡与物理网卡进行绑定。

nmcli connection add type bridge-slave ifname enp1s0 master br0

图片

配置 br0 的 IP 地址,IP 地址自定义。

nmcli con modify br0 ipv4.address 192.168.100.1/24 ipv4.method manual autoconnect yes

图片

重启 br0 网卡。

nmcli device disconnect br0;nmcli connection up id br0

图片

查看 br0 网卡 IP 配置。

ifconfig br0

图片

创建 NAT 网络

此处以基于 default 网卡创建 nat01 网络为例。

查看存在的虚拟网络。

virsh net-list --all

图片

以 default 网络为模板创建虚拟网络 nat01 的配置文件。

virsh net-dumpxml default > /etc/libvirt/qemu/networks/nat01.xml

图片

使用 vim 编辑器,修改配置文件,删除其中的 UUID 和 MAC,并且修改 IP 和名称。

vim /etc/libvirt/qemu/networks/nat01.xml

图片
图片

定义虚拟网络 nat01,设置为自启动并启动网络。


virsh net-define /etc/libvirt/qemu/networks/nat01.xml
virsh net-autostart nat01
virsh net-start nat01

图片

查看虚拟网络。

virsh net-list --all

图片

创建虚拟机

此处以创建一台 openEuler 的虚拟机为例,给虚拟机配置两张网卡,网卡一使用 NAT 网络 nat01,网卡二使用桥接网络 br0。

使用 virt-install 命令创建虚拟机。

virt-install --name openEuler --ram=8192 --vcpus=4 --cpu host-model,+vmx --sysinfo host --disk path=/data/images/openEuler-image.qcow2  --cdrom=/data/iso/openEuler-24.03-LTS-x86_64-dvd.iso --network network=nat01,model=e1000 --network bridge=br0,model=e1000 --boot cdrom  --vnclisten=0.0.0.0 --vncport=5901 --vnc --noautoconsole --osinfo=linux2022
virt-install [选项] [参数]
选项:
 --name    设置虚拟机名称
 --ram    分配内存大小
 --vcpus    分配vcpu数量
 --cpu    CPU型号及特点
 --sysinfo   配置SMBIOS系统信息
 --disk    使用指定的存储
 --cdrom    CD-ROM安装介质
 --network   配置网络接口
 --boot    配置启动设置
 --vnclisten   vnc监听ip
 --vncport   vnc监听端口
 --vnc    配置vnc连接
 --noautoconsole  不要自动尝试连接
 --osinfo   操作系统信息

图片

给虚拟机安装操作系统就是安装 openEuler 操作系统,所以步骤省略。

虚拟机生命周期管理

查看所有虚拟机。

virsh list --all

图片

查看指定虚拟机的信息。

virsh dominfo openEuler

图片

查看虚拟机网卡信息。

virsh domiflist openEueler

图片

关闭虚拟机。

virsh destroy openEuler
virsh list --all

图片

启动虚拟机。

virsh start openEuler
virsh list --all

图片

虚拟机打快照。

virsh snapshot-create openEuler

图片

查看虚拟机快照。

virsh snapshot-list openEuler

图片

删除虚拟机快照。

virsh snapshot-delete openEuler 1744552470

图片

删除虚拟机。

virsh destroy openEuler
virsh undefine openEuler
virsh list --all

图片

本文至此结束。




推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

本文链接:https://zblog.hqyman.cn/post/10519.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:
打赏





休息一下~~


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

请先 登录 再评论,若不是会员请先 注册

您的IP地址是: