自豪的近义词是什么:基于Xen虚拟机的设计与实验

来源:百度文库 编辑:九乡新闻网 时间:2024/04/20 21:33:46
作业要求】基于Xen虚拟机的设计与实验 

【天水浪客注:忙里偷闲,将以前的大作业要求贴上来,当作纪念。计算机系统结构的老师,留这个作业的本意还是好的,但是对于所有人来讲,这种要求过高。而且一个最主要的问题在于,多数人忙于其他事,以至于忘了还有这样一个作业,后来不得不匆忙照抄示例文档。

    此作业要求还算详细,充分展现了研究生的调研能力 —— 给出的参考资料非常重要。

    以后有时间的时候在下会将自己的报告也整理出来 ... 网络上相关的资料还不多,算是为后人尽一份力。】

 

计算机系统结构大作业

基于Xen虚拟机的设计与实验

 

1.虚拟机简介

 

    目前,虚拟机技术已经成为计算机领域中一种十分流行和蓬勃发展的技术,使用虚拟技术,可以提高 IT 效率和可靠性,并且随着它的不断改进,这种已经被广泛接受的平衡基础资源的方法将变得更加重要。众多咨询公司以及专家学者都认为,虚拟机技术无论在存储器还是服务器中,都将被广泛采用。 
    通俗一些来讲,虚拟机就是虚拟出来的计算机,用户在一台计算机上将硬盘和内存的一部分拿出来虚拟出若干台机器,每台机器可以运行单独的操作系统而互不干扰,这些“新”机器各自拥有自己独立的CMOS、硬盘和操作系统,用户可以像使用普通机器一样对它们进行分区、格式化、安装系统和应用软件等操作,还可以将这几个操作系统联成一个网络。
    这个虚拟的“计算机”和真实的计算机几乎完全一样,所不同的是它的硬盘是在一个文件中虚拟出来的,所以用户可以随意修改虚拟机的设置或进行各种应用和开发,而不用担心对实际的计算机造成损失。虚拟系统崩溃之后可直接删除不影响本机系统,同样本机系统崩溃后也不影响虚拟系统,可以下次重装后再加入以前做的虚拟系统。使用虚拟机对开发人员来说,不但方便,而且安全。虚拟机(virtual machine)的专业定义为:虚拟机(VM)是支持多操作系统并行运行在单个物理服务器上的一种系统,能够提供更加有效的底层硬件使用。在虚拟机中,中央处理器芯片从系统其它部分划分出一段存储区域,操作系统和应用程序运行在“保护模式”环境下。如果在某虚拟机中出现程序冻结现象,这并不会影响运行在虚拟机外的程序操作和操作系统的正常工作。
    Xen VMM(virtual machine monitor)是由剑桥大学计算机实验室开发的一个开源项目,它能够让我们创建更多的虚拟机,每一个虚拟机都是运行在同一个操作系统上的实例。

(关于Xen请参见附件1(Xen虚拟机简介.doc)及http://www.xensource.com http://www.cl.cam.ac.uk/research/srg/netos/xen/


2.设计与实验题目 (任选其中任何一道)


(1)对Minix3系统进行修改,将之移植到Xen虚拟机平台上。
    对原操作系统进行修改是Xen实现高效执行的有效方法之一。Minix3是一款灵活开源的操作系统,对其进行修改移植到Xen虚拟机上运行是一件非常有意思的事情,爱尔兰的一名学生在其本科毕业设计中已经实现了这项工作,但是在短时间内参考其工作进行自己的工作依然是一件有趣并极富挑战的事情。


    注:提交的实验报告中须提交对Minix系统的主要更改方案,并附带Minix在Xen虚拟机上运行的截图。
参考资料:
http://www.minix3.org
http://www.minix3.org/doc
http://minixonxen.skynet.ie/cgi-bin/trac.cgi/wiki/Report


(2)利用Xen提供的API实现Xen虚拟机的管理程序
   通过自己使用Xen的API(或封装了其API的函数库,如libvirt)进行编程,不仅可以更为清晰地理解虚拟机的机制,而且会对计算机体系结构更深刻的认识。
   该程序只需实现以下功能:
1. 以命令行形式显示宿主机(Host OS)上正在运行的客户机(Guest OS)名称;
2. 通过命令行形式显示指定客户机(Guest OS)的工作状态(显示其CPU利用率,和内存使用情况即可);
   注:该程序根据同学们的喜好可使用任何一种可在Linux下编译/解释运行的语言,如C,C++,Java,Python等。程序运行时不需要GUI界面,使用命令行操作即可。可参照Fedora等Linux系统中内置的xm管理程序,xm程序位于/usr/sbin/xm,其源代码位于/usr/share/man/man1/xm.1.gz。可参考其实现,但不可照抄源码。
参考资料:
⑴ Xen为开发者提供了一套接口(见附件2,Developer Manual (Xen interfaces).pdf),通过调用Xen API可以实现对Xen的管理。(难度较大,但灵活性较高)
⑵ libvirt是一套免费、开源的支持Linux下主流虚拟化工具的C函数库,其旨在为包括Xen在内的各种虚拟化工具提供一套方便、可靠的编程接口,支持与C,C++,Ruby,Python等多种主流开发语言的绑定。当前主流Linux平台上默认的虚拟化管理工具virt-manager(图形化),virt-install(命令行模式)等均基于libvirt开发而成。(推荐使用)详细内容请参见其开发主页:http://libvirt.org/


提交内容:①编写好的可运行的管理程序(包括源码);②该程序运行时的截图
参考程序:
以下是一些第三方实现的Xen管理及操作程序与库:
Virt-manager(主流Linux平台上默认采用的虚拟化管理工具)
http://virt-manager.et.redhat.com/
Enomalism Virtualized Management Console for Xen (LGPL)
http://wiki.xensource.com/xenwiki/Enomalism
XenMan
http://en.wikipedia.org/wiki/Xenman
DTC-xen
http://www.gplhost.com/software-dtc-xen.html
XenAccess
http://xenaccess.sourceforge.net/

 

(3)利用虚拟机建立虚拟集群
    集群是一种具有高可扩展性、高可用性、高性能、高性价比的体系结构,构造一个集群对硬件资源的需求较高。有了虚拟机技术,我们可以轻松的在同一个物理平台上虚拟出多个逻辑系统,在这个平台上,我们可以构建自己的集群。
    要求:
1. 参照“Xen虚拟机上Guest OS的安装说明”在宿主机(Host OS)上创建4-6个Guest OS,以此来建立一个小的虚拟集群。
2. 在该虚拟集群上安装PVM软件包。
3. 根据PVM的编程规范编写一个矩阵(4×4即可)相乘的C程序,通过已部署的PVM软件在虚拟集群上进行并行计算。


提交内容:①依据PVM开发规范编写的矩阵相乘的C程序;②程序在虚拟集群上运行的截图。
注:为了节约系统资源,在部署虚拟集群时,每个客户机系统(Guest OS)不要安装图形界面;在安装过程中的软件定制环节,尽可能的去掉不必要的软件包(如各种服务器工具,游戏,办公软件等),只留下基本软件包以保证程序运行即可。
参考资料:
http://www.clustermonkey.net//content/view/139/33/
http://www.csm.ornl.gov/pvm/
http://www.longen.org/L-R/detaill-r/PVMProgamming.html