简单聊一聊虚拟化(二)—常见硬件虚拟化技术

1. KVM

KVM(for Kernel-based Virtual Machine) 是一个开源的Linux全虚拟化解决方案,要求Linux 系统运行在包含虚拟化扩展(Intel VT 或 AMD-V)的X86硬件上。它由可加载的内核模块kvm.ko组成,它提供核心虚拟化基础架构和处理器特定模块,kvm-intel.ko或kvm-amd.ko。

使用KVM,可以运行多个运行未修改的Linux或Windows映像的虚拟机。每个虚拟机都有专用的虚拟化硬件:网卡,磁盘,图形适配器等。

自Linux 2.6.20之后集成在Linux的各个主要发行版本中。

1.1 主要功能

  • 安全性 KVM 结合利用安全性得到增强的 Linux (SELinux)安全虚拟化 (sVirt) 来加强虚拟机的安全性和隔离性。SELinux 在虚拟机周围建立安全边界。sVirt 则扩展 SELinux 的功能,使强制访问控制 (MAC) 安全机制应用到客户虚拟机,并且预防手动标记错误。
  • 硬件支持 KVM 可以使用多种多样的认证 Linux 兼容硬件平台。因为硬件供应商经常为内核开发出力,所以 Linux 内核中通常能快速采用最新的硬件功能。
  • 实时迁移 KVM 支持实时迁移,也就是能够在物理主机之间移动运行中的虚拟机,而不会造成服务中断。虚拟机保持开机状态,网络连接保持活跃,各个应用也在虚拟机重新定位期间继续运行。KVM 也会保存虚拟机的当前状态,因而能存储下来供日后恢复。
  • 调度和资源控制 在 KVM 模型中,虚拟机是一种 Linux 进程,由内核进行调度和管理。Linux 调度程序允许对分配给 Linux 进程的资源进行精细的控制,并且保障特定进程的服务质量。在 KVM 中,这包括完全公平的调度程序、控制组、网络命名空间和实时扩展。
  • 存储 KVM 能够使用 Linux 支持的任何存储,包括某些本地磁盘和网络附加存储 (NAS)。可以利用多路径 I/O 来增强存储并提供冗余能力。KVM 还支持共享文件系统,因此虚拟机镜像可以由多个主机共享。磁盘镜像支持精简置备,可以按需分配存储,不必预先备妥一切。
  • 内存管理 KVM 继承了 Linux 的内存管理功能,包括非统一内存访问和内核同页合并。虚拟机的内存可以交换,也可通过大型宗卷支持来提高性能,还可由磁盘文件共享或支持。
  • 性能和可扩展性 KVM 继承了 Linux 的性能,在客户机和请求的数量增长时进行扩展,以满足负载的需求。KVM 允许对要求最苛刻的应用工作负载进行虚拟化,而这也是许多企业级虚拟化设置的基础,如数据中心和私有云等(通过 OpenStack®)。
  • 更低延迟,更高优先级 Linux 内核提供实时扩展,允许基于虚拟机的应用以更低的延迟、更高的优先级来运行(相对于裸机恢复)。内核也将需要长时间计算的进程划分为更小的组件,再进行相应的调度和处理。

1.2 KVM架构

2. ESXi

VMware ESXi 是由VMware 公司开发的一款企业级、TYPE-1 的Hypervisor。ESXi 不是一个需要运行在操作系统上的软件应用,而是其整合了操作系统必不可少的组件,比如kernel。

在vsphere 5.0之前的版本中提高的ESX体系依赖基于Linux的控制台(COS)来实现可维护性和基于代理的合作伙伴集成。在独立于操作系统的新ESXi体系结构中,去除了大约2GB的COS,并直接在核心VMKernel中实现了必备的管理功能。

ESXi 内置了管理工具,可以在很轻松的创建和调配虚拟机。在6.5之前用户可以使用vSphere Client 管理ESXi,但是在此之后,VMware 抛弃了客户端应用,专注于HTML5。

2.1 主要特性

  • 占用空间小(仅150MB),可以用更少的资源做更多的事情,同时最大限度地减少对虚拟机管理成本。
  • 可靠的性能 适应任何规模的应用程序。配置最多128个虚拟CPU,6 TB RAM和120个设备的虚拟机,以满足您的所有应用需求。
  • 增强安全性 通过强大的加密功能保护敏感虚拟机数据。基于角色的访问简化了管理,同时广泛的日志记录和审计确保了更高的责任性和更容易的取证分析。
  • 生态系统卓越
  • 友好的用户体验 使用基于HTML5标准的内置现代UI管理日常管理操作。对于需要自动化运营的客户,VMware提供vSphere命令行界面和开发人员友好的基于REST的API。

2.2 Esxi 架构

3. Hyper-v

Hyper-V是微软的硬件虚拟化产品。每个虚拟机都像一台完整的计算机,运行操作系统和程序。当需要计算资源时,虚拟机可以提供更大的灵活性,帮助节省时间和金钱,并且是一种更有效的硬件使用方式,而不仅仅是在物理硬件上运行一个操作系统。

Hyper-V在其自己的隔离空间中运行每个虚拟机,这意味着可以同时在同一硬件上运行多个虚拟机。

