知名百科  > 所属分类  >  其他科技   

虚拟机

虚拟机(英文全称:Virtual Machine,缩写:VM)是一种基于计算机体系结构的技术,它通过软件将计算机系统虚拟化,从而提供与物理计算机相同的功能。一般来说,虚拟机本质上是一个计算机系统,它可以在完全隔离的环境中通过软件模拟硬件系统的所有功能。在确保虚拟机可以隔离运行的同时,它还可以同步虚拟机和物理主机之间的资源。

1961年,麻省理工学院在IBM 7094机器上实现了第一个分时系统CTSS,随后system/360机器也支持分时系统。1972年,IBM正式将system/370的分时系统命名为虚拟机。1996年,Java虚拟机随着JDK1.0的发布而推出,随后出现了HotSpot VM和OpenJ9等不同的JVM实现。

虚拟机的实现可能依赖于特殊的软件和硬件。从广义上讲,虚拟机可以根据其提供的功能分为两类:系统虚拟机和进程虚拟机。虚拟机具有分区和封装的优点,但同时也存在性能不稳定等缺陷。

目录

概念定义 编辑本段

系统虚拟机:虚拟机的定义首先由Popek和Goldberg提出,它被称为物理计算机的高效和独立副本。这种虚拟机被称为系统虚拟机,它是一个紧密隔离的软件容器,包含操作系统应用程序。每个独立的虚拟机都是完全独立的。通过在一台计算机上放置多个虚拟机,您可以仅在一台物理服务器或“主机”上运行多个操作系统和应用程序。

进程虚拟机:流程虚拟机可以支持单个流程。在过程虚拟机中,虚拟化软件被放置在ABI接口、操作系统和硬件组合上。虚拟软件模拟用户级指令和操作系统调用。通常,底层平台称为主机,运行在虚拟软件中的应用程序称为客户端。虚拟机对应的虚拟机模拟的真实平台称为本地机。在进程虚拟机中,虚拟软件通常被称为运行时。创建运行时是为了支持客户端进程并在操作系统上运行。虚拟机支持客户端进程。只要客户端进程执行,虚拟机就会终止,直到客户端进程终止。

虚拟化技术的概念:虚拟化是通过“软件定义”对物理硬件进行抽象和逻辑化,将逻辑资源与底层硬件隔离开来,通过对逻辑资源的有效管理和利用,实现物理硬件资源效率的最大化。虚拟化技术是一种将事物从一种形式转变为另一种形式的方法,虚拟机技术是虚拟化技术之一。计算机世界中最常用的虚拟化技术是操作系统中的虚拟内存。如果用户需要的内存空间大于物理机的内存,我们可以使用内存虚拟化技术将硬盘的一部分虚拟成内存,在对用户透明的情况下与物理内存一起完成用户的操作。再比如,虚拟专用网技术(VPN)可以用于在公共网络中创建安全稳定的“隧道”,这使用户感觉像在使用专用网络。

虚拟机监视器:虚拟机监视器,也称为虚拟机管理程序或虚拟机监视器。虚拟机通常包含整个操作系统及其应用程序,并且还需要运行虚拟机管理程序来控制虚拟机。虚拟机管理程序是运行在物理服务器和操作系统之间的中间软件层,它允许多个操作系统和应用程序共享一组基本物理硬件,因此也可以将其视为虚拟环境中的“元”操作系统,它可以协调对服务器上所有物理设备和虚拟机的访问。虚拟机管理程序是所有虚拟化技术的核心。无中断支持多工作负载迁移的能力是虚拟机管理程序的基本功能。当服务器启动并执行虚拟机管理程序时,它将为每个虚拟机分配适当数量的内存、CPU、网络和磁盘,并加载所有虚拟机的客户机操作系统。

虚拟机管理器:虚拟机管理器也称为虚拟机监视器(VMM),用于管理彼此独立运行的虚拟机。它在逻辑上将虚拟机彼此分开,并为每个虚拟机分配自己的底层计算能力、内存和存储片。这可以防止虚拟机相互干扰。因此,当一个操作系统崩溃或受到安全攻击时,其他操作系统可能不会受到影响。虚拟机管理器是一个小软件层,它支持多个操作系统并行独立运行并共享相同的物理计算资源。这些操作系统采用虚拟机(VMs)的形式,即在软件中模拟整个计算硬件环境的文件

