信息化发展到今天,传统的IT架构模式已经越来越不能满足当前规模化、个性化、标准化的需求。传统的硬件模式遵循三层架构:物理主机、操作系统和业务应用。这种模式在很长时间占领着我们的主导思想。随着虚拟化、集群、高可用等技术的出现,传统模式已逐渐在纵向和横向方面得到了广大的派生和演变。一些固有的传统思想得到颠覆和改变,例如操作系统已经越来越像一个普通软件或者是中间件,很多时候他已经失去了与硬件直接打交道的地位;物理服务器更像是一堆裸金属(bare mental),bios信息、Mac信息不再作为物理主机出厂的必然配置。

  纵向发展:分层解耦合 -  虚拟化 

虚拟化与无状态浅谈_职场 

  • 呈现层 -- 虚拟呈现技术是人们比较常用的远程桌面及终端的访问手段,从早期的RDP协议到现在的VDI远程桌面 ,虚拟呈现已经成为虚拟化技术的一项重要分支;
  • 应用层 : 这个层面虚拟化最典型的代表是Java虚拟机;
  • hypervisor层 :这里重要介绍X86体系的虚拟化,Hypervisor(亦称为VMM)是一个位于计算机硬件和操作系统之间的软件层,它运行在特权级,负责管理和隔离上层运行的多个虚拟机,为这些虚拟机提供安全、独立的运行环境,同时也为每个虚拟机虚拟出一套与真实硬件无关的虚拟机硬件环境,如显示器、硬盘、CPU、内存、网卡等。根据实现方式不同及是否需要修改Guest OS内核,可将其分为全虚拟化(Full Virtualization)和半虚拟化(Paravirtualization)两种。在全虚拟化下,VMM可以向虚拟机虚拟出和真实硬件完全相同的硬件环境,为每个虚拟机提供完整的硬件支持服务,包括虚拟BIOS、虚拟机设备和虚拟内存管理等。这个过程不需要硬件或者操作系统的协助,不需要修改Guest OS的内核。全虚拟化的例子有VMware和Virtual PC。半虚拟化VMM需要操作系统协助才能完成对x86敏感指令的虚拟化。因而需要对Guest OS的内核进行修改,以便操作系统能够自行对有缺陷的指令进行替换。半虚拟化的例子有Xen和KVM。
  • 硬件虚拟化:又称为硬件辅助虚拟化,在对机器资源的虚拟化过程中,CPU虚拟化被认为是最为重要的一个环节,只有在保证虚拟机的指令能够被正确的虚拟机执行,各虚拟机之间才能不互相影响。在经典的CPU虚拟化模型中,CPU的虚拟化通常采用的是“特权接触(Privilege Deprivileging)”和“陷入-模拟(Trap-and-emulation)”技术。但是目前流行的x86架构不能适用于这种模型,无论是全虚拟化和半虚拟化都是通过软件方式来弥补这个缺陷。两大CPU厂商Intel和AMD为解决这个问题分别提出了Interl-VT和AMD-V技术,其基本思想是引入新的指令和处理器运行模式,使VMM和Guest OS运行在不同的模式下。

 

横向发展:个体解耦合 - 无状态

虚拟化与无状态浅谈_休闲_02

  动态伸缩作为云计算一大重要特性。纵向层面虚拟化技术的不断升级 ,为横向业务应用的动态迁移提供了可能性和重要保障。以下以cisco ucs 为例介绍无状态计算内容。

  思科对无状态计算的定义:服务器的个性完全从该个性的宿主物理资源中抽出来。

  • 标示符:MAC、WWN、UUID
  • 配置:BIOS设置、固件、启动顺序
  • 连接性:VLAN、VSAN、vNIC、VHBA、QoS设置

  思科将以上的资源信息抽象出来定义为service profile,实现了物理硬件的无状态,物理硬件真正实现bare-mental。机器上电以后会执行servcie profile绑定,将标示符信息、配置信息、连接信息推送到服务器上。而整个service profile的管理由专门的ucsm来统一管理,当服务器出现计划或者非计划的停机时,会将完整的service profile动态迁移到备用服务器上,大大缩短了“再生”时长。

  对于虚拟机层面的迁移也充分发挥了无状态带来的好处。

  除了cisco 的service profile、port profile,VMware 也有host profile概念,这些都是无状态的具体实践。

总结:在未来将会有更多的虚拟化与无状态技术充斥着我们的大脑和眼球。