CN111367624B - 一种SONiC系统建立仿真平台的方法和设备 - Google Patents

一种SONiC系统建立仿真平台的方法和设备 Download PDF

Info

Publication number
CN111367624B
CN111367624B CN202010175322.5A CN202010175322A CN111367624B CN 111367624 B CN111367624 B CN 111367624B CN 202010175322 A CN202010175322 A CN 202010175322A CN 111367624 B CN111367624 B CN 111367624B
Authority
CN
China
Prior art keywords
simulation
topology
view
virtual
establishing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010175322.5A
Other languages
English (en)
Other versions
CN111367624A (zh
Inventor
詹家骅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202010175322.5A priority Critical patent/CN111367624B/zh
Publication of CN111367624A publication Critical patent/CN111367624A/zh
Application granted granted Critical
Publication of CN111367624B publication Critical patent/CN111367624B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • G06F9/4451User profiles; Roaming

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明提供了一种SONiC系统建立仿真平台的方法和设备,该方法包括以下步骤:在SONiC系统中建立图形化的仿真视图,并基于仿真视图建立仿真拓扑;响应于执行仿真,将仿真拓扑传递给仿真控制器;仿真控制器基于仿真拓扑产生虚拟化工具的设定指令和配置参数并建立对应数量的虚拟机;响应于虚拟化工具根据设定指令运行虚拟机,仿真控制器基于虚拟化工具的运行状态将每个虚拟机的状态在仿真视图上显示。通过使用本发明的方法,能够用低廉的成本对SONiC系统在数据中心的实际运作进行仿真,可加快开发速度或用来测试环境部署。

Description

一种SONiC系统建立仿真平台的方法和设备
技术领域
本领域涉及计算机领域,并且更具体地涉及一种SONiC系统建立仿真平台的方法和设备。
背景技术
SONiC(Software for Open Networking in the Cloud)是由微软所提出的开放计算项目,主要针对数据中心的使用环境进行设计。此项目提供了一套上层软体的集合,而且可以透过交换机抽象层界面(AI)来运行在不同的交换机硬体上。可以方便营运商根据需求,自行定制所需的上层软体。
由于资料中心的网络架构庞大,且成本高昂,在开发数据中心使用的网络协议时,很难有实际的环境可以进行测试,因此仿真测试就成为解决这个问题的最佳方案。
但现有的仿真平台通常针对特定厂家的设备进行仿真,而且无法便利的自行定义设备的规格(举例来说:端口数量,端口速度等等)。也无法在模拟进行中任意更换系统软件。
拓扑中的每个网络装置实际都是一台虚拟机。仿真控制器会根据网络装置的配置建立虚拟机,并根据设定的装置类型装载预设的系统。由于KVM(Kernel-based VirtualMachine,Linux内核中的hypervisor方案,用以提供各种虚拟外设资源)能支持网络界面的虚拟化,仿真控制器会根据网络拓扑配置网络装置的虚拟网路连接关系。
例如仿真控制器将产生两台虚拟机。一台角色为交换机,配置8个端口,运行SONiC系统;另一台角色为服务器,配置一个端口,运行Ubuntu18.04。并将交换机的虚拟网卡与服务器的虚拟网卡相连。即可完成仿真环境的建立。
若要接上实体网络,也可以透过KVM将仿真平台上的实体网络卡与虚拟装置连接,就可达成半实体半虚拟的测试环境。
由于网络交换机的交换芯片通常是各家厂商私有的智慧财产,较难找到开源的仿真方案。就算有也可能效能不佳。
发明内容
有鉴于此,本发明实施例的目的在于提出一种SONiC系统建立仿真平台的方法和设备,通过使用本发明的方法,能够用低廉的成本对SONiC系统在数据中心的实际运作进行仿真,可加快开发速度或用来测试环境部署。
基于上述目的,本发明的实施例的一个方面提供了一种SONiC系统建立仿真平台的方法,包括以下步骤:
在SONiC系统中建立图形化的仿真视图,并基于仿真视图建立仿真拓扑;
响应于执行仿真,将仿真拓扑传递给仿真控制器;
仿真控制器基于仿真拓扑产生虚拟化工具的设定指令和配置参数并建立对应数量的虚拟机;
响应于虚拟化工具根据设定指令运行虚拟机,仿真控制器基于虚拟化工具的运行状态将每个虚拟机的状态在仿真视图上显示。
根据本发明的一个实施例,基于仿真视图建立仿真拓扑包括:
以绘制网络拓扑的方式建立仿真拓扑。
根据本发明的一个实施例,配置参数包括虚拟机类型、虚拟机数量和/或虚拟网络参数。
根据本发明的一个实施例,虚拟化工具包括KVM和/或Qemu(处理器虚拟化工具)。
根据本发明的一个实施例,还包括:
用户在仿真视图上开启对应设备的屏幕,仿真视图经由虚拟化工具的网络连接到虚拟机的屏幕。
本发明的实施例的另一个方面,还提供了一种SONiC系统建立仿真平台的设备,设备包括:
建立模块,建立模块配置为在SONiC系统中建立图形化的仿真视图,并基于仿真视图建立仿真拓扑;
传递模块,传递模块配置为响应于执行仿真,将仿真拓扑传递给仿真控制器;
生成模块,生成模块配置为仿真控制器基于仿真拓扑产生虚拟化工具的设定指令和配置参数并建立对应数量的虚拟机;
显示模块,显示模块配置为响应于虚拟化工具根据设定指令运行虚拟机,仿真控制器基于虚拟化工具的运行状态将每个虚拟机的状态在仿真视图上显示。
根据本发明的一个实施例,建立模块还配置为以绘制网络拓扑的方式建立仿真拓扑。
根据本发明的一个实施例,配置参数包括虚拟机类型、虚拟机数量和/或虚拟网络参数。
根据本发明的一个实施例,虚拟化工具包括KVM和/或Qemu。
根据本发明的一个实施例,还包括连接模块,连接模块配置为用户在仿真视图上开启对应设备的屏幕,仿真视图经由虚拟化工具的网络连接到虚拟机的屏幕。
本发明具有以下有益技术效果:本发明实施例提供的SONiC系统建立仿真平台的方法,通过在SONiC系统中建立图形化的仿真视图,并基于仿真视图建立仿真拓扑;响应于执行仿真,将仿真拓扑传递给仿真控制器;仿真控制器基于仿真拓扑产生虚拟化工具的设定指令和配置参数并建立对应数量的虚拟机;响应于虚拟化工具根据设定指令运行虚拟机,仿真控制器基于虚拟化工具的运行状态将每个虚拟机的状态在仿真视图上显示的技术方案,能够用低廉的成本对SONiC系统在数据中心的实际运作进行仿真,可加快开发速度或用来测试环境部署。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为根据本发明一个实施例的SONiC系统建立仿真平台的方法的示意性流程图;
图2为根据本发明一个实施例的SONiC系统建立仿真平台的设备的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
基于上述目的,本发明的实施例的第一个方面,提出了一种SONiC系统建立仿真平台的方法的一个实施例。图1示出的是该方法的示意性流程图。
如图1中所示,该方法可以包括以下步骤:
S1在SONiC系统中建立图形化的仿真视图,并基于仿真视图建立仿真拓扑,仿真视图可以提供用户操作的图形化界面,可以用绘制网络拓扑图的方式配置仿真环境,并可操作每台设备的console或图形化界面,能实时显示设备状态,当开始模拟时会将网络拓扑生成json格式的配置文件,供仿真控制器用以配置虚拟机;
S2响应于执行仿真,将仿真拓扑传递给仿真控制器,仿真控制器能够根据用户配置建立虚拟装置,并将装置状态回报给仿真视图;
S3仿真控制器基于仿真拓扑产生虚拟化工具的设定指令和配置参数并建立对应数量的虚拟机,当用户在仿真视图上建立网络拓扑,我们可以知道有哪些设备,设备之间的连接关系,当执行仿真时,仿真视图会将这些信息传递给仿真控制器,仿真控制器会根据设备类型产生不同的指令去建立虚拟机(支援的设备类型会在仿真视图上有列表供选择),并对虚拟机进行配置(例如根据网络连接拓扑配置虚拟桥接器与虚拟网卡);
S4响应于虚拟化工具根据设定指令运行虚拟机,仿真控制器基于虚拟化工具的运行状态将每个虚拟机的状态在仿真视图上显示,仿真控制器经由虚拟化工具监测虚拟机的状态(虚拟机是否开机完成,虚拟网卡连线状态),并将状态显示在仿真视图上的各设备的图示上。
本方案提出的仿真平台主要是用以验证SONiC系统的上层功能与网络协议,因此可以利用SONiC系统不受交换机硬体捆绑的特性,交换机硬体功能部份改用Linux软体交换功能进行实现,如此就能在一般虚拟机上运行SONiC系统并作为交换机的角色。
本方案基于Linux系统中的虚拟化工具(KVM和Qemu)进行实现。并提供一套视觉化界面可以用绘制网络拓扑的方式对仿真的拓扑进行配置。而能处理的拓扑的复杂度主要取决于执行仿真的机器性能。由于基于Linux进行实现,因此可以安装于任何支援x86或amd64的机器上。
通过本发明的技术方案,能够用低廉的成本对SONiC系统在数据中心的实际运作进行仿真,可加快开发速度或用来测试环境部署。
在本发明的一个优选实施例中,基于仿真视图建立仿真拓扑包括:
以绘制网络拓扑的方式建立仿真拓扑。仿真视图的核心概念就像网络拓扑图的绘制软件,可以从可用设备列表中建立网络拓扑图。
只是网络拓扑软件产生的只是图片。而仿真视图元件可以将拓扑图传给仿真控制器进行仿真,并透过Qemu的功能,将设备的画面(console或屏幕)显示在仿真视图上。
在本发明的一个优选实施例中,配置参数包括虚拟机类型、虚拟机数量和/或虚拟网络参数。
在本发明的一个优选实施例中,虚拟化工具包括KVM和/或Qemu。KVM和Qemu是Linux系统上的虚拟化工具,用以建立拓扑中的设备与网路连线。拓扑中的每个设备都是一个虚拟机,根据用户所建立的拓扑对虚拟机的虚拟网卡进行设定。举例来说,若有一个拓扑是两台交换机互相连接,我们会在KVM中建立一组虚拟的网络桥接器,并产生两个虚拟机来仿真两部交换机,并将两部交换机的指定端口的虚拟网卡绑定在新建的虚拟网络桥接器上。这样这两台虚拟交换机的拓扑就建立完成。如同以网络线连接一样。
在本发明的一个优选实施例中,还包括:
用户在仿真视图上开启对应设备的屏幕,仿真视图经由虚拟化工具的网络连接到虚拟机的屏幕,用户可以在仿真视图上开启对应设备的console或屏幕,仿真视图经由Qemu的网络转tty方式或vnc的方式连接上虚拟机的console或屏幕。
通过本发明的技术方案,能够用低廉的成本对SONiC系统在数据中心的实际运作进行仿真,可加快开发速度或用来测试环境部署。
需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,上述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中存储介质可为磁碟、光盘、只读存储器(Read-Only Memory,ROM)或随机存取存储器(Random AccessMemory,RAM)等。上述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
此外,根据本发明实施例公开的方法还可以被实现为由CPU执行的计算机程序,该计算机程序可以存储在计算机可读存储介质中。在该计算机程序被CPU执行时,执行本发明实施例公开的方法中限定的上述功能。
基于上述目的,本发明的实施例的第二个方面,提出了一种SONiC系统建立仿真平台的设备,如图2所示,设备200包括:
建立模块,建立模块配置为在SONiC系统中建立图形化的仿真视图,并基于仿真视图建立仿真拓扑;
传递模块,传递模块配置为响应于执行仿真,将仿真拓扑传递给仿真控制器;
生成模块,生成模块配置为仿真控制器基于仿真拓扑产生虚拟化工具的设定指令和配置参数并建立对应数量的虚拟机;
显示模块,显示模块配置为响应于虚拟化工具根据设定指令运行虚拟机,仿真控制器基于虚拟化工具的运行状态将每个虚拟机的状态在仿真视图上显示。
在本发明的一个优选实施例中,建立模块还配置为以绘制网络拓扑的方式建立仿真拓扑。
在本发明的一个优选实施例中,配置参数包括虚拟机类型、虚拟机数量和/或虚拟网络参数。
在本发明的一个优选实施例中,虚拟化工具包括KVM和/或Qemu。
在本发明的一个优选实施例中,还包括连接模块,连接模块配置为用户在仿真视图上开启对应设备的屏幕,仿真视图经由虚拟化工具的网络连接到虚拟机的屏幕。
需要特别指出的是,上述系统的实施例采用了上述方法的实施例来具体说明各模块的工作过程,本领域技术人员能够很容易想到,将这些模块应用到上述方法的其他实施例中。
此外,上述方法步骤以及系统单元或模块也可以利用控制器以及用于存储使得控制器实现上述步骤或单元或模块功能的计算机程序的计算机可读存储介质实现。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
上述实施例,特别是任何“优选”实施例是实现的可能示例,并且仅为了清楚地理解本发明的原理而提出。可以在不脱离本文所描述的技术的精神和原理的情况下对上述实施例进行许多变化和修改。所有修改旨在被包括在本公开的范围内并且由所附权利要求保护。

Claims (10)

1.一种SONiC系统建立仿真平台的方法,其特征在于,包括以下步骤:
在所述SONiC系统中建立图形化的仿真视图,并基于所述仿真视图建立仿真拓扑;
响应于执行仿真,将所述仿真拓扑传递给仿真控制器;
所述仿真控制器基于所述仿真拓扑产生虚拟化工具的设定指令和配置参数并建立对应数量的虚拟机;
响应于所述虚拟化工具根据所述设定指令运行所述虚拟机,所述仿真控制器基于所述虚拟化工具的运行状态将每个所述虚拟机的状态在所述仿真视图上显示。
2.根据权利要求1所述的方法,其特征在于,基于所述仿真视图建立仿真拓扑包括:
以绘制网络拓扑的方式建立仿真拓扑。
3.根据权利要求1所述的方法,其特征在于,所述配置参数包括虚拟机类型、虚拟机数量和/或虚拟网络参数。
4.根据权利要求1所述的方法,其特征在于,所述虚拟化工具包括KVM和/或Qemu。
5.根据权利要求1所述的方法,其特征在于,还包括:
用户在所述仿真视图上开启对应设备的屏幕,所述仿真视图经由所述虚拟化工具的网络连接到所述虚拟机的屏幕。
6.一种SONiC系统建立仿真平台的设备,其特征在于,所述设备包括:
建立模块,所述建立模块配置为在所述SONiC系统中建立图形化的仿真视图,并基于所述仿真视图建立仿真拓扑;
传递模块,所述传递模块配置为响应于执行仿真,将所述仿真拓扑传递给仿真控制器;
生成模块,所述生成模块配置为所述仿真控制器基于所述仿真拓扑产生虚拟化工具的设定指令和配置参数并建立对应数量的虚拟机;
显示模块,所述显示模块配置为响应于所述虚拟化工具根据所述设定指令运行所述虚拟机,所述仿真控制器基于所述虚拟化工具的运行状态将每个所述虚拟机的状态在所述仿真视图上显示。
7.根据权利要求6所述的设备,其特征在于,所述建立模块还配置为以绘制网络拓扑的方式建立仿真拓扑。
8.根据权利要求6所述的设备,其特征在于,所述配置参数包括虚拟机类型、虚拟机数量和/或虚拟网络参数。
9.根据权利要求6所述的设备,其特征在于,所述虚拟化工具包括KVM和/或Qemu。
10.根据权利要求6所述的设备,其特征在于,还包括连接模块,所述连接模块配置为用户在所述仿真视图上开启对应设备的屏幕,所述仿真视图经由所述虚拟化工具的网络连接到所述虚拟机的屏幕。
CN202010175322.5A 2020-03-13 2020-03-13 一种SONiC系统建立仿真平台的方法和设备 Active CN111367624B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010175322.5A CN111367624B (zh) 2020-03-13 2020-03-13 一种SONiC系统建立仿真平台的方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010175322.5A CN111367624B (zh) 2020-03-13 2020-03-13 一种SONiC系统建立仿真平台的方法和设备

Publications (2)

Publication Number Publication Date
CN111367624A CN111367624A (zh) 2020-07-03
CN111367624B true CN111367624B (zh) 2022-08-02

Family

ID=71208926

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010175322.5A Active CN111367624B (zh) 2020-03-13 2020-03-13 一种SONiC系统建立仿真平台的方法和设备

Country Status (1)

Country Link
CN (1) CN111367624B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104954166A (zh) * 2015-04-27 2015-09-30 北京交通大学 一种基于硬件的网络仿真系统及仿真方法
CN105763570A (zh) * 2016-04-26 2016-07-13 北京交通大学 一种基于虚拟化技术的分布式实时网络仿真系统
CN109327342A (zh) * 2018-11-27 2019-02-12 哈尔滨理工大学 一种基于任务驱动的自适应sdn仿真系统及仿真平台

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104954166A (zh) * 2015-04-27 2015-09-30 北京交通大学 一种基于硬件的网络仿真系统及仿真方法
CN105763570A (zh) * 2016-04-26 2016-07-13 北京交通大学 一种基于虚拟化技术的分布式实时网络仿真系统
CN109327342A (zh) * 2018-11-27 2019-02-12 哈尔滨理工大学 一种基于任务驱动的自适应sdn仿真系统及仿真平台

Also Published As

Publication number Publication date
CN111367624A (zh) 2020-07-03

Similar Documents

Publication Publication Date Title
CN109802852B (zh) 应用于网络靶场的网络仿真拓扑的构建方法及系统
Peuster et al. MeDICINE: Rapid prototyping of production-ready network services in multi-PoP environments
CN110995561B (zh) 基于容器技术的虚拟网络数据通信交互方法与系统
CN103248535A (zh) 一种云系统测试方法及装置
CN102799465B (zh) 分布式虚拟化系统的虚拟中断管理方法及装置
US11894983B2 (en) Simulation and testing of infrastructure as a service scale using a container orchestration engine
US11349724B2 (en) Predictive analysis in a software defined network
CN107749807A (zh) 一种面向nfv的网络功能验证方法及验证系统
CN108052449B (zh) 操作系统运行状态检测方法和装置
CA3053003A1 (en) Generalized virtualization platform for systems using hardware abstraction software layers
CN111459606A (zh) 一种虚拟化下快速创建虚拟机的方法及服务器
CN103092676A (zh) 虚拟机集群的模拟输入输出方法、装置及系统
Miyachi et al. Automatic configuration and execution of internet experiments on an actual node-based testbed
CN112764981B (zh) 一种协同测试系统及方法
CN111367624B (zh) 一种SONiC系统建立仿真平台的方法和设备
CN108255547B (zh) 一种应用程序控制方法及装置
Dobrilović et al. Virtualization technology as a tool for teaching computer networks
Petersen et al. Dynamic link network emulation: A model-based design
KR20110064539A (ko) 다수의 가상머신을 이용한 네트워크 시뮬레이션 장치 및 그 방법
Dayanand et al. A survey on the use of GNS3 for virtualizing computer networks
CN116243988A (zh) 一种智能网卡控制方法、装置、电子设备及存储介质
JP2015233283A (ja) 相互接続ネットワーク・シミュレータおよび相互接続ネットワークをシミュレーションする方法
Liu et al. Feasibility analysis of network security teaching platform based on KVM and GNS3
CN111221687B (zh) 一种云存储测试系统和方法
KR101284791B1 (ko) 휴대용 단말기를 이용한 컴퓨터 운영체제 구현 방법 및 그 장치

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant