网站标志
导航菜单
当前日期时间
当前时间:
购物车
购物车中有 0 件商品 去结算 我的订单
商品搜索
商品搜索:
文章正文
基于KVM的虚拟化技术
作者:管理员    发布于:2015-06-29 18:03:58    文字:【】【】【
1、引言
    20世纪60年代,虚拟化技术首次被用在IBM大型机上,在70年代的System 370系列中逐渐流行起来,这些机器通过一种叫虚拟机监控器(Virtual Machine Monitor,VMM)的程序在物理硬件之上生成许多可以运行独立操作系统软件的虚拟机(Virtual Machine)实例。随着近年多核系统、集群、网格甚至云计算的广泛部署,虚拟化技术在商业应用上的优势日益体现,不仅可以显著提高计算机的利用率、提高运算效率,而且还增强了系统安全性和可靠性,虚拟化的概念也逐渐深入到人们日常的工作与生活中。
    近几年,信息安全逐渐被提上日程,国内各行业对国产计算机的功能和性能要求越来越高,而虚拟化就是其中要实现的重要功能之一。人们对虚拟化认知比以前有了很大的进步,大家对服务器虚拟化带来的诸多好处不再怀疑,这些好处包括资源运用更加处分,管理上的便捷等等。不过就目前的国际国内形式来看,真正的实现虚拟化的服务器比例还不高,服务器实现虚拟化的比例是8%,也就是说还有92%的服务器没有实现虚拟化。
2、龙芯3A平台简介
    龙芯处理器主要包括三个系列。龙芯1号处理器及其IP系列主要面向嵌入式应用,龙芯2号超标量处理器及其IP 系列主要面向桌面应用,龙芯3号多核处理器系列主要面向服务器和高性能机应用。根据应用的需要,其中部分龙芯2号也可以面向部分高端嵌入式应用,部分低端龙芯3 号也可以面向部分桌面应用。
    龙芯3A是龙芯3号多核处理器系列的第一款产品,是一个配置为单节点4核的处理器,采用65nm工艺制造,最高工作主频为1GHz。龙芯3A有两种工作模式:
    (1)单芯片模式。系统只集成1片龙芯3A,是一个对称多处理器系统(SMP)。
    (2)多芯片互连模式。系统中包含2片或4片龙芯3A,通过龙芯3A的HT端口进行互连,是一个非均匀访存多处理器系统(CC-NUMA)。
    其主要技术特征如下:
    片内集成4个64位的四发射超标量GS464高性能处理器核;
    片内集成4MB的分体共享二级Cache(由4个体模块组成,每个体模块容量为1MB);
    通过目录协议维护多核及I/O DMA 访问的Cache 一致性;
    片内集成2 个64 位400MHz 的DDR2/3 控制器;
    片内集成2 个16 位800MHz 的HyperTransport控制器;
    每个16 位的HT 端口拆分成两个8 路的HT 端口使用。
    片内集成32 位100MHz PCIX/66MHz PCI;
    片内集成1 个LPC、2 个UART、1 个SPI、16 路GPIO 接口;
    龙芯3A号芯片整体架构基于两级互连实现,结构如下图所示:
       
3、虚拟化技术
    在计算机技术中,虚拟化(Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚拟部分是不受现有资源的架设方式,地域或物理组态所限制。一般所指的虚拟化资源包括计算能力和数据存储。虚拟化技术包括软件虚拟化、硬件虚拟化、准虚拟化和完全虚拟化等多种实现方式。KVM即基于内核的虚拟机,是一种用于Linux内核中的虚拟化基础设施,可以将Linux内核转化为一个hypervisor,作为一种运行在基础物理服务器和操作系统之间的中间软件层。KVM是一个全虚拟化的解决方案,可以在x86架构的计算机上实现虚拟化功能。但KVM需要CPU中虚拟化功能的支持,只可在具有虚拟化支持的CPU上运行,即具有VT功能的Intel CPU和具有AMD-V功能的AMD CPU。
    KVM与早几年的Xen相比具有明显的优势。其中最明显并且最重要的因素就是KVM是Linux内核的一部分,在Linux内核内部部署,这样可以很容易控制虚拟化进程。而Xen只是一个安装在Linux内核下层的一个产品而已,并且Xen所采用的泛虚拟化技术需要直接和硬件进行交互,并且需要修改操作系统,默认Windows的安装并不支持泛虚拟化工作环境。从另外一个角度来讲,KVM更加灵活。由于操作系统直接和整合到Linux内核中的虚拟化管理程序交互,所以在任何场景下都可以直接和硬件进行交互,而不需要修改虚拟化的操作系统。这一点非常重要,因为对虚拟机运行来讲KVM可以是一个更快的解决方案。
4、平台测试方法
    将KVM移植到龙芯3A平台后可进行多项测试,主要包括CPU、内存、硬盘、网络等测试。主要用到的测试工具有以下几项:
    SPEC CPU2000:主要用来测试CPU的性能,它包括CINT2000和CFP2000两套基准程序,分别用于测量CPU的整点运算性能和浮点运算性能。
    Unixbench:是linux、unix测试系统基准性能的经典工具,Unixbench测试包含了系统调用、读写、进程、2D、3D、管道、运算、C库等系统基准性能,它的优点在于提供了对系统性能的一种评价体系,为系统评分,如此方便对系统作对比测试。然后为了直观了解,将每一个测试的结果和一个基准值进行比较以得到一个 index 值,所有项的 index 值在一起形成系统的测试值。
    Lmbench:用于评价系统综合性能的多平台开源benchmark,能够测试包括文档读写、内存操作、进程创建销毁开销、网络等性能。一般来说,它衡量两个关键特征:反应时间和带宽。Lmbench具有对于操作系统的可移植性测试、自适应调整、数据库计算结果、存储器延迟计算结果、上下文转换计算结果以及回归测试的主要特性。
    Iozone:文件系统的benchmark(基准:可依照做出衡量和判断的标准)工具,可以测试不同的操作系统中文件系统的读写性能。可以测试 Read, write, re-read,re-write, read backwards, read strided, fread, fwrite, random read, pread, mmap, aio_read, aio_write等等不同模式下的硬盘性能。
    Netperf:网络性能的测量工具,主要针对基于TCP或UDP的传输。Netperf根据应用的不同,可以进行不同模式的网络性能测试,即批量数据传输(bulk data transfer)模式和请求/应答(request/reponse)模式。Netperf测试结果所反映的是一个系统能够以多快的速度向另外一个系统发送数据,以及另外一个系统能够以多快的速度接收数据。
    KVM测试工具及方法有很多,但在龙芯3A平台上,相应的测试软件需要进行修改后重新编译才可使用。
5、结语
    目前在国内推广虚拟化的难点主要是安全、稳定性以及由此带来的未知性。由物理机变成虚拟机有很多未知性,从用户的角度去判断实施虚拟化后会带来什么问题,比如数据中心的几百台服务器实现虚拟化以后如何管理,人员、工具、流程(PPT)发生什么变化等等。很多用户最开始是将虚拟化部署在测试环境、开发环境,慢慢地过渡到生产环境。
    KVM虚拟化技术具有广阔的应用前景,虽然只是新生技术,但是由于其性能和实施的简易性,加上Linux企业市场中份额最大的红帽不遗余力的推广开发,KVM将会持续成长壮大。
浏览 (65) | 评论 (0) | 评分(0) | 支持(0) | 反对(0) | 发布人:管理员
将本文加入收藏夹
新闻详情
脚注栏目
|
脚注信息
机电工程网(C) 2015-2020 All Rights Reserved.    联系我们