什么是虚拟机?
通过标记 ·发布 2016年6月1日 · 更新 2016年6月6日
虚拟机是IT行业最大的革命之一。使用机器托管不同操作系统(从而并行化工作负载)的能力开辟了一个全新的世界。但是什么是虚拟机?
什么是虚拟机?
您可能认为这很复杂,但事实并非如此。虚拟机是在虚拟硬件上运行的虚拟操作系统(或应用程序环境,如JVM)。物理计算机只能同时运行一个操作系统,这是计算机如何工作,而是一个叫专门的软件管理程序,可以使单个计算机上运行多个不同的操作系统在同一时间。这就是虚拟机的意思:从字面上看,不是在真实硬件上运行,而是在使用软件模拟的虚拟硬件上运行的计算机。您可以将虚拟机视为:操作系统之上的操作系统。
虚拟机101 –术语
在研究虚拟机(从此处开始在VM上)时,要理解的一件事是非常重要的。基本上只需要记住几个术语:
- 主机系统(或主机):谈到虚拟化时,它是用于承载称为guest 虚拟机的不同VM的物理系统。主机系统正在运行某种虚拟机管理程序。
- 来宾系统(或来宾):是在物理计算机(主机)上运行的操作系统和与其相关联的虚拟硬件。来宾和VM通常是可互换的术语。
- 系统管理程序:支持虚拟化的软件。它运行在主机系统上并支持来宾系统。有两种类型的管理程序:Type-1和Type-2。
虚拟机102 –虚拟机监控程序类型
系统管理程序分为两种类型:
- Type-1(或裸机):是在最小操作系统上运行的管理程序。该主机系统完全致力于虚拟化,不能用于其他任务。系统管理程序直接与物理硬件交互以实现更快的执行。
- 类型2(或托管):在主机系统上运行一个完整的操作系统和管理程序(一个或多个)最重要的是执行。与Type-1虚拟机管理程序相比,这导致性能更差 。
实际上,还有另一种虚拟机管理程序,有时称为Type-3或Type-1.5。这种类型结合了Type-2提供的完整操作系统的功能和Type-1的性能。即使它们具有不同的功能,也通常将它们视为 Type-1虚拟机管理程序。最常见的示例是KVM。
虚拟机103 –硬件辅助虚拟化
在虚拟化的最初几天,硬件是通过软件完全仿真的。大约在2005年左右,英特尔和AMD都开始着手一套特殊的处理器扩展,后来被称为硬件辅助虚拟化。此扩展与CPU相关,并使虚拟机在虚拟机管理程序上以接近本机的性能运行。今天,这是运行生产环境的首选方法。如果要检查处理器执行硬件辅助虚拟化的能力,则必须搜索 针对Intel的VT-x技术 (对于Intel Itanium为Vt-i)和针对AMD的AMD-V。
虚拟机104 – VM重要事实
到目前为止,我们已经讨论了什么虚拟机。但是他们能做什么?要记住什么是重要的?让我们总结一下:
- 隔离:虚拟机彼此隔离。每个工作负载不同,每个组件也不同。同一台主机上安装了相同软件的两个虚拟机不会产生冲突,并且每个软件都可以在自己的边界内正常运行。
- 主机隔离:不允许VM与主机进行通信(虚拟化职责除外),因此获得对VM的控制权将不允许您在主机系统上运行代码(除非存在诸如Venom这样的巨大漏洞)。
- 不同的硬件:每个VM都有自己的虚拟化硬件,这意味着它们不共享(例如)网络接口卡,而是拥有自己的(具有不同的MAC地址)。
- 性能:即使使用硬件辅助的虚拟化,从数学上讲也无法实现本机性能。设计解决方案时,请记住这一点。
- 资源锁定:(通常)为虚拟机分配一定份额的物理资源(CPU内核,RAM数量,存储)。他们可能还会被分配一个范围,例如:最小2cores最大4cores。
- 精简资源调配:表示提供比物理上更多的资源的操作。假设我有一台具有1TB磁盘的主机,然后创建了两个VM:具有800GB磁盘的VM1和具有500GB的VM2。因为我只拥有1TB磁盘,所以这显然比我拥有的更多。我执行精简配置,是基于两台计算机都不会很快达到分配给它们的最大大小这一事实。此概念也适用于CPU内核和RAM。
- 您不能用32位来模拟64位:即使看起来可能,也不能(除非您拥有64位处理器和32位操作系统)。有关32位和64位的更多信息,请阅读本文。
- 主机和来宾可以有所不同:最常见的误解之一是在主机和来宾系统上都需要具有相同的操作系统。事实并非如此:您可以让Windows托管多个Linux系统,反之亦然。尽管可能存在受支持和不受支持的操作系统。
虚拟机105 –虚拟机监控程序解决方案
如今,实际上有许多虚拟化解决方案,以下是最常见的解决方案:
- 类型1:
- VMware ESXi:及其前身ESX是虚拟化的市场领导者。VMware实际上无处不在,其旗舰产品vSphere是使用最多的虚拟化平台。ESX过去以Linux为基础,而ESXi没有。
- Microsoft Hyper-v:是Microsoft的虚拟化解决方案,自Windows Server 2008开始包含。
- Xen:是一种流行的FOSS虚拟机管理程序,可在* nix发行版上运行,尤其是BSD和Linux。
- QEMU / KVM: KVM是一个相对较新的内核模块,可在管理程序中转换Linux内核。它主要替代了Xen。它通常与QEMU和Libvirt结合使用。
- 类型2:
- VMware Workstation / Player / Workstation Player:是VMware提供的用于小型工作负载的解决方案。Player完全免费,但功能不如付费Workstation。最近,一个新的Workstation Player取代了两者,并且需要付费。在Windows和Linux上运行。对于Mac,请使用VMware Fusion。
- Oracle VirtualBox:是新手中最著名的,许多人都在试用Linux。它是FOSS,可在Windows,Linux和Mac上运行。
- QEMU:是在Linux上运行的软件仿真器,已移植到Windows和Mac。在Linux下,它现在通常与KVM结合使用以实现接近本机的性能。
虚拟机106 –虚拟化平台
目前有很多虚拟化平台,过去只有少数几个,但在最近几年中,尤其是在开源领域中,虚拟化平台的数量不断增长:
- VMware vSphere:是最常用的虚拟化平台。没有vSphere很难找到一个数据中心(至少在某些方面)。vSphere是迄今为止最完善的产品,具有良好的学习曲线。过去,vSphere Client曾经绑定到Windows,在vSphere 6中,Web客户端是管理vSphere的首选方法。vSphere使用ESXi虚拟机管理程序。
- Windows Server:是VMware最接近的竞争对手。Windows Server本身仅是操作系统,而Hyper-V管理程序用于实现虚拟化。
- 红帽企业虚拟化:(或上游项目 oVirt)可能是开源世界中最可靠的产品。过去,RHEV的目标是成为VMware vSphere的替代产品,而今天,它具有自己的目标和独特的功能。
- Citrix XenServer:是基于Xen虚拟机管理程序的平台。它非常流行,并且曾经是首选的“开源”方式。
- Proxmox:是基于KVM和Debian操作系统的开源平台。它是一个可靠的应用程序,是 / r / homeserver(不包括vSphere)的最爱。
虚拟机107 – VM和云
当然,虚拟机是云计算的核心。没有虚拟机,我们就不会拥有云。根据云类型,可以通过多种方式使用VM 。但是,这个主题不够简短,无法适合此博客文章。如果您有兴趣,可以在这里阅读有关Cloud的更多信息。
结论
您现在知道什么是虚拟机以及它们的功能。您现在还了解了虚拟机管理程序及其在虚拟化中的功能。您还知道业内最常见的解决方案。让我们见识下一次革命。等待!已经在这里了吗?今天看看容器!