CN107783722B - 数据传输方法和数据转发装置 - Google Patents

数据传输方法和数据转发装置 Download PDF

Info

Publication number
CN107783722B
CN107783722B CN201610728536.4A CN201610728536A CN107783722B CN 107783722 B CN107783722 B CN 107783722B CN 201610728536 A CN201610728536 A CN 201610728536A CN 107783722 B CN107783722 B CN 107783722B
Authority
CN
China
Prior art keywords
data
data forwarding
forwarding device
channels
virtual machine
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
CN201610728536.4A
Other languages
English (en)
Other versions
CN107783722A (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.)
Beijing Xingchen Tianhe Technology Co ltd
Original Assignee
Xsky Beijing Data Technology Corp 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 Xsky Beijing Data Technology Corp ltd filed Critical Xsky Beijing Data Technology Corp ltd
Priority to CN201610728536.4A priority Critical patent/CN107783722B/zh
Publication of CN107783722A publication Critical patent/CN107783722A/zh
Application granted granted Critical
Publication of CN107783722B publication Critical patent/CN107783722B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种数据传输方法和数据转发装置。其中,该方法包括:数据转发装置接收虚拟机发送的控制指令,其中,控制指令用于指示打开预先设置在数据转发装置和存储装置之间的多路通道中的N路通道,一路通道对应一个或者多个存储装置;数据转发装置根据控制指令打开N路通道,其中,打开的N路通道的个数与虚拟机的数量相匹配;在数据转发装置打开N路通道之后,数据转发装置接收来自虚拟机的待传输数据;数据转发装置通过已经打开的N路通道向存储装置传输待传输数据。本发明解决了由虚拟机直接向存储传输数据时系统性能偏低的技术问题。

Description

