网络服务器配置与管理教辅书 Help

9-1 虚拟化、安装KVM

===

虚拟化介绍

虚拟化:
虚拟化(Virtualization)是云计算的基础,可以在一台物理服务器上跑多台虚拟机。 虚拟机共享物理主机的硬件资源,但逻辑上虚拟机之间是相互隔离的。 虚拟化技术是一种资源管理技术,将计算机的各种物理资源(CPU、内存、磁盘空间、网络适配器等)予以抽象、转换,然后呈现出来的一个可供分割并任意组合为一个或多个(虚拟)计算机的配置环境。 可以把一台高配置的物理机分割成多台独立的虚拟机,分配个不同需求的用户使用。

虚拟机软件: 桌面家用级别有VMware Workstation、Virtual Box、微软的Hyper-V等。
商用级别:开源的KVM、Xen,商业化的VMware ESXi、华为Fusion Compute等。

KVM:
KVM(Kernel-based Virtual Machine)是一个开源的、基于内核的系统虚拟化模块,自Linux2.6.20之后集成在Linux的各个主要发行版本中,是基于硬件的完全虚拟化。 KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术),且使用Linux系统的调试器进行管理,因此KVM对资源的管理效率比较高。 KVM体系一般包括三个部分:KVM内核模块、QEMU和管理工具,其中KVM内核模块和QEMU是KVM的核心组件。
虚拟化之后就是市面上售卖的VPS云主机。

OpenStack:
功能复杂强大,由计算节点,存储节点等数个子系统构成,用于构建分布式私有云,提供复杂的管理统计功能如按带宽用量计费,为用户提供弹性计算。其虚拟化层可以采用KVM。

KVM介绍

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

  2. Qemu设备模拟 Qemu是用户态工具,可以为客户机提供设备模拟的功能,包括模拟BIOS、数据总线、磁盘、网卡、显卡、声卡、键盘、鼠标等。

安装

  1. 开机前给Linux虚拟机尽可能大的资源。VMware可以在Windows物理机上做实验,而KVM需要在Linux上做实验,所以实验用的虚拟机会作为下一层的“物理机”,发生虚拟化嵌套🪆。

    1. 内存资源。尽量给到最大6G(如果宿主机为8G)。

    2. CPU资源。给4~10虚拟核心数量(如果宿主机cpu物理核心数为6逻辑核心12)。

    3. (⭐重要)CPU支持虚拟化。VMware虚拟机设置-CPU处理器-开启intel-☑️勾选vtx虚拟化技术。虽然目前市面上的CPU都已经支持虚拟化,但主板上BIOS中还有一个开关,在虚拟机中直接在设置中勾选支持虚拟化就可以。不操作这一步会导致KVM安装启动后报错。
      C9/开机前检查cpu虚拟化支持是否打开

    4. 其它准备:本机房需要禁用Virtualbox网卡。

  2. 检查CPU虚拟化支持。如果失败则关闭虚拟机调整设置。

    # 查看cpu信息,查看Virtualization字段,值应该是FULL全支持 lscpu

    C9/9-1检查cpu虚拟化支持.png

    # 查看cpu指令集信息,是否支持intel或amd公司与虚拟化技术相关的指令集,下面的命令返回值应该>0 egrep -c '(vmx|svm)' /proc/cpuinfo

    C9/9-1检查cpu虚拟化支持2.png

  3. 换源

    sed -i -e "s|mirrorlist=|#mirrorlist=|g" /etc/yum.repos.d/CentOS-* sed -i -e "s|#baseurl=http://mirror.centos.org|baseurl=https://mirrors.cloud.tencent.com|g" /etc/yum.repos.d/CentOS-* yum makecache
  4. 安装

    • libvirt是一套免费、开源的支持Linux下主流虚拟化管理程序的C函数库,其旨在为包括KVM在内的各种虚拟化管理程序提供一套方便、可靠的编程接口。

    • virsh命令行工具。

    • virt-manager,图形化管理工具,依赖libvirt。

    yum install qemu-kvm libvirt libvirt-client virt-manager

    C9/9-1安装libvirt.png

  5. 启动进程

    # 软件名libvirt,进程名libvirtd systemctl start libvirtd systemctl status libvirtd

    C9/9-1启动服务.png

15 二月 2026