什么是虚拟化
虚拟化(Virtualization)是一种资源分配和管理技术,是将计算机的各种实体资源,比如CPU、内存、磁盘空间、网络适配器等,进行抽象转换后虚拟的设备,可以实现灵活地分割、组合为一个或多个计算机配置环境,并还支持重新分割、重新组合,以达到最大化合理利用物理资源的目的。
虚拟化优势
虚拟化技术提供了多种优势,使其成为现代数据中心和云计算环境中不可或缺的一部分。以下是虚拟化技术的一些主要优势:
-
资源利用率提高:
- 虚拟化允许多个虚拟机(VM)共享同一物理硬件资源,如 CPU、内存和存储,从而提高硬件资源的利用率。
- 资源超分:实际物理内存只有128G,可给虚拟机分配200G内存。先定额度再按需分配。
-
成本节约:
- 通过减少对物理服务器的需求,可以降低硬件采购、维护和能源消耗的成本。
-
灵活性和可扩展性:
- 虚拟化提供了快速部署新虚拟机的能力,可以根据需要轻松调整资源分配,实现水平和垂直扩展。
-
隔离和安全性:
- 每个虚拟机都是独立的,它们之间相互隔离,这有助于提高安全性并减少潜在的系统间冲突。
-
灾难恢复和业务连续性:
- 虚拟机可以快速迁移到其他物理服务器,这在灾难恢复和确保业务连续性方面非常有用。
-
简化管理:
- 虚拟化管理工具提供了集中管理界面,简化了服务器配置、监控和维护工作。
-
测试和开发环境:
- 虚拟化技术可以快速创建和销毁测试环境,支持软件开发和测试的敏捷性。
-
环境一致性:
- 虚拟机可以在不同的物理服务器之间迁移,保持应用和配置的一致性,这对于开发和生产环境的一致性至关重要。
-
能源效率:
- 虚拟化可以减少数据中心的能源消耗,因为服务器可以运行在更高的负载下,而不需要额外的硬件。
-
负载均衡:
- 通过在多个虚拟机之间分配工作负载,可以提高整体系统的性能和可靠性。
-
快速部署和迁移:
- 虚拟机可以在几分钟内部署,并且可以在不同的物理服务器之间快速迁移,这对于快速响应市场变化和业务需求至关重要。
-
兼容性:
- 虚拟化技术可以模拟不同的硬件和操作系统环境,使得在新硬件上运行旧软件或在不同操作系统之间迁移应用变得更加容易。
发展史
类型
虚拟化技术可以根据其应用的领域和目的分为多种类型。
-
服务器虚拟化(Server Virtualization):
- 创建多个虚拟服务器(虚拟机)在单一物理服务器上运行,允许多个操作系统和应用程序共享硬件资源。
-
网络虚拟化(Network Virtualization):
- 通过软件定义网络(SDN)技术,将网络资源(如交换机、路由器)从物理硬件中抽象出来,实现网络资源的动态配置和管理。
-
桌面虚拟化(Desktop Virtualization):
- 允许用户通过远程连接访问虚拟化的桌面环境,这些环境可以在数据中心的服务器上运行,提供集中管理和安全性。
-
应用虚拟化(Application Virtualization):
- 将应用程序与其运行环境解耦,使得应用程序(office 365、钉钉、企业微信等)可以在不同的操作系统和硬件平台上运行,无需重新安装或修改。
-
存储虚拟化(Storage Virtualization):
- 将物理存储资源抽象成统一的存储池,简化存储管理,提高存储资源的利用率和灵活性。如SAN、NAS、NFS、Samba、ceph
-
库虚拟化(Library Virtualization):
- 库虚拟化允许不实际安装依赖库的情况下进行使用。如在Linux使用wine来运行Windows程序
-
容器虚拟化(Container Virtualization):
- 使用容器技术(如 Docker、Podman、LXC)在单个操作系统实例上运行多个隔离的应用实例,容器共享宿主机的操作系统内核,但拥有自己的文件系统、进程空间和网络栈。
-
资源池虚拟化(Resource Pooling):
- 将计算资源(如 CPU、内存)集中管理,形成一个资源池,可以根据需求动态分配给不同的虚拟机或应用。
-
功能虚拟化(Function Virtualization):
- 通过软件实现传统硬件功能,如虚拟网络功能(VNF)和虚拟安全设备,减少对专用硬件的依赖。
-
客户端虚拟化(Client Virtualization):
- 在客户端设备上创建虚拟环境,允许用户在本地设备上运行多个操作系统或应用实例。
虚拟机
虚拟机(Virtual Machine,简称 VM)是一种软件模拟的计算机系统,它可以在物理服务器(宿主机)上模拟出多个独立的计算机环境。每个虚拟机都包含自己的操作系统和应用程序,它们可以像在物理机上一样运行,但实际上它们共享宿主机的硬件资源。
虚拟机(VM)的主要特性提供了多项优势
-
分区(Partitioning):
- 一台物理服务器可以运行多个虚拟机,每个虚拟机都可以运行不同的操作系统。这种分区能力允许资源的有效利用和多任务处理。
-
资源分配(Resource Allocation):
- 系统资源(如 CPU、内存、存储)可以在多个虚拟机之间动态分配。这种灵活性使得资源管理更加高效,可以根据需求调整资源分配。
-
隔离(Isolation):
- 虚拟机提供了硬件级别的故障和安全隔离。这意味着即使一个虚拟机出现问题,也不会影响到其他虚拟机的运行,从而提高了系统的稳定性和安全性。
-
封装(Encapsulation):
- 虚拟机的完整状态(包括操作系统、应用程序和数据)可以保存到文件中。这种封装特性使得虚拟机的备份、迁移和复制变得简单,就像处理普通文件一样。
-
硬件独立性(Hardware Independence):
- 虚拟机不依赖于特定的硬件平台。这意味着虚拟机可以在任何兼容的物理服务器上运行,不受硬件兼容性的限制。这为硬件升级和维护提供了极大的灵活性。
-
系统安装的灵活性:
- 虚拟机允许在不同的硬件上安装和运行相同的操作系统,不受硬件差异的影响。这简化了系统部署和维护工作。
Hypervisor
Hypervisor是一种运行在基础物理服务器和操作系统之间的中间软件层,其可以允许多个操作系统和应用共享底层的内存、CPU、磁盘等物理硬件,也可叫做VMM( virtual machine monitor),即虚拟机监视器
Hypervisor是所有虚拟化的核心。
Hypervisor 允许多种操作系统在相同的物理系统中运行。
Hypervisor 控制硬件并向来宾操作系统提供访问底层硬件的途径。
Hypervisor 向来宾操作系统提供虚拟化的硬件。
分类
类型I:裸金属型
直接运行到物理机的Hypervisor上,称为裸机虚拟化环境。如:KVM、XEN、VMware ESXI、RHEV Hypervisor、Hyper-v Server。
类型II:宿主型
需要运行在具有虚拟化功能的操作系统上的Hypervisor,称为主机虚拟化环境。如:VMware Workstation、Microsoft Hyper-V、virtual Box