本文所有图片来自于刘鹏《云计算》系列PPT。
虚拟化技术
虚拟化技术是一种资源管理技术,它通过抽象硬件的物理特性,使用户可以在单个物理硬件上运行多个虚拟实例,如操作系统、存储设备或网络资源。虚拟化可以提高资源利用率、降低成本、增加灵活性和可扩展性。
以下是虚拟化技术的几个主要类型:
服务器虚拟化------CPU/内存/IO虚拟化
这就是OS课程中讲的那些传统虚拟化技术,其他的大多关注于多台设备的集群环境虚拟化
服务器虚拟化允许多个虚拟机(VMs)在单个物理服务器上并行运行。每个虚拟机都可以运行自己的操作系统和应用程序,彼此完全隔离。这种技术可以显著提高服务器的资源利用率,因为它允许物理服务器的计算能力在多个虚拟环境之间共享。
- 技术实现 :通过使用虚拟机监控器(VMM,也称为Hypervisor)来实现,Hypervisor直接运行在物理硬件上(Type 1)或在宿主操作系统之上(Type 2)。
存储虚拟化
存储虚拟化涉及到将来自多个物理存储设备的存储资源汇集在一起,形成一个统一的存储池,而这个存储池可以从网络的任何地方访问。这种方式简化了存储管理,提高了数据的可用性和灵活性。
- 技术实现:可以通过软件定义存储(SDS)来实现,SDS将存储设备的管理抽象化,使得管理员可以通过软件接口来配置和管理存储资源,而不需要直接操作物理存储设备。
网络虚拟化
网络虚拟化通过软件将物理网络资源抽象化,形成独立的、隔离的虚拟网络环境。这使得不同的虚拟网络可以在同一物理网络基础设施上共存,每个虚拟网络都有自己的策略和配置,提供了更高的灵活性和安全性。
- 技术实现:常见的实现方式包括虚拟局域网(VLAN)和网络功能虚拟化(NFV)。VLAN可以将一个物理网络分割成多个逻辑上分离的网络,而NFV则是将网络服务(如负载均衡、防火墙等)从专用硬件上移至虚拟环境。
桌面虚拟化
桌面虚拟化技术允许将用户的桌面环境从物理机器抽象化和分离出来(当成文件一样),部署在中心化或云端服务器上。用户可以通过任何设备从任何地点访问自己的虚拟桌面环境,这不仅提高了灵活性,也简化了桌面的管理和维护。
- 技术实现:包括虚拟桌面基础设施(VDI)和远程桌面服务(RDS)。VDI为每个用户提供了一个独立的虚拟机,而RDS则允许多个用户共享同一个服务器上的桌面和应用程序。
虚拟化技术的这些不同形式在现代IT架构中扮演着重要角色,它们通过提高资源利用率、简化管理和提供更高的灵活性和可扩展性,支持了各种复杂的计算需求。
JVM
Java虚拟机(JVM)是Java平台的核心组成部分,提供了一个可以执行Java程序的运行时环境。JVM的设计允许Java程序实现"一次编写,到处运行"(Write Once, Run Anywhere, WORA)的目标。下面是JVM主要职责的概述:
字节码到物理CPU指令的转换
- 字节码执行 :Java源代码被编译成一种平台无关的二进制格式,称为字节码(.class文件)。JVM负责读取这些字节码文件,然后执行它们。
- 即时编译器(JIT):在运行时,JVM内的即时编译器(JIT编译器)可以将热点字节码(执行频率高的代码)编译成特定平台的机器码,以提高程序执行的效率。这个过程称为即时编译。
- 解释执行:对于非热点代码,JVM还可以通过解释器逐条解释执行字节码,这样做虽然比直接执行机器码慢,但可以减少编译等待时间,对于执行频率不高的代码是一种经济有效的执行方式。
堆内存的管理
- 内存分配 :JVM管理着Java程序中的内存分配,包括堆内存和方法区。堆内存用于存放对象实例,而方法区用于存放类信息、常量、静态变量等数据。
- 垃圾回收(GC):JVM负责自动管理内存的回收,即垃圾回收(GC)。当对象不再被引用时,GC将自动回收这些对象占用的内存空间,以防止内存泄漏。
跨平台的能力
- 平台无关性 :JVM是Java跨平台特性的关键。不同的操作系统平台(如Windows、Linux、macOS)上有不同的JVM实现,但它们都提供相同的Java API和运行时环境。因此,只要JVM被正确安装,相同的Java程序(字节码)就可以在不同的平台上运行,无需修改代码。
JVM不仅提供了跨平台执行Java程序的能力,还通过其垃圾回收和内存管理机制,简化了程序员在内存管理方面的工作。此外,JVM还支持多种语言(如Kotlin、Scala、Groovy等),这些语言都可以编译成JVM可以执行的字节码。
服务器虚拟化与Hypervisor
服务器虚拟化是一种技术,它允许我们在单一的物理服务器上创建多个独立的虚拟环境,称为虚拟机(VM)。每个虚拟机都像是一台独立的服务器,拥有自己的操作系统和应用程序,但实际上它们共享同一台物理服务器的硬件资源。服务器虚拟化的一个关键组件是Hypervisor,它负责创建虚拟机,并管理虚拟机与物理硬件资源之间的交互。
Hypervisor 简介
Hypervisor,也称为虚拟机监视器(VMM) ,是服务器虚拟化中的核心软件。它允许多个操作系统在同一台物理服务器上并行运行,每个操作系统都在自己的虚拟机内运行,并且彼此隔离。Hypervisor负责分配硬件资源给每个虚拟机,如CPU时间、内存空间等,并确保虚拟机之间不会相互干扰。
两种类型的Hypervisor服务器虚拟化
寄居虚拟化(Type 2 Hypervisor)
- 寄居虚拟化运行在宿主操作系统之上。首先,你有一台服务器,这台服务器上安装了一个常规的操作系统(如Windows、Linux等),然后在这个操作系统上安装Hypervisor软件。这种类型的Hypervisor相当于是宿主操作系统上的一个应用程序。
- 例子:VMware Workstation, Oracle VirtualBox。
- 特点:部署简单,适合测试环境和开发环境,但因为多了一层宿主操作系统,可能会有性能上的损失。
裸机虚拟化(Type 1 Hypervisor)
- **裸机虚拟化直接运行在物理硬件上,没有宿主操作系统。**这种Hypervisor直接安装在服务器硬件上,然后直接管理物理硬件和虚拟机。由于减少了操作系统层,性能通常优于寄居虚拟化。
- 例子:VMware ESXi, Microsoft Hyper-V(在Windows Server上运行时可视为Type 1)。
- 特点:提供更高的性能和效率,适合生产环境。
Hypervisor的作用
- 资源管理:Hypervisor负责管理物理服务器的资源,如CPU、内存、存储和网络,确保这些资源被公平且有效地分配给每个虚拟机。
- 隔离环境:Hypervisor在虚拟机之间提供隔离,确保一个虚拟机中的应用程序和操作系统不会影响到其他虚拟机。
- 迁移和复制:Hypervisor使得虚拟机可以轻松地在物理服务器之间迁移,甚至可以在运行时进行迁移,这对于负载均衡和系统维护非常有用。
Hypervisor使服务器虚拟化成为可能,它提供了一个平台,让多个虚拟机能够共享单个物理服务器的资源,同时保持彼此的独立和隔离。这种技术极大地提高了硬件资源的利用率,同时也为系统管理和灾难恢复提供了更多的灵活性和选项。
存储虚拟化
其实完全可以通过SAN技术架构记忆存储虚拟化。