基于solaris系统的虚拟机设计与实现virtualmachinedesign&implementonsolarisplatform王超WangChao上海贝尔股份有限公司ShanghaiAlcatelSbellCo.,Ltd摘要本文结合实践,对于SPARC平台上的solaris虚拟机技术做了详细的分析。并且针对企业级的应用环境,设计实现了相应的虚拟化解决方案。关键字solaris虚拟化分区迁移AbstractThisarticleanalyzesthesolarisvirtualmachinetechnologyonSPARCplatformindetailwithbestpractice.Inaccordancewithenterpriseenvironment,differentvirtualizationsolutionisprovided.keywordssolarisvirtualizationdomainmigration1.引言随着企业级数据中心的发展,大量新购置的服务器给机房UPS和机架空间的扩展带来了很大的压力。实现虚拟化技术的初衷就是为了要提高现有设备的利用率,使用户能更好的利用现有的资源。事实上,虚拟化不但可以让一台服务器当作很多台来使用,也可以整合多台服务器的资源,打破原有的实体疆界,使企业内部运算资源的运用变得更为弹性,同时管理上也变得更为简单容易。目前,windows平台,linux,以及基于X86芯片的solaris系统,都可以使用Vmware的ESXi服务器进行虚拟机的迁移、集成和监控,这部分的虚拟化已经有大量的成功案例和具体的实施流程可做参考。但是由于指令集的不同,还有大量使用SPARC芯片的小型机也要进行虚拟化。本文主要讨论在SPARC平台下,如何实施solaris系统的虚拟化。2.虚拟机的设计在开放的solaris平台上实现虚拟化目前主要有3种方式:硬件分区(domain):在SC板卡上划分。只有在6800,M5000等高端机型才支持该模式。逻辑分区(logicaldomain):逻辑分区,通过定义一组硬件资源,包括CPU,内存,或者I/O总线等来组成一个分区,每个分区作为一个虚拟机,可以独立安装、运行solaris。区域(zone):solaris10中集成的功能,只安装一份solaris操作系统软件,但在该系统内可以虚拟出多个solaris资源供应用程序相对独立地运行根据上述的不同定义,可以归纳出3者的不同特点:硬件隔离操作系统隔离文件系统共享硬件分区完全有无逻辑分区部分有无区域无部分有在虚拟化实施的前期过程中,首先要对实体机的资源使用情况作出监控,将CPU、IO占用率非常高的机器排除在外;其次,由于硬件分区只在少数高端机型中支持,除了关键性应用外,在将实体机迁移到虚拟机的过程中,主要考虑后两种方式。相互关联性小,资源使用情况比较稳定的,选择逻辑分区的方式;资源可以共享的,虚拟机之间有一定关联性的,可以选择区域的方式。3.虚拟机的实现3.1逻辑分区的实现使用逻辑分区(logicaldomain)需要首先建立一个主分区(primarydomain),然后在其上安装solaris以及LDoms_Manager-1_3软件包。通过特定的SPARC虚拟机管理包来实现向特定的逻辑分区分配CPU,Memory和IO资源的子集。每个逻辑分区有自己独立的操作系统(OS),并能在各个虚拟机之间实现不同颗粒度的资源分配。在实践中,我们经常将不同的生产系统安装在各个逻辑分区中,该方案既考虑到了系统的资源独占需求,也相应的降低了成本。具体配置方法如下:primarydomainldmadd-vdsprimary-vds0primaryldmadd-vccport-range=5000-5100primary-vcc0primaryldmadd-vswnet-dev=nxge0primary-vsw0primaryldmadd-vswnet-dev=nxge1primary-vsw1primaryldmlist-ocryptoprimaryldmset-mau1primaryldmset-vcpu4primaryldmset-memory2Gprimaryldmadd-configinitialsvcadmdisablevolfsshutdown-y-g0-i6mv/etc/hostname.nxge0/etc/hostname.vsw0svcadmenablevntsdlogicaldomainapp1ldmadd-domainapp1ldmadd-vcpu16app13.1逻辑分区结构图3.2区域架构图ldmadd-memory8Gapp1ldmadd-vnetvnet1primary-vsw1app1ldmadd-vdsdev/dev/dsk/c1t2d0s2vol1@primary-vds0ldmadd-vdiskvdisk1vol1@primary-vds0app1ldmbind-domainapp13.2区域(zone)的实现:不同与传统的逻辑分区,区域是一种软件分区,每个区域具有独立的进程空间和用户等资源。它的核心思想是将多个应用部署在同一台服务器上,达到资源共享,简便管理的目的。笔者公司内大量的DNS服务器,FTP服务器已经实现了基于区域的虚拟化迁移。利用区域现有的特点,可以实现多种实体机所不具备的安全性和简便性管理。以FTP为例,将服务器放置在DMZ区域内,内外网2套防火墙之间。多台FTP服务器采用区域(zone)的形式,内网服务器只配置内网地址。外网服务器只配置外网地址。利用全局和普通区域之间的文件共享,编写脚本,定时执行内外网服务器之间的文件复制。利用这样的架构,可以有如下的优势:区域之间的完全隔离,避免了由于单台系统跨接内外网而造成的跳板攻击内外网服务器具有独立的用户空间,可以设置不同的密码和其他安全策略利用区域(zone)的复制功能,可以在外网区域遭遇攻击时,迅速的恢复服务利用全局区域(globalzone)的特性,实现内外网间文件的安全传输。Zone虚拟化的配置主要由zonecfg,zoneadm等命令来完成:zonecfg-zZONENAMEzonecfg:ZONENAMEcreatezonecfg:ZONENAMEsetzonepath=/OUT-ZONEzonecfg:ZONENAMEsetautoboot=truezonecfg:ZONENAMEsetip-type=exclusivezonecfg:ZONENAMEaddnetzonecfg:ZONENAME:netsetphysical=e1000g2zonecfg:ZONENAME:netendzonecfg:ZONENAMEverifyzonecfg:ZONENAMEcommitzonecfg:ZONENAMEendzoneadm-zZONENAMEverifyzoneadm-zZONENAMEinstallzoneadm-zZONENAMEbootzlogin-COUT-ZONEGlobalZoneServerIPZONEAZONEBIPAIPB除了普通的系统,对于那些不能升级的solaris8,solaris9应用(新一代的SPARC机器只能安装solaris10),我们也可以采取区域虚拟化的方式对它们进行迁移。当然,这还需要额外安装一下solaris8或者solaris9的container软件包。具体步骤如下:1.在源系统中使用flarcreate创建名为s8-system的Flash归档映像文件,并将该归档文件放到Solaris10系统中(flarcreate-S-ns8-system/s8-system.flar)2.在目标系统中创建相应的zone.(保留原来的hostid,机器类型为sun4u)zonecfg-zs8-zonezonecfg:s8-zonecreate-tSUNWsolaris8使用模板创建新的solaris8区域zonecfg:s8-zoneaddattr将属性名称设置为hostid。zonecfg:s8-zone:attrsetname=hostid将type设置为string。zonecfg:s8-zone:attrsettype=string将value设置为hostid。zonecfg:s8-zone:attrsetvalue=zonecfg:s8-zoneaddattr将uname返回的计算机名始终设置为sun4u。zonecfg:s8-zone:attrsetname=machine将属性名称设置为machinezonecfg:s8-zone:attrsettype=string将type设置为string。zonecfg:s8-zone:attrsetvalue=sun4u将value设置为sun4u。3.利用生成的映像文件来安装新的zonezoneadm-zs8-zoneinstall-u-a/s8_system.flar4.结束语基于solaris的虚拟化技术能使传统的小型机更合理的分配资源,达到节电,节约空间的目的。从实际使用效果来看,单个系统的CPU和IO的利用率大幅提高,总体服务器数量相应减少。能够在实现了降低运维成本的同时,也满足相关应用平稳运行,快速部署,方便迁移的要求。参考文献[1]OracleVMforSPARCViewLibrary2010.[2]存储虚拟化技术的研究微计算机应用2010.1[3]ApparaoP,IyerR,ZhangX,etal.Characterization&analysisofaserverconsolidationbenchmarkPPProceedingsofthe4thInternationalConferenceonVirtualExecutionEnvironments(VEEp08),Seattle,2008:21229[4]SmithJE,NairR.Virtualmachines:Versatileplatformsforsystemsandprocesses[M].MorganKaufmann:ElsevierInc,2006:1-26.作者简介:王超男出生年月:1978.5同济大学计算机科学与技术专业应用与网络方向2003级硕士现上海贝尔股份有限公司SAP&UNIX系统工程师通讯地址:上海浦东北中路247弄(莲宏苑)16号401201204e-mail:chao.g.wang@alcatel-sbell.com.cnmobile:13661648071