数据传输方法和数据转发装置
技术领域
本发明涉及计算机领域,具体而言,涉及一种数据传输方法和数据转发装置。
背景技术
QEMU是一款高效而实用的模拟处理器,它能够模拟出独立运行的虚拟机,是目前主流的虚拟化技术之一。
Ceph是一种高性能,高可靠性以及高扩展性的分布式文件系统,它能为虚拟机提供高可靠性并且可以弹性扩展的存储装置。
在QEMU连接Ceph存储并对Ceph存储装置进行读写时,会产生线程,并且产生的线程数量与开启的虚拟机数量和存储器数量成正比,当开启的虚拟机数量和与虚拟机连接的存储数量较少时,线程较少,系统资源闲置,系统性能偏低,当开启的虚拟机数量和与虚拟机连接的存储数量较多时,线程较多,系统资源占用过多,同样性能不高。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种数据传输方法和数据转发装置,以至少解决由虚拟机直接向存储传输数据时系统性能偏低的技术问题。
根据本发明实施例的一个方面,提供了一种数据传输方法,包括:数据转发装置接收虚拟机发送的控制指令,其中,所述控制指令用于指示打开预先设置在所述数据转发装置和存储装置之间的多路通道中的N路通道,一路通道对应一个或者多个所述存储装置;所述数据转发装置根据所述控制指令打开所述N路通道,其中,打开的所述N路通道的个数与所述虚拟机的数量相匹配;在所述数据转发装置打开所述N路通道之后,所述数据转发装置接收来自所述虚拟机的待传输数据;所述数据转发装置通过已经打开的所述N路通道向所述存储装置传输所述待传输数据。
进一步地,所述数据转发装置通过已经打开的所述N路通道向所述存储装置传输所述待传输数据包括:所述数据转发装置接收虚拟机发送的第一指示信息,其中,所述第一指示信息用于指示所述虚拟机已经将所述待传输数据存储到共享内存中;所述数据转发装置根据所述第一指示信息从所述共享内存上提取所述待传输数据;所述数据转发装置通过所述N路通道向所述存储装置写入所述待传输数据。
进一步地,在所述数据转发装置通过所述N路通道向所述存储装置写入所述待传输数据之后,所述方法还包括:所述数据转发装置通过注册到所述虚拟机的线程向所述虚拟机发送第二指示信息,其中,所述第二指示信息用于指示所述数据转发装置已经将所述待传输数据写入到所述存储装置。
进一步地,所述数据转发装置根据所述控制指令打开所述N路通道包括:所述数据转发装置根据所述控制指令生成命令行参数,其中,所述命令行参数由所述数据转发装置利用命令行工具根据函数参数生成,所述函数参数包括打开命令和打开的通道的个数;所述数据转发装置执行所述命令行参数,以打开所述N路通道;所述数据转发装置生成执行结果,以便所述虚拟机调用所述执行结果。
进一步地,所述数据转发装置执行所述命令行参数,以打开所述N路通道包括:所述数据转发装置根据所述命令行参数调用所述存储装置的动态链接库,以打开所述N路通道。
根据本发明实施例的一个方面,提供了一种数据传输装置,包括:第一接收单元,用于接收虚拟机发送的控制指令,其中,所述控制指令用于指示打开预先设置在所述数据转发装置和存储装置之间的多路通道中的N路通道,一路通道对应一个或者多个所述存储装置;控制单元,用于根据所述控制指令打开所述N路通道,其中,打开的所述N路通道的个数与所述虚拟机的数量相匹配;第二接收单元,用于在所述数据转发装置打开所述N路通道之后,接收来自所述虚拟机的待传输数据;传输单元,用于通过已经打开的所述N路通道向所述存储装置传输所述待传输数据。
进一步地,所述传输单元包括:接收模块,用于接收虚拟机发送的第一指示信息,其中,所述第一指示信息用于指示所述虚拟机已经将所述待传输数据存储到共享内存中;提取模块,用于根据所述第一指示信息从所述共享内存上提取所述待传输数据;写入模块,用于通过所述N路通道向所述存储装置写入所述待传输数据。
进一步地,所述数据转发装置还包括:发送单元,用于通过注册到所述虚拟机的线程向所述虚拟机发送第二指示信息,其中,所述第二指示信息用于指示所述数据转发装置已经将所述待传输数据写入到所述存储装置。
进一步地,生成模块,用于生成命令行参数,其中,所述命令行参数由所述数据转发装置利用命令行工具根据函数参数生成,所述函数参数包括打开命令和打开的通道的个数;开启模块,用于数据转发装置执行所述命令行参数,以打开所述N路通道;第二生成模块,用于生成执行结果,以便所述虚拟机调用所述执行结果。
进一步地,所述开启模块包括:调用模块,用于根据所述命令行参数调用所述存储装置的动态链接库,以打开所述N路通道。
在本发明实施例中,采用数据转发装置接收虚拟机发送的控制指令,其中,所述控制指令用于指示打开预先设置在所述数据转发装置和存储装置之间的多路通道中的N路通道,一路通道对应一个或者多个所述存储装置;所述数据转发装置根据所述控制指令打开所述N路通道,其中,打开的所述N路通道的个数与所述虚拟机的数量相匹配;在所述数据转发装置打开所述N路通道之后,所述数据转发装置接收来自所述虚拟机的待传输数据;所述数据转发装置通过已经打开的所述N路通道向所述存储装置传输所述待传输数据,通过该数据转发装置对数据进行接收和转发,同时控制与存储装置之间的通道数量,从而实现了共享通道,控制线程数量的技术效果,进而解决了由虚拟机直接向存储传输数据时系统性能偏低的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的数据传输方法的流程图;
图2是根据本发明实施例的数据传输方法中数据转发装置接收虚拟机发送的控制指令并生成执行结果,以便虚拟机调用的方法的示意图;
图3是根据本发明实施例的数据传输方法中数据转发装置接收来自虚拟机的待传输数据通过打开的通道向存储装置写入数据的方法的示意图;
图4是根据本发明实施例的数据传输方法中数据转发装置接收来自虚拟机的控制命令打开与存储装置间的N路通道,并通过N路通道向存储写入数据的方法的示意图;
图5是根据本发明实施例的数据转发装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明实施例,提供了一种数据传输方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的一种数据传输方法的流程图,以下结合图1,对本发明实施例的一种数据传输方法做具体介绍,如图1所示,该数据传输方法包括如下步骤:
步骤S102,数据转发装置接收虚拟机发送的控制指令。
步骤S104,数据转发装置根据接收到的控制指令打开与存储装置间的N路通道,其中,打开的N路通道的个数,与开启的虚拟机的数量向匹配。
步骤S106,数据转发装置接收来自虚拟机的待传输数据。
步骤S108,数据转发装置通过已经打开的N路通道向存储装置传输待传输数据。
在本实施例中,通过数据转发装置接收虚拟机发送的控制指令,其中,控制指令用于指示打开预先设置在数据转发装置和存储装置之间的多路通道中的N路通道,一路通道对应一个或者多个存储装置;数据转发装置根据控制指令打开N路通道,其中,打开的N路通道的个数与虚拟机的数量相匹配;在数据转发装置打开N路通道之后,数据转发装置接收来自虚拟机的待传输数据;数据转发装置通过已经打开的N路通道向存储装置传输待传输数据。本发明减少了虚拟机在连接存储装置并对存储装置进行读写时产生的线程,对通道进行共享,解决了由虚拟机直接向存储传输数据时系统性能偏低的技术问题。
可选的,数据转发装置根据接收到的控制指令,利用命令行工具将函数参数转换成命令行参数,其中,函数参数包含了打开命令和打开通道的个数。数据转发装置执行命令行参数,执行打开通道的命令。在打开通道的命令执行完毕后,数据转发装置生成执行结果,虚拟机通过进程调用该执行结果,在本实施例中,该执行结果以JSON语法格式返回,以便虚拟机进行调用。
可选的,在本实施例中,数据转发装置执行命令行参数,执行打开通道的命令时,根据命令行参数,调用存储装置提供的动态链接库,从而打开数据转发装置之间的N路通道,需要说明的是,打开的N路通道的个数与虚拟机的数量相匹配,如:开启一个虚拟机的时候,打开4路通道;开启两个虚拟机的时候,打开6路通道,根据开启的虚拟机的数量,对打开的通道的数量进行适当设置。
在通道打开之后,虚拟机可以发送待传输数据,数据转发装置接收虚拟机发送的待传输数据。数据转发装置与存储装置之间通过共享内存的方式进行数据传输:先申请一段内存作为共享内存,虚拟机和数据转发装置都有权对内存进行访问,由虚拟机将待传输数据写入该内存中,当虚拟机将待传输数据写入该内存之后,由虚拟机向数据传输装置发送第一指示信息,指示虚拟机已经将待传输数据写入共享内存,数据写入完毕。数据转发装置在接收到第一指示信息之后,从共享内存中将已经写入的数据读取出来,再通过已经打开的N路通道,将数据写入存储装置。
可选的,在本实施例中,在数据转发装置将待传输数据写入存储装置后,数据转发装置通过注册到虚拟机的线程向虚拟机发送第二指示信息,其中第二指示信息用于指示数据转发装置已经将待传输数据写入存储装置,数据写入完毕。图2是根据本发明实施例的数据传输方法中数据转发装置接收虚拟机发送的控制指令并生成执行结果,以便虚拟机调用的方法的示意图,根据本发明的实施例,结合图2对该方法做具体介绍,如图2所示:
在本实施例中,虚拟机开启后,产生一个QEMU进程,数据转发装置产生一个XDC进程,QEMU进程将控制命令发送给数据转发装置,数据转发装置接收该控制命令,利用命令行工具将函数参数转换成命令行参数,通过XDC进程调用其中的命令行参数并执行该命令,生成的执行结果以JSON语法格式返回,以便QEMU进程调用。
图3根据本发明实施例的数据传输方法中数据转发装置接收来自虚拟机的待传输数据通过打开的通道向存储装置写入数据的方法的示意图,根据本发明的实施例,结合图3对该方法做具体介绍,如图3所示:
在本实施例中,虚拟机开启后,产生一个QEMU进程,数据转发装置产生一个XDC进程,并申请一段内存,作为共享内存,在传输数据时,QEMU进程将待传输数据写入共享内存,数据写入完成后,虚拟机通过先入先出队列的方法发出第一指示信息,通知XDC进程,数据转发装置在接收到第一指示信息之后,从共享内存中将已经写入的数据读取出来写入存储装置,数据写入存储装置完毕后,数据转发装置通过先入先出队列的方法通过epoll线程向虚拟机发送第二指示信息,通知虚拟机,数据向存储装置写入完毕,其中epoll线程为注册到虚拟机的线程。
图4是根据本发明实施例的数据传输方法中数据转发装置接收来自虚拟机的控制命令打开与存储装置间的N路通道,并通过N路通道向存储写入数据的方法的示意图,根据本发明的实施例,结合图4对该方法做具体介绍,如图4所示:
在本实施例中,虚拟机开启后,产生一个QEMU进程,开启m个虚拟机产生m个QEMU进程,数据转发装置产生一个XDC进程,虚拟机将控制指令发送给数据转发装置,数据转发装置根据接收到的控制指令,利用命令行工具将函数参数转换为命令行参数,其中,控制指令用于指示打开预先设置在数据转发装置和存储装置之间的多路通道中的N路通道,函数参数包含了打开命令和打开通道的个数,每一路通道对应一个或者多个存储装置,数据转发装置通过进程调用,执行上述命令行参数以打开N路通道,其中,打开的N路通道的个数与虚拟机的数量相匹配。
在数据转发装置打开N路通道之后,虚拟机将待传输数据写入共享内存,数据写入完成后,虚拟机通过先入先出队列的方法发出第一指示信息,通知XDC进程,数据转发装置在接收到第一指示信息之后,从共享内存中将已经写入的数据读取出来并写入存储装置,数据写入存储装置完毕后,数据转发装置通过先入先出队列的方法通过注册到虚拟机的线程向虚拟机发送第二指示信息,通知虚拟机,数据向存储装置写入完毕。数据转发装置将数据写入存储装置的时,可以通过对通道进行共享,来提高处理速度,如:可以使用轮询调度的算法,依次调用不同的通道。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品关联在一个关联介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。
图5是根据本发明实施例的数据转发装置的示意图,如图5所示,该数据转发装置主要包括:
第一接收单元10,用于接收虚拟机发送的控制指令,其中,控制指令用于指示打开预先设置在数据转发装置和存储装置之间的多路通道中的N路通道,一路通道对应一个或者多个存储装置;
控制单元20,用于根据控制指令打开N路通道,其中,打开的N路通道的个数与虚拟机的数量相匹配;
第二接收单元30,用于在数据转发装置打开N路通道之后,接收来自虚拟机的待传输数据;
传输单元40,用于通过已经打开的N路通道向存储装置传输待传输数据。
在上述实施例中,第一接收单元10用于接收虚拟机发送的控制指令,由虚拟机发送控制命令,数据转发装置接收,其中,控制命令用来指示打开预先设置在数据转发装置和存储装置之间的多路通道中的N路通道,一路通道对应一个或者多个存储装置。
控制单元20用于根据接收到的控制指令打开与存储装置间的N路通道,其中,打开的N路通道的个数,与开启的虚拟机的数量向匹配。在设置打开通道的数量时,可以根据虚拟机开启的数量,数据传输量的大小以及系统资源使用情况,设置打开适量的通道,以提升系统性能为准。
可选的,控制单元20包括:生成模块,用于生成命令行参数,其中,所述命令行参数由所述数据转发装置利用命令行工具根据函数参数生成,所述函数参数包括打开命令和打开的通道的个数;开启模块,用于执行命令行参数,执行打开通道的命令;第二生成模块,用于在打开通道的命令执行完毕后,生成执行结果,虚拟机通过进程调用该执行结果,在本实施例中,该执行结果以JSON语法格式返回,以便虚拟机进行调用。
可选的,开启模块包含:调用模块,用于在数据转发装置执行命令行参数执行以打开通道的命令时,调用存储装置提供的动态链接库,从而打开数据转发装置之间的N路通道。
第二接收单元30用于在数据转发装置打开N路通道之后,接收来自虚拟机的待传输数据。数据转发装置与存储装置之间通过共享内存的方式进行数据传输:先申请一段内存,虚拟机和数据转发装置都有权对内存进行读写操作,由虚拟机将待传输数据写入该内存中。
传输单元40用于通过已经打开的N路通道向存储装置传输待传输数据。可选的,传输单元包括:接收模块,用于在虚拟机将待传输数据写入该内存之后,向数据传输装置发送第一指示信息,指示虚拟机已经将待传输数据写入共享内存,数据写入完毕;提取模块,用于在数据转发装置在接收到第一指示信息之后,从共享内存中将已经写入的数据读取出来;写入模块,用于通过已经打开的N路通道,将数据写入存储装置。
可选的,该装置还包:发送单元,用于在数据转发装置将待传输数据写入存储装置后,通过注册到虚拟机的线程向虚拟机发送第二指示信息,其中,第二指示信息用于指示数据转发装置已经将待传输数据写入到存储装置,数据写入完毕。
在本实施例中,通过数据转发装置接收虚拟机发送的控制指令,其中,控制指令用于指示打开预先设置在数据转发装置和存储装置之间的多路通道中的N路通道,一路通道对应一个或者多个存储装置;数据转发装置根据控制指令打开N路通道,其中,打开的N路通道的个数与虚拟机的数量相匹配;在数据转发装置打开N路通道之后,数据转发装置接收来自虚拟机的待传输数据;数据转发装置通过已经打开的N路通道向存储装置传输待传输数据。本发明减少了虚拟机在连接存储装置并对存储装置进行读写时产生的线程,对通道进行共享,解决了由虚拟机直接向存储传输数据时系统性能偏低的技术问题。
本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种数据传输方法,其特征在于,包括:
数据转发装置接收虚拟机发送的控制指令,其中,所述控制指令用于指示打开预先设置在所述数据转发装置和存储装置之间的多路通道中的N路通道,一路通道对应一个或者多个所述存储装置;
所述数据转发装置根据所述控制指令打开所述N路通道,其中,打开的所述N路通道的个数与所述虚拟机的数量相匹配,打开的所述N路通道的个数与所述虚拟机的数量相匹配包括:打开的所述N路通道的个数大于所述虚拟机的数量;
在所述数据转发装置打开所述N路通道之后,所述数据转发装置接收来自所述虚拟机的待传输数据;
所述数据转发装置通过已经打开的所述N路通道向所述存储装置传输所述待传输数据。
2.根据权利要求1所述的方法,其特征在于,所述数据转发装置通过已经打开的所述N路通道向所述存储装置传输所述待传输数据包括:
所述数据转发装置接收虚拟机发送的第一指示信息,其中,所述第一指示信息用于指示所述虚拟机已经将所述待传输数据存储到共享内存中;
所述数据转发装置根据所述第一指示信息从所述共享内存上提取所述待传输数据;
所述数据转发装置通过所述N路通道向所述存储装置写入所述待传输数据。
3.根据权利要求2所述的方法,其特征在于,在所述数据转发装置通过所述N路通道向所述存储装置写入所述待传输数据之后,所述方法还包括:
所述数据转发装置通过注册到所述虚拟机的线程向所述虚拟机发送第二指示信息,其中,所述第二指示信息用于指示所述数据转发装置已经将所述待传输数据写入到所述存储装置。
4.根据权利要求1所述的方法,其特征在于,所述数据转发装置根据所述控制指令打开所述N路通道包括:
所述数据转发装置根据所述控制指令生成命令行参数,其中,所述命令行参数由所述数据转发装置利用命令行工具根据函数参数生成,所述函数参数包括打开命令和打开的通道的个数;
所述数据转发装置执行所述命令行参数,以打开所述N路通道;
所述数据转发装置生成执行结果,以便所述虚拟机调用所述执行结果。
5.根据权利要求4所述的方法,其特征在于,所述数据转发装置执行所述命令行参数,以打开所述N路通道包括:
所述数据转发装置根据所述命令行参数调用所述存储装置的动态链接库,以打开所述N路通道。
6.一种数据转发装置,其特征在于,包括:
第一接收单元,用于接收虚拟机发送的控制指令,其中,所述控制指令用于指示打开预先设置在所述数据转发装置和存储装置之间的多路通道中的N路通道,一路通道对应一个或者多个所述存储装置;
控制单元,用于根据所述控制指令打开所述N路通道,其中,打开的所述N路通道的个数与所述虚拟机的数量相匹配,打开的所述N路通道的个数与所述虚拟机的数量相匹配包括:打开的所述N路通道的个数大于所述虚拟机的数量;
第二接收单元,用于在所述数据转发装置打开所述N路通道之后,接收来自所述虚拟机的待传输数据;
传输单元,用于通过已经打开的所述N路通道向所述存储装置传输所述待传输数据。
7.根据权利要求6所述的数据转发装置,其特征在于,所述传输单元包括:
接收模块,用于接收虚拟机发送的第一指示信息,其中,所述第一指示信息用于指示所述虚拟机已经将所述待传输数据存储到共享内存中;
提取模块,用于根据所述第一指示信息从所述共享内存上提取所述待传输数据;
写入模块,用于通过所述N路通道向所述存储装置写入所述待传输数据。
8.根据权利要求7所述的数据转发装置,其特征在于,所述数据转发装置还包括:
发送单元,用于通过注册到所述虚拟机的线程向所述虚拟机发送第二指示信息,其中,所述第二指示信息用于指示所述数据转发装置已经将所述待传输数据写入到所述存储装置。
9.根据权利要求6所述的数据转发装置,其特征在于,所述控制单元包括:
生成模块,用于生成命令行参数,其中,所述命令行参数由所述数据转发装置利用命令行工具根据函数参数生成,所述函数参数包括打开命令和打开的通道的个数;
开启模块,用于数据转发装置执行所述命令行参数,以打开所述N路通道;
第二生成模块,用于生成执行结果,以便所述虚拟机调用所述执行结果。
10.根据权利要求9所述的数据转发装置,其特征在于,所述开启模块包括:
调用模块,用于根据所述命令行参数调用所述存储装置的动态链接库,以打开所述N路通道。
CN201610728536.4A 2016-08-25 2016-08-25 数据传输方法和数据转发装置 Active CN107783722B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610728536.4A CN107783722B (zh) 2016-08-25 2016-08-25 数据传输方法和数据转发装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610728536.4A CN107783722B (zh) 2016-08-25 2016-08-25 数据传输方法和数据转发装置