虚拟机和物理机的区别:虚拟机是指由软件模拟的、具有完整硬件系统功能并在完全隔离的环境中运行的完整计算机系统。物理计算机是相对于虚拟机的物理计算机的名称。物理机为虚拟机提供硬件环境,有时称为“主机”或“主机”。通过物理机和虚拟机的协作,可以在一台计算机上安装多个操作系统(一个外部操作系统和虚拟机中的多个操作系统),并实现多个操作系统之间的通信,就像拥有多台计算机一样。

标准协议 编辑本段

晶体阻抗计(Crystal Impedance Meter):CIM是一种开放标准,旨在提供一个无需代理即可对ESXi主机硬件资源进行标准监控的框架。该框架包括一个CIM对象管理器(通常称为“CIM代理”)和一组CIM提供程序。CIM提供程序用于管理和访问设备驱动程序和底层硬件。这些提供程序可以由硬件供应商编写,例如服务器制造商和硬件设备供应商,以便监控和管理他们的设备。CIM代理从所有CIM提供程序获取信息,并使用标准API将其提供给外部。

OVF:OVF(开放式虚拟化格式)是一种以包的形式组织多个文件的开放式标准。例如。ovf。vmdk。nvram和其他文件。其目的是支持不同产品和平台之间的虚拟设备交换。OVA(开放式虚拟化格式应用程序)是OVF的单一文件发行版。将虚拟机导出为OVF文件时,会创建一个包含OVF文件和虚拟磁盘文件的目录。

虚拟开关:在物理网络拓扑中,常见的连接方法是路由器和交换机之间的连接以及交换机和PC之间的连接。这样,不同的服务器和PC可以通过交换机的连接相互通信。VSwitch是ESXi内核提供的虚拟交换机,用于连接不同的虚拟机和管理界面。它可以由一个或多个虚拟机网络适配器组成,但不同的vSwitch不能使用同一个虚拟机网络适配器。在安装过程中,默认情况下将创建第一个虚拟交换机vSwitch0,用于控制台和虚拟机在线等功能。vSwitch的功能类似于物理网络中的交换机,它使虚拟机能够进行内部通信并与外部网络连接。

vRouter:VRouter(虚拟路由器)模拟传统基于硬件的第三层IP路由器的功能。虚拟路由器通过网络功能虚拟化(NFV)的方式,将原本依赖专用硬件设备的路由功能转变为运行在软件上,而不是依赖商用硬件设备。这样做的好处包括降低硬件成本和帮助实现硬件互操作性,而无需依赖特定的硬件平台。

vmware gsx:Oracle VM VirtualBox是一款开源、低成本和跨平台的桌面虚拟化软件,可以支持多达32个虚拟CPU的大量工作负载。支持的主机操作系统包括Windows、Linux和macOS。通过该软件,开发人员可以在一台设备上运行多个操作系统。同时,使用VirtualBox可以减少桌面和服务器配置,从而降低运营成本并缩短在本地和云中安全部署应用程序所需的时间。

VMware Workstation Pro:VMware Workstation Pro是标准桌面虚拟机管理程序,可用于在Windows或Linux桌面上运行Windows、Linux和BSD虚拟机。借助VMware Workstation Pro,您可以运行复杂的本地虚拟环境,从而在同一台台式机上模拟操作系统、平台和云环境。在开发和测试中使用VMware Workstation Pro可以修复更多错误并按时交付高质量的代码。VMware Workstation Pro具有虚拟网络连接功能,为虚拟机创建和配置复杂的IPv4和IPv6虚拟网络,并添加了网络延迟和带宽模拟功能。

优势特点  编辑本段

优势

划分:虚拟机的分区特性是可以在一台物理机上同时运行多个操作系统,并且可以根据需要将系统资源分配给不同的虚拟机。这种分区功能使虚拟机成为一种灵活高效的解决方案,可以满足不同用户的需求。通过虚拟化技术,可以将一台物理服务器划分为多个虚拟机,每个虚拟机都有自己的操作系统和应用程序,并且相互隔离。这种分区功能使虚拟机能够更好地利用物理资源,提高系统的利用率,并灵活调整和配置不同虚拟机的资源分配,以满足不同工作负载的需求。

