在不同硬件平台间克隆软件系统的方法

文档序号:6518249阅读:263来源:国知局
专利名称:在不同硬件平台间克隆软件系统的方法
技术领域
本发明涉及计算机软件技术领域,具体地,涉及一种在不同硬件平台间克隆软件系统的方法,其中通过对机群中的具有不同硬件平台的计算机进行分组克隆,在不同硬件平台间实现软件系统的克隆。
背景技术
在申请号为200510074620.0的专利申请文件中,公开了一种在硬件平台差异不大的计算机之间实现网络克隆的方法,其实现流程如图1所示,但是对于平台芯片规格不一致的情况,这种方法也还是无法解决同传后接收端计算机无法正常启动的问题,原因是运行在核心层的驱动程序必须要与硬件信息完全匹配,操作系统才能顺利完成内核启动的工作,否则的话就会无法启动进入操作系统的Logon进程,从而也就无法继续调用启动组的驱动程序智能安装功能去升级硬件的驱动程序信息,比如如果源计算机上的CPU是Intel公司的,而目标计算机上的CPU是AMD公司的,那么网络克隆结束后目标机重新启动进入操作系统的时候就会出现死机。因此各个PC厂家至今还是采取规避的措施,要求用户在公共机房中部署同一批计算机。
然而,在实际的产品线运作和大客户采购模式中,很难保证某个产品系列中不出现两种规格的主板,并且这两种产品型号也很难保证不发给同一个最终用户手中,比如某个城市的教委统一采购了1万台联想启天电脑,然后陆续分配给各个学校,但是由于这么大一个定单在实际操作的时候会在不同的时间阶段分成多个批次交货,因此就不可避免地出现同一个电子教室中同时到货“启天4210”和“启天6210”,假设“启天4210”使用的是Intel CPU+Intel 845GV主板,“启天6210”使用的是AMD CPU+VIA KM400主板,很明显在“启天4210”上做好的系统克隆到“启天6210”上后,重启计算机时可能会黑屏无法启动,因为这两个平台的硬件架构差别太大。
这种在硬件平台差异非常大的计算机之间实现快速方便的系统部署的需求将日益增多,并且这种需求对于那些比较大的公共机房(比如计算机数量超过100台的网吧)的管理员来说是很强烈的。
对于通过远程给计算机安装操作系统和应用软件的技术已经比较成熟(以下称之为“远程安装模式”),主要就是利用计算机BIOS中已经支持的PXE(预启动环境)协议、以及操作系统安装程序本身支持的基于脚本描述语言的自动安装功能,把控制端计算机上的操作系统安装目录虚拟成一个本地目录,开始自动安装操作系统,在这种方式下,发射端和接收端计算机之间采用的是面向连接的网络数据传输协议,因此与发射端计算机同时连接的接收端计算机数量越多,发射端网卡数据流量就越大,CPU资源和内存资源的占用就越多,从而会形成一个性能瓶颈。
另外,还存在一种混合安装模式,在该模式下,预先在机群中指定一台发射端计算机,机群中的其他计算机相对于该发射端计算机成为接收端计算机。然后,采用上述远程安装模式为机群中的发射端计算机安装软件系统,然后,该发射端计算机使用广播安装方式为同一个物理网段内的计算机克隆软件系统,即,发射端计算机通过广播方式将本机内的软件系统安装文件发送到接收端计算机并控制该软件系统的安装。这就是所述的混合安装模式,其中混合使用了远程安装模式和广播安装模式。但是,在该方法中,面临着不能彻底支持跨硬件平台的问题。
做一个简单的数学计算就能看出这种瓶颈效应的严重程度,假设只需要从远程给每个接收端计算机安装一个WindowsXP,总的数据容量在1.7G左右,WindowsXP的安装时间为30分钟左右,大约有10分钟是需要从安装介质上拷贝数据的,因此每安装1台接收端计算机对发射端计算机的平均网络负载是85M byte/min,相当于2.27M bit/s,这是有效数据负载指标,实际上加上一些控制信息和容错重发信息,实际数据负载指标会比有效数据负载指标高10%-30%,以平均值20%计算实际数据负载结果是2.712M bit/s,这样计算下来,对于配备100M网卡的发射端计算机来说,同时给35台以下接收端计算机安装操作系统的时候,性能指标不会明显下降,但是如果想同时给50台甚至100台接收端计算机安装操作系统的话,那么安装速度就会急剧下降,因为还要考虑到发射端计算机中CPU资源、内存资源和I/O资源的使用瓶颈效应。因此使用这种面向连接的远程安装操作系统和驱动程序的方法也有很大局限性。
因此,对于跨硬件平台给50台以上计算机快速部署操作系统的需求来说,单纯地使用基于广播包协议的复制克隆技术,或者单纯地使用基于面向连接协议的远程安装技术都无法完全满足,需要找到更好的解决方案。
针对公共机房中计算机通常都能安排在同一个物理网段,所有计算机都由同一家供应商提供,大部分计算机的硬件配置完全相同,只有极少数计算机的硬件配置会有差异的具体情形,需要结合利用现有基于广播包协议的复制克隆技术、硬件配置差异化比较技术、基于面向连接协议的远程安装技术、驱动程序智能安装技术和软件分发技术,设计一个特定的安装策略和算法,从而实现最快速方便地为整个公共机房中的计算机安装操作系统、驱动程序和应用软件。

