CN102404253B - 支持linux 的硬件抽象层的虚拟网卡设计方法 - Google Patents

支持linux 的硬件抽象层的虚拟网卡设计方法 Download PDF

Info

Publication number
CN102404253B
CN102404253B CN201110175932.6A CN201110175932A CN102404253B CN 102404253 B CN102404253 B CN 102404253B CN 201110175932 A CN201110175932 A CN 201110175932A CN 102404253 B CN102404253 B CN 102404253B
Authority
CN
China
Prior art keywords
network
packet
operating system
client operating
data
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.)
Expired - Fee Related
Application number
CN201110175932.6A
Other languages
English (en)
Other versions
CN102404253A (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.)
Xian Jiaotong University
Original Assignee
Xian Jiaotong University
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 Xian Jiaotong University filed Critical Xian Jiaotong University
Priority to CN201110175932.6A priority Critical patent/CN102404253B/zh
Publication of CN102404253A publication Critical patent/CN102404253A/zh
Application granted granted Critical
Publication of CN102404253B publication Critical patent/CN102404253B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种支持linux的硬件抽象层的虚拟网卡设计方法,所述设计方法包括虚拟网卡中网络数据包的组织、虚拟网卡中网络数据包的存储管理、客户操作系统的网络包发送过程和客户操作系统的网络包接收过程。本发明通过虚拟网卡设备,多个客户操作系统能够同时进行网络操作。另外,硬件抽象层的分层设计减少了网卡设备驱动移植的工作量。设计了支持linux的硬件抽象层的虚拟网络设备,抽象化网络包数据组织结构,并通过消息和中断注入机制实现虚拟网卡中网络数据包的发送和接收。

Description

