CN115757221A - 访问方法及计算机系统 - Google Patents
访问方法及计算机系统 Download PDFInfo
- Publication number
- CN115757221A CN115757221A CN202211504226.6A CN202211504226A CN115757221A CN 115757221 A CN115757221 A CN 115757221A CN 202211504226 A CN202211504226 A CN 202211504226A CN 115757221 A CN115757221 A CN 115757221A
- Authority
- CN
- China
- Prior art keywords
- queue
- request information
- access request
- virtualization
- access
- 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.)
- Pending
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请实施例提供了一种访问方法及计算机系统。其中,设备驱动运行在内核空间,所述内核空间与用户空间共享在目标内存中的缓冲队列;所述方法包括:从所述缓冲队列中获取运行在所述用户空间的目标应用提交的访问请求信息;将所述访问请求信息映射至虚拟化设备与所述设备驱动共享的虚拟化队列中;所述虚拟化队列用于所述虚拟化设备获取所述访问请求信息及响应所述访问请求信息;所述虚拟化设备为对所述外部设备虚拟化获得。本申请实施例提供的技术方案提高了访问效率。
Description
技术领域
本申请实施例涉及计算机技术领域,尤其涉及一种访问方法及计算机系统。
背景技术
I/O(Input/Output)操作描述了计算机系统对外部设备的访问,其涉及从用户空间通过系统调用访问内核空间,也即用户空间中的应用发起的访问请求,需经由内核空间的内核程序转发至外部设备以实现访问,然而,在这一访问过程中,涉及多次的请求转换和内存拷贝,降低了访问效率。
发明内容
本申请实施例提供一种访问方法及计算机系统,用以解决现有技术中访问效率较低的技术问题。
第一方面,本申请实施例中提供了一种访问方法,应用于外部设备对应的设备驱动中,所述设备驱运行在内核空间,所述内核空间与用户空间共享在目标内存中的缓冲队列;所述方法包括:
从所述缓冲队列中获取运行在所述用户空间的目标应用提交的访问请求信息;
将所述访问请求信息映射至虚拟化设备与所述设备驱动共享的虚拟化队列中;所述虚拟化队列用于所述虚拟化设备获取所述访问请求信息,所述虚拟化设备用于响应所述访问请求信息;所述虚拟化设备为对所述外部设备虚拟化获得。
第二方面,本申请实施例中提供了一种访问方法,包括:
从虚拟化队列中获取访问请求信息;所述访问请求信息由设备驱动从缓冲队列中获取并映射至所述虚拟化队列;所述访问请求信息由运行在所述用户空间的目标应用提交至所述缓冲队列;所述设备驱运行在内核空间,所述内核空间与用户空间共享在目标内存中的缓冲队列;
响应所述访问请求信息。
第三方面,本申请实施例中提供了一种访问方法,应用于运行在用户空间的目标应用;所述用户空间与内核空间与所述用户空间共享在目标内存中的缓冲队列;所述方法包括:
将访问请求信息提交至所述缓冲队列中;所述缓冲队列用于运行在所述内核空间的设备驱动获取所述访问请求信息并映射至虚拟化队列中;所述虚拟化队列用于虚拟化设备获取所述访问请求信息及响应所述访问请求信息,并将响应结果提交至所述虚拟化队列中;所述虚拟化设备为对所述外部设备虚拟化获得;
从所述缓冲队列中获取所述访问请求信息对应的所述响应结果;所述响应结果由所述设备驱动从所述虚拟化队列中映射至所述缓冲队列。
第四方面,本申请实施例中提供了计算机系统,包括处理组件以及存储组件;所述存储组件存储一条或多条计算机指令;所述一条或多条计算机指令用以被所述处理组件调用并执行,以在内核空间运行设备驱动以实现如上述第一方面所述的访问方法,以及在用户空间运行目标应用以实现如上述第三方面所述的访问方法。
本申请实施例中,设备驱运行在内核空间,内核空间与用户空间共享在目标内存中的缓冲队列;外部设备虚拟化获得的虚拟化设备与设备驱动共享虚拟化队列,用户空间的目标应用提交访问请求至缓冲队列中,设备驱动即可以从缓冲队列中获取访问请求,并将访问请求映射至虚拟化队列中;虚拟化设备可以获取访问请求并响应所述访问请求,之后可以将响应结果提交至所述虚拟化队列中;设备驱动从所述虚拟化队列中获取所述响应结果;将所述响应结果映射至所述缓冲队列中;所述目标应用用于从所述缓冲队列中获得所述响应结果,以实现目标应用对外部设备的访问。本申请实施例中,通过缓冲队列与虚拟化队列之间的映射,即可以实现对外部设备的访问,提高了访问效率。
本申请的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请提供的一种访问方法一个实施例的流程图;
图2示出了本申请实施例在一个实际应用中SQE的数据结构示意图;
图3示出了本申请提供的一种访问方法又一个实施例的流程图;
图4示出了本申请提供的一种访问方法又一个实施例的流程图;
图5示出了本申请实施例在一个实际应用中目标应用访问外部设备的交互示意图;
图6示出了本申请实施例在一个实际应用中队列映射示意图;
图7示出了本申请提供的一种访问装置一个实施例的结构示意图;
图8示出了本申请提供的一种访问装置又一个实施例的结构示意图;
图9示出了本申请提供的一种访问装置又一个实施例的结构示意图;
图10示出了本申请提供的一种计算机系统一个实施例的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
在本申请的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
为了便于理解本申请的技术方案,下面首先对本申请中可能涉及的技术术语进行相应解释说明:
外部设备:是指计算机系统中除主机以外的其他设备,包括输入设备(如键盘、鼠标等)、输出设备(如显示器、打印机等)、外部存储器(如硬盘、软盘、光盘)等。外部设备按照工作方式的不同,可以分为字符设备(character device)、块设备(block device)、网络通信设备等设备类型。I/O(Input/Output)操作即描述了计算机系统对外部设备的访问,例如可以包括数据I/O(读写数据)、网络IO(网络请求和响应)等。
内核空间及用户空间:操作系统的核心是内核(kernel),可以访问受保护的内存空间,也有访问底层硬件设备的所有权限。为了保证内核的安全,现在的操作系统一般都强制用户进程不能直接操作内核。具体的实现方式基本都是由操作系统将虚拟地址空间划分为两部分,一部分为内核空间,另一部分为用户空间。运行在用户空间的应用也被称为用户态,运行在内核空间的程序也被称为内核态。运行在用户空间的应用可以通过系统调用方式访问内核空间,在内核空间中可以实现数据读写、内存分配等操作。其中,I/O操作即涉及从用户空间通过系统调用访问内核空间,也就是说,应用只是发起了I/O操作的调用,具体I/O操作由内核程序来完成。
虚拟化设备:利用I/O虚拟化技术,对外部设备虚拟化获得。
AIO(Asynchronized io):异步io,是指应用提交访问请求之后,无需等待IO操作的完成,而是可以继续处理别的事情,io操作完成后,会以某种方式通知应用。
io_uring:一种异步io技术,io_uring技术提供缓冲队列,能够在用户空间和内核空间之间共享以避免内存拷贝。io_uring技术在内核空间注册内存,该内存可以通过mmap(memory map,一种内存映射文件的方式)映射到用户空间,在内存中通过缓冲队列实现用户空间和内核空间的通信。该缓冲队列可以为环形队列,用户态和内核态都可以从缓冲队列中读取数据和放入数据等。该缓冲队列可以包括提交队列(英文:Submission Queue,简称:SQ),以及完成队列(英文:Completion Queue,简称:CQ),SQ中的元素是SQE(SubmissionQueue Entry,提交队列条目),CQ中的元素为CQE(Completion Queue Entry,完成队列条目);SQE和CQE可以存储提交的请求信息或者请求信息的索引,而请求信息存放在额外的数组中。
virtio:一种I/O半虚拟化技术,是对半虚拟化Hypervisor(虚拟机监视器)中的一组通用外部设备的抽象,其是一种前后端架构,包括设备驱动、虚拟化设备、以及设备驱动与虚拟化设备进行通信的虚拟化队列(Vring)。其中,虚拟化设备通过对外部设备虚拟化获得,在虚拟机场景中,设备驱动位于虚拟机中,是虚拟化设备在虚拟机中对应的驱动;虚拟化设备由Hypervisor基于外部设备虚拟化获得。在虚拟机中看到的外部设备,即是由Hypervisor虚拟化获得。其中,虚拟化队列可以是环形队列,设备驱动以及虚拟化设备都可以从中读取数据和写入数据等。设备驱动将访问请求信息保存到虚拟队列中,然后通知虚拟化设备,虚拟化设备可以从虚拟队列中获取到访问请求信息进行处理。其中,该虚拟化队列例如可以包括可用队列(Available Ring)及已用队列(Used Ring),可用队列和已用队列可以存储操作地址或者存储操作地址的索引,操作地址存放在额外的数据表中,每个操作地址可以指向一个内存空间。
虚拟机:指在一个物理主机中通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。该物理主机相对虚拟机为宿主机(Host),该虚拟机相对物理主机为客户机(Guest)。
云计算:云计算是计算机技术发展最快的趋势之一,它涉及通过网络提供托管服务。云计算环境将计算和存储资源作为服务提供给最终用户。最终用户可以向提供的服务发出请求以进行处理。服务的处理能力通常受到配置资源的限制。云计算是一种服务交付模式,旨在实现,按需网络访问共享的可配置计算资源池(例如,网络、网络带宽、服务器、处理、内存、存储、应用程序、虚拟机和服务),这些资源可以通过最小的管理工作或与服务提供商的交互来快速调配和发布。
VFS(Virtual File System,虚拟文件系统):采用标准的Unix系统调用读写位于不同物理介质上的不同文件系统,即为各类文件系统提供了一个统一的操作界面和应用编程接口。
块层:内核空间中用来访问存储设备的模块接口。
文件系统(file system):是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索等的系统。
PCIe(peripheral component interconnect express):一种高速串行计算机扩展总线标准。
MEM(memory):存储介质。
PMEM(Persistent Memory):持久存储介质。
Nvme(Non-Volatile Memory express):非易失性内存主机控制器接口规范,用于访问通过PCIe总线附加的非易失性存储介质。
SSD(Solid State Disk):固态硬盘,Nvme硬盘即是指一种基于Nvme实现的固态硬盘。
POSIX(Portable Operating System Interface):可移植操作系统接口。
由于用户空间的应用无法直接访问外部设备,需要从用户空间通过系统调用访问内核空间,在内核空间实现对外部设备的访问,由背景技术描述可知,在访问过程中,涉及多次的请求转换和内存拷贝,以传统AIO技术访问外部设备为例,运行在用户空间的应用可以通过POSIX接口发起系统调用,进入内核空间,在内核空间中至少需要经由VFS、文件系统、块层以及设备驱动,才能实现对外部设备的访问,在VFS、文件系统、块层以及设备驱动中就需要进行多次请求转换以及内存拷贝。这无疑为降低访问效率。
为了提高访问效率,发明人研究中发现,io_uring技术实现了用户空间和内核空间的通信,可以避免进行内存拷贝,而virtio技术提供的半虚拟化方式通过设备驱动实现了对外部设备的访问,也可以避免进行一次内存拷贝,如果将两者技术结合来实现对外部设备的访问是否可以提高访问效率,然而发明人又研究发现,virtio技术支持块设备、网络设备等设备类型,这类设备的驱动程序对操作系统暴露的是块设备、网络设备等设备类型的接口,如果应用基于io_uring技术访问虚拟化设备时,需要先将访问请求转换为外部设备的设备类型对应的请求,再将设备类型对应的请求转换成vring中的元素,仍然需要进行请求映射和内存拷贝,从而增加了访问延迟,降低了访问效率。发明人又经过进一步思考发现,io_uring技术及virtio技术均使用了用以进行共享的队列,基于此发现,发明人创新性的提出了本申请的技术方案,在本申请实施例中,在计算机系统中创建外部设备对应的设备驱动,设备驱运行在内核空间,内核空间与用户空间共享在目标内存中的缓冲队列;外部设备虚拟化获得的虚拟化设备与设备驱动共享虚拟化队列,用户空间的目标应用提交访问请求至缓冲队列中,设备驱动即可以从缓冲队列中获取访问请求,并将访问请求映射至虚拟化队列中;虚拟化设备可以获取访问请求信息并响应访问请求信息,之后可以将响应结果提交至虚拟化队列中;设备驱动从虚拟化队列中获取响应结果;将响应结果映射至缓冲队列中;目标应用用于从缓冲队列中获得响应结果,以实现目标应用对外部设备的访问。本申请实施例中,通过缓冲队列与虚拟化队列之间的映射,只需进行一次请求映射,即可以实现对外部设备的访问,提高了访问效率。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为本申请实施例提供的一种访问方法一个实施例的流程图,本申请实施例的技术方案可以由计算机系统运行的设备驱动执行,设备驱动可以基于I/O虚拟化技术创建,并运行在内核空间中;其中,内核空间与用户空间共享在目标内存中的缓冲队列;其中,设备驱动与外部设备虚拟化获得的虚拟化设备共享虚拟化队列。
在一个实现方式中,内核空间和用户空间可以是指计算机系统创建的虚拟机的内核空间和用户空间,当然,内核空间和用户空间也可以是指计算机系统的物理主机所提供的内核空间和用户空间等。
在一个实现方式中,在虚拟机提供内核空间和用户空间的情况下,一个外部设备可以结合实际需求,虚拟化生成多个虚拟化设备,并对应不同设备驱动,以支持与多个虚拟机的通信等。
其中,内核空间和用户空间可以是基于io_uring技术实现访问。设备驱动、虚拟化设备及虚拟化队列可以是基于virtio技术创建。
此外,本申请实施例的技术方案可以应用于云计算场景,计算机系统为云计算系统提供的硬件设备,所创建的虚拟机可以例如可以作为云服务器等,虚拟机中可以运行用于执行不同处理操作的一个或多个应用等,也可以是云应用等。
本申请实施例的技术方案还可以应用于存算分离场景,上述计算机系统可以作为存储节点,如云计算场景的云存储节点,作为中间cache(缓冲)层,以缓存存储系统的至少部分数据,例如一些热数据或者中间数据等,以避免每次计算均需要从存储系统拉取的问题。
本申请实施例中的外部设备可以为传统的网络设备或者存储设备等,此外,采用本申请实施例的技术方案也可以接入其他类型的外部设备,比如用来进行计算处理的计算设备等。
本实施例所提供的访问方法可以包括如下几个步骤:
101:从缓冲队列中获取运行在用户空间的目标应用提交的访问请求信息。
该访问请求信息可以是目标应用基于针对外部设备的访问请求而确定,该访问请求可以由目标应用结合实际运行需求而生成,当然也可以是访问方所发送的,该访问方例如在存算分离场景下可以是指计算节点等。
该访问请求信息中可以包括操作地址等访问操作数据,该操作地址可以指向目标内存中的内存空间。
此外,该访问请求信息中还可以包括其它类型信息,如请求类型、目标数据,以及外部设备可以用来进行计算处理的情况下,还可以包括算子等。
102:将访问请求信息映射至虚拟化队列中。
其中,虚拟化队列用于虚拟化设备获取访问请求信息及响应访问请求信息,并将响应结果提交至虚拟化队列中。其中,虚拟化设备基于访问请求信息可以操作外部设备,实现对外部设备的访问处理,例如可以将访问请求信息发送至外部设备,由外部设备基于访问请求信息进行对应的访问处理。
通过虚拟化队列可以实现虚拟化设备与设备驱动之间的通信,由于缓冲队列以及虚拟化队列均为队列,只需要进行格式转换,即可以将访问请求信息映射至虚拟化队列中,从而实现外部设备虚拟化获得的虚拟化设备可以获取访问请求信息,并进行响应,实现对外部设备的访问,可以有效提高访问效率。
一些实施例中,虚拟化设备还用于并将访问请求信息的响应结果提交至虚拟化队列中,该方法还可以包括:
从虚拟化队列中获取响应结果;
将响应结果映射至缓冲队列中;目标应用用于从缓冲队列中获得响应结果。
虚拟化设备响应访问请求信息获得的响应结果可以提交至虚拟化队列中,设备驱动即可以从虚拟化队列中获得响应结果,再将响应结果映射至缓冲队列,目标应用即可以从缓冲队列中获得该响应结果。通过本申请实施例的技术方案,目标应用通过缓冲队列即可以实现对外部设备的访问,避免了多级请求映射和内存拷贝,提高了访问效率。
一些实施例中,由于缓冲队列及虚拟化队列均会索引至内存空间,为了进一步提高访问效率,将访问请求信息映射至虚拟化队列中可以包括:
保持访问请求信息中的操作地址不变,将访问请求信息映射至虚拟化队列中。
也即缓冲队列以及虚拟化队列对应该访问请求信息的操作地址不变,该操作地址指向目标内存的一内存空间,从而外部设备可以直接访问目标内存,无需进行内存拷贝,即可以实现请求信息的处理。
一些实施例中,缓冲队列以及虚拟化队列可以分别包括两个队列,缓冲队列包括第一队列及第二队列;虚拟化队列包括第三队列以及第四队列;响应结果可以具体提交至第四队列中;该从缓冲队列中获取运行在用户空间的目标应用提交的访问请求信息可以包括:从第一队列中获取运行在用户空间的目标应用提交的访问请求信息;
该将访问请求信息映射至虚拟化队列中可以包括:将访问请求信息映射至第三队列中;
该从虚拟化队列中获取响应结果可以包括:从第四队列中获取响应结果;
该将响应结果映射至缓冲队列中可以包括:将响应结果映射至第二队列中。
第一队列以及第三队列存放执行操作的数据,第二队列以及第四队列存放完成操作返回的结果等。具体的,第一队列用于目标应用写入以及设备驱动读取;而第二队列用于设备驱动写入以及目标应用读取;第三队列用于设备驱动写入以及虚拟化设备读取,而第四队列用于虚拟化设备写入以及设备驱动读取。
在实际应用中,缓冲队列可以是基于io_uring技术实现,其对应的第一队列可以为SQ,第二队列为CQ;虚拟化队列可以是基于virtio技术实现,其对应的第三队列可以为Available Ring,第四队列可以是Used Ring。
SQ、CQ、Available Ring、以及Used Ring可以均为环形队列,从队尾出队,从队头入队,例如目标应用基于访问请求信息可以生成SQE,并添加至SQ的队尾,设备驱动从SQ的队头获取SQE,以获得访问请求信息;设备驱动基于响应结果生成CQE并添加至CQ的队尾,目标应用从CQ的头部获取CQE,以获得响应结果等。
其中,SQE可以包括操作地址等访问操作数据,此外,缓冲队列还可以包括数组,用以保存操作地址等访问操作数据,或者保存访问操作数据的指针等,SQE可以保存指向该数组的索引信息等。此外,基于io_uring技术标准,SQE的数据结构可以包括多个字段信息,例如可以包括opcode字段用于保存操作码,flags字段用于保存标志位集合、fd字段用于保存文件描述符、addr字段用于保存操作地址等访问操作数或者指向数组的索引信息等、user_data字段用于保存用户数据等,当然,本申请对SQE的具体数据结构不进行限定。
其中,该数组可以是iov(i/o Virtualization,i/o虚拟化)数组,当然本申请对此并不进行限定。数组保存指针情况下,数组中的每个条目指向保存访问操作数据的内存空间,为了便于理解,参见图2的SQE示意图中,SQE的addr字段可以指向iov数组,iov数组的每个条目保存指针,可以指向保存不同数据的内存空间,例如:IOV[0]指向的内存空间保存元数据和参数,例如访问请求信息中包括对请求访问的目标数据进行计算处理的算子时,元数据即可以为算子的操作符等信息,参数为算子所涉及参数等;IOV[1]指向的内存空间中保存参数格式,IOV[2]指向的内存空间用于保存请求写入的目标数据(in buffer);IOV[3]指向的内存空间用于保存读取的目标数据等(out buffer)。当然,结合实际应用情况,在无需一些信息的情况下,IOV数组中的相应条目可以为空。需要说明的是,此处仅是举例说明IOV数组的实现情况,不应作为对本申请的限定。
IOV数组对应的访问操作数据即可以从缓冲队列映射至虚拟化队列中,可选地,可以仅是将addr字段的索引信息映射至虚拟化队列中,从而通过虚拟化队列中映射的索引信息可以索引至IOV数组从而获得访问操作数据,当然,也可以是将IOV数组对应的访问操作数据映射至虚拟化队列中,从而可以直接从虚拟化队列中获得该访问操作数据,本申请对此不进行限定。
其中,CQE用于存放执行结果,如成功或失败等对应的返回值,基于io_uring技术标准,CQE其可以由user_data字段、flags字段以及存储响应结果的res字段构成等,本申请对此不进行限定。
其中,Available Ring用于存放待处理的操作地址或者操作地址的索引信息,操作地址可以存在描述符数组中(Descriptor Table),该操作地址可以指向一内存空间,因此Available Ring在的每一个条目指向一内存空间。基于virtio技术标准,DescriptorTable的每个描述符的数据结构可以包括addr字段用于保存操作地址,len字段用于保存对应内存空间的长度信息、flags字段用于保存控制信息以及next字段用于保存下一个描述符标识等。Available Ring中每个条目的数据结构例如可以包括控制信息flags,下一个描述符标识,以及当前描述符标识等,当然本申请对此不进行限定。
Used Ring用于存放已处理完成的操作地址或者操作地址的索引信息等。基于virtio技术标准,Used Ring中每个条目的数据结构相较于Available Ring,还可以包括len字段用于保存内存长度等,当然本申请对此不进行限定。
基于io_uring技术,目标应用可以具体是利用io_uring接口将访问请求信息提交至缓冲队列中。io_uring接口为io_uring技术实现的系统调用接口,从而实现对缓冲队列的读写。
一些实施例中,将访问请求信息映射至虚拟化队列中可以包括:
按照虚拟化队列对应的第一格式要求,将访问请求信息进行格式转换,并将格式转换后的访问请求信息提交至虚拟化队列中;
则将响应结果映射至缓冲队列中包括:
按照缓冲队列对应的第二格式要求,将响应结果进行格式转换并将格式转换后的响应结果提交至缓冲队列中。
第一格式要求规定了虚拟化队列中每个条目的数据结构,从而据此可以将访问请求信息进行格式转换,第二格式要求规定了缓冲队列中每个条目的数据结构,从而据此可以将响应结果进行格式转换。
其中,可以预先配置格式对应关系,也即缓冲队列中每个条目包含的字段与虚拟化队列中每个条目包含的字段的对应关系,从而即可以实现映射,该对应关系可以结合实际需求进行设定,本申请对此不进行具体限定。
一些实施例中,该访问请求信息可以具体是指数据访问信息,用于实现数据读取或写入等,则该将访问请求信息映射至虚拟化队列中可以包括:
确定访问请求信息对应本地缓存的缓存地址;其中,本地缓存保存有存储系统中的至少部分数据;
将访问请求信息及缓存地址映射至虚拟化队列中;虚拟化设备用于基于缓存地址响应访问请求信息。
其中,本地缓存可以采用计算机系统配置的存储介质实现,如MEM、PMEM、NVMe硬盘等,用于保存存储系统中的至少部分数据,如热数据或中间数据等。计算机系统作为cache层用来实现存算分离。该存储系统可以是网络存储系统等。
其中,数据访问可以包括数据写入以及数据读取,因此,虚拟化设备可以是在访问请求信息为数据写请求信息的情况下,从操作地址中获取目标数据,并基于缓存地址,将目标数据保存至本地缓存。此时,响应结果可以包括成功消息或失败消息等;其中,虚拟化设备可以控制外部设备从操作地址中获取目标数据,并基于缓存地址,将目标数据保存至本地缓存。
在访问请求信息为数据读请求信息的情况下,基于缓存地址从本地缓存中读取目标数据,并将目标数据写入操作地址。此时,响应结果可以包括成功消息或失败消息,以及响应成功情况下,还可以包括该操作地址等。其中,虚拟化设备可以是控制外部设备基于缓存地址从本地缓存中读取目标数据,并将目标数据写入操作地址。
也即在访问请求信息为数据写请求信息的情况下,操作地址存放需要写入的目标数据。而访问请求信息为数据读请求信息的情况下,操作地址用来存放读取的目标数据。
图3为本申请实施例提供的一种访问方法又一个实施例的流程图,本实施例可以由外部设备执行或者可以由外部设备的虚拟化设备执行,该方法可以包括以下几个步骤:
301:从虚拟化队列中获取访问请求信息。
其中,访问请求信息由设备驱动从缓冲队列中获取并映射至虚拟化队列;访问请求信息由运行在用户空间的目标应用提交至缓冲队列;设备驱运行在内核空间,内核空间与用户空间共享在目标内存中的缓冲队列。
其中,缓冲队列与虚拟化队列之间的映射以及具体实现方式可以详见图1所示实施例中所述,此处不再重复赘述。
302:响应访问请求信息。
一些实施例中,该方法还可以包括:
确定访问请求信息对应的响应结果;
将响应结果提交至虚拟化队列中。
其中,响应结果用于设备驱动从虚拟化队列中获取并映射至缓冲队列中;目标应用用于从缓冲队列中获得响应结果。
其中,缓冲队列可以包括第一队列以及第二队列,访问请求信息具体是目标应用提交至第一队列中,虚拟化队列可以包括第三队列以及第四队列,设备驱动可以具体是从第三队列中获取访问请求信息,响应结果具体提交至第四队列中。设备驱动可以将响应结果映射至第二队列中,目标应用从第二队列中获得响应结果。
一些实施例中,访问请求信息为数据访问请求信息;访问请求信息包括操作地址;设备驱动用于将访问请求信息以及对应本地缓存的缓存地址对应映射至虚拟化队列中;则从虚拟化队列中获取访问请求信息可以包括:
从虚拟化队列中获取操作地址以及缓存地址;
在访问请求信息为数据写请求信息的情况下,从操作地址中获取目标数据,并基于缓存地址,将目标数据保存至本地缓存;
在访问请求信息为数据读请求信息的情况下,基于缓存地址从本地缓存中读取目标数据,并将目标数据写入操作地址。
图4为本申请实施例提供的一种访问方法又一个实施例的流程图,本实施例的技术方案由运行在用户空间的目标应用;用户空间与内核空间与用户空间共享在目标内存中的缓冲队列;该方法可以包括以下几个步骤:
401:将访问请求信息提交至缓冲队列中。
其中,缓冲队列用于运行在内核空间的设备驱动获取访问请求信息并映射至虚拟化队列中;虚拟化队列用于虚拟化设备获取访问请求信息及响应访问请求信息,并将响应结果提交至虚拟化队列中;述虚拟化设备为对外部设备虚拟化获得。
402:从缓冲队列中获取访问请求信息对应的响应结果。
其中,响应结果由设备驱动从虚拟化队列中映射至缓冲队列。
其中,缓冲队列可以包括第一队列以及第二队列,访问请求信息具体是目标应用提交至第一队列中,虚拟化队列可以包括第三队列以及第四队列,设备驱动可以具体是从第三队列中获取访问请求信息,响应结果具体提交至第四队列中。设备驱动可以将响应结果映射至第二队列中,目标应用从第二队列中获得响应结果。
其中,缓冲队列与虚拟化队列之间的映射以及具体实现方式可以详见图1所示实施例中所述,此处不再重复赘述。
本申请实施例的技术方案,通过缓冲队列与虚拟化队列之间的映射,无需进行多次映射和内存拷贝,即可以实现对外部设备的访问,提高了访问效率。
一个实际应用中,用户空间可以为虚拟机的用户空间;内核空间可以为虚拟机的内核空间;设备驱动具体与外部设备的虚拟化设备共享虚拟化队列;虚拟化设备用于从虚拟化队列中获取访问请求信息可以控制外部设备响应访问请求信息。
其中,设备驱动、虚拟化设备及虚拟化队列基于virtio技术创建,虚拟化设备为virtio设备,用户空间与内核空间基于io_uring技术实现访问,目标应用通过调用io_uring接口将访问请求提交至缓冲队列中;
第一队列为提交队列SQ,第三队列为可用环形队列Available Ring;第二队列为完成队列CQ,第四队列为已用环形队列Used Ring。
为了便于理解,以基于io_uring技术和virtio技术实现本申请技术方案为例,图5示出了目标应用访问外部设备的访问过程示意图,图6示出了队列映射示意图。结合图5以及图6可知,虚拟机(VM)的用户空间运行的目标应用可以调用io_uring接口将访问请求信息提交至预先在VM的内核空间注册的目标内存中的缓冲队列io_uring中,其中,缓存队列可以包括SQ以及CQ,问请求信息可以具体提交至SQ中,运行在内核空间的设备驱动作为内核程序可以访问该缓冲队列,并从中获得访问请求信息,之后设备驱动可以通过格式转换,并保持操作地址不变,将访问请求信息从SQ映射至虚拟化队列vring中。
virtio设备可以访问虚拟化队列,从中获得访问请求信息,并据此作出响应获得响应结果,其中,virtio设备对外部设备虚拟化获得,virtio设备可以基于访问请求信息对外部设备进行操作,可以控制外部设备响应该访问请求信息最终获得响应结果,从而通过virtio设备实现了对外部设备的访问。
virtio设备还可以将响应结果提交至虚拟化队列中,设备驱动即可以从虚拟化队列中获取该响应结果,并将其映射至缓冲队列中,具体可以是映射至CQ中,目标应用可以从CQ中获得响应结果。
其中,io_uring作为VM上用户空间和内核空间之间的界面,SQ/CQ对的个数可以由软件决定,可以选择任一个SQ/CQ进行写入等;内核空间的设备驱动将io-uring的SQE/CQE映射到vring上,vring的数量可以结合CPU核数确定等;
虚拟化设备可以以标准的PCIe或者MMIO(Memory-mapped I/O,内存映射I/O)等设备形式存在,负责对应的处理。
io_uring中使用的目标内存可以在内核空间中提前进行注册,设备驱动负责io_uring和vring之间格式的转换,但是不会修改操作地址,从而虚拟化设备可以直接访问目标内存来进行处理,避免数据的多次内存拷贝。
通过本申请实施例的技术方案,将io_uring作为用户侧接口机制,将virtio ring作为设备侧的接口机制,中间绕开块层/网络层等其他驱动层,通过io_uring将访问请求信息直接转发给hypervisor侧的虚拟化设备,虚拟化设备接收到用户空间的目标应序的访问请求信息,可以直接对目标内存进行操作,旁路内核空间的地址转换机制,从而可以降低延迟,提高访问效率。这样,一方面目标应用可以直接使用标准的io_uring接口和机制来访问外部设备,另一方面避免了多重内存拷贝,减少了命令转换次数和内存拷贝次数,降低了访问延迟,提高了访问效率。
图7为本申请实施例提供的一种访问装置一个实施例的结构示意图,该装置实际应用可以实现为设备驱动,设备驱运行在内核空间,内核空间与用户空间共享在目标内存中的缓冲队列;该装置可以包括:
第一获取模块701,用于从缓冲队列中获取运行在用户空间的目标应用提交的访问请求信息;
第一映射模块702,用于将访问请求信息映射至外部设备虚拟化设备与设备驱动共享的虚拟化队列中;虚拟化队列用于外部虚拟化设备获取访问请求信息及响应访问请求信息;虚拟化设备为对外部设备虚拟化获得。可以包括:
一些实施例中,该装置还可以包括:
第二获取模块,用于从虚拟化队列中获取响应结果;
第二映射模块,用于将响应结果映射至缓冲队列中;目标应用用于从缓冲队列中获得响应结果。
一些实施例中,第一映射模块以可以具体是保持访问请求信息中的操作地址不变,将访问请求信息映射至虚拟化队列中。
一些实施例中,缓冲队列包括第一队列及第二队列;虚拟化队列包括第三队列以及第四队列;响应结果具体提交至第四队列中;
第一获取模块具体是从第一队列中获取运行在用户空间的目标应用提交的访问请求信息;
第一映射模块具体是将将访问请求信息映射至第三队列中;
第二获取模块具体是从第四队列中获取响应结果;
第二映射模块具体是将响应结果映射至第二队列中。
一些实施例中,第一映射模块具体是按照虚拟化队列对应的第一格式要求,将访问请求信息进行格式转换,并将格式转换后的访问请求信息提交至虚拟化队列中。
一些实施例中,第二映射模块具体是按照缓冲队列对应的第二格式要求,将响应结果进行格式转换并将格式转换后的响应结果提交至缓冲队列中。
一些实施例中,访问请求信息为数据访问请求信息;数据访问请求信息包括操作地址;
第一映射模块具体是确定访问请求信息对应本地缓存的缓存地址;其中,本地缓存保存有存储系统中的至少部分数据;将访问请求信息及缓存地址映射至虚拟化队列中;外部设备用于基于缓存地址响应访问请求信息。
一些实施例中,用户空间为虚拟机的用户空间;内核空间为虚拟机的内核空间。
一些实施例中,设备驱动、虚拟化设备及虚拟化队列基于virtio技术创建;用户空间与内核空间基于io_uring技术实现访问,目标应用通过调用io_uring接口将访问请求提交至缓冲队列中;
第一队列为提交队列SQ,第三队列为可用环形队列Available Ring;第二队列为完成队列CQ,第四队列为已用环形队列Used Ring。
图7所述的访问装置可以执行图1所示实施例所述的访问方法,其实现原理和技术效果不再赘述。对于上述实施例中的访问装置其中各个模块、单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图8为本申请实施例提供的一种访问装置又一个实施例的结构示意图,该装置可以包括:
第三获取模块801,用于从虚拟化队列中获取访问请求信息;访问请求信息由设备驱动从缓冲队列中获取并映射至虚拟化队列;访问请求信息由运行在用户空间的目标应用提交至缓冲队列;设备驱运行在内核空间,内核空间与用户空间共享在目标内存中的缓冲队列;
响应模块802,用于响应访问请求信息。
一些实施例中,该装置还可以包括:
第一提交模块,用于确定访问请求信息对应的响应结果;将响应结果提交至虚拟化队列中;响应结果用于设备驱动从虚拟化队列中获取并映射至缓冲队列中;目标应用用于从缓冲队列中获得响应结果。
一些实施例中,访问请求信息为数据访问请求信息;访问请求信息包括操作地址;设备驱动用于将访问请求信息以及对应本地缓存的缓存地址对应映射至虚拟化队列中;
第三获取模块具体是从虚拟化队列中获取操作地址以及缓存地址;在访问请求信息为数据写请求信息的情况下,从操作地址中获取目标数据,并基于缓存地址,将目标数据保存至本地缓存;在访问请求信息为数据读请求信息的情况下,基于缓存地址从本地缓存中读取目标数据,并将目标数据写入操作地址。
图8所述的访问装置可以执行图3所示实施例所述的访问方法,其实现原理和技术效果不再赘述。对于上述实施例中的访问装置其中各个模块、单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图9为本申请实施例提供的一种访问装置又一个实施例的结构示意图,该装置实际应用中可以实现为目标应用,目标应用运行在用户空间,用户空间与内核空间与用户空间共享在目标内存中的缓冲队列,该装置可以包括:
第二提交模块901,用于将访问请求信息提交至缓冲队列中;缓冲队列用于运行在内核空间的设备驱动获取访问请求信息并映射至虚拟化队列中;虚拟化队列用于虚拟化设备获取访问请求信息及响应访问请求信息,并将响应结果提交至虚拟化队列中;虚拟化设备为对外部设备虚拟化获得;
第四获取模块902,用于从缓冲队列中获取访问请求信息对应的响应结果;响应结果由设备驱动从虚拟化队列中映射至缓冲队列。
图9所述的访问装置可以执行图4所示实施例所述的访问方法,其实现原理和技术效果不再赘述。对于上述实施例中的访问装置其中各个模块、单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
此外,本申请实施例还提供了一种计算机系统,如图10中所述,该计算机系统可以包括存储组件1001以及处理组件1002;其中,处理组件1002可以通过I/O接口与外部设备1003连接。
存储组件1001存储一条或多条计算机指令;一条或多条计算机指令用以被处理组件1002调用并执行,以在内核空间运行设备驱动以实现如图1所示实施例所述的访问方法,以及在用户空间运行目标应用以实现如图3所示实施例所述的访问方法。
可选地,该处理组件1002还可以用于运行虚拟机以及虚拟机监视器,并具体在虚拟机的用户空间运行目标应用,以及在虚拟机的内核空间运行设备驱动,以及在虚拟机监视器中运行外部设备虚拟化获得的虚拟化设备,以实现如图2所示实施例所述的访问方法。
其中,在存算分离场景下,该存储组件可以包括至少一个非易失性存储介质,用于提供本地缓存以保存存储系统的至少部分数据。
其中,处理组件可以包括一个或多个处理器来执行计算机指令,以完成上述的方法中的全部或部分步骤。当然处理组件也可以为一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
存储组件被配置为存储各种类型的数据以支持在终端的操作。存储组件可以由任何类型的易失性或非易失性存储介质或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
需要说明的是,上述计算机系统其可以为物理设备或者云计算平台提供的弹性计算主机等。其可以实现成多个服务器或终端设备组成的分布式集群,也可以实现成单个服务器或单个终端设备。
本申请实施例还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被计算机执行时可以实现上述图1所示实施例的访问方法。该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
本申请实施例还提供了一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,所述计算机程序被计算机执行时可以实现如上述如图1所示实施例的访问方法或图2所示实施例的访问方法或图3所示实施例的访问方法。在这样的实施例中,计算机程序可以是从网络上被下载和安装,和/或从可拆卸介质被安装。在该计算机程序被处理器执行时,执行本申请的系统中限定的各种功能。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (14)
1.一种访问方法,其特征在于,应用于外部设备对应的设备驱动中,所述设备驱运行在内核空间,所述内核空间与用户空间共享在目标内存中的缓冲队列;所述方法包括:
从所述缓冲队列中获取运行在所述用户空间的目标应用提交的访问请求信息;
将所述访问请求信息映射至虚拟化设备与所述设备驱动共享的虚拟化队列中;所述虚拟化队列用于所述虚拟化设备获取所述访问请求信息,所述虚拟化设备用于响应所述访问请求信息;所述虚拟化设备为对所述外部设备虚拟化获得。
2.根据权利要求1所述的方法,其特征在于,所述虚拟化设备还用于将所述访问请求信息的响应结果提交至所述虚拟化队列中;所述方法还包括:
从所述虚拟化队列中获取所述响应结果;
将所述响应结果映射至所述缓冲队列中;所述目标应用用于从所述缓冲队列中获得所述响应结果。
3.根据权利要求1所述的方法,其特征在于,所述将所述访问请求映射至所述外部设备与所述设备驱动共享的虚拟化队列中包括:
保持所述访问请求信息中的操作地址不变,将所述访问请求信息映射至所述虚拟化队列中。
4.根据权利要求2所述的方法,其特征在于,所述缓冲队列包括第一队列及第二队列;所述虚拟化队列包括第三队列以及第四队列;所述响应结果具体提交至所述第四队列中;
所述从所述缓冲队列中获取运行在所述用户空间的目标应用提交的访问请求信息包括:
从所述第一队列中获取运行在所述用户空间的目标应用提交的访问请求信息;
将所述访问请求信息映射至所述外部设备与所述设备驱动共享的虚拟化队列中包括:
将所述访问请求信息映射至所述第三队列中;
所述从所述虚拟化队列中获取所述响应结果包括:
从所述第四队列中获取所述响应结果;
所述将所述响应结果映射至所述缓冲队列中包括:
将所述响应结果映射至所述第二队列中。
5.根据权利要求1所述的方法,其特征在于,所述将所述访问请求信息映射至所述外部设备与所述设备驱动共享的虚拟化队列中包括:
按照所述虚拟化队列对应的第一格式要求,将所述访问请求信息进行格式转换,并将格式转换后的访问请求信息提交至所述虚拟化队列中。
6.根据权利要求1所述的方法,其特征在于,所述访问请求信息为数据访问请求信息;所述数据访问请求信息包括操作地址;
所述将所述访问请求信息映射至所述外部设备与所述设备驱动共享的虚拟化队列中包括:
确定所述访问请求信息对应本地缓存的缓存地址;其中,所述本地缓存保存有存储系统中的至少部分数据;
将所述访问请求信息及所述缓存地址映射至虚拟化队列中;所述外部设备用于基于所述缓存地址响应所述访问请求信息。
7.根据权利要求1所述的方法,其特征在于,所述用户空间为虚拟机的用户空间;所述内核空间为虚拟机的内核空间。
8.根据权利要求4所述的方法,其特征在于,所述设备驱动、所述虚拟化设备及所述虚拟化队列基于virtio技术创建;所述用户空间与所述内核空间基于io_uring技术实现访问,所述目标应用通过调用io_uring接口将访问请求提交至所述缓冲队列中;
所述第一队列为提交队列SQ,所述第三队列为可用环形队列Available Ring;所述第二队列为完成队列CQ,所述第四队列为已用环形队列Used Ring。
9.一种访问方法,其特征在于,包括:
从虚拟化队列中获取访问请求信息;所述访问请求信息由设备驱动从缓冲队列中获取并映射至所述虚拟化队列;所述访问请求信息由运行在用户空间的目标应用提交至所述缓冲队列;所述设备驱运行在内核空间,所述内核空间与用户空间共享在目标内存中的缓冲队列;
响应所述访问请求信息。
10.根据权利要求9所述的方法,其特征在于,还包括:
确定所述访问请求信息对应的响应结果;
将所述响应结果提交至所述虚拟化队列中;所述响应结果用于所述设备驱动从所述虚拟化队列中获取并映射至所述缓冲队列中;所述目标应用用于从所述缓冲队列中获得所述响应结果。
11.根据权利要求9所述的方法,其特征在于,所述访问请求信息为数据访问请求信息;所述访问请求信息包括操作地址;所述设备驱动用于将所述访问请求信息以及对应本地缓存的缓存地址对应映射至所述虚拟化队列中;
所述从虚拟化队列中获取访问请求信息包括:
从虚拟化队列中获取所述操作地址以及缓存地址;
在所述访问请求信息为数据写请求信息的情况下,从所述操作地址中获取目标数据,并基于所述缓存地址,将所述目标数据保存至所述本地缓存;
在所述访问请求信息为数据读请求信息的情况下,基于所述缓存地址从所述本地缓存中读取目标数据,并将所述目标数据写入所述操作地址。
12.一种访问方法,其特征在于,应用于运行在用户空间的目标应用;所述用户空间与内核空间与所述用户空间共享在目标内存中的缓冲队列;所述方法包括:
将访问请求信息提交至所述缓冲队列中;所述缓冲队列用于运行在所述内核空间的设备驱动获取所述访问请求信息并映射至虚拟化队列中;所述虚拟化队列用于虚拟化设备获取所述访问请求信息及响应所述访问请求信息,并将响应结果提交至所述虚拟化队列中;所述虚拟化设备为对外部设备虚拟化获得;
从所述缓冲队列中获取所述访问请求信息对应的所述响应结果;所述响应结果由所述设备驱动从所述虚拟化队列中映射至所述缓冲队列。
13.一种计算机系统,其特征在于,包括处理组件以及存储组件;所述存储组件存储一条或多条计算机指令;所述一条或多条计算机指令用以被所述处理组件调用并执行,以在内核空间运行设备驱动以实现如权利要求1~8任一项所述的访问方法,以及在用户空间运行目标应用以实现如权利要求12所述的访问方法。
14.根据权利要求13所述的计算机系统,其特征在于,所述处理组件还用于运行虚拟机以及虚拟机监视器,并具体在虚拟机的用户空间运行所述目标应用,以及在虚拟机的内核空间运行所述设备驱动,以及在虚拟机监视器中运行所述外部设备的虚拟化设备,以实现如权利要求9~11任一项所述的访问方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211504226.6A CN115757221A (zh) | 2022-11-28 | 2022-11-28 | 访问方法及计算机系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211504226.6A CN115757221A (zh) | 2022-11-28 | 2022-11-28 | 访问方法及计算机系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115757221A true CN115757221A (zh) | 2023-03-07 |
Family
ID=85339575
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211504226.6A Pending CN115757221A (zh) | 2022-11-28 | 2022-11-28 | 访问方法及计算机系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115757221A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118034615A (zh) * | 2024-04-12 | 2024-05-14 | 阿里云计算有限公司 | 数据访问方法以及装置 |
-
2022
- 2022-11-28 CN CN202211504226.6A patent/CN115757221A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118034615A (zh) * | 2024-04-12 | 2024-05-14 | 阿里云计算有限公司 | 数据访问方法以及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11093148B1 (en) | Accelerated volumes | |
Peng et al. | {MDev-NVMe}: A {NVMe} storage virtualization solution with mediated {Pass-Through} | |
US10467135B2 (en) | Multi-section garbage collection | |
US20160147710A1 (en) | Providing remote, reliant and high performance pci express device in cloud computing environments | |
US11048447B2 (en) | Providing direct data access between accelerators and storage in a computing environment, wherein the direct data access is independent of host CPU and the host CPU transfers object map identifying object of the data | |
US11016817B2 (en) | Multi root I/O virtualization system | |
US20200319913A1 (en) | System, apparatus and method for accessing multiple address spaces via a virtualization device | |
KR20160123986A (ko) | 불휘발성 메모리 장치, 및 그것을 포함하는 메모리 시스템 | |
CN115933975A (zh) | 数据处理方法、计算设备及计算机系统 | |
US20150160963A1 (en) | Scheduling of processes using a virtual file system | |
US11138028B1 (en) | Hot growing a cloud hosted block device | |
US11036683B2 (en) | Hot-pluggable file system interface | |
WO2020247235A1 (en) | Managed computing resource placement as a service for dedicated hosts | |
US20180004680A1 (en) | Technologies for zero-copy inter-virtual-machine data movement | |
CN115757221A (zh) | 访问方法及计算机系统 | |
US11698737B2 (en) | Low-latency shared memory channel across address spaces without system call overhead in a computing system | |
US20200319944A1 (en) | User-space parallel access channel for traditional filesystem using capi technology | |
US10768964B2 (en) | Virtual machine messaging | |
TW201830235A (zh) | 暫時抑制受約束儲存器運算元請求之處理 | |
US11748136B2 (en) | Event notification support for nested virtual machines | |
WO2022083158A1 (zh) | 数据处理的方法、实例以及系统 | |
US11860792B2 (en) | Memory access handling for peripheral component interconnect devices | |
US11481255B2 (en) | Management of memory pages for a set of non-consecutive work elements in work queue designated by a sliding window for execution on a coherent accelerator | |
US11126371B2 (en) | Caching file data within a clustered computing system | |
US9176910B2 (en) | Sending a next request to a resource before a completion interrupt for a previous request |
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 |