基于simics系统模拟器的云计算仿真系统及方法

文档序号:7865444阅读:498来源:国知局
专利名称:基于simics系统模拟器的云计算仿真系统及方法
技术领域
本发明涉及云计算仿真领域,特别是涉及一种基于simics系统模拟器的云计算仿真系统及方法。
背景技术
随着云计算技术的日益普及和大量工业化应用,云计算在实现服务的高可用性、处理能力的可扩展性等方面的优势越来越多地被业界认可。云计算系统庞大,节点众多,类型复杂,从云数据中心经过IP (Internet Protocol,网际协议)网络到海量的终端,整个网络场景的实际设备花费巨大,在经济上对众多中小云计算研究机构来说,是个沉重的负担。云计算仿真技术将逐渐成为云计算系统规划、设计和开发中的主流技术,因此如何实现云计算系统的仿真成为本领域亟待解决的技术难题。

发明内容
本发明的目的是为了克服上述背景技术的不足,提供一种基于simics系统模拟器的云计算仿真系统及方法,在simics系统模拟器的基础上,以较低的成本构造整个云计算的网络场景,实现云计算的仿真测试研究,缩短系统建设周期,提高系统建设中决策的科学性,可以应用于多种云计算平台。本发明提供的基于simics系统模拟器的云计算仿真系统,包括多个数据中心仿真单元、一个网络仿真单元和多个终端群仿真单元,所述网络仿真单元有两个网络接口,其中一个网络接口通过以太网接口连接多个数据中心仿真单元,另一个网络接口通过以太网接口连接多个终端群仿真单元;所述数据中心仿真单元、网络仿真单元和终端群仿真单元均为基于simics系统模拟器构建的虚拟仿真单元,均运行真实操作系统;所述数据中心仿真单元,用于模拟云计算数据中心的各种节点,每个数据中心仿真单元包括多个云控制器仿真节点、多个集群控制器仿真节点、多个节点控制器仿真节点,数据中心仿真单元内部的各仿真节点之间互相连接,或者与网络仿真单元连接;所述网络仿真单元,用于仿真IP网络的传输性能,包括IP网络仿真模块和/或基于ns2的DelayBox模块,网络仿真单元基于真实的操作系统运行IP网络仿真模块或基于ns2的DelayBox模块;所述终端群仿真单元,用于模拟海量终端对云计算平台的访问,终端群仿真单元包括压力测试工具Apache Jmeter和/或基于ns2的终端群仿真模块,终端群仿真单元基于真实的操作系统,单独运行压力测试工具Apache JMeter或基于ns2的终端群仿真模块,或同时运行压力测试工具Apache Jmeter和基于ns2的终端群仿真模块。在上述技术方案中,所述网络仿真单元运行IP网络仿真模块时,通过模拟IP网络的主要性能参数指标,来仿真IP网络的传输性能;ip网络仿真模块的参数包括丢包率和包延迟,丢包率以百分比的形式预先设定;包延迟包括平均分布、指数分布、泊松分布、正态分布、二项分布,IP网络仿真模块维护一个线程池,采用多线程模式,对接收到的每个包进行处理,根据传输算法决定是否丢弃包,决定包的延迟,然后发送包出去。在上述技术方案中,所述IP网络仿真模块包括数据包接收子模块、线程池维护子模块、线程池状态查询子模块、线程分配子模块、均匀分布随机数生成子模块、均匀分布随机数比较子模块、数据包处理子模块、包延迟随机数生成子模块、数据包发送子模块,其中数据包接收子模块,用于接收数据包,并发送到数据包处理子模块;线程池维护子模块,用于维护线程池;线程池状态查询子模块,用于查询线程池的状态,判断线程池是否有空闲的线程,如果查询到没有空闲的线程,则等待,继续判断线程池是否有空闲的线程,直到有空闲 的线程;查询到有空闲的线程时,产生一个线程分配触发信号,并发送到线程分配子模块;线程分配子模块,用于收到线程池状态查询子模块发来的线程分配触发信号时,分配一个空闲的线程来处理数据包,产生一个均匀分布随机数生成触发信号,并发送到均匀分布随机数生成子模块;均匀分布随机数生成子模块,用于收到线程分配子模块发来的均匀分布随机数生成触发信号时,生成一个(0,I)均匀分布的随机数,产生一个均匀分布随机数比较触发信号,并发送到均匀分布随机数比较子模块;均匀分布随机数比较子模块,用于收到均匀分布随机数生成子模块发来的均匀分布随机数比较触发信号时,比较均匀分布随机数与丢包率的大小,判断该均匀分布随机数是否>丢包率,如果该均匀分布随机数>丢包率,则产生一个数据包保留触发信号,并发送到数据包处理子模块;如果该均匀分布随机数小于丢包率,则产生一个数据包丢弃触发信号,并发送到数据包处理子模块;数据包处理子模块,用于接收数据包接收子模块发来的数据包,若收到随机数比较子模块发来的数据包丢弃触发信号,则丢弃这个数据包,并将线程返还给线程池;若收到随机数比较子模块发来的数据包保留触发信号,则保留这个数据包,并产生一个包延迟随机数生成触发信号,将包延迟随机数生成触发信号和保留的数据包一起发送到包延迟随机数生成子模块;包延迟随机数生成子模块,用于收到数据包处理子模块发来的包延迟随机数生成触发信号和保留的数据包时,根据参数设定,启动对应的随机分布算法,生成一个包延迟的随机数,并产生一个数据包发送触发信号,将数据包发送触发信号、包延迟的随机数和保留的数据包一起发送到数据包发送子模块;包延迟随机数生成子模块支持的随机分布类型包括平均分布、指数分布、泊松分布、正态分布、二项分布;数据包发送子模块,用于收到包延迟随机数生成子模块发来的数据包发送触发信号、包延迟的随机数和保留的数据包时,根据这个包延迟的随机数修改数据包的延迟信息,根据数据包的目的地址发送保留的数据包,然后将线程返还给线程池。在上述技术方案中,所述IP网络仿真模块仿真IP网络传输性能的流程为步骤S1、收到一个数据包;步骤S2、维护一个线程池,查询线程池的状态,判断线程池是否有空闲的线程,如果有,则转到步骤S4 ;否则转到步骤S3 ;步骤S3、如果没有空闲的线程,则等待,返回步骤S2,继续判断线程池是否有空闲的线程,直到有空闲的线程,转到步骤S4 ;步骤S4、分配一个空闲的线程来处理数据包,然后转到步骤S5 ;步骤S5、生成一个(0,I)均匀分布的随机数,转到步骤S6 ;步骤S6、比较均匀分布随机数与丢包率的大小,判断该均匀分布随机数是否 >丢包率,如果是,转到步骤S8 ;否则,转到步骤S7 ;步骤S7、如果该均匀分布随机数小于丢包率,则丢弃数据包,转到步骤SlO ;步骤S8、如果该均匀分布随机数>丢包率,则保留数据包,根据参数设定,启动对应的随机分布算法,得到一个包延迟的随机数,支持的随机分布类型包括平均分布、指数分布、泊松分布、正态分布、二项分布,转到步骤S9 ;步骤S9、根据包延迟随机数修改数据包的延迟信息,根据数据包的目的地址发送 数据包,转到步骤S10;步骤S10、将线程返还给线程池,该处理线程结束。在上述技术方案中,所述数据中心仿真单元还包括基于ns2的server模块,数据中心仿真单元中的节点控制器仿真节点基于真实的操作系统,运行真实的云计算数据中心业务和/或基于ns2的server业务。在上述技术方案中,所述数据中心仿真单元中的节点控制器仿真节点运行基于ns2的server模块时,采用实时调度器作为仿真工具,在ns2环境里创建以下内容的脚本(I)创建网络设备对象II,选择pcap/bpf, raw IP, UDP/IP三种类型中的一种;(2)创建TapAgent类型的代理对象Tl ;(3)创建标准仿真节点对象nodel,配置server应用;(4)连接仿真节点对象nodel至代理对象Tl ;(5)连接代理对象Tl至网络设备对象Il ;(6)启动数据中心仿真单元的仿真。在上述技术方案中,所述网络仿真单元运行基于ns2的DelayBox模块时,采用实时调度器作为仿真工具,在ns2环境里创建以下内容的脚本(I)创建网络设备对象12,选择pcap/bpf, raw IP, UDP/IP三种类型中的一种;(2)创建TapAgent类型的代理对象T2 ;(3)创建DelayBox类型的仿真节点node2 ;(4)连接仿真节点node2至代理对象T2 ;(5)连接代理对象T2至网络设备对象12 ;(6)启动网络仿真单元的仿真。在上述技术方案中,所述终端群仿真单元运行基于ns2的终端群仿真模块时,采用实时调度器作为仿真工具,在ns2环境里创建以下内容的脚本(I)创建网络设备对象13,选择pcap/bpf, raw IP, UDP/IP三种类型中的一种;(2)创建TapAgent类型的代理对象T3 ;(3)创建终端群仿真clientCloud类型的仿真节点node3 ;(4)连接仿真节点node3至代理对象T3 ;(5)连接代理对象T3至网络设备对象13 ;(6)启动终端群仿真单元的仿真。
在上述技术方案中,所述真实操作系统包括MS-DOS、Windows、Vxworks> OSE>Solaris、FreeBSD、Linux、QNX 和 RTEMS。本发明还提供一种基于上述云计算仿真系统的仿真IP网络传输性能的方法,包括以下步骤步骤S1、收到一个数据包;步骤S2、维护一个线程池,查询线程池的状态,判断线程池是否有空闲的线程,如果有,则转到步骤S4 ;否则转到步骤S3 ;步骤S3、如果没有空闲的线程,则等待,返回步骤S2,继续判断线程池是否有空闲的线程,直到有空闲的线程,转到步骤S4 ;步骤S4、分配一个空闲的线程来处理数据包,然后转到步骤S5 ;
步骤S5、生成一个(0,I)均匀分布的随机数,转到步骤S6 ;步骤S6、比较均匀分布随机数与丢包率的大小,判断该均匀分布随机数是否 >丢包率,如果是,转到步骤S8 ;否则,转到步骤S7 ;步骤S7、如果该均匀分布随机数小于丢包率,则丢弃数据包,转到步骤SlO ;步骤S8、如果该均匀分布随机数>丢包率,则保留数据包,根据参数设定,启动对应的随机分布算法,得到一个包延迟的随机数,支持的随机分布类型包括平均分布、指数分布、泊松分布、正态分布、二项分布,转到步骤S9 ;步骤S9、根据包延迟随机数修改数据包的延迟信息,根据数据包的目的地址发送数据包,转到步骤S10;步骤S10、将线程返还给线程池,该处理线程结束。与现有技术相比,本发明的优点如下本发明提供了一个研究云计算的可行的低成本的解决方案,在simics系统模拟器的基础上,以较低的成本构造整个云计算的网络场景,实现云计算的仿真测试研究,可以真实运行、模拟和测试多种云计算平台,为云计算系统的规划设计提供客观、可靠的定量依据,缩短系统建设周期,提高系统建设中决策的科学性,可以应用于多种云计算系统,有良好的扩展性和实用价值。