支持linux 的硬件抽象层的虚拟网卡设计方法
技术领域:
本发明属于嵌入式系统设计领域,具体涉及支持linux的硬件抽象层中虚拟网卡设备的设计方法。
背景技术:
硬件抽象层(简称HAL)旨在对驱动框架分层,将设备无关部分和设备相关部分分开。以网络设备为例,通过设计一个公共的、抽象的虚拟网络设备,将原先具体设备的驱动分成两层。虚拟设备之上(即客户操作系统,简称Guest OS)属于设备无关部分,而虚拟设备与具体设备之间(即虚拟机监控器,简称VMM)则属于设备相关部分。设备无关部分在各个网络设备之间是通用的,且可以被复用。当为新的网络设备设计驱动时,只需改写设备相关部分,即重写虚拟网络设备与物理网络设备之间的映射。
本发明将虚拟网络设备与具体设备之间的映射放在VMM中实现,而不是在Linux中,这样使得linux(Guest OS)屏蔽具体的硬件细节,硬件细节全部在VMM得到处理,而linux作为Guest OS,只操作虚拟的设备。
通过硬件抽象层中对虚拟网卡的设计,可以将一个物理网卡映射为多个虚拟网卡,从而使得多个Guest OS可以在桥接的情况下,各使用一个虚拟网卡,同时连接网络,接收及发送网络包。其具体结构框架见图1,图中的Guest OS代表Linux操作系统。
现有的流行虚拟化方案有VMware和Xen,他们均针对网络设备进行了虚拟化。前者主要应用于全虚拟化方案,即运行不经修改的Guest OS,对原网络设备驱动可不加修改的应用于虚拟机环境中;后者采用分离驱动模型,即多个客户操作系中一个作为domain 0,具有较高优先级,并直接复用已有网络驱动使用网络设备,其余客户操作系统通过向domain 0申请网络服务来上网。但他们均应用于PC、服务器领域,而本专利主要应用于嵌入式领域,并同前者相比具有较低的性能损耗、易于移植的特点。
发明内容:
本发明的目的在于提供一种支持linux的硬件抽象层的虚拟网卡设计方法。通过虚拟网卡设备,多个客户操作系统能够同时进行网络操作。另外,硬件抽象层的分层设计减少了网卡设备驱动移植的工作量。
为了达到上述目的,本发明采用以下技术方案予以实现:通过将虚拟网卡中网络数据包抽象为特定的数据结构,并以链表的方式组织,然后通过消息和中断注入机制分别实现网络包的发送和接收过程(见图2)。
(1)虚拟网卡中网络数据包的组织
每个虚拟网卡中网络数据包在硬件抽象层端被抽象为一个结构体,其所包含的len字段和addr字段分别代表数据包的长度及其在内存中的地址。由该结构体相连接的链表表示由网络设备发送或接收的一系列数据包。当数据包在HAL层中传递时,仅需传送其addr字段,并据此实现数据在客户操作系统与硬件缓冲区之间的拷贝。图3显示虚拟网络设备的数据包组织形式,其中两个环形链表分别代表暂存发送和接收的虚拟网卡中网络数据包结构体,实线和虚线分别代表发送和接收网络包的过程。
(2)虚拟网卡中网络数据包的存储管理
虚拟网卡中网络数据包在客户操作系统(linux)中以结构体sk_buff表示,其网络数据位于sk_buff->data所指向的内存地址中。对于客户操作系统中的每个sk_buff,都由HAL端虚拟网卡中网络数据包链表的一个元素的索引。虚拟网卡中网络数据包(sk_buff)在客户操作系统中创建和释放,对应HAL端虚拟网卡中网络数据包链表元素的增加和删除。通过该方式,HAL端不进行虚拟网卡中网络数据包空间的分配与释放,相应的工作由客户操作系统完成。当需要发送网络包时,只需要把sk_buff->data(即上文的addr字段)传递给HAL,并由后者将该指针指向的内存空间拷贝至硬件缓冲区中,完成发送操作,接着由客户操作系统将网络包(sk_buff)的空间释放。当接收网络包时,客户操作系统创建预先分配固定大小负载空间的sk_buff,并由HAL将接收到的网络数据拷贝至该负载空间中(sk_buff->data,即上文的addr字段)。该过程参考图5。
(3)客户操作系统的网络包发送过程
每个客户操作系统在硬件抽象层中对应一个网络发送实时任务。当需要发送网络数据时,将数据映射进HAL端的虚拟网卡中网络数据包链表,封装发送消息内容,进而将消息传递给实时任务。该任务收到消息后被唤醒并调度执行,读取数据包链表中的一个元素,根据其中的addr字段将数据拷贝到物理网卡缓冲区,设置相应寄存器后,完成发送任务。客户操作系统接着被通知释放该虚拟网卡中网络数据包空间。
(3)客户操作系统的网络包接收过程
a)物理网卡接收到数据包时,会触发相应中断,调用网络包接收中断服务程序。该服务程序首先验证网络包是否有效,如有效则从客户操作系统内核取出一个空的数据包链表元素。如链表元素取出过程失败,则将物理网卡中的数据取出,存入临时缓冲区,不向客户操作系统传递。否则转入b)。
b)将物理网卡中的数据取出,存入网络数据链表元素的addr字段所代表的内存处,并向客户操作系统注入网络包接收中断,即设置其虚拟中断标志为1。接着转到c)。
c)客户操作系统被调度执行时,首先处理已触发的虚拟中断。在调用相应的网络虚拟中断服务程序时,会通过网络接收数据包链表依次处理每个从VMM端发送来的数据包,将其传递到更高层的网络协议栈进行处理。每个包(即链表中的每个元素)处理完成后,均需要为该元素分配一段新的负载空间。
本发明设计了支持linux的硬件抽象层的虚拟网络设备,抽象化网络包数据组织结构,并通过消息和中断注入机制实现虚拟网卡中网络数据包的发送和接收。
附图说明:
图1为两个Guest OS通过硬件抽象层中的虚拟网络设备桥接方式上网;
图2为网络包的发送和接收过程示意图;
图3为抽象后的虚拟网卡中网络数据包的组织形式示意图;
图4为虚拟网卡中网络数据包链表在初始化时的组织形式;
图5虚拟网卡中网络数据包链表在发送和接收包时的组织形式;
图6为虚拟网络设备驱动层次模型示意图。
具体实施方式:
下面结合附图对本发明做进一步详细描述:
参见图1-6,网络设备虚拟化技术主要体现在数据包的组织、发送、接收过程。
(1)虚拟网卡中网络数据包的组织
客户操作系统利用虚拟网络设备进行网络数据的接收和发送是通过虚拟网卡中网络数据包链表实现的,该链表中的每个元素描述一个数据包,元素的len字段和addr字段分别代表数据包的长度和其在内存中的地址。该数据包的数据存放客户操作系统内核中,当数据包进行转移时,一般仅传递其addr字段。
在客户操作系统间虚拟网卡中网络数据包发送和接收时,需要相应的系统间虚拟网卡中网络数据包链表数据结构,若一个客户操作系统需要向另一个发送数据包时,需要将数据包的内存地址和长度字段写入链表中的空白元素。另一个客户操作系统从该链表中取出一个元素,读出其数据包地址,并据此拷贝至该客户操作系统内核中。
(2)虚拟网卡中网络数据包的存储管理
考虑到网络包数据量大,网络传输频繁,需要减少不必要的内存拷贝。虚拟网卡中网络数据包在客户操作系统(linux)中创建和存储,以结构体sk_buff表示,其网络数据位于sk_buff->data所指向的内存地址中(该地址同样位于客户操作系统)。当需要发送网络包时,只需要把sk_buff->data(即上文的addr字段)传递给HAL,并由后者将该指针指向的内存拷贝至硬件缓冲区中;当接收网络包时,客户操作系统创建预先分配固定大小负载空间的sk_buff,并由HAL将接收到的网络数据拷贝至linux的sk_buff->data(即上文的addr字段)中。这使得HAL利用虚拟网卡中网络数据包链表作为网络发送或接收包的中介,在避免额外拷贝的情况下实现网络操作(如图5所示)。
a)网络发送数据包的存储管理
发送缓冲区链表中的每个元素(unit)被初始化为空(如图4上)。当linux需要发送网络包时(如图5上),将其创建的带网络数据的sk_buff通过tx_write_index指针写入一个unit,接着HAL被通知需要发送网络包,通过tx_read_index指针取得当前unit的addr字段(即sk_buff->data),将该字段处的内容拷贝至硬件网卡缓冲区中。最后通知linux发送已完成,客户操作系统接着通过tx_release_index指针将已读过的unit所指向的sk_buff销毁,并将unit重新置为空。
b)网络接收数据包的存储管理
接收缓冲区链表中的每个元素被初始化为指向一个预先分配带固定内存大小负载空间的sk_buff(如图4下)。当虚拟网卡中网络数据包到达时,触发硬件中断。该中断服务程序会向接收缓冲区链表申请一个新的元素(利用rx_write_index指针),将硬件接收到的网络数据专递到接收缓冲区链表元素(unit)的addr字段所指向的linux内存地址,并通知客户操作系统收到虚拟网卡中网络数据包。linux读取收到的虚拟网卡中网络数据包(利用rx_read_index),并将其传递给上层网络协议栈进行处理。在处理的过程中,unit对应的sk_buff会被释放,此时需要重新为unit分配一个带固定内存大小负载空间的sk_buff(图5下)。
(3)虚拟设备初始化过程
虚拟网络设备的模块将在客户操作系统针对外设的初始化时加载,并调用相应函数进行与硬件无关的初始化工作。接着向HAL层发送消息,要求进行与网卡硬件相关的初始化,该消息会唤醒与该客户操作系统在HAL层对应的网络实时任务。在任务中检查物理网络设备启动标识,如果该标志显示尚未启动,则调用相应的函数完成初始化工作,否则直接退出。
(4)数据包发送
a)要发送的数据包经过TCP/IP封装后,首先暂停内核与驱动程序间数据传递,准备发送数据包。将该数据包在内存中的地址和长度信息存入从链表中的一个空数据包结构体,转入b)。
b)向HAL中与虚拟网卡中网络数据包发送相关的任务发送虚拟网卡中网络数据包消息,设置该消息的类型为“服务请求”,任务类型为“网络数据发送”,附加参数为网络包目的地类型,这可通过对比虚拟网卡中网络数据包的目的MAC地址和已知的MAC地址得到,转入c)。
c)消息发送后,等待相应的响应消息。若没有立即得到响应,则将该linux进程阻塞;否则将该虚拟网卡中网络数据包释放,并重新进行内核--驱动程序间数据传递,继续发送新的数据包。
d)在b)中发送的消息唤醒HAL中与网络数据发送相关的实时任务,该任务验证消息的任务类型为“网络数据发送”,接着,根据附加参数,选择将数据包发送到外部网络或者其他客户操作系统中。当数据包需要发送至外部网络时,从客户操作系统获取要发送数据包的内存地址和长度,利用该信息将网络数据拷贝至网卡硬件缓冲区,并设置相应的寄存器完成发送请求。当数据包发送至其他客户操作系统时,其操作见(6)。完成发送操作后,向Guest OS发送响应消息。接着,该实时任务等待数据包发送的请求消息,此时会将自身阻塞。
(5)数据包接收
a)当接收到虚拟网卡中网络数据包时,物理网卡触发硬件中断,此时转入VMM的网络接收数据中断服务程序。
b)该服务程序通过对网卡接收到的数据进行有效性验证,并通过比较数据包的MAC地址判断向哪一个客户操作系统发送。如果向当前Guest OS发送数据包,那么向该客户操作系统申请一个空的数据包结构体,并将接收到的数据包拷贝到该结构体addr字段对应的内存地址处,同时向客户操作系统注入一次网络接收中断。如果向被阻塞的客户操作系发送数据包,其具体操作见(6)。
c)当客户操作系统作为一个任务被调度执行时,会首先处理被注入的中断,这包括执行客户操作系统的网络接收中断服务程序。该服务程序会通过网络接收数据包链表依次处理每个从HAL发送来的数据包,识别其发送目标,并传递到更高层的网络协议层进行处理。每个包处理完成后,均需要为对应的接收数据包链表中的元素申请一段新的内存空间。
(6)客户操作系统间数据包的发送和接收
a)在HAL端接收到客户操作系统的发送虚拟网卡中网络数据包请求(见(4)的d)步骤),识别其消息类型为广播包或特意向其他某个客户操作系统发送数据包。此时将要发送的数据包中的数据拷贝至操作系统间虚拟网卡中网络数据包链表中的一个空的元素,并通过信号量向另外某个客户操作系统发送网络包到达的消息。转入b)。
b)网络包接收实时任务在接收到消息后被唤醒,进而调度执行,它会从操作系统间网络数据链表读取一个元素。接着从Guest OS内核取出一个空的数据包结构体,将元素中的数据包内容拷贝到数据包结构体addr字段在内存中的地址。转入c)。
c)向需要接收数据包的Guest OS注入网络接收中断,该客户操作系统进而读取该数据包并进行TCP/IP协议栈解析。
通过试验对本发明的虚拟网络设备的效率进行了验证,具体方法如下:
本试验主要采用ftp下载大量数据的方法计算网络速率。首先在mini6410开发板上运行linux操作系统,利用ftp工具分别下载1M、2M、4M、8M、16M、32M大小的文件,依次计算其下载速度。接着在同样的开发板上运行基于虚拟网络设备的客户操作系统(linux),同样利用ftp下载从1M到32M大小不同的文件,并计算得相应的网络速度。最后,将这两次下载速度进行对比。
实验结果表明,虚拟后的网络设备运行效率在最差情况下是虚拟前的94%,证明虚拟化过程造成的额外开销不大。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施方式仅限于此,对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单的推演或替换,都应当视为属于本发明由所提交的权利要求书确定专利保护范围。