Publications (2)

Publication Number Publication Date
CN107783722A CN107783722A (zh) 2018-03-09
CN107783722B true CN107783722B (zh) 2020-08-21

Family

ID=61438844

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610728536.4A Active CN107783722B (zh) 2016-08-25 2016-08-25 数据传输方法和数据转发装置

Country Status (1)

Country Link
CN (1) CN107783722B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109800190B (zh) * 2019-01-22 2021-04-06 星辰天合(北京)数据科技有限公司 内存的加速处理方法及装置、存储介质、处理器

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101986285A (zh) * 2010-11-03 2011-03-16 华为技术有限公司 虚拟机存储空间管理方法、系统及物理主机
CN102314372A (zh) * 2010-05-25 2012-01-11 微软公司 虚拟机i/o多路径配置
CN104508632A (zh) * 2013-07-31 2015-04-08 华为技术有限公司 一种数据转发方法、装置及系统
CN105812839A (zh) * 2014-12-31 2016-07-27 华为技术有限公司 视频流数据获取、页面数据传输方法、系统及网络服务器

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10140136B2 (en) * 2013-11-07 2018-11-27 Datrium, linc. Distributed virtual array data storage system and method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102314372A (zh) * 2010-05-25 2012-01-11 微软公司 虚拟机i/o多路径配置
CN101986285A (zh) * 2010-11-03 2011-03-16 华为技术有限公司 虚拟机存储空间管理方法、系统及物理主机
CN104508632A (zh) * 2013-07-31 2015-04-08 华为技术有限公司 一种数据转发方法、装置及系统
CN105812839A (zh) * 2014-12-31 2016-07-27 华为技术有限公司 视频流数据获取、页面数据传输方法、系统及网络服务器

