[操作系统] 计算机资源虚拟化技术

1 定义:计算机资源虚拟化

  • 服务器虚拟化主要通过软件技术物理服务器硬件资源抽象化 ,创建多个独立的虚拟服务器环境

2 虚拟化技术方向

以下是一些常见的服务器虚拟化方式和工具:

基于hypervisor的虚拟化

  • Hypervisor技术: 也称为虚拟机监视器Virtual Machine MonitorVMM),是一种运行在物理服务器和操作系统之间的软件。

它允许多个操作系统在同一台物理服务器上同时运行。Hypervisor提供了虚拟化技术的核心功能,使得每个操作系统实例(即虚拟机)都能够独立运行,就像它们各自运行在独立的物理机器上一样。
根据Hypervisor宿主操作系统的关系,它们可以分为两大类:

  • Type-1 Hypervisor(裸机Hypervisor):直接运行在物理硬件之上,不依赖于宿主操作系统

这种类型的Hypervisor提供了更好的性能和资源利用率,因为它们直接控制硬件资源。

常见的实现方案有: VMware vSphere ESXi、Microsoft Hyper-V和Citrix XenServer。

  • Type-2 Hypervisor(宿主型Hypervisor):运行在宿主操作系统之上

常见的实现方案有: VMware Workstation 和 Oracle VirtualBox。

这种类型的Hypervisor通常用于个人电脑或开发环境,因为它们不需要直接访问硬件资源。
Hypervisor是现代数据中心和云计算环境中的关键技术,它们使得服务器资源的利用更加灵活和高效,同时也支持了虚拟化技术的发展。

  • Hypervisor的主要功能:
  1. 资源管理:Hypervisor管理着物理服务器的资源(如CPU、内存、存储和网络接口),并将其分配给各个虚拟机。
  2. 隔离性:Hypervisor确保各个虚拟机之间的操作是相互隔离的,一个虚拟机的故障或安全问题不会影响到其他虚拟机。
  3. 调度:Hypervisor负责CPU时间的分配,确保各个虚拟机能够公平地访问CPU资源。
  4. 设备模拟:Hypervisor模拟硬件设备,使得虚拟机可以像在真实硬件上一样运行。
  5. 安全性:Hypervisor提供了一个安全的环境,可以防止虚拟机之间的相互干扰。

操作系统级虚拟化

  • 在操作系统层面上实现虚拟化,通过在单个操作系统 【内核】中创建多个独立的用户空间实例

这种方式的优点是资源利用率高、启动速度快,但隔离性相对较弱

常见的实现方案有: Linux容器(如Docker)和Solaris Zones等

3 虚拟化工具

常见的服务器虚拟化工具

  • VMware vSphere/ESXi:企业级虚拟化平台,提供数据中心虚拟化产品和应用程序及基础架构管理工具
  • Microsoft Hyper-V:作为Windows Server的组成部分,提供基于Hypervisor的服务器虚拟化技术
  • Citrix XenServer:基于开源Xen系统管理程序的服务器虚拟化系统,提供接近裸机的性能
  • Red Hat Virtualization (RHV):基于KVM的虚拟化平台,适用于企业级环境
  • Oracle VM:提供可伸缩、低成本的服务器虚拟化
  • Proxmox VE:基于Debian的开源虚拟化平台,结合了KVM和LXC技术,提供易于使用的Web界面和丰富的管理功能
  • KVM (Kernel-based Virtual Machine):开源免费,直接集成到Linux内核,性能高效

注:支持基于JVM,虚拟化 Windows

这些工具和方式各有特点,适用于不同的场景和需求,可以根据具体的业务需求选择合适的虚拟化解决方案。

Y FAQ

Q: VirtualBox vs. VMware Workstation 的区别?

  • VirtualBoxVMware是两种不同的虚拟化软件,它们之间有以下比较 :
    • 开源 vs 商业:VirtualBox是开源的,VMware是商业产品。
    • 适用场景:VirtualBox适合个人和小型企业,VMware适合大型企业和数据中心。
    • 性能:VMware Workstation Pro性能较高,特别在3D加速方面。
    • 管理功能:VMware功能更强大,VirtualBox较弱。
    • 限制:VirtualBox对虚拟机有一些限制,如CPU核心数等。

详情参见: 再议 VirtualBox 与 VMware 对比,VirtualBox 没有你想的那么不堪 - dev.leiyanhui.com

  • VirtualBox
shell 复制代码
svn co https://www.virtualbox.org/svn/vbox/trunk vbox
  • VMware

https://www.vmware.com/products/desktop-hypervisor/workstation-and-fusion
https://support.broadcom.com/group/ecx/productfiles?subFamily=VMware%20Workstation%20Pro

Q:如果按cpu模拟与否来分类虚拟化技术,可以怎么划分?

  • 用代码来模拟cpu的: qemu,bochs,pcem,模拟更彻底,适合操作系统的编程和研究。

运行速度稍慢,是代码模拟cpu的必然结果,一般用户会计较速度。但对于底层编程的程序员来说,第一类适应性最广,可以在x86机型上跑出其它各种cpu,是第二类做不到的。

  • 直接使用主机cpu的:vmware,virtualbox,kvm,适合跑一般软件。

至于vmware和virtualbox之间的差别,就目前当然还是vmware性能更好,细分功能更多,诸如商业服务器都是选择vmware。

X 参考文献

虚拟化技术的发展过程 / Virtual Machines VS. Docker

相关推荐
阑梦清川15 小时前
linux操作系统课程学习02
操作系统
阑梦清川15 小时前
linux操作系统课程学习01
操作系统
望获linux3 天前
【实时Linux实战系列】CPU 隔离与屏蔽技术
java·linux·运维·服务器·操作系统·开源软件·嵌入式软件
数据智能老司机4 天前
Linux内核编程——网络驱动程序
linux·架构·操作系统
数据智能老司机4 天前
Linux内核编程——字符设备驱动程序
linux·架构·操作系统
数据智能老司机4 天前
Linux内核编程——Linux设备模型
linux·架构·操作系统
望获linux4 天前
【Linux基础知识系列】第四十篇 - 定制彩色终端与 Prompt
linux·运维·前端·chrome·操作系统·开源软件·嵌入式软件
望获linux14 天前
【实时Linux实战系列】实时I/O操作与中断处理
linux·服务器·microsoft·操作系统·交互·rtos·嵌入式软件
redreamSo14 天前
世俗点,假如幸福能量化,公式是什么?
操作系统
智践行14 天前
ROS2 Jazzy:编写可组合节点(C++)
操作系统