3.1 主要特性

  • 计算环境 - Hyper-V虚拟机拥有与物理计算机相同的基本部件,例如内存,处理器,存储和网络。
  • 灾难恢复和备份 - 对于灾难恢复,Hyper-V副本创建虚拟机副本,旨在存储在另一个物理位置,以便从副本还原虚拟机。对于备份,Hyper-V提供两种类型。一个使用保存状态,另一个使用卷影复制服务(VSS),因此可以为支持VSS的程序进行应用程序一致性备份。
  • 优化 - 每个受支持的客户机操作系统都有一组定制的服务和驱动程序,称为集成服务,可以更轻松地在Hyper-V虚拟机中使用操作系统。
  • 可移植性 - 实时迁移,存储迁移和导入/导出等功能使移动或分发虚拟机变得更加容易。
  • 远程连接 - Hyper-V包括虚拟机连接,这是一种用于Windows和Linux的远程连接工具。与远程桌面不同,此工具为您提供控制台访问权限,因此即使操作系统尚未启动,您也可以查看来宾中发生的情况。
  • 安全性 - 安全启动和屏蔽虚拟机有助于防止恶意软件和其他未经授权的虚拟机及其数据访问。

3.2 Hyper-v架构

4. Xen

Xen  是唯一一款开源的TYPE-1的Hypervisor,允许在一台计算机或者主机上同时运行多个实例,这些实例可以运行相同的或者不同的操作系统。Xen 可以被用为商业或开源应用的基础。

4.1 Xen 的主要特性

  • 占用空间小,界面小(约1MB)。因为它使用微内核设计,占用内存小,并且访客接口有限,所以它比其他虚拟机管理程序更强大,更安全。
  • 操作系统不可知:大多数安装以Linux作为主控制堆栈(也称为“domain 0”)运行。但是可以使用许多其他操作系统,包括NetBSD和OpenSolaris。
  • 驱动程序隔离:Xen Project虚拟机管理程序能够允许系统的主设备驱动程序在虚拟机内运行。如果驱动程序崩溃或被破坏,则可以重新启动包含驱动程序的VM并重新启动驱动程序,而不会影响系统的其余部分。
  • 半虚拟化:完全半虚拟化的guest虚拟机已经过优化,可以作为虚拟机运行。这使得guest虚拟机的运行速度比使用硬件扩展(HVM)快得多。此外,管理程序可以在不支持虚拟化扩展的硬件上运行。

4.2 Xen 的架构:

组件说明:

  • The Xen Project Hypervisor:一个非常精简的软件层,可直接在硬件上运行,负责管理CPU,内存和中断。它是引导加载程序退出后运行的第一个程序。Hypervisor 本身不了解网络和存储等I / O功能。
  • Guest Domains/Virtual Machines:虚拟化环境,每个环境都运行自己的操作系统和应用程序。管理程序支持多种不同的虚拟化模式,PV, HVM,PVH。来宾VM与硬件完全隔离:换句话说,它们没有访问硬件或I / O功能的权限。因此,它们也被称为非特权域(或DomU)
  • The Control Domain (or Domain 0) :一种具有特殊权限的专用虚拟机,例如直接访问硬件的能力,处理对系统I / O功能的所有访问以及与其他虚拟机的交互。如果没有Domain 0,Xen Project Hypervisor是不可用的,Domain 0是系统启动的第一个VM。在标准设置中,Dom0包含以下功能:
    • System Services:例如用于管理设置的XenStore / XenBus(XS),向基于Xen的系统公开用户界面的Toolstack(TS),基于Xen的系统中基于QEMU的 Device Emulation(DE)
    • Native Device Drivers:Dom0是物理设备驱动程序的源,因此是Xen系统的本机硬件支持
    • Virtual Device Drivers:Dom0包含虚拟设备驱动程序(也称为后端)
    • Toolstack:允许用户管理虚拟机的创建,销毁和配置。工具堆栈公开了一个界面,该界面由命令行控制台,图形界面或云编排堆栈(如OpenStack或CloudStack)驱动。请注意,Xen可以使用多种不同的工具包
  • Xen Project-enabled operating systems:Domain 0需要启用Xen Project的内核。半虚拟客户需要支持PV的客人。基于比Linux 3.0更新的Linux内核的Linux发行版支持Xen项目,通常包括包含管理程序和工具(默认的Toolstack和控制台)的软件包。除Linux 2.6.24之外的所有旧Linux内核都支持PV,能够运行PV guest虚拟机。

5. 对比

KVMEsxiHyper-VXen
KVMEsxiHyper-VXen
Hypervisor类型Type-1/Type-2Type-1Type-1Type-1
虚拟化方式完全虚拟化完全虚拟化完全虚拟化半虚拟化、完全虚拟化
是否开源
存储支持本地存储和NAS支持精简置备、厚置备置零、厚置备延迟置零;支持本地存储和网络存储(Fibre Channel、Internet SCSI、NAS、SAS)支持固定分配和动态分配支持本地存储和远程存储
网络host-only、NAT、Bridge支持虚拟交换机、分布式虚拟交换机(需要vCenter)提供了三种虚拟交换机类型:外部虚拟交换机、内部虚拟交换机、专用虚拟交换机依赖Dom0 。桥接,Open vSwitch,路由,NAT
管理工具libvirt和virt-managervSphere Web ClientHyper-v管理器ToolStack,Libvirt和XAPI运行
高可用和容错支持实时迁移支持vSphere®High Availability (HA) 、 vSphere Fault Tolerance、vSphere vMotion支持实时迁移、故障转移群集支持实时迁移,保存和还原、Remus容错、X86 vMCE

6.个人使用感受

目前就我个人来说,主要使用的是vSphere Esxi。主要原因就是不需要折腾,可靠性更高一些。

7. 推荐阅读

0

发表评论

电子邮件地址不会被公开。 必填项已用*标注

微信扫一扫,分享到朋友圈

简单聊一聊虚拟化(二)—常见硬件虚拟化技术
返回顶部