Also Published As

Publication number Publication date
CN107783722A (zh) 2018-03-09

Similar Documents

Publication Publication Date Title
CN103595790B (zh) 设备远程访问的方法、瘦客户端和虚拟机
CN104216761B (zh) 一种在能够运行两种操作系统的装置中使用共享设备的方法
CN106776067B (zh) 多容器系统中系统资源的管理方法及管理装置
CN105183675A (zh) 对usb设备的访问方法、装置、终端、服务器及系统
CN106201566A (zh) 利博伟特软件热升级方法及设备
US20220121451A1 (en) Inter-core data processing method, system on chip and electronic device
CN105487987B (zh) 一种处理并发顺序读io的方法及装置
CN107251069B (zh) 一种近场通信支付方法及终端
CN108063813A (zh) 一种集群环境下密码服务网络并行化的方法与系统
CN107370622A (zh) 一种虚拟机复用宿主机mac和ip的方法及系统
CN114301506B (zh) 用于模拟nfc功能的方法及装置、nfc终端、存储介质
CN108829529A (zh) 虚拟机内存共享方法、装置、计算机设备及存储介质
CN110457078A (zh) 智能服务方法、装置及设备
CN105190530A (zh) 传输硬件渲染的图形数据
CN115408108A (zh) 一种云环境下的i/o卸载方法、设备、系统及存储介质
CN108646577A (zh) 一种客户端运行管理方法及客户端
CN107783722B (zh) 数据传输方法和数据转发装置
CN104244171A (zh) 基于nfc连接的数据传输系统及方法
CN108664325B (zh) 处理数据的方法和电子设备
CN109343944A (zh) eSIM卡的数据处理方法、装置、终端及存储介质
CN107943622B (zh) 备用运维方法、装置和系统
CN102609310A (zh) 一种计算机操作系统及其进程间通讯的方法
CN107643938A (zh) 数据传输方法、装置及存储介质
CN106528173A (zh) 一种开机图片显示方法及终端
CN107016281A (zh) 应用程序的权限设置方法、装置和电子设备

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
CP03 Change of name, title or address

Address after: 100094 101, floors 1-5, building 7, courtyard 3, fengxiu Middle Road, Haidian District, Beijing

Patentee after: Beijing Xingchen Tianhe Technology Co.,Ltd.

Address before: 100096 office building 805-806, block B, Jinyuan times business center, lantianchang Road, Haidian District, Beijing

Patentee before: XSKY BEIJING DATA TECHNOLOGY Corp.,Ltd.

CP03 Change of name, title or address