3.虚拟化关键技术&并行编程

计算虚拟化

  • CPU虚拟化(目标是使虚拟机上的指令能被正常执行,且效率接近物理机)、内存虚拟化、I/O虚拟化
  • 虚拟化将软硬件解耦,将内存、CPU、网卡等计算资源,通过软件抽象后提供给虚拟机使用,极大的提升了资源利用率以及灵活度。
  • 使用虚拟化技术,将多台服务器的应用整合到一台服务器上的多个虚拟机上运行。

虚拟化的几个概念

  • Guest OS:运行在虚拟机上的操作系统
  • Guest Machine:虚拟出来的虚拟机
  • Hypervisor (Virtual Machine Monitor,即VMM)虚拟化软件层
  • Host OS:运行在物理机之上的OS
  • Host Machine:物理机
    CPU全虚拟化
  • Guest OS指令段在执行前进行争端翻译,将其中的敏感非特权指令替换为Ring0中执行对应特权指令。非特权指令直接执行。
  • 优点:Guest OS无需修改,可移植性和兼容性好
  • 缺点:当负载较大、敏感指令频繁被执行时CPU性能低下。
  • 例如:VMWare/Hyper-V/KVN-x86

CPU半虚拟化

  • 在Hypervisor上运行的Guest OS已经集成了与半虚拟化有关的代码,使得Guest OS能够非常好地配合Hypercisor来实现虚拟化。
  • 优点:非常接近物理机
  • 缺点:不支持未修改的操作系统,兼容性和可移植性差。
  • 例如:Xen/KVM-PowerPC(建议指令集)

CPU-硬件辅助虚拟化

  • 对CPU指令进行改进即VT-x,客户机在此模式下运行与原生态系统在非虚拟机化环境中运行性能一样,不需要向全虚拟化那样每条指令都先翻译再执行;在少数必要的时候,某些客户机指令的运行才需要被VMM截获并做相应处理。
  • VT-x提供两种操作模式VMX root operation和VMX non-root operation。VMM运行在前者,虚拟机运行在后者。
  • KVM-86/VMWare/ESX Server 3/Xen 3.0.

Hypervisor架构

  • 计算虚拟化的软件层,通常叫Hypervisor,即虚拟化层,也叫虚拟机监控器VMM,负责Guest OS所有硬件资源调用。
  • TYPE-I(裸金属架构):VMM直接运行在裸机上,使用和管理底层硬件资源,Guest OS对硬件资源访问都需要通过VMM完成,VMM拥有硬件驱动程序。
  • TYPE-II(宿主型、寄居型):VMM之下还有一层操作系统,Guest OS对硬件资源访问必须经过宿主操作系统,带来额外开销,所有硬件驱动、内存管理、进程调度等有宿主操作系统执行。

CPU虚拟化-CPU指令系统
内核态:操作系统访问硬件(物理内存,IO设备等),关键数据结构,运行中断等
用户态:用户运行应用进程。

内存虚拟化:目标是能够做好虚拟机内存空间之间的隔离,使每个虚拟机都认为自己拥有了整个内存地址,且效率也能接近物理机。
计算虚拟化目标是不仅让虚拟机访问到他们所需要的I/O资源,而且要做好它们之间的隔离工作,更重要的是减轻由于虚拟化所带来的的开销。

I/O虚拟化:
I/O虚拟化需要解决两个问题
1.设备发现:需要控制个虚拟机能够访问的设备
2.访问截取:
通过I/O端口或者MMIO对设备的访问
设备通过DMA与内存进行数据交换

存储虚拟化

1.RAID:磁盘阵列

磁盘阵列是由很多块独立的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个系统效能,利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上。

2.分布式存储

分布式存储是可以将分散开来的磁盘聚集起来组成一个虚拟的存储设备,在不增加专业的存储设备情况下为企业提供大容量高性能的存储服务。
分布式存储产生的原因是传统存储再成本、垂直扩展、存储水平扩容、容错性几个方面的问题
分布式存储分类三大类

2.1 块存储

将裸磁盘空间整个映射给主机/VM使用,用户可以根据需要随意将块存储格式化成文件系统来使用。

2.2 文件存储

文件存储好比是一个文件夹,文件系统已经存在,用户可以直接将自己的数据存放在文件存储上

2.3 对象存储

每个数据对应这一个唯一id,在面对对象存储中,不再有类似文件系统的目录层级结构,完全扁平化存储,即可以根据对象的id直接定位到数据的位置。

3.分布式文件系统

分布式关键系统关键能力
多主机共享磁盘
持久化保存数据
文件系统的在线扩容
和主机的集群无关

网络虚拟化

二层和三层网络虚拟化主要解耦了服务器和减缓及之间的关系
四层和七层网络虚拟化主要解耦了网络设备和租户之间的关系
二层网络虚拟化

软件定义网络

总结

CPU全虚拟化:Guest OS指令模拟操作系统指令
CPU半虚拟化:Guest OS修改操作系统指令

数据处理和并行编程

数据密集型计算

  • 概念:采用数据并行方法实现大数据量并行计算的应用,计算数据量级为TB或PB级,因此也被称为是大数据的核心支撑技术。

数据本地性

在数据密集型计算中充分利用数据本地性可以提高系统的吞吐量。主要思想如下:

  • 将任务放置在离输入数据最近的节点运行
  • 网络带宽远远低于计算节点本地磁盘的带宽总和
  • 机架内两个节点之间的带宽远大于跨机架的两个节点之间的带宽,将任务调度到同一个机架内的节点是次优选择。
  • 在调度任务时移动代价很小是计算而不是移动代价昂贵的数据,避免有限的网络带宽处于饱和状态。

分布式数据处理

含义:分散的选择方案就是分布式数据处理(DDP)方案。分布式数据处理不仅是一种技术上的概念,也是一种结构上的概念。分布式数据处理的概念是建立在集中和分散这两种信息服务都能实现的原则基础上的。
集中/分散的问题归结起来就是建立综合的信息系统(集中)和对用户服务(分散)这两者结合的问题。

并行编程模型

并行编程模型包括数据并行编程模型和消息传递编程模型

  • 数据并行编程模型的编程级别比较高,编程相对简单,但它仅适用于数据并行问题
  • 消息传递模型编程级别较低,但消息传递编程模型可以有更广泛的应用范围。

你可能感兴趣的:(云计算,运维,服务器,硬件架构)