包装:虚拟机的这一特性允许它将整个虚拟机的状态保存到一个文件中,这就像移动和复制文件一样简单。这种封装使虚拟机的部署和管理更加方便。

独立于硬件:通过将软件与物理主机分离,用户可以在单个硬件上运行多个操作系统,从而节省企业时间、管理成本和物理空间。此外,虚拟机还可以支持旧应用程序,从而减少或消除将旧应用程序迁移到更新或不同操作系统的需求和成本。

劣势

虚拟机会面临业绩不稳定的问题。当在同一物理主机上运行多个虚拟机时,可能会导致性能不稳定,尤其是在无法满足特定应用程序的基础架构要求时。因为虚拟机需要运行额外的操作系统和应用程序,所以它将占用一定的内存和处理器资源。这意味着当用户同时使用多个虚拟机时,他们可能会感到计算机速度缓慢或资源紧张。虚拟机中的数据也可能因软件故障、计算机崩溃或其他问题而丢失。此外,如果物理服务器崩溃,其上运行的所有虚拟机和应用程序都将受到影响。因此,在使用虚拟机时,需要确保计算机的硬件和软件配置足够强大以满足需求。虚拟机的不正确配置或使用也可能导致对计算机的一些潜在威胁。例如,虚拟机可能会暴露计算机系统中的漏洞,从而给恶意软件入侵计算机提供机会。

相关技术 编辑本段

许多虚拟机使用模拟方法来实现其功能。仿真是将具有不同接口和功能的系统或子系统转换为具有特定接口和功能的系统或子系统的过程。指令集模拟在虚拟机中起着重要的作用,因为虚拟机需要在具有特定指令集的主机处理器上运行用不同指令集编译的二进制程序。

CPU虚拟化:CPU虚拟化是为了确保客户虚拟机可以使用与物理CPU相同的指令集架构。这里的指令集架构是指软件可以看到的状态(如寄存器和内存)以及作用于这些状态的指令。借助CPU虚拟化,客户虚拟机可以在虚拟环境中运行,并与物理CPU进行交互,就像在物理环境中一样。通过这种方式,虚拟化技术可以为用户提供更灵活和可扩展的计算资源,同时保持与物理CPU兼容的指令集架构。

内存虚拟化:在传统系统中,内存地址分为虚拟地址空间和物理地址空间。应用程序使用虚拟地址访问内存,CPU根据虚拟地址到物理地址的映射将虚拟地址转换为可以直接访问的物理地址。这种映射关系维护了从虚拟地址空间到物理地址空间的映射关系。内存虚拟化的核心任务之一就是维护和处理这种双内存地址空间的映射关系。虚拟化技术允许多个应用程序同时在同一台物理机上运行,每个应用程序都有自己的虚拟地址空间,该空间映射到实际的物理地址空间,从而实现更高效的资源利用和隔离保护。

设备虚拟化:设备虚拟化涵盖多种方法,如软件模拟、半虚拟化、直接I/O访问和SR-IOV。其中,软件模拟是最简单的设备虚拟化方式。它拦截客户操作系统发出的设备I/O操作,并完全模拟设备I/O操作的响应,以确保设备虚拟化对客户操作系统是透明的。

解码调度解释:解释程序是模拟和操作机器的程序,它模拟实现源指令集完整结构状态的机器。这台机器包括所有的结构寄存器和主存储器。解释器维护客户端主内存的镜像,包括程序代码和数据。此外,解释器还维护一个名为context block的表,其中包含源结构状态的各种组件,如通用寄存器、程序计数器、条件代码和控制寄存器。这样,解释器可以模拟和操作客户端的整个状态,从而可以在解释器上执行源指令集。解释程序在运行源程序时,会逐个执行指令,并根据指令读取和修改程序的状态。这种类型的解释器通常被称为解码调度解释器。它的工作原理是通过一个中央循环解码每条指令,并将指令分派给相应的解释例程执行。解释器的主要任务是解析指令,执行相应的操作,并根据需要更新程序的状态。这种设计方法可以使解释器更加灵活,可以处理许多不同的指令并根据指令的类型执行相应的操作。

