Libvirt虚拟化技术介绍
Libvirt 是目前使用最为广泛的对 KVM 虚拟机进行管理的工具和应用程序接口。尽管 Libvirt 项目最初是为 Xen 设计的一套 API,但是目前对 KVM 等其他 Hypervisor 的支持也非常好。Libvirt 支持多种虚拟化方案,既支持包括 KVM、QEMU、Xen、VMware、VirtualBox 等在内的平台虚拟化方案,又支持 OpenVZ、LXC 等 Linux 容器虚拟化系统,还支持用户态 Linux(UML)的虚拟化。
Libvirt 的基本架构是基于驱动程序的架构,该架构允许一种通用的 API 以通用方式为大量潜在的虚拟机监控程序提供服务。通过 Libvirt,一些用户空间管理工具可以管理各种不同的 Hypervisor 和上面运行的客户机,它们之间基本的交互框架如上图所示。
Libvirt 运行原理在 libvirt 中涉及几个重要的概念,解释如下:
* 节点(Node)是一个物理机器,上面可能运行着多个虚拟客户机。Hypervisor 和 Domain 都运行在节点上。
* Hypervisor 也称虚拟监视器(VMM),如 KVM、Xen、VMware、Hyper-V 等,是虚拟化中的一个底层软件层,它可以虚拟化一个节点让其运行多个虚拟客户机(不同客户机可能有不同的配置和操作系统)。
* 域(Domain)是在 Hypervisor 上运行的一个客户机操作系统实例。域也被称为实例(instance)、客户机操作系统(guest os)、虚拟机(virtual machine),它们都是指同一个概念。
Libvirt 的管理功能主要包含如下五个部分:
* 域的管理
* 远程节点的管理
* 存储的管理
* 网络的管理
* 提供一个稳定、可靠、高效的应用程序接口
Libvirt API 介绍
Libvirt 提供了一个通用的 API,以便让开发者可以轻松地使用 Libvirt 的功能。Libvirt API 包括以下几个部分:
* 连接管理:提供了连接到虚拟机监控程序的接口。
* 域管理:提供了管理虚拟机的接口,包括创建、启动、停止、删除等操作。
* 存储管理:提供了管理存储池和存储卷的接口。
* 网络管理:提供了管理网络和网络接口的接口。
Libvirt 工具集介绍
Libvirt 提供了一个工具集,用于管理虚拟机和虚拟化环境。这些工具包括:
* virsh:是一个命令行工具,用于管理虚拟机和虚拟化环境。
* virt-install:是一个命令行工具,用于创建和安装虚拟机。
* virt-manager:是一个图形化工具,用于管理虚拟机和虚拟化环境。
Libvirt XML 配置文件介绍
Libvirt 使用 XML 配置文件来存储虚拟机的配置信息。这些配置文件包括:
* 域配置文件:用于存储虚拟机的配置信息。
* 存储池配置文件:用于存储存储池的配置信息。
* 网络配置文件:用于存储网络的配置信息。
实验四 使用 virsh 创建虚拟机
在这个实验中,我们将使用 virsh 工具创建一个虚拟机。我们需要使用 virsh 连接到虚拟机监控程序,然后使用 create 命令创建一个虚拟机。我们使用 list 命令查看虚拟机的状态。
实验五 virsh 命令行工具虚拟机的管理
在这个实验中,我们将使用 virsh 工具管理虚拟机。我们将使用 virsh 工具停止、启动和删除虚拟机。
实验六 virsh 命令行工具网络的管理
在这个实验中,我们将使用 virsh 工具管理网络。我们将使用 virsh 工具创建、删除和配置网络。
实验七 virsh 命令行工具存储池的管理
在这个实验中,我们将使用 virsh 工具管理存储池。我们将使用 virsh 工具创建、删除和配置存储池。
实验八 virsh 命令行工具存储卷的管理
在这个实验中,我们将使用 virsh 工具管理存储卷。我们将使用 virsh 工具创建、删除和配置存储卷。