发明内容
为了解决上述问题,提出了本发明,因此本发明的一个目的在于提出一种在不同硬件平台间克隆软件系统的方法,其中通过对机群中的具有不同硬件平台的计算机进行分组克隆,在不同硬件平台间实现软件系统的克隆。
为了实现上述目的,提出了一种在不同硬件平台间克隆软件系统的方法,包括从机群中选择发射端计算机并远程启动机群中的各个接收端计算机;发射端计算机接收从启动后的所述各个接收端计算机发送的硬件配置信息,并将所述接收端计算机的硬件配置信息与发射端计算机的硬件配置信息进行比较;根据比较结果对机群中的接收端计算机进行分组;以及对不同组应用不同的安装策略以便为所述各组中的计算机分别安装软件系统。
优选地,所述硬件配置信息包括硬件芯片规格信息和供应商信息。
优选地,所述根据比较结果对机群中的接收端计算机进行分组的步骤包括将硬件配置信息与发射端计算机完全相同、以及硬件芯片规格信息与发射端计算机相同而供应商信息不同的接收端计算机划分为第一组、以及将硬件芯片规格信息与供应商信息与发射端计算机均不同的接收端计算机划分为第二组。
优选地,所述对不同组应用不同的安装策略以便为所述各组中的计算机分别安装软件系统的步骤包括对于第一组,通过从发射端计算机向第一组内的所有接收端计算机广播数据包的方式,实现对第一组内的所有接收端计算机的软件系统安装。
优选地,所述对不同组应用不同的安装策略以便为所述各组中的计算机分别安装软件系统的步骤包括对于第二组,将第二组计算机划分为硬件配置完全相同的多个子组;对每个子组应用指定的远程安装模式、指定的混合安装模式、或根据所需安装时间从远程安装模式和混合安装模式中所选的安装模式来分别实现各子组中的计算机的软件系统的安装。
优选地,根据所需安装时间从远程安装策略和混合安装策略中所选的安装模式来实现计算机软件系统安装的步骤包括计算远程安装模式所需安装时间和混合安装模式所需安装时间;比较远程安装模式所需安装时间和混合安装模式所需安装时间;如果远程安装模式所需安装时间多于混合安装模式所需安装时间,则选择混合安装模式在子组的计算机之间克隆系统软件系统;以及如果远程安装模式所需安装时间少于混合安装模式所需安装时间,则选择远程安装模式在子组的计算机之间克隆系统软件系统。
优选地,远程安装模式所需安装时间基于以下参数软件系统文件大小、网络带宽、网卡速度、内存读写速度和硬盘读写速度。
优选地,混合安装模式所需安装时间基于以下参数软件系统文件大小、网卡速度、内存读写速度和硬盘读写速度、广播速度、以及数据压缩算法的平均压缩率。