线索解读:decode-dispatch解释器的主循环包含一些直接和间接的分支指令,但这些分支指令可能会对性能产生一定的影响,尤其是在无法准确预测的情况下。解释器主循环的结构通常在循环的顶部停止或中断,然后使用寄存器间接分支跳转switch语句,接着调用解释器例程,该例程通过第二个寄存器间接分支返回主循环,最后通过分支终止循环。线索解释的一个关键特征是使用表格实现赋值的间接跳转。这种间接跳转方法的一个优点是可以独立地修改和重新定位解释例程。因为调度表用于跳转,所以这种方法被称为间接线索解释。

Xen:Xen是一个开源虚拟机监视器,可以在单个物理主机上运行多个客户操作系统。Xen与IA-32、x86-64、安腾和ARM计算机架构兼容。Xen Hypervisor直接在硬件上运行,负责调度CPU、内存和中断。在Xen上运行多个虚拟机,每个运行的虚拟机实例称为域或来宾。其中,有一个特殊的域Domain 0,它包含系统中的所有驱动程序,还包含用于管理虚拟机的创建、固定和配置的控制堆栈。

KVM:KVM是一种基于Linux内核的开源虚拟化技术,是一种集成到Linux内核中的虚拟机管理程序,是一种面向Linux的完全虚拟化解决方案,具有X86架构和支持虚拟化技术的硬件(Intel VT或AMD-V)。它是Linux的一个非常小的模块,使用Linux来做很多事情,例如任务调度、内存管理和与硬件设备的交互,从而实现对虚拟机的管理。

实现模式 编辑本段

半虚拟化:半虚拟化是一种通过修改客户操作系统的代码以部分访问特权状态来直接与VMM交互的技术。在半虚拟化虚拟机中,一些硬件接口以软件的形式提供给客户操作系统,这些接口可以通过Hypercall提供(VMM提供对客户操作系统的直接调用,类似于系统调用)。与完全虚拟化相比,半虚拟化VMM只需模拟部分底层硬件,因此客户操作系统无法在不进行修改的情况下在虚拟机中运行,甚至在虚拟机中运行的其他程序也需要修改。

完全虚拟化:完全虚拟化是一种硬件虚拟化,它允许未经修改的客户操作系统独立运行。实现优先级高于主机操作系统的VMM或超级操作系统是完全虚拟化的基础。监视器或虚拟机管理程序需要两个关键功能来提供和保护虚拟化环境。首先,独立于操作系统的存储管理可以为不同的虚拟环境(如Linux、Windows和嵌入式环境)提供资源,并保护这些环境免受未经授权的访问;其次,切换虚拟化环境,将物理计算资源分配给虚拟机。

操作系统虚拟化:在传统的操作系统中,所有用户的进程本质上都运行在操作系统的同一个实例中,因此内核或应用程序的缺陷可能会影响其他进程。操作系统级虚拟化是一种轻量级虚拟化技术,用于没有VMM层的服务器操作系统。内核通过创建多个虚拟操作系统实例来隔离不同的进程,不同实例中的进程完全不知道彼此的存在。一般来说,操作系统虚拟化是操作系统的虚拟化,需要隔离操作系统资源。

安全隔离 编辑本段

虚拟机提供了更好的隔离,每个虚拟机都在独立的环境中运行,互不影响。这使得虚拟机能够运行不同版本的操作系统和应用程序,从而提供更好的兼容性。由于虚拟机具有一定的隔离特性,每个虚拟机都可以获得独立的CPU指令、内存和存储等物理资源。这意味着虚拟机可以在硬件级别实现故障隔离和安全隔离,同时可以使用高级资源控制功能来保持良好的性能。

隔离技术

虚拟CPU指令隔离:通过将每个虚拟CPU绑定到物理主机的物理处理器核心,实现了虚拟CPU之间的隔离。每个物理CPU核心只能由一个虚拟CPU核心绑定。这种绑定方式保证了每个虚拟CPU的计算负载和指令运行在对应绑定的物理核上,从而实现了虚拟CPU之间的相互隔离。

内存隔离:采用KVM+QEMU虚拟化技术,以Linux操作系统为基础平台是一种常见的技术方案。在这个方案中,每个虚拟机对应一个QEMU进程。QEMU进程负责为虚拟机提供所需的内存和其他资源。虚拟机使用的内存资源实际上是分配给QEMU进程的。在Linux操作系统下,不同的进程相互隔离,它们的虚拟地址空间相互独立。每个进程不能访问其他进程的地址空间,因此虚拟化系统中每个虚拟机的内存空间也是相互隔离的。这可以确保虚拟机之间的安全性和隔离。

