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
  • 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

[OS] 计算机资源虚拟化技术的更多相关文章

  1. Linux 小知识翻译 - 「虚拟化技术」

    这次聊聊「虚拟化技术」. 虚拟化技术,有时简称为「虚拟化」,最近经常听人说它.但是却不太清楚它的意思.到底虚拟了什么东西?本来是用来干什么的? 有名的虚拟化软件要数 VMware 和 VirtualB ...

  2. Linux 小知识翻译 - 「虚拟化技术 续」

    这次,继续聊聊「虚拟化技术」. 根据上回的介绍,虚拟化技术可以使「计算机的台数和运行的OS的个数的比例不再是1:1」.这回介绍一下如何使用这个技术. 使用方法之一,「一台计算机上运行多个OS」.从个人 ...

  3. KVM虚拟化技术(七)虚拟机配置文件

    KVM虚拟机的配置文件在/etc/libvirt/qemu/下,为xml文件 整体结构如下: <domain type='kvm'> 虚拟机整体信息 系统信息 硬件资源特性 突发事件处理 ...

  4. KVM虚拟化技术

    KVM虚拟化技术 Qemu-kvm kvm virt-manager VNC Qemu-kvm创建和管理虚拟机 一.KVM简介 KVM(名称来自英语:Kernel-basedVirtual Machi ...

  5. 关于Linux虚拟化技术KVM的科普

    虚拟化技术应用越来越广泛,虚拟化技术需求越来越强劲.KVM.XEN.Docker等比较热门,尤其是KVM技术越来越受欢迎. 基于此背景,了解一下KVM+QEMU就有点必要了. 从网上收集了一些资料进行 ...

  6. 关于Linux虚拟化技术KVM的科普 科普三(From OenHan)

    http://oenhan.com/archives,包括<KVM源代码分析1:基本工作原理>.<KVM源代码分析2:虚拟机的创建与运行>.<KVM源代码分析3:CPU虚 ...

  7. [转] KVM虚拟化技术生态环境介绍

    KVM虚拟化技术生态环境介绍 http://xanpeng.github.io/wiki/virt/kvm-virtulization-echosystem-intro.html kvm和qemu/q ...

  8. 虚拟化技术之KVM

    虚拟化技术之KVM 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.什么是虚拟化 其实虚拟化技术已经不是一个新技术了,上个世纪六十年代IBM公司已经在使用,只不过后来(上个世纪八 ...

  9. 基于KVM、Xen、OpenVZ等虚拟化技术的WEB在线管理工具

    1.Proxmox proxmox是一个开源的虚拟化管理平台,支持集群管理和HA.在存储方面,proxmox除了支持常用的lvm,nfs,iscsi,还支持集群存储glusterfs和ceph,这也是 ...

  10. KVM虚拟化技术(一)虚拟化简介

    一 .虚拟化 虚拟化是指计算机元件在虚拟的基础上而不是真实的基础上运行.虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程.CPU的虚拟化技术可以单CPU模 拟多CPU并行,允许一个平台同时运行多个 ...

随机推荐

  1. Scala编程语言基本常识

    ​ 本文参考来源: Scala编程语言基本常识 – 萌面人博客 ​ 一 基本常识 Scala被称为大数据的黄金语言,它的发明人是马丁奥德斯基(Martin Odersky) 2001年诞生,融合了Ja ...

  2. 一组.NET MAUI绘制的开源控件 - AlohaKit

    前言 今天大姚给大家分享一组.NET MAUI绘制的开源.免费(MIT License)UI控件库:AlohaKit. MAUI介绍 .NET MAUI是一个开源.免费(MIT License)的跨平 ...

  3. Adobe Acrobat XI Pro 打开pdf报错 109

    事件起因: 某同事在使用 Adobe Acrobat XI Pro 打开pdf文件时,会偶发性的报错 "处理页面时发生错误.读取本文当时出现问题(109)."   解决办法: 在网 ...

  4. [使用目前最新版]HybridCLR6.9.0+YooAsset2.2.4实现纯C# Unity热更新方案 (一)

    1.前言 什么是热更新 游戏或者软件更新时,无需重新下载客户端进行安装,而是在应用程序启动的情况下,在内部进行资源或者代码更新 Unity目前常用热更新解决方案 HybridCLR,Xlua,ILRu ...

  5. pinia - 为 antdv 表格添加加载状态

    前言 我们之前制作的 Vue3 + AntDesign Vue + SpringBoot 的增删改查小 Demo 的功能已经全部实现了,但是还是有一点不完美,在发送请求到后端返回数据这一段时间内前台未 ...

  6. 74.数组map能干什么,会改变原数组吗

    map是处理数据的方法,不会改变原数组,会返回一个新数组 : filter 也不会改变原数组,会返回新数组 : forEach 也不会改变原数组,不会返回新数组 : reduce不会改变原数组 : 是 ...

  7. Android复习(四)权限—>请求应用权限

    每款 Android 应用都在访问受限的沙盒中运行.如果应用需要使用其自己的沙盒外的资源或信息,则必须请求相应权限. 要声明您的应用需要某项权限,您可以在应用清单中列出该权限,然后在运行时请求用户批准 ...

  8. day03-了解ajax

    Ajax Ajax即Asynchronous Javascript And XML(异步JavaScript和XML). Ajax是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术,这使得程 ...

  9. 多校A层冲刺NOIP2024模拟赛05

    T1.好数(number) 签到题 把选三个数相加拆为选择一个数,然后看前面有没有能用两个数组合出答案. $ O(n^2) $ . 码( #include<bits/stdc++.h> u ...

  10. 云原生周刊:开发人员使用 GPT-4 的 30 种重要方法 | 2023-6-5

    OpenAI 最新的大型语言模型 GPT-4 有非常多的用途,那么,作为开发人员,应该如何去使用它,来帮助自己工作呢? 在最近的 Hacker News 问答中,很多开发人员参与了讨论和分享. 也有人 ...