通过参考以下结合附图所采用的优选实施例的详细描述,本发明的上述目的、优点和特征将变得显而易见,其中图1示出了根据传统技术的在不同硬件平台间实现软件系统克隆的方法的流程图;图2是示出了根据本发明实施例的在不同硬件平台间克隆软件系统的方法的总体流程图;图3是示出了根据本发明实施例的给接收端计算机进行分组的处理的流程图;图4是示出了根据不同策略为各组计算机安装软件系统的处理的详细流程图;图5示出了根据本发明实施例的选择远程安装模式和混合安装模式以进行安装的方法的流程图;图6是示出了由制造商提供的V单台拷贝经验值的表格;以及图7是示出了由制造商提供的V广播经验值的表格。
具体实施例方式
下面将结合附图来描述本发明的优选实施例。图2示出了根据本发明实施例的在不同硬件平台间克隆软件系统的方法的总体流程图。
当管理员把公共机房的机群中的计算机在物理上连接成在一个网段内后,如图2所示,任意选择一台计算机当作发射端,启动进入准备进行网络克隆的状态(步骤200);然后,远程启动或者唤醒其他接收端计算机,让它们进入到登录发射端状态(步骤202),接下来,接收端计算机检查自身的硬件配置信息,并以特定格式将其发送给发射端计算机(步骤204),在接收到来自各个接收端计算机的硬件配置信息之后,发射端计算机将自己的硬件配置信息与这些硬件配置信息进行比较,并根据比较结果对接收端计算机进行分组(步骤206),最后,发射端计算机根据不同的策略给每组计算机安装软件系统(步骤208)。
图3示出了根据本发明实施例的给接收端计算机进行分组的处理的流程图。
如图3所示,实际上,比较硬件配置信息的方法有两种,一种是针对PCI设备来说,可以根据PCI规范中的规定获得某个PCI设备的信息,然后比较其ID信息;另一种是针对非PCI设备来说,直接从BIOS中去获取诸如BIOS文件名称和版本,硬盘型号和容量等信息。作为示例,在本实施例中只比较PCI设备信息,并且据此只分成两组。在步骤330,根据PCI设备信息,把硬件配置信息与所述发射端计算机完全相同的接收端计算机、或者硬件芯片规格(DeviceID)一致但是供应商信息(VendorID)不一致的接收端归入第一组中,分别记录下其网卡MAC地址,以便在后续信息交互中使用。接下来,在步骤332,将硬件芯片规格和供应商信息均与发射端不一致的接收端计算机归入第二组计算机群,分别记录它们的网卡MAC地址,以便在后续信息交互中使用。
下面参考图4,图4示出了根据不同策略为各组计算机安装软件系统的处理的详细流程图。
如图4所示,根据分组结果选择第一组计算机(步骤400),开始读取发射端硬盘上的有效数据块(步骤402),其中所述数据块包括软件系统信息。然后,使用广播数据包方法把该数据块发送到接收端计算机(步骤404),每个接收端计算机接收到这个数据块后,把它写入硬盘的对应位置(步骤406),然后,判断发射端硬盘中是否还有有效数据(步骤408),如果是(步骤408,“是”),则重复上述过程,一直到发射端硬盘上的所有有效数据都被发送出去,即如果不是(步骤408,“否”),则第一组计算机中的每个接收端收到全部数据并写入硬盘后,就自己关机(步骤410)。此时,第一组计算机中的每个计算机(包括发送端和接收端计算机)均安装完成。
然后,发射端计算机选择第二组计算机(步骤412),此时将第二组计算机中的所有计算机按照硬件配置完全相同的条件划分为子组(步骤414),即,将具有相同硬件平台(例如,具有相同芯片规格和供应商信息)的计算机划分为一组,从而形成多个硬件平台相同的子组。在机群环境下,通常,在划分了第一组计算机之后,在第二组计算机不会存在许多硬件配置不同的子组,这是由于在机房中实际采购计算机会考虑这些问题。因此,对第二组计算机划分为子组之后,在实际中,通常仅会存在两到三个子组。
接下来,对每一个子组内的计算机应用安装策略(步骤416)。此时,可以指定应用远程安装模式和混合安装模式(如上所述)之一来进行安装,也可以根据安装所需时间进行选择以选择远程安装模式和混合安装模式中所需安装时间最小的一种模式来进行安装。下面将对后一种选择方式进行详细描述。
图5示出了根据本发明实施例的选择远程安装模式和混合安装模式以进行安装的方法的流程图。
如图5所示,在开始之后,对远程安装模式所需安装时间T1进行计算(步骤510),并且对混合安装模式所需安装时间T2进行计算(步骤520)。然后,对远程安装模式所需安装时间T1和混合安装模式所需安装时间T2进行比较(步骤530),如果远程安装模式所需安装时间T1大于混合安装模式所需安装时间T2,则选择混合安装模式来克隆软件系统(步骤540);反之,则选择远程安装模式来克隆软件系统(步骤550)。
作为示例,可以采用以下公式来计算T1T1=(T拷贝+T安装)其中,T拷贝=int(M/(带宽/V单台拷贝))*(操作系统安装文件大小/V单台拷贝);在以上公式中,“T拷贝”的含义是安装操作系统开始后需要从发射端把安装文件拷贝到接收端内存中的时间,因此它取决于网络带宽、网卡速度、内存读写速度与硬盘读写速度。其中V单台拷贝的含义是单独远程安装一台计算机的时候,拷贝文件的平均速度,它与CPU速度、内存容量和硬盘转速关系最大,这个数值比较适合通过实验测试获得,对于Intel的配置为P4CPU+256M内存+7200转硬盘的计算机来说,V单台拷贝的大小约为3M/s,因此如果要安装1.7G大小的系统,每台拷贝的时间为1700/3约等于570秒,而对于100Mbps网络来说,每次可以并行安装100/(3*8)约等于4台计算机。M表示机群中计算机的台数,因此如果M等于50的话,那么就相当于需要分int(50/4)=13次来安装,所有T拷贝=13*570s=7410s约等于124分钟,即超过了两个小时。
“T安装”的含义是从内存中安装配置操作系统和驱动程序(即,软件系统)的时间,取决于操作系统的复杂程度,由于该机群中所有计算机都可以同时启动安装过程,因此T安装只需要计算一份,WindowsXP的T安装在30分钟左右,因此T311=124+30约等于154分钟。
计算机出厂的时候,制造商根据关键硬件配置的区别测试出不同的数值,存放在HPA(主机保护区)中的一个表格中,由应用软件根据当时的计算机配置信息去该表中寻找配置最接近的对应时间。在图6的表格中示出了V单台拷贝经验值。
接下来将说明混合安装模式所需安装时间T2的计算过程,具体地,该过程分为以下多个步骤计算使用远程安装模式给该机群中一台发射端计算机(如上所述)安装软件系统的总时间T21;计算由所述发射端计算机使用广播安装模式给该机群中其他接收端安装软件系统的总时间T22;由此获得混合安装模式下的总安装时间T2=T21+T22。
作为示例,可以采用以下公式来计算T21、T22T21的计算方法与T1类似,需要注意的是,其中的M此时变为1。
T22=操作系统安装文件大小*R压缩率/V广播其中R压缩率是克隆程序本身采用的数据压缩算法的平均压缩率指标,数值范围在0.5~1.0之间,比如设计良好的R压缩率能到0.6。
V广播的含义类似于V单台拷贝,也主要与CPU速度、内存容量和硬盘转速关系最大,但是其速度会比V单台拷贝要大,计算机出厂的时候,制造商根据关键硬件配置的区别测试出不同的数值,存放在HPA中的一个表格中,由应用软件根据当时的计算机配置信息去该表中寻找配置最接近的对应时间,在图7的表格中示出了V广播经验值。
需要注意的是,所述软件系统可以是操作系统、应用程序系统、以及其他需要安装(克隆)的系统。而且,在本发明中所涉及的计算机含义是广义上的,其可以包含任意需要安装软件系统的计算设备。
尽管以上已经结合本发明的优选实施例示出了本发明,但是本领域的技术人员将会理解,在不脱离本发明的精神和范围的情况下,可以对本发明进行各种修改、替换和改变。因此,本发明不应由上述实施例来限定,而应由所附权利要求及其等价物来限定。
权利要求
1.一种在不同硬件平台间克隆软件系统的方法,包括从机群中选择发射端计算机并远程启动机群中的各个接收端计算机;发射端计算机接收从启动后的所述各个接收端计算机发送的硬件配置信息,并将所述接收端计算机的硬件配置信息与发射端计算机的硬件配置信息进行比较;根据比较结果对机群中的接收端计算机进行分组;以及对不同组应用不同的安装策略以便为所述各组中的计算机分别安装软件系统。
2.根据权利要求1所述的方法,其特征在于所述硬件配置信息包括硬件芯片规格信息和供应商信息。
3.根据权利要求2所述的方法,其特征在于所述根据比较结果对机群中的接收端计算机进行分组的步骤包括将硬件配置信息与发射端计算机完全相同、以及硬件芯片规格信息与发射端计算机相同而供应商信息不同的接收端计算机划分为第一组、以及将硬件芯片规格信息与供应商信息与发射端计算机均不同的接收端计算机划分为第二组。
4.根据权利要求3所述的方法,其特征在于所述对不同组应用不同的安装策略以便为所述各组中的计算机分别安装软件系统的步骤包括对于第一组,通过从发射端计算机向第一组内的所有接收端计算机广播数据包的方式,实现对第一组内的所有接收端计算机的软件系统安装。
5.根据权利要求3所述的方法,其特征在于所述对不同组应用不同的安装策略以便为所述各组中的计算机分别安装软件系统的步骤包括对于第二组,将第二组计算机划分为硬件配置完全相同的多个子组;对每个子组应用指定的远程安装模式、指定的混合安装模式、或根据所需安装时间从远程安装模式和混合安装模式中所选的安装模式来分别实现各子组中的计算机的软件系统的安装。
6.根据权利要求5所述的方法,其特征在于根据所需安装时间从远程安装模式和混合安装模式中所选的安装模式来实现计算机软件系统安装的步骤包括计算远程安装模式所需安装时间和混合安装模式所需安装时间;比较远程安装模式所需安装时间和混合安装模式所需安装时间;如果远程安装模式所需安装时间多于混合安装模式所需安装时间,则选择混合安装模式在子组的计算机之间克隆系统软件系统;以及如果远程安装模式所需安装时间少于混合安装模式所需安装时间,则选择远程安装模式在子组的计算机之间克隆系统软件系统。
7.根据权利要求6所述的方法,其特征在于远程安装模式所需安装时间基于以下参数软件系统文件大小、网络带宽、网卡速度、内存读写速度和硬盘读写速度。
8.根据权利要求6所述的方法,其特征在于混合安装模式所需安装时间基于以下参数软件系统文件大小、网卡速度、内存读写速度和硬盘读写速度、广播速度、以及数据压缩算法的平均压缩率。
全文摘要
提出了一种在不同硬件平台间克隆软件系统的方法,包括从机群中选择发射端计算机并远程启动机群中的各个接收端计算机;发射端计算机接收从启动后的所述各个接收端计算机发送的硬件配置信息,并将所述接收端计算机的硬件配置信息与发射端计算机的硬件配置信息进行比较;根据比较结果对机群中的接收端计算机进行分组;以及对不同组应用不同的安装策略以便为所述各组中的计算机分别安装软件系统。
文档编号G06F9/445GK1889437SQ20051001205
公开日2007年1月3日 申请日期2005年6月30日 优先权日2005年6月30日
发明者王晚丁, 王晓艳, 郭雅言 申请人:联想(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1