史昂
鹤煤集团信息中心 河南鹤壁 458030
我公司已经搭建了虚拟化平台,主要的业务正逐步迁入虚拟化平台中,依托公司现有的虚拟化平台,建设了桌面云系统,用户通过瘦终端登录桌面云系统办公。那么究竟什么是虚拟化呢,它是如何实现的?下面就由我浅谈一下云计算KVM虚拟化技术及应用。
虚拟化可以概况为:通过在服务器上部署虚拟化软件,使一台物理服务器可以承担多台服务器的工作。通过整合现有的业务负载并利用剩余的服务器资源以部署新的应用程序和解决方案,实现较高的资源利用率。
虚拟化是一种具体的技术,实现对硬件资源的虚拟化,提升资源利用率,降低能耗。云计算是一种概念,是各种技术组件的集合,针对的是对各种资源的管理和调度,面向的是服务层面,虚拟化只是云计算使用的技术之一,没有虚拟化也可以用物理硬件来实现云计算[1]。
虚拟化分为计算虚拟化、网络虚拟化、存储虚拟化;通过虚拟化技术把硬件资源如:CPU、内存整合在一起组成计算池,把服务器网络和虚拟机网络整合在一起组成网络池,把服务剩余存储空间或者外置存储系统的可用空间整合起来组成存储池,通过整合之后的资源为业务提供服务[2]。
(1)计算虚拟化分为三部分:CPU虚拟化、内存虚拟化、IO虚拟化。①CPU虚拟化:即多个虚拟机共享CPU资源,此技术最早在IBM小型机上面得以实现。小型机的CPU虚拟化采用的是“特权解除”和“陷入-模拟”的方式,解除了用户操作系统的特权,用户操作系统大部分指令仍在硬件上运行,只是运行到特权指令时,才会陷入到VMM模拟执行。根据这个理念,X86架构CPU也采用此开发理念,但是在应用的过程中,发现非特权级里面包含了19条敏感指令,当用户操作系统执行这些敏感指令时,整个硬件系统会陷入瘫痪,为此推出了半虚拟化、全虚拟化、硬件辅助虚拟化,目前主流采用的虚拟化技术为硬件辅助虚拟化,依靠硬件对敏感指令“陷入-模拟”,效率最高。②内存虚拟化是把物理机的真实物理内存统一管理,把物理内存分成多份分给若干个虚拟机使用。我单位采用的虚拟化平台底层采用KVM虚拟机技术,平台支持内存硬件辅助虚拟化技术,降低内存虚拟化开销,提升约30%的内存访问性能。同时,平台支持智能内存复用策略,自动优化组合各种内存复用策略,实现内存的高复用率。每个虚拟机最大支持1TB虚拟内存。平台支持以下内存复用技术:内存气泡:系统主动回收虚拟机暂时不用的物理内存,分配给需要复用内存的虚拟机。内存的回收和分配都是动态的,虚拟机上的应用无感知。整个物理服务器上的所有虚拟机使用的分配内存总量不能超过该服务器的物理内存总量。内存交换:将外部存储虚拟成内存给虚拟机使用,将虚拟机上暂时不用的数据存放到外部存储上。系统需要使用这些数据时,再与预留在内存上的数据进行交换。内存共享:多台虚拟机共享数据内容为零的内存页。通过内存复用,虚拟机总配置内存超过物理主机实际内存运行,通过虚拟机之间内存复用,内存共享,内存交换等技术实现物理内存120%的超分配比例[3]。③I/O虚拟化分为:完全虚拟化、半虚拟化、IO透传虚拟化。完全虚拟化:又叫I/O模拟,完全使用软件模拟真实硬件,如:鼠标、键盘、通过焦点捕获,焦点被那个主机捕获就被那个主机使用,性能较差。半虚拟化:对硬件驱动由前段直接转到后端调用,通过用于硬盘和网卡,性能高。IO透传:直接分配给虚拟机物理设备,如:直接分给虚拟机一块硬盘或者网卡,需要硬件支持I/O透传技术。
(2)存储虚拟化。存储虚拟化是在存储设备上加入一个逻辑层,通过逻辑层访问存储资源,因为虚拟化平台是一个集群系统,整个集群系统访问存储资源必定存在读写的先后顺序,这个逻辑层可以很好的控制资源的读写访问,可以理解为集群系统访问共享存储。目前组网使用最多的是外置存储系统或者分布式存储通过接口挂载给虚拟化平台,虚拟化平台通过自身格式化存储空间后,把资源分配个客户操作系统使用。
(3)网络虚拟化。在KVM虚拟化平台里面又叫分布式交换机,类似通用的物理交换,分布式交换机连接虚拟机和外部网络,支持多种标准接口和协议,支持多个物理服务器的分布式环境,能够与大部分开源的虚拟化平台整合,支持openflow协议。支持多种网卡类型:普通网卡,智能网卡等。
通过使用虚拟化平台,使用过程中有以下优点:
(1)集中运维,通过虚拟化平台创建、部署、管理、监控所有虚拟机。
(2)资源按需分配,根据硬件资源的利用率,合理分配虚拟机资源,资源利用达到最大化。
(3)自动化调度,根据系统设置的策略实现虚拟机迁移,使资源分配在各个服务器上面达到均衡。
(4)虚拟机故障转移,根据系统设置的策略,当服务器故障或者虚拟机蓝屏时,虚拟机自动迁移到正常的服务器上面,重启开启业务。
(5)节能减排,业务虚拟机集中在虚拟化平台上面,减少服务器数量,从而降低投资成本、总功耗等。