Claims (1)

1.支持linux的硬件抽象层的虚拟网卡设计方法,其特征在于:所述设计方法包括虚拟网卡中网络数据包的组织、虚拟网卡中网络数据包的存储管理、客户操作系统的网络包发送过程和客户操作系统的网络包接收过程:
所述虚拟网卡中网络数据包的组织按照如下步骤进行,每个虚拟网卡中网络数据包在硬件抽象层端被抽象为一个结构体,其所包含的len字段和addr字段分别代表虚拟网卡中网络数据包长度和其在内存中的地址;由该结构体相连接的链表表示由网络设备发送或接收的一系列数据包;当数据包在HAL中传递时,仅需传送其addr字段,并据此实现数据在客户操作系统与硬件缓冲区之间的拷贝;
所述虚拟网卡中网络数据包的存储管理按照如下步骤进行,虚拟网卡中网络数据包在客户操作系统linux中以结构体sk_buff表示,其网络数据位于sk_buff->data所指向的内存地址中;对于客户操作系统中的每个sk_buff,都由HAL端虚拟网卡中网络数据包链表的一个元素的索引;虚拟网卡中网络数据包sk_buff在客户操作系统中创建和释放,对应HAL端虚拟网卡中网络数据包链表元素的增加和删除;通过该方式,HAL端不进行虚拟网卡中网络数据包空间的分配与释放,相应的工作由客户操作系统完成;每当需要发送网络包时,只需要把sk_buff->data,即上文的addr字段传递给HAL,并由后者将该指针指向的内存拷贝至硬件缓冲区中,发送完成后由客户操作系统将网络包sk_buff的空间释放;当接收网络包时,客户操作系统创建预先分配固定大小负载空间的sk_buff,并由HAL将接收到的网络数据拷贝至linux的sk_buff->data,即上文的addr字段中;
所述客户操作系统的网络包发送过程按照如下步骤进行,每个 客户操作系统在硬件抽象层对应一个网络发送实时任务,当需要发送网络数据时,将数据映射进HAL端的虚拟网卡中网络数据包链表,封装发送消息,进而将消息传递给实时任务;该任务收到消息后被唤醒并调度执行时,读取数据包链表中的一个元素,根据其中的addr字段将数据拷贝到物理网卡缓冲区,设置相应寄存器后,完成发送任务;接着客户操作系统被通知将该虚拟网卡中网络数据包释放;
所述客户操作系统的网络包接收过程按照如下步骤进行,
(1)物理网卡接收到数据包时,会触发相应中断,调用网络包接收中断服务程序;该服务程序会确定网络包发送的目标客户操作系统,并从该客户操作系统取出一个空的数据包链表元素,如失败,将物理网卡中的数据取出至临时缓冲区,不向客户操作系统传递;否则转入(1);
(2)将物理网卡中的数据取出,存入网络数据链表元素的addr字段所代表的内存处,并向客户操作系统注入网络包接收中断,设置其虚拟中断标志位;
(3)客户操作系统被调度执行时,会处理网络接收虚拟中断;在该中断的服务程序中,依次处理每个从VMM端发送来的数据包,并将其传递至更高层次的网络协议栈进行处理。
CN201110175932.6A 2011-06-28 2011-06-28 支持linux 的硬件抽象层的虚拟网卡设计方法 Expired - Fee Related CN102404253B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110175932.6A CN102404253B (zh) 2011-06-28 2011-06-28 支持linux 的硬件抽象层的虚拟网卡设计方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110175932.6A CN102404253B (zh) 2011-06-28 2011-06-28 支持linux 的硬件抽象层的虚拟网卡设计方法

Publications (2)

Publication Number Publication Date
CN102404253A CN102404253A (zh) 2012-04-04
CN102404253B true CN102404253B (zh) 2014-08-06

Family

ID=45886053

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110175932.6A Expired - Fee Related CN102404253B (zh) 2011-06-28 2011-06-28 支持linux 的硬件抽象层的虚拟网卡设计方法

Country Status (1)

Country Link
CN (1) CN102404253B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103093777B (zh) * 2012-12-28 2015-12-23 Tcl康钛汽车信息服务(深圳)有限公司 一种采用Android系统控制DVD设备的方法及系统
CN104065556A (zh) * 2014-07-11 2014-09-24 深圳市海派通讯科技有限公司 基于嵌入式ARM-Linux平台任意链路的虚拟专用网络
CN105516397B (zh) * 2016-01-19 2019-06-11 深圳前海达闼云端智能科技有限公司 多操作系统终端接入网络的方法及多操作系统终端
CN108701033A (zh) * 2018-05-08 2018-10-23 深圳前海达闼云端智能科技有限公司 客户操作系统唤醒方法、装置、电子设备及可读介质
CN108768851B (zh) * 2018-06-01 2019-11-15 武汉绿色网络信息服务有限责任公司 一种基于Linux系统实现的路由器环回口方法和装置
CN113840295B (zh) * 2021-09-26 2022-08-09 北京字节跳动网络技术有限公司 移动数据网络建立方法、装置、电子设备及存储介质
CN117453299B (zh) * 2023-12-25 2024-03-01 南京沁恒微电子股份有限公司 一种应用态网卡驱动方法及其装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101520738A (zh) * 2008-02-27 2009-09-02 黄歆媚 基于设备访存管理技术的虚拟机系统及其设备访问方法
CN101739283A (zh) * 2008-11-20 2010-06-16 联想(北京)有限公司 一种计算机及虚拟系统直接访问计算机硬件的方法
CN102103518A (zh) * 2011-02-23 2011-06-22 运软网络科技(上海)有限公司 一种在虚拟化环境中管理资源的系统及其实现方法
EP2479677A1 (en) * 2010-11-03 2012-07-25 Huawei Technologies Co., Ltd. Method, system and physical host for virtual machine (vm) storage space management

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101520738A (zh) * 2008-02-27 2009-09-02 黄歆媚 基于设备访存管理技术的虚拟机系统及其设备访问方法
CN101739283A (zh) * 2008-11-20 2010-06-16 联想(北京)有限公司 一种计算机及虚拟系统直接访问计算机硬件的方法
EP2479677A1 (en) * 2010-11-03 2012-07-25 Huawei Technologies Co., Ltd. Method, system and physical host for virtual machine (vm) storage space management
CN102103518A (zh) * 2011-02-23 2011-06-22 运软网络科技(上海)有限公司 一种在虚拟化环境中管理资源的系统及其实现方法

