Hypervisor扮演着将物理资源虚拟化和分配给虚拟机的角色,因此它本身具有相当的复杂性
5.2.2 镜像服务的功能
镜像服务主要是用来灌流镜像,让用户能够发现、获取和保存镜像,主要功能如下:
查询和获取镜像的元数据和镜像本身(元数据:镜像的概要信息和描述信息)
注册和上传虚拟机镜像,包括镜像的创建、.上传、 下载和管理
维护镜像信息,包括元数据和镜像本身。
支持多种方式存储镜像,包括普通的文件系统、Swift、 Amazon S3等
对虚拟机实例执行创建快照命令来创建新的镜像,或者备份虚拟机的状态。
5.2.3 镜像的 API 版本
Glance提供的RESTful API有两个版本:V1,V2:
v1只提供基本的镜像和成员操作功能,包括镜像创建、删除、下载、列表、详细信息查询、 更新,以及镜像租户成员的创建、删除和列表。
v2除了支持v1的所有功能外,主要增加了镜像位置的添加、删除、修改,元数据和名称空间操作,以及镜像标记操作。
DB数据库:将镜像转换为相应的格式以存储在数据库中,并将从数据库读取的信息转换为可以操作的镜像对象。
Nova-api对接收到的HTTP API请求做以下处理:1、检查客户端传入的参数是否合法有效(而不止是进行认证)2、调用nova其他服务来处理客户端HTTP请求3、格式化nova其他子服务返回的结果,并返回给客户端
在计算机领域中,“宿主机”和“租主机”通常指的是虚拟化技术中的两个重要概念。
-
宿主机(Host Machine):宿主机是指物理服务器或宿主系统,即运行虚拟化软件(如VMware、VirtualBox、KVM等)的物理硬件。宿主机的操作系统负责管理硬件资源,并允许多个虚拟机实例在其上运行。宿主机负责分配硬件资源给虚拟机,包括处理器、内存、存储和网络等资源。
-
租主机(Guest Machine):租主机是指在宿主机上运行的虚拟机实例,也称为虚拟客户机。每个租主机都运行着自己的操作系统和应用程序,它们之间相互隔离并共享宿主机的物理资源。租主机可以拥有独立的文件系统、独立的网络配置和独立的用户空间,就像它们是在真实的硬件上运行一样。
总之,宿主机是指物理服务器或宿主系统,而租主机则是在宿主机上运行的虚拟机实例。虚拟化技术使得在一台物理服务器上能够同时运行多个独立的虚拟机,从而更好地利用硬件资源,提高了灵活性和资源利用率。
5.3.3.3 compute计算组件
Nova-compute在计算节点上运行,负责管理节点上的实例。通常一个主机运行一 个Nova-compute服务, 一个实例部署在哪个可用的主机上取决于调度算法。OpenStack对实例的操作最后都是提交给Nova-compute来完成。
————————————————
Nova-compute可分为两类,一类是定向openstack报告计算节点的状态,另一类是实现实例生命周期的管理。
定期向OpenStack报告计算节点的状态
每隔一段时间,nova-compute就会报告当前计算节点的资源使用情况和nova-compute服务状态。nova-compute是通过Hypervisor的驱动获取这些信息的。
实现虚拟机实例生命周期的管理
OpenStack对虚拟机实例最主要的操作都是通过nova-compute实现的。包括创建、关闭、重启、挂起、恢复、中止、调整大小迁移、快照。
以实例创建为例来说明nova-compute的实现过程。
(1)为实例准备资源。
(2)创建实例的镜像文件。
(3)创建实例的XML定义文件。
(4)创建虚拟网络并启动虚拟机
————————————————
创建实例的镜像文件和创建实例的XML定义文件是两个不同的概念。
-
创建实例的镜像文件:镜像文件是指一个包含了操作系统和应用程序的预配置的虚拟磁盘映像文件。创建实例时需要指定所使用的镜像文件,系统会将该镜像文件加载到新创建的虚拟机实例中。镜像文件可以通过手动创建、下载或使用现有的镜像来生成,可以是操作系统的安装光盘映像、云服务提供商提供的公共镜像、自己制作的私有镜像等。
-
创建实例的XML定义文件:XML定义文件是一种包含了对虚拟机实例的描述信息的文件,通常使用Libvirt的XML格式进行定义。XML定义文件包含了虚拟机实例的名称、UUID、内存大小、CPU数量、磁盘配置、网络配置等信息。创建实例时需要指定所使用的XML定义文件,系统会根据该文件的描述信息来创建虚拟机实例。
总之,创建实例的镜像文件和创建实例的XML定义文件是两个不同的概念。镜像文件是一个预配置的虚拟磁盘映像文件,用于部署操作系统和应用程序。而XML定义文件是一个包含了虚拟机实例的描述信息的文件,用于定义虚拟机实例的配置和属性。虽然二者都是创建实例时需要使用的文件,但它们所描述的内容不同,各自独立。
在虚拟化技术中,存在多种不同的Hypervisor(虚拟机监控程序),常见的Hypervisor包括:
-
Type 1 Hypervisor:也称为裸机Hypervisor或直接运行Hypervisor,直接安装在物理主机上,而不需要操作系统来提供虚拟化服务。常见的Type 1 Hypervisor包括VMware vSphere/ESXi、Microsoft Hyper-V、Xen等。
-
Type 2 Hypervisor:也称为主机模式Hypervisor,运行在一个标准操作系统之上,通过操作系统来访问硬件资源。常见的Type 2 Hypervisor包括Oracle VirtualBox、VMware Workstation、Parallels Desktop等。
-
KVM(Kernel-based Virtual Machine):KVM是一种开源的Type 1 Hypervisor,它利用Linux内核来实现虚拟化功能,通过将Linux内核作为Hypervisor,可以实现对多个虚拟机的管理和调度。
-
Xen:Xen是一种开源的Type 1 Hypervisor,最初由剑桥大学开发,后来成为Linux Foundation项目的一部分。Xen可以在一个物理主机上同时运行多个客户操作系统,并且具有较高的性能和安全性。
-
Microsoft Hyper-V:Hyper-V是微软推出的一种Type 1 Hypervisor,它可以在Windows Server操作系统上运行,并提供了一套完整的虚拟化解决方案。
-
VMware vSphere/ESXi:vSphere是VMware推出的一套虚拟化解决方案,其中ESXi是VMware的Type 1 Hypervisor产品,可直接安装在物理服务器上,并提供了丰富的虚拟化管理功能。
每种Hypervisor都有其自身的特点和适用场景,选择合适的Hypervisor取决于具体的应用需求、性能要求和管理需求。企业在部署虚拟化平台时通常会根据实际情况来选择适合自己的Hypervisor。
5.3.3.5 Placement API
以前对资源的管理全部由计算节点承担,在统计资源使用情况时,只是简单的将所有计算节点的资源情况累加起来,但是系统中还存在外部资源,这些资源由外部系统提供。如ceph、nfs等提供的存储资源等。
面对多种多样的资源提供者,管理员需要统一的、简单的管理接口来统计系统中资源使用情况,这个接口就是Placement API。
PlacementAPI由nova-placement-api服务来实现, 旨在追踪记录资源提供者的目录和资源使用情况。被消费的资源类型是按类进行跟踪的。 如计算节点类、共享存储池类、IP地址类等。
————————————————