目 录CONTENT

文章目录

KVM虚拟化学习

koniaoer
2025-04-22 / 0 评论 / 0 点赞 / 16 阅读 / 0 字 / 正在检测是否收录...
温馨提示:
部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

 kvm虚拟化简介

KVM虚拟化是基于Linux内核的一个开源虚拟机管理器,提供系统级虚拟化解决方案‌

KVM,全称Kernel-Based Virtual Machine,即基于内核的虚拟机。它是一个开源的系统虚拟化模块,自Linux 2.6.20版本之后被集成到主流的Linux发行版中。KVM使用Linux自身的调度器进行管理,依赖于硬件特性如Intel VT或AMD-V技术来实现全虚拟化,从而提供了硬件级别的虚拟化性能优势‌

l  KVM核心模块

主要包括KVM虚拟化核心模块KVM.ko,以及硬件相关的KVM_intel和KVM_AMD模块,主要负责CPU和内存虚拟化,包括创建VM,内存分配与管理、vCPU执行模式切换等。

         KVM.ko内核的一部分,相当于管理内存虚拟硬件设备的驱动,专门用来管理虚拟CPU和虚拟内存相关的事务,例如创建、分配、回收等等。

l  Qemu设备

Qemu是用户态工具,可以为客户端提供除CPU和内存虚拟化之外的几乎所有功能,例如BIOS、数据线、磁盘、显卡、声卡、外设设备等。

由于KVM.ko内核模块只提供CPU和内存的虚拟化功能,还要其他的工具,kvm选择了开源的Qemu软件,对它进行了相应的开发,产生了Qemu-kvm工具。

总结:KVM负责提供对CPU、内存的虚拟化,Qemu负责除CPU和内存外的其他设备的虚拟化以及各种虚拟化设备的创建与调用。

l  Libvirt设备

Libvirt是一套免费、开源支持KVM管理的工具,开源调用kvm各种虚拟化管理程序的接口,根据libvirt开发的管理工具有 virt-manager、virsh等。

简单理解,libvirt能提供格式化功能、底层的命令行功能。

Libvirt主要由3个部分组成,即API库、守护进程libvirtd和默认命令行管理工具virsh

kvm虚拟化总结

Kvm内核负责CPU、内存的虚拟化;

Qemu负责除CPU、内存虚拟化之外的各种硬件设备的虚拟化;

Libvirt负责调用接口管理虚拟机、格式化、命令行管理等;

KVM环境配置

查看虚拟机是否具备虚拟化的条件

egrep -c '(vmx|svm)' /proc/cpuinfo

如果执行该命令返回结果为0,则表示CPU不支持虚拟化,需要开启对虚拟化的支持;如果返回1或者大于1,则表示CPU支持虚拟化。其中vmx代表intel的cpu处理器、svm代表ADM的cpu处理器

KVM软件包安装

Qemu-kvm包:

主要负责除CPU和内存虚拟化以外的硬件虚拟化,配合kvm内核创建虚拟机

openssl包:

主要是提供安全通信和加密功能,保障虚拟机之间以及虚拟机与宿主机之间的安全通信

libvirt包

主要负责提供统一的接口来管理虚拟机,简化管理流程,提供格式化界面。主要包含三个部分:API、libvirtd进程、virsh命令行工具

yum -y install qemu-kvm.x86_64
yum install -y openssl.x86_64
yum install -y libvirt.x86_64
systemctl enable libvirtd
systemctl start libvirtd
virsh -c qemu:///system list
virsh --version
yum -y install virt-install
yum -y install libguestfs-tools.noarch
yum -y install bridge-utils

返回如上信息代表安装完成

KVM图形化管理工具

如果是命令行系统则需要安装图形化界面,作者这里以centos7为示例,要下载相关的工具包,"GNOME Desktop" "Graphical Administration Tools",通过yum grouplist查询,yum groupisntall安装。

如果开始安装虚拟机时iso镜像就是带桌面的镜像,则不需要安装

使用yum grouplist查询要安装的桌面化包

yum grouplist

English

yum -y groupinstall "GNOME Desktop" "Graphical Administration Tools"
systemctl set-default graphical.target
reboot

中文

yum -y groupinstall "GNOME 桌面" "图形管理工具"
systemctl set-default graphical.target
reboot

安装virt-manager

virt-manager是一款适用于Linux平台的软件,用于管理KVM虚拟环境。它是一个图形化的桌面用户接口,主要功能包括定义和创建虚拟机、硬件管理、性能监视、虚拟化的保存和恢复、暂停和继续、关闭和启动、还可以利用控制台对虚拟机在线、离线控制等。

一般是通过ssh连接libvirt管理工具。主要支持linux相关的系统,例如centos、rhel等。Virt-manager安装之前需要安装libvirt和qemu-kvm包,并启动libvirtd进程

yum install -y virt-manager.noarch

图形化界面

注:如果下载安装后,界面没有该图标,可以重启虚拟机。

把镜像传入主机中

创建KVM虚拟机

图形化操作

图形化操作很简单,与VMware创建方式类似

命令行操作
  1. 首先创建一个磁盘

这里设置磁盘为20g

qemu-img create -f qcow2 /var/lib/libvirt/images/kvm1.qcow2 20G

  1. 创建虚拟机

使用之前传进宿主机终端中的镜像,并绑定前面创建的磁盘

virt-install --virt-type kvm --name kvm1 --ram 1024 --cdrom=/mnt/CentOS-7-x86_64-Minimal-2009.iso --disk path=/var/lib/libvirt/images/centos7.qcow2 --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

参数详解:

l  --virt-type kvm 要使用的管理程序名称 (kvm, qemu, xen, ...)

l  --name 客户机实例名称

l  --ram 内存大小(MB),如 --ram 4096

l  --cdrom 光驱安装介质

l  --disk path 指定存储的各种选项,磁盘的路径

l  --network 指定网络创建

l  --graphics配置客户机显示设置,listen监听,0.0.0.0代表监听本机上的所有的IPV4的地址。

l  –noautoconsole 不要自动尝试连接到客户端控制台

使用这个命令查询已经创建的虚拟机

 virsh list --all

l  底层查看虚拟机列表
virsh -c qemu:///system list

KVM网络模式解析

nat模式
命令行创建
cd /usr/share/libvirt/networks/
cp default.xml test_network.xml
virsh net-define test_network.xml
virsh net-list --all
virsh net-start test_network
virsh net-autostart test_network

网络名称由自己修改

隔离模式

桥接模式

路由模式

0

评论区