图1是云计算的网络场景示意图。图2是本发明实施例中云计算仿真系统的系统框架图。图3是本发明实施例中IP网络仿真模块仿真IP网络传输性能的流程图。
具体实施例方式下面结合附图及具体实施例对本发明作进一步的详细描述。参见图1所示,云计算的整个网络场景包括云计算数据中心、IP网络以及海量的终端。云计算数据中心提供云服务和云应用,终端通过IP网络对这些云服务和云应用进行访问。参见图2所示,为了仿真云计算的整个网络场景,本发明实施例提供一种基于simics系统模拟器的云计算仿真系统,包括多个数据中心仿真单元、一个网络仿真单元和多个终端群仿真单元,网络仿真单元有两个网络接口,其中一个网络接口通过以太网接口连接多个数据中心仿真单元,另一个网络接口通过以太网接口连接多个终端群仿真单元。数据中心仿真单元通过仿真云计算平台的数据中心的各个仿真节点来模拟数据中心的功能;网络仿真单元,用于仿真IP网络的传输性能;终端群仿真单元,用于模拟海量终端。数据中心仿真单元和终端群仿真单元可以有多个,网络仿真单元只有一个。数据中心仿真单元、网络仿真单元和终端群仿真单元均为基于simics系统模拟器构建的虚拟仿真单兀,均运行真实操作系统,例如MS-DOS、Windows、Vxworks> OSE> Solaris、FreeBSD、Linux、QNX和RTEMS等,所有仿真单元既可以运行在一台实际PC机上,也可以运行在多台PC机上,多台计算机可以同时运行simics系统模拟器,一个 真实操作系统可以运行多个虚拟机。一个仿真单元只能选择在一台计算机上运行,不能同时在多台计算机上运行。simics系统模拟器是一款高性能的系统模拟器,它提供了一个受控制的、确定性的、完全虚拟环境模拟平台,可以模拟单处理机系统和多处理机系统,为多种任务提供了一个普通的基本结构,包括微处理机设计、存储器分级体系设计、元件研制和测试、软件质量的自动化测试、虚拟样机、硬件软件同步虚拟,还有固件、驱动程序和操作系统的开发。simics系统模拟器可以模拟多种CPU和硬件,例如可以模拟Sun Blade 1500.ARM v6、InterPentium、MIPS 4K、ADM Athlon64等,可用于硬件和系统软件的评测。不仅如此,simics系统模拟器还可以同时模拟多台机器,而且这些机器通过一个虚拟的以太网链路连接在一起组成一个小网络环境。数据中心仿真单元用于模拟云计算数据中心的各种节点,每个数据中心仿真单元包括多个云控制器仿真节点、多个集群控制器仿真节点、多个节点控制器仿真节点等多种类型的仿真节点,数据中心仿真单元内部的各仿真节点之间可以互相连接,也可以与网络仿真单元连接。ns2 (Network Simulator version 2)是一种针对网络仿真技术、开放源码、免费的软件模拟平台,研究人员使用它可以很容易的进行网络技术的开发,而且发展到今天,它所包含的模块几乎涉及到了网络技术的所有方面,成为目前学术界广泛使用的一种网络模拟软件。ns2网络仿真软件包括用于为终端提供服务的server软件和用于仿真网络传输性能的DelayBox软件,本发明实施例中扩展了基于ns2的用于仿真海量终端的终端群仿真clientCloud软件。云计算的仿真测试研究可以引入ns2网络仿真软件,降低仿真模型的精细度,提高仿真速度,在仿真精度和仿真速度上达到一个妥协。数据中心仿真单元还可以包括基于ns2的server模块,数据中心仿真单元中的节点控制器仿真节点基于真实的操作系统,可以运行真实的云计算数据中心业务和/或基于ns2的server业务,运行基于ns2的server业务可通过降低仿真业务精细度来提高仿真速度,实际应用中需要根据具体需求来决定是否运行基于ns2的server业务。数据中心仿真单元中的节点控制器仿真节点运行基于ns2的server业务时,采用real-time scheduler (实时调度器)作为仿真工具,在ns2环境里创建以下内容的脚本(I)创建网络设备对象II,选择pcap/bpf, raw IP, UDP/IP三种类型中的一种;(2)创建TapAgent类型的代理对象Tl ;(3)创建标准仿真节点对象nodel,配置server应用;
(4)连接仿真节点对象nodel至代理对象Tl ;(5)连接代理对象Tl至网络设备对象Il ;(6)启动数据中心仿真单元的仿真。网络仿真单元包括IP网络仿真模块和/或基于ns2的DelayBox模块,IP网络仿真模块、基于ns2的DelayBox模块均用于仿真IP网络的传输性能。网络仿真单元基于真实的操作系统,可以运行基于ns2的DelayBox模块,或者运行IP网络仿真模块,但是同一时间只能运行其中一个。网络仿真单元运行基于ns2的DelayBox模块时,采用实时调度器作为仿真工具,在ns2环境里创建以下内容的脚本(I)创建网络设备对象12,选择pcap/bpf, raw IP, UDP/IP三种类型中的一种;
(2)创建TapAgent类型的代理对象T2 ;(3)创建DelayBox类型的仿真节点node2 ;(4)连接仿真节点node2至代理对象T2 ;(5)连接代理对象T2至网络设备对象12 ;(6)启动网络仿真单元的仿真。网络仿真单元运行IP网络仿真模块时,通过模拟IP网络的主要性能参数指标,来仿真IP网络的传输性能。IP网络仿真模块的参数包括丢包率和包延迟,丢包率以百分比的形式预先设定;包延迟包括平均分布、指数分布、泊松分布、正态分布、二项分布等多种随机分布。从统计学角度对网络性能给予数学上的逼近,可以节省大量的仿真时间,对仿真的精确度影响也不大,在仿真速度和仿真精度的妥协上达到比较好的平衡点。IP网络仿真模块维护一个线程池,采用多线程模式,对接收到的每个包进行处理,根据传输算法决定是否丢弃包,决定包的延迟,然后发送包出去。IP网络仿真模块包括数据包接收子模块、线程池维护子模块、线程池状态查询子模块、线程分配子模块、均匀分布随机数生成子模块、均匀分布随机数比较子模块、数据包处理子模块、包延迟随机数生成子模块、数据包发送子模块,其中数据包接收子模块,用于接收数据包,并发送到数据包处理子模块;线程池维护子模块,用于维护线程池;线程池状态查询子模块,用于查询线程池的状态,判断线程池是否有空闲的线程,如果查询到没有空闲的线程,则等待,继续判断线程池是否有空闲的线程,直到有空闲的线程;查询到有空闲的线程时,产生一个线程分配触发信号,并发送到线程分配子模块;线程分配子模块,用于收到线程池状态查询子模块发来的线程分配触发信号时,分配一个空闲的线程来处理数据包,产生一个均匀分布随机数生成触发信号,并发送到均匀分布随机数生成子模块;均匀分布随机数生成子模块,用于收到线程分配子模块发来的均匀分布随机数生成触发信号时,生成一个(0,I)均匀分布的随机数,产生一个均匀分布随机数比较触发信号,并发送到均匀分布随机数比较子模块;均匀分布随机数比较子模块,用于收到均匀分布随机数生成子模块发来的均匀分布随机数比较触发信号时,比较均匀分布随机数与丢包率的大小,判断该均匀分布随机数是否 > 丢包率,如果该均匀分布随机数 > 丢包率,则产生一个数据包保留触发信号,并发送到数据包处理子模块;如果该均匀分布随机数小于丢包率,则产生一个数据包丢弃触发信号,并发送到数据包处理子模块;
数据包处理子模块,用于接收数据包接收子模块发来的数据包,若收到随机数比较子模块发来的数据包丢弃触发信号,则丢弃这个数据包,并将线程返还给线程池;若收到随机数比较子模块发来的数据包保留触发信号,则保留这个数据包,并产生一个包延迟随机数生成触发信号,将包延迟随机数生成触发信号和保留的数据包一起发送到包延迟随机数生成子模块;
包延迟随机数生成子模块,用于收到数据包处理子模块发来的包延迟随机数生成触发信号和保留的数据包时,根据参数设定,启动对应的随机分布算法,生成一个包延迟的随机数,并产生一个数据包发送触发信号,将数据包发送触发信号、包延迟的随机数和保留的数据包一起发送到数据包发送子模块;包延迟随机数生成子模块支持的随机分布类型包括平均分布、指数分布、泊松分布、正态分布、二项分布等;
数据包发送子模块,用于收到包延迟随机数生成子模块发来的数据包发送触发信号、包延迟的随机数和保留的数据包时,根据这个包延迟的随机数修改数据包的延迟信息,根据数据包的目的地址发送保留的数据包,然后将线程返还给线程池。
参见图3所示,IP网络仿真模块仿真IP网络传输性能的流程为
步骤S1、收到一个数据包;
步骤S2、维护一个线程池,查询线程池的状态,判断线程池是否有空闲的线程,如果有,则转到步骤S4 ;否则转到步骤S3 ;
步骤S3、如果没有空闲的线程,则等待,返回步骤S2,继续判断线程池是否有空闲的线程,直到有空闲的线程,转到步骤S4 ;
步骤S4、分配一个空闲的线程来处理数据包,然后转到步骤S5 ;
步骤S5、生成一个(0,I)均匀分布的随机数,转到步骤S6 ;
步骤S6、比较均匀分布随机数与丢包率的大小,判断该均匀分布随机数是否 > 丢包率,如果是,转到步骤S8 ;否则,转到步骤S7 ;
步骤S7、如果该均匀分布随机数小于丢包率,则丢弃数据包,转到步骤SlO ;
步骤S8、如果该均匀分布随机数>丢包率,则保留数据包,根据参数设定,启动对应的随机分布算法,得到一个包延迟的随机数,支持的随机分布类型包括平均分布、指数分布、泊松分布、正态分布、二项分布等,转到步骤S9 ;
步骤S9、根据包延迟随机数修改数据包的延迟信息,根据数据包的目的地址发送数据包,转到步骤S10;
步骤S10、将线程返还给线程池,该处理线程结束。
终端群仿真单元用于模拟海量终端对云计算平台的访问,可以有多个。终端群仿真单元基于真实的操作系统,只能连接网络仿真单元,不能互相连接。终端群仿真单元包括压力测试工具Apache Jmeter和/或基于ns2的终端群仿真clientCloud模块,终端群仿真单元可以单独运行压力测试工具Apache JMeter,也可以单独运行基于ns2的、继承自ns2 提供的client类的终端群仿真clientCloud模块,还可以同时运行压力 测试工具Apache Jmeter和基于ns2的终端群仿真clientCloud模块。基于ns2的终端群仿真clientCloud 模块相比压力测试工具Apache JMeter,既提供了仿真多client的能力,又能简化仿真业务复杂度,提高仿真速度。
目前有很多压力测试工具,能模拟海量终端的访问。只要在单机上运行工具,就可以模拟大规模数量终端的访问,例如开源的JMeter。JMeter是Apache组织开发的基于 Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。JMeter可以用于测试静态和动态资源,例如静态文件、Java小服务程序、CGI (Common Gateway Interface,通用网关接口)脚本、Java 对象、数据库,FTP (File Transfer Protocol,文件传输协议)服务器等等。JMeter可以用于对服务器、网络或对象模拟巨大的负载,来在不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证程序返回了期望的结果, 为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。JMeter可以用于对静态的和动态的资源(例如文件、Servlet、Perl脚本、java对象、数据库和查询、FTP服务器等等) 的性能进行测试。它可以用于对服务器,网络或对象模拟繁重的负载来测试它们的强度或分析不同压力类型下的整体性能,可以使用JMeter做性能的图形分析或在大并发负载测试服务器/脚本/对象。
基于ns2的终端群仿真clientCloud模块中的clientCloud类比client类多了两个参数,可以用于指定client的数量N (N为正整数)和client的IP地址池。运行基于 ns2的终端群仿真clientCloud模块时,相当于启动了 N个client, client的地址随机从指定的IP地址池中分配。
终端群仿真单元运行基于ns2的终端群仿真clientCloud模块时,采用实时调度器作为仿真工具,在ns2环境里创建以下内容的脚本
(I)创建网络设备对象13,选择pcap/bpf, raw IP, UDP/IP三种类型中的一种;
(2)创建TapAgent类型的代理对象T3 ;
(3)创建终端群仿真clientCloud类型的仿真节点node3 ;
(4)连接仿真节点node3至代理对象T3 ;
(5)连接代理对象T3至网络设备对象13 ;
(6)启动终端群仿真单元的仿真。
本发明实施例中终端群仿真单元中的压力测试工具Apache Jmeter和/或基于 ns2的终端群仿真clientCloud模块,通过网络仿真单元中的IP网络仿真模块或基于ns2 的DelayBox模块连接数据中心仿真单元,数据中心仿真单元中的节点控制器仿真节点基于真实的 MS-DOS、Windows、Vxworks> OSE> Solaris、FreeBSD、Linux、QNX 和 RTEMS 等操作系统,可以运行两种业务,一种是真实业务,另一种是基于ns2的server业务,两种业务可以单独使用,也可以混合使用,在实际应用中可以根据具体需要灵活组合,具体组合方式有 18种。
下面通过18个具体实施例分别进行说明。
实施例1飞单独运行真实的云计算数据中心业务。
实施例1、终端群仿真单元中的压力测试工具Apache Jmeter通过网络仿真单元中的IP网络仿真模块连接数据中心仿真单元,数据中心仿真单元中的节点控制器仿真节点基于真实的MS-DOS操作系统,运行真实的云计算数据中心业务。
实施例2、终端群仿真单元中的压力测试工具Apache Jmeter通过网络仿真单元中基于ns2的DelayBox模块连接数据中心仿真单元,数据中心仿真单元中的节点控制器仿真节点基于真实的Windows操作系统,运行真实的云计算数据中心业务。
实施例3、终端群仿真单元中基于ns2的终端群仿真clientCloud模块通过网络仿真单元中的IP网络仿真模块连接数据中心仿真单元,数据中心仿真单元中的节点控制器仿真节点基于真实的Vxworks操作系统,运行真实的云计算数据中心业务。
实施例4、终端群仿真单元中基于ns2的终端群仿真clientCloud模块通过网络仿真单元中基于ns2的DelayBox模块连接数据中心仿真单元,数据中心仿真单元中的节点控制器仿真节点基于真实的OSE操作系统,运行真实的云计算数据中心业务。
实施例5、终端群仿真单元中的压力测试工具Apache Jmeter和基于ns2的终端群仿真clientCloud模块通过过网络仿真单元中的IP网络仿真模块连接数据中心仿真单元, 数据中心仿真单元中的节点控制器仿真节点基于真实的Solaris操作系统,运行真实的云计算数据中心业务。
实施例6、终端群仿真单元中的压力测试工具Apache Jmeter和基于ns2的终端群仿真clientCloud模块通过网络仿真单元中基于ns2的DelayBox模块连接数据中心仿真单元,数据中心仿真单元中的节点控制器仿真节点基于真实的FreeBSD操作系统,运行真实的云计算数据中心业务。
实施例7 12 :单独运行基于ns2的server业务。
实施例7、终端群仿真单元中的压力测试工具Apache Jmeter通过网络仿真单元中的IP网络仿真模块连接数据中心仿真单元,数据中心仿真单元中的节点控制器仿真节点基于真实的Linux操作系统,运行基于ns2的server业务。
实施例8、终端群仿真单元中的压力测试工具Apache Jmeter通过网络仿真单元中基于ns2的DelayBox模块连接数据中心仿真单元,数据中心仿真单元中的节点控制器仿真节点基于真实的QNX操作系统,运行基于ns2的server业务。
实施例9、终端群仿真单元中基于ns2的终端群仿真clientCloud模块通过网络仿真单元中基于ns2的DelayBox模块连接数据中心仿真单元,数据中心仿真单元中的节点控制器仿真节点基于真实的RTEMS操作系统,运行基于ns2的server业务。
实施例10、终端群仿真单元中基于ns2的终端群仿真clientCloud模块通过网络仿真单元中的IP网络仿真模块连接数据中心仿真单元,数据中心仿真单元中的节点控制器仿真节点基于真实的MS-DOS操作系统,运行基于ns2的server业务。
实施例11、终端群仿真单元中的压力测试工具Apache Jmeter和基于ns2的终端群仿真clientCloud模块通过过网络仿真单元中的IP网络仿真模块连接数据中心仿真单元,数据中心仿真单元中的节点控制器仿真节点基于真实的Windows操作系统,运行基于 ns2 的 server 业务。
实施例12、终端群仿真单元中的压力测试工具Apache Jmeter和基于ns2的终端群仿真clientCloud模块通过网络仿真单元中基于ns2的DelayBox模块连接数据中心仿真单元,数据中心仿真单元中的节点控制器仿真节点基于真实的Vxworks操作系统,运行基于ns2的server业务。
实施例13 18 :同时运行真实的云计算数据中心业务和基于ns2的server业务。
实施例13、终端群仿真单元中的压力测试工具Apache Jmeter通过网络仿真单元中的IP网络仿真模块连接数据中心仿真单元,数据中心仿真单元中的节点控制器仿真节点基于真实的OSE操作系统,同时运行真实的云计算数据中心业务和基于ns2的server业务。
实施例14、终端群仿真单元中的压力测试工具Apache Jmeter通过网络仿真单元中基于ns2的DelayBox模块连接数据中心仿真单元,数据中心仿真单元中的节点控制器仿真节点基于真实的Solaris操作系统,同时运行真实的云计算数据中心业务和基于ns2的 server 业务。
实施例15、终端群仿真单元中基于ns2的终端群仿真clientCloud模块通过网络仿真单元中的IP网络仿真模块连接数据中心仿真单元,数据中心仿真单元中的节点控制器仿真节点基于真实的FreeBSD操作系统,同时运行真实的云计算数据中心业务和基于 ns2 的 server 业务。
实施例16、终端群仿真单元中基于ns2的终端群仿真clientCloud模块通过网络仿真单元中基于ns2的DelayBox模块连接数据中心仿真单元,数据中心仿真单元中的节点控制器仿真节点基于真实的Linux操作系统,同时运行真实的云计算数据中心业务和基于 ns2 的 server 业务。
实施例17、终端群仿真单元中的压力测试工具Apache Jmeter和基于ns2的终端群仿真clientCloud模块通过网络仿真单元中基于ns2的DelayBox模块连接数据中心仿真单元,数据中心仿真单元中的节点控制器仿真节点基于真实的QNX操作系统,同时运行真实的云计算数据中心业务和基于ns2的server业务。
实施例18、终端群仿真单元中的压力测试工具Apache Jmeter和基于ns2的终端群仿真clientCloud模块通过网络仿真单元中的IP网络仿真模块连接数据中心仿真单元, 数据中心仿真单元中的节点控制器仿真节点基于真实的RTEMS操作系统,同时运行真实的云计算数据中心业务和基于ns2的server业务。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内, 则本发明包含这些改动和变型在内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现 有技术。
权利要求
1.一种基于simics系统模拟器的云计算仿真系统,其特征在于包括多个数据中心仿真单元、一个网络仿真单元和多个终端群仿真单元,所述网络仿真单元有两个网络接口,其中一个网络接口通过以太网接口连接多个数据中心仿真单元,另一个网络接口通过以太网接口连接多个终端群仿真单元;所述数据中心仿真单元、网络仿真单元和终端群仿真单元均为基于simics系统模拟器构建的虚拟仿真单元,均运行真实操作系统; 所述数据中心仿真单元,用于模拟云计算数据中心的各种节点,每个数据中心仿真单元包括多个云控制器仿真节点、多个集群控制器仿真节点、多个节点控制器仿真节点,数据中心仿真单元内部的各仿真节点之间互相连接,或者与网络仿真单元连接; 所述网络仿真单元,用于仿真IP网络的传输性能,包括IP网络仿真模块和/或基于ns2的DelayBox模块,网络仿真单元基于真实的操作系统运行IP网络仿真模块或基于ns2的DelayBox模块; 所述终端群仿真单元,用于模拟海量终端对云计算平台的访问,终端群仿真单元包括压力测试工具Apache Jmeter和/或基于ns2的终端群仿真模块,终端群仿真单元基于真实的操作系统,单独运行压力测试工具Apache JMeter或基于ns2的终端群仿真模块,或同时运行压力测试工具Apache Jmeter和基于ns2的终端群仿真模块。
2.如权利要求1所述的基于simics系统模拟器的云计算仿真系统,其特征在于所述网络仿真单元运行IP网络仿真模块时,通过模拟IP网络的主要性能参数指标,来仿真IP网络的传输性能;IP网络仿真模块的参数包括丢包率和包延迟,丢包率以百分比的形式预先设定;包延迟包括平均分布、指数分布、泊松分布、正态分布、二项分布,IP网络仿真模块维护一个线程池,采用多线程模式,对接收到的每个包进行处理,根据传输算法决定是否丢弃包,决定包的延迟,然后发送包出去。
3.如权利要求2所述的基于simics系统模拟器的云计算仿真系统,其特征在于所述IP网络仿真模块包括数据包接收子模块、线程池维护子模块、线程池状态查询子模块、线程分配子模块、均匀分布随机数生成子模块、均匀分布随机数比较子模块、数据包处理子模块、包延迟随机数生成子模块、数据包发送子模块,其中 数据包接收子模块,用于接收数据包,并发送到数据包处理子模块; 线程池维护子模块,用于维护线程池; 线程池状态查询子模块,用于查询线程池的状态,判断线程池是否有空闲的线程,如果查询到没有空闲的线程,则等待,继续判断线程池是否有空闲的线程,直到有空闲的线程;查询到有空闲的线程时,产生一个线程分配触发信号,并发送到线程分配子模块; 线程分配子模块,用于收到线程池状态查询子模块发来的线程分配触发信号时,分配一个空闲的线程来处理数据包,产生一个均匀分布随机数生成触发信号,并发送到均匀分布随机数生成子模块; 均匀分布随机数生成子模块,用于收到线程分配子模块发来的均匀分布随机数生成触发信号时,生成一个(0,I)均匀分布的随机数,产生一个均匀分布随机数比较触发信号,并发送到均匀分布随机数比较子模块; 均匀分布随机数比较子模块,用于收到均匀分布随机数生成子模块发来的均匀分布随机数比较触发信号时,比较均匀分布随机数与丢包率的大小,判断该均匀分布随机数是否>丢包率,如果该均匀分布随机数>丢包率,则产生一个数据包保留触发信号,并发送到数据包处理子模块;如果该均匀分布随机数小于丢包率,则产生一个数据包丢弃触发信号,并发送到数据包处理子模块; 数据包处理子模块,用于接收数据包接收子模块发来的数据包,若收到随机数比较子模块发来的数据包丢弃触发信号,则丢弃这个数据包,并将线程返还给线程池;若收到随机数比较子模块发来的数据包保留触发信号,则保留这个数据包,并产生一个包延迟随机数生成触发信号,将包延迟随机数生成触发信号和保留的数据包一起发送到包延迟随机数生成子模块; 包延迟随机数生成子模块,用于收到数据包处理子模块发来的包延迟随机数生成触发信号和保留的数据包时,根据参数设定,启动对应的随机分布算法,生成一个包延迟的随机数,并产生一个数据包发送触发信号,将数据包发送触发信号、包延迟的随机数和保留的数据包一起发送到数据包发送子模块;包延迟随机数生成子模块支持的随机分布类型包括平均分布、指数分布、泊松分布、正态分布、二项分布; 数据包发送子模块,用于收到包延迟随机数生成子模块发来的数据包发送触发信号、包延迟的随机数和保留的数据包时,根据这个包延迟的随机数修改数据包的延迟信息,根据数据包的目的地址发送保留的数据包,然后将线程返还给线程池。
4.如权利要求3所述的基于simics系统模拟器的云计算仿真系统,其特征在于所述IP网络仿真模块仿真IP网络传输性能的流程为 步骤S1、收到一个数据包; 步骤S2、维护一个线程池,查询线程池的状态,判断线程池是否有空闲的线程,如果有,则转到步骤S4 ;否则转到步骤S3 ; 步骤S3、如果没有空闲的线程,则等待,返回步骤S2,继续判断线程池是否有空闲的线程,直到有空闲的线程,转到步骤S4 ; 步骤S4、分配一个空闲的线程来处理数据包,然后转到步骤S5 ; 步骤S5、生成一个(O,I)均匀分布的随机数,转到步骤S6 ; 步骤S6、比较均匀分布随机数与丢包率的大小,判断该均匀分布随机数是否>丢包率,如果是,转到步骤S8 ;否则,转到步骤S7 ; 步骤S7、如果该均匀分布随机数小于丢包率,则丢弃数据包,转到步骤SlO ; 步骤S8、如果该均匀分布随机数>丢包率,则保留数据包,根据参数设定,启动对应的随机分布算法,得到一个包延迟的随机数,支持的随机分布类型包括平均分布、指数分布、泊松分布、正态分布、二项分布,转到步骤S9 ; 步骤S9、根据包延迟随机数修改数据包的延迟信息,根据数据包的目的地址发送数据包,转到步骤SlO ; 步骤S10、将线程返还给线程池,该处理线程结束。
5.如权利要求1至4中任一项所述的基于simics系统模拟器的云计算仿真系统,其特征在于所述数据中心仿真单元还包括基于ns2的server模块,数据中心仿真单元中的节点控制器仿真节点基于真实的操作系统,运行真实的云计算数据中心业务和/或基于ns2的server业务。
6.如权利要求5所述的基于simics系统模拟器的云计算仿真系统,其特征在于所述数据中心仿真单元中的节点控制器仿真节点运行基于ns2的server模块时,采用实时调度器作为仿真工具,在ns2环境里创建以下内容的脚本 (1)创建网络设备对象II,选择pcap/bpf,raw IP, UDP/IP三种类型中的一种; (2)创建TapAgent类型的代理对象Tl; (3)创建标准仿真节点对象nodel,配置server应用; (4)连接仿真节点对象nodel至代理对象Tl; (5)连接代理对象Tl至网络设备对象Il; (6)启动数据中心仿真单元的仿真。
7.如权利要求1至4中任一项所述的基于simics系统模拟器的云计算仿真系统,其特征在于所述网络仿真单元运行基于ns2的DelayBox模块时,采用实时调度器作为仿真工具,在ns2环境里创建以下内容的脚本 (1)创建网络设备对象12,选择pcap/bpf,rawIP, UDP/IP三种类型中的一种; (2)创建TapAgent类型的代理对象T2; (3)创建DelayBox类型的仿真节点node2; (4)连接仿真节点node2至代理对象T2; (5)连接代理对象T2至网络设备对象12; (6)启动网络仿真单元的仿真。
8.如权利要求1至4中任一项所述的基于simics系统模拟器的云计算仿真系统,其特征在于所述终端群仿真单元运行基于ns2的终端群仿真模块时,采用实时调度器作为仿真工具,在ns2环境里创建以下内容的脚本 (1)创建网络设备对象13,选择pcap/bpf,rawIP, UDP/IP三种类型中的一种; (2)创建TapAgent类型的代理对象T3; (3)创建终端群仿真clientCloud类型的仿真节点node3; (4)连接仿真节点node3至代理对象T3; (5)连接代理对象T3至网络设备对象13; (6)启动终端群仿真单元的仿真。
9.如权利要求1至4中任一项所述的基于simics系统模拟器的云计算仿真系统,其特征在于所述真实操作系统包括 MS-DOS、Windows、Vxworks、OSE、Solaris、FreeBSD、Linux、QNX 和 RTEMS。
10.一种基于权利要求2至4中任一项所述云计算仿真系统的仿真IP网络传输性能的方法,其特征在于,包括以下步骤 步骤S1、收到一个数据包; 步骤S2、维护一个线程池,查询线程池的状态,判断线程池是否有空闲的线程,如果有,则转到步骤S4 ;否则转到步骤S3 ; 步骤S3、如果没有空闲的线程,则等待,返回步骤S2,继续判断线程池是否有空闲的线程,直到有空闲的线程,转到步骤S4 ; 步骤S4、分配一个空闲的线程来处理数据包,然后转到步骤S5 ; 步骤S5、生成一个(0,I)均匀分布的随机数,转到步骤S6 ; 步骤S6、比较均匀分布随机数与丢包率的大小,判断该均匀分布随机数是否>丢包率,如果是,转到步骤S8 ;否则,转到步骤S7 ;步骤S7、如果该均匀分布随机数小于丢包率,则丢弃数据包,转到步骤SlO ; 步骤S8、如果该均匀分布随机数>丢包率,则保留数据包,根据参数设定,启动对应的随机分布算法,得到一个 包延迟的随机数,支持的随机分布类型包括平均分布、指数分布、泊松分布、正态分布、二项分布,转到步骤S9 ; 步骤S9、根据包延迟随机数修改数据包的延迟信息,根据数据包的目的地址发送数据包,转到步骤SlO ; 步骤S10、将线程返还给线程池,该处理线程结束。
全文摘要
本发明公开了一种基于simics系统模拟器的云计算仿真系统及方法,涉及云计算仿真领域,该仿真系统包括多个数据中心仿真单元、一个网络仿真单元和多个终端群仿真单元,数据中心仿真单元模拟云计算数据中心的各种节点,网络仿真单元仿真IP网络的传输性能,包括IP网络仿真模块和/或基于ns2的DelayBox模块,终端群仿真单元模拟海量终端对云计算平台的访问,终端群仿真单元包括压力测试工具Apache Jmeter和/或基于ns2的终端群仿真模块。本发明在simics系统模拟器的基础上,以较低的成本构造整个云计算的网络场景,实现云计算的仿真测试研究,缩短系统建设周期,提高系统建设中决策的科学性,可以应用于多种云计算平台。
文档编号H04L29/08GK103023967SQ20121045866
公开日2013年4月3日 申请日期2012年11月15日 优先权日2012年11月15日
发明者陈浩, 陈亮, 唐业祎, 王静, 刘方磊, 王若舟 申请人:武汉邮电科学研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1