资源分配 编辑本段

CPU分配原则:虚拟机的CPU分配原则是尽可能避免虚拟CPU的过度使用。对于单线程应用程序,不需要多线程。虚拟机的虚拟CPU数量应小于或等于物理CPU核心的数量。例如,在双插槽双核服务器配置中,虚拟机应该最多使用两个虚拟CPU。

虚拟机虚拟机

内存分配原则:资源评估后,虚拟机内存分配必须确保虚拟机所需的实际内存尽可能不超过物理内存总量。这意味着当应用程序需要更多内存时,它将使用磁盘内存来解决它,但这可能会降低系统性能。对于关键应用,可以考虑固定内存的方法,以确保性能的稳定性。

磁盘使用原则:虚拟机的磁盘性能受到许多因素的限制,包括阵列磁盘的数量和类型以及在其上运行的虚拟机数量。磁盘访问性能对虚拟机数量有一定影响。内部磁盘的可用性和IO吞吐量相对较弱,因此不建议将虚拟机存储在内部磁盘上,而是使用外部高性能磁盘阵列。

快照和备份:虚拟机的快照类似于数据库的照片,即在特定时间点(创建快照的时间点)拍摄的数据库照片。但是这张照片是一个新的数据库,可以应用于SQL语句。创建快照后,将识别原始数据库的所有数据页。如果在创建快照后修改了数据页,将复制数据页,并复制未修改的数据页;虚拟机的备份本质上是一份拷贝。这相当于将数据库中所有内容的副本复制到一个特定文件(通常是备份文件)中。bak)在某个时间点。备份的结果是一个文件,该文件可以复制或写入磁带。

性能监控和优化:虚拟机常见的性能问题包括CPU负载不足、系统吞吐量不足、重复查询过多、连接池占用、使用不合理等。虚拟机性能优化的原则是尽量减少创建的对象数量,减少全局变量和大型对象的使用。如果出现性能问题,可以从线程池、连接池、虚拟机启动参数、程序算法等方面进行调优。

主要应用 编辑本段

服务器虚拟化:现代计算机系统性能的快速发展,特别是近年来多核CPU的发展,为虚拟机应用提供了更大的舞台。通过虚拟机,可以实现服务器的集成,将原本分布在不同计算机和操作系统上的任务集成到一台计算机上,从而显著降低信息系统的购买、运行和维护成本。

云计算平台中的虚拟机:虚拟机也是云计算的基础,它支持云计算的灵活扩展和资源共享,使计算资源更加高效。云计算以虚拟机技术为基础,为用户提供可定制且能保证服务质量的计算能力,使计算成为可按需定制的公共服务。虚拟机的出现降低了客户操作系统与底层硬件之间的耦合性,因此虚拟机的状态可以完全迁移到其他计算机系统并恢复。这种在线迁移能力为实现集群均衡、移动计算和高可靠性系统提供了一种创新的技术手段。

桌面虚拟化:桌面虚拟化是一种允许用户从设备的独立桌面工作区远程访问和运行应用程序的方法。一种常见的情况是用户使用远程访问软件从家用电脑登录到办公电脑。桌面虚拟化也可以指在一台设备上运行多个虚拟机以保持工作负载的独立性和隔离性。VMware Workstation Player是一款桌面虚拟化应用程序,无需重启即可在同一台计算机上运行一个或多个操作系统。

数据中心虚拟化:在数据中心虚拟化中,虚拟服务器是从传统的物理服务器创建的。该过程通过在虚拟机管理程序的帮助下模拟处理器、操作系统和其他资源来抽象物理硬件。虚拟机管理程序是一种创建和管理虚拟机的软件。它将CPU、内存和存储等资源视为一个池,可以在现有虚拟机或新虚拟机之间重新分配。

附件列表


0

词条内容仅供参考,如果您需要解决具体问题
(尤其在法律、医学等领域),建议您咨询相关领域专业人士。

如果您认为本词条还有待完善,请 编辑

上一篇 数据库管理系统    下一篇 讯飞星火认知大模型

标签

同义词

暂无同义词