Also Published As

Publication number Publication date
CN102404253A (zh) 2012-04-04

Similar Documents

Publication Publication Date Title
CN102404253B (zh) 支持linux 的硬件抽象层的虚拟网卡设计方法
US9619270B2 (en) Remote-direct-memory-access-based virtual machine live migration
US9477501B2 (en) Encapsulation of an application for virtualization
CN109564523B (zh) 使用机会性管理程序降低性能可变性
CN102609298B (zh) 基于硬件队列扩展的网卡虚拟化系统及其方法
US8316220B2 (en) Operating processors over a network
US7784060B2 (en) Efficient virtual machine communication via virtual machine queues
US9542224B2 (en) User space function execution from a kernel context for input/output filtering from a thread executing in the user space
US20060020940A1 (en) Soft-partitioning systems and methods
CN101430674B (zh) 一种分布式虚拟机监控器内连通信方法
US8640128B2 (en) Dynamic network adapter queue pair allocation
CN107368379B (zh) 面向EVP的跨Guest OS进程间通信方法及系统
US9069592B2 (en) Generic transport layer mechanism for firmware communication
WO2021218976A1 (zh) 应用程序的处理方法、装置、云环境、介质及程序产品
CN112306669A (zh) 一种基于多核系统的任务处理方法及装置
CN102521015A (zh) 嵌入式平台下的设备虚拟化方法
CN103996003A (zh) 一种虚拟化环境中的数据擦除系统及方法
Diakhaté et al. Efficient shared memory message passing for inter-VM communications
CN105630576A (zh) 一种虚拟化平台中的数据处理方法及装置
CN110659104A (zh) 一种业务监控方法及相关设备
CN114397999A (zh) 基于非易失内存接口-远程处理消息传递的通信方法、装置及设备
CN106598696B (zh) 一种虚拟机之间数据交互的方法及装置
CN102325178A (zh) 基于hypervisor构架的虚拟非易失闪存存储器件设备设计方法
JP2003330873A (ja) 情報処理装置及び入出力方法並びにプログラム
CN117573041B (zh) 一种改进vhost-scsi提升虚拟化存储性能的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140806

Termination date: 20200628