CN106708627A - 一种基于kvm的多虚拟机映射、多通路的fuse加速方法及系统 - Google Patents

一种基于kvm的多虚拟机映射、多通路的fuse加速方法及系统 Download PDF

Info

Publication number
CN106708627A
CN106708627A CN201611245262.XA CN201611245262A CN106708627A CN 106708627 A CN106708627 A CN 106708627A CN 201611245262 A CN201611245262 A CN 201611245262A CN 106708627 A CN106708627 A CN 106708627A
Authority
CN
China
Prior art keywords
fuse
data
internal memory
memory
path
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.)
Granted
Application number
CN201611245262.XA
Other languages
English (en)
Other versions
CN106708627B (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.)
Chinese Academy Of Sciences State Owned Assets Management Co ltd
Institute of Computing Technology of CAS
Original Assignee
Chinese Academy Of Sciences State Owned Assets Management Co ltd
Institute of Computing Technology of CAS
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 Chinese Academy Of Sciences State Owned Assets Management Co ltd, Institute of Computing Technology of CAS filed Critical Chinese Academy Of Sciences State Owned Assets Management Co ltd
Priority to CN201611245262.XA priority Critical patent/CN106708627B/zh
Publication of CN106708627A publication Critical patent/CN106708627A/zh
Application granted granted Critical
Publication of CN106708627B publication Critical patent/CN106708627B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0873Mapping of cache memory to specific storage devices or parts thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1063Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently virtually addressed
    • 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/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • 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/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提出一种基于kvm的多虚拟机映射、多通路的fuse加速方法及系统,该方法包括步骤1,对现有FUSE内核模块的数据路径添加延迟写功能,其中延迟写功能包括数据在经过内核时,通过VFS层,在FUSE内核模块进行聚合,直接返回到系统调用,仅当聚合数据满足一定大小,或一定时间不再追加时,再通过“/dev/fuse”设备传输到用户态客户端进行数据落盘操作;步骤2,对FUSE内核模块进行多挂载点挂载。通过剥离FUSE模块功能及多虚机映射机制将多虚机数据映射到宿主机,将虚拟机客户端处理操作下放到宿主机端,以减少虚拟机的压力,空出更多的资源供虚拟机进行计算处理任务。

Description

一种基于kvm的多虚拟机映射、多通路的fuse加速方法及系统
技术领域
本发明涉及文件系统技术领域,特别涉及一种基于kvm的多虚拟机映射、多通路的fuse加速方法及系统。
背景技术
目前文件系统客户端的使用主要提供两种方式:一是API库,像HDFS文件系统,采用JAVA编写,提供API和SHELL脚本供用户使用,用户已有的程序无法直接使用,需要通过HDFS的API函数才能使用,局限了使用范围。一是POSIX语义,即通过mount的方式将文件系统挂在本地目录,如同操作本地文件一样,相对API和SHELL方式,支持POSIX语义的文件系统极大方便了用户的使用,根据客户端编码方式,又分为内核态文件系统客户端和用户态文件系统客户,内核态文件系统将客户端直接嵌入LINUX内核中,使得客户端的性能几乎没有损失,但提高了客户端的编码难度,并且不易于调试。用户态文件系统基于FUSE模块提供的API库进行编码,编码效率更高,调试更加容易。
FUSE包含两部分,内核部分和用户态部分,客户端只需要使用用户态API库即可进行编码,针对功能扩展需求能够更好更快的完善,如图1所示,以我们的分布式纠删码参数系统ECFS为例,阐述数据流如何通过FUSE流到客户端。
FUSE内核模块加载成功后,生成“/dev/fuse”的杂项设备,当应用程序调用write操作写入数据后,数据通过sys_write系统调用,进入内核态的VFS层(VFS:Virtual FileSystem,采用标准的Unix系统调用读写位于不同物理介质上的文件系统,为各类文件系统提供了一个统一的操作界面和应用程序接口,即在Linux系统中,所有的系统调用都会经过VFS层过度到对应的文件系统中),VFS将数据拷贝到FUSE内核申请的内存中,并将数据写入“/dev/fuse”设备中(对fuse设备的读写即为对内存的读写操作),用户态监测到”/dev/fuse“设备中存在数据时,将其中数据读取出来,并调用客户端注册的钩子函数(文件系统客户端编码时,通过完成FUSE API库提供的钩子函数,完成客户端的功能),客户端拿到数据后,经过对应的操作处理后,跟文件系统元数据服务器和对象数据服务器交互,将数据进行存储,随后客户端在处理完这些流程后,将操作结果通过“/dev/fuse”设备返回给VFS,进而返回给应用程序,完成write操作的调用。
基于FUSE的用户态文件系统与内核态文件系统相比,存在以下几个缺点:通过测试发现,用户态文件系统较内核态文件系统相比,IOPS较低,用户态文件系统读写速度极慢,极大的影响了系统的性能;FUSE分为两部分,内核部分跟用户态lib库,内核FUSE模块极度依赖于系统内核函数,互不兼容,必须更新内核才能使用,使得FUSE的使用很不方便。
通过对图1的分析,我们发现FUSE的实现过程中有以下几个问题:
a、每次系统调用路径中,需要若干次内核态与用户态的上下文切换,导致系统进行频繁的上下文切换,带来了系统开销,高版本3.16kernel内核中的writeback_cache功能,无法应用于低版本系统中,使用极为不方便;
b、每次系统调用路径中,需要进行4-5次内存拷贝操作,同样需要进行内存的申请和释放操作,内存申请、释放和拷贝操作,严重影响了系统的系统;
c、每次系统调用,从调用开始到返回,需要经过用户态、到内核态、再到用户态,再到内核态、最后到用户态一个完整的流程,系统开销很大,导致IOPS较低,系统每次以4k或者更大粒度进行,导致整体读写带宽较低。
d、通过源码发现,对设备”/dev/fuse”的处理属于串行操作,系统带宽较低。
在文件系统开发过程中,通过大量的测试分析发现,FUSE成为客户端性能的瓶颈。4kB数据小粒度顺序写测试过程中,系统的IO只有79MB/s,1MB数据大粒度顺序写测试过程中,系统IO带宽只有161MB/s,极大限制了系统的系统。
小粒度读写进行一次完整的操作需要经过几次用户态、内核态的切换,内存的申请、释放和拷贝等,每次操作都要完整的执行完这些繁琐的流程,并且只有当一个操作完成后,才能进行下一次操作,直接导致了较低的IOPS和带宽,经过研究,我们在内核态代码中,将数据进行缓冲聚合,等到足够多时或者经过一段时间后,一次性进行写入,减少频繁上下文切换,提升IOPS。
每次系统调用路径中,需要进行多次内存拷贝操作,同样伴随多次的内存申请、释放和拷贝操作,严重影响了系统的系统,通过测试,每减少一次内存拷贝操作,系统带宽将提升300MB/s,针对频繁的内存申请释放操作,我们通过构建内存分配系统的方法,管理FUSE使用的内存,减少IO通路上频繁的内存操作。
通过系统IO通路的分析,我们发现,FUSE在VFS与FUSE之间、内核态与用户态之间、FUSE小粒度聚合存在多次数据拷贝,这些拷贝是多余的,并未带来系统性能的提升,因此,我们通过内存映射的方法,管理内存块区间,减少数据拷贝操作,进一步提升系统性能。
发明内容
针对现有技术的不足,本发明提出一种基于kvm的多虚拟机映射、多通路的fuse加速方法及系统。一种基于kvm的多虚拟机映射、多通路的FUSE加速方法,包括:
步骤1,对现有FUSE内核模块的数据路径添加延迟写功能,其中所述延迟写功能包括数据在经过内核时,通过VFS层,在FUSE内核模块进行聚合,直接返回到系统调用,仅当聚合数据满足一定大小,或一定时间不再追加时,再通过“/dev/fuse”设备传输到用户态客户端进行数据落盘操作;
步骤2,对FUSE内核模块进行多挂载点挂载。
上述的基于kvm的多虚拟机映射、多通路的fuse加速方法,其中,数据在通过FUSE内核模块时,并发通过多个FUSE设备链路进行通信。
上述的基于kvm的多虚拟机映射、多通路的fuse加速方法,其中,构建多个内存链表,每个链表定制不同的内存大小,预先申请内存空间,内存链表使用达到上限时,自动异步申请内存,添加到内存链表中,当系统内存缺乏时,定期释放内存链表中的内存空间。
上述的基于kvm的多虚拟机映射、多通路的fuse加速方法,其中,数据通过进程间通信机制,传输内存操作命令,包括内存操作相关元数据。
本发明还提供一种基于kvm的多虚拟机映射、多通路的FUSE加速系统,其中,包括:
延迟写模块,对现有FUSE内核模块添加延迟写功能,其中所述返回写功能包括数据在经过内核时,通过VFS层,在FUSE内核模块进行聚合,直接返回到系统调用,仅当聚合数据满足一定大小,或一定时间不在追加时,再通过“/dev/fuse”设备传输到用户态客户端进行数据落盘操作;
挂载模块,用于对FUSE内核模块进行多挂载点挂载。上述的基于kvm的多虚拟机映射、多通路的fuse加速系统,其中,数据在通过FUSE内核模块时,并发通过多个FUSE设备链路进行通信。
上述的基于kvm的多虚拟机映射、多通路的fuse加速系统,其中,构建多个内存链表,每个链表定制不同的内存大小,预先申请内存空间,内存链表使用达到上限时,自动异步申请内存,添加到内存链表中,当系统内存缺乏时,定期释放内存链表中的内存空间。
上述的基于kvm的多虚拟机映射、多通路的fuse加速系统,其中,数据通过进程间通信机制,传输内存操作命令,包括内存操作相关元数据。
由以上方案可知,本发明的优点在于:
a、将虚机客户端处理操作下放到宿主机端,能够减少虚拟机CPU、MEM的压力,空出更多的资源供虚拟机进行计算处理任务;
b、通过多页聚合、后写机制,减少内核态、用户态的上下文切换,加速写的IOPS;
c、通过内存映射、内存分配机制,加速FUSE的IO通路的数据带宽,同一分配内存,将内存通过映射机制,减少内存申请、释放、内存拷贝的系统开销;
d、通过多虚机映射、多通路机制,打通KVM虚机与宿主机的数据流,将更复杂的数据处理流程下方到性能更强的宿主机上,更好的发挥宿主机硬件的性能。
附图说明
图1是FUSE数据流梳理图;
图2是现有工作框架图;
图3是page页聚合返回写示意图;
图4是多通路示意图;
图5是数据拷贝示意图;
图6是内存映射示意图;
图7是多虚拟机映射、多通路示意图。
具体实施方式
FUSE模块为需要POSIX(Portable Operating System Interface,可移植操作系统接口)语义的文件系统提供用户态开发支持,支持POSIX的文件系统主要的目的是使存储跟基于KVM的云运算虚拟化平台更好的融合,为云计算平台的大数据处理提供更高、更快的IO性能。相对复杂的内核编码调试,FUSE极大的降低了客户端的编码调试难度。本发明提出的基于KVM的FUSE模块加速方案,通过对FUSE模块的改善,提高了FUSE的IO性能,使得文件系统的性能得意大幅度提高。
如图2所示,为我们现有工作框架图,所有的开发工作为用户态开发,将不同的底层通用库进行抽象,分别为通信库和FUSE模块库。针对大数据背景下的云计算虚拟化平台,KVM和openstack等虚拟化环境提供了对象存储、块存储和镜像存储,面向大数据应用分析环境,还需要分布式文件系统的支持,因此面向大数据应用的云计算虚拟化平台需要做好与存储的融合工作。分布式文件系统的部署和使用中,与虚拟机接触最多的属于客户端,现有的分布式文件系统客户端部分又分为内核态和用户态两种,内核态编程,编码难度系数高,不易于调试,且容易导致系统崩溃,开发成本较高;用户态编程简单,易于扩展,开发成本低。
如图1所示,数据经过文件系统客户端时,应用程序经系统调用,从用户态进入内核态,数据经VFS拷贝至FUSE模块中,并经fuse设备完成内核态与用户态的交互,期间涉及到两次内存操作,用户态FUSE拿到数据后,通过客户端注册给FUSE的钩子函数,完成数据的处理,然后,在按照原路返回给应用程序,表示一次读写操作完成,一次操作完成才能进行下一次操作。FUSE在内核态与用户态之间采用写穿透策略,并且数据通路较长,严重影响了FUSE的数据写效率,尤其是小粒度写操作的效率。
针对写效率低下的情况,归结原因为较低的IOPS,通过源码分析,发现源码在通信关键路径“/dev/fuse”设备上属于串行操作,针对每次的“穿透写”操作(数据经过完整路径达到客户端,处理后再返回),较长的数据路径和上下文切换成为主要的性能消耗点,因此,我们采用“返回写”的方式进行(数据在经过内核时,通过VFS层,在FUSE内核模块进行聚合,直接返回到系统调用,不再走完完整的路,仅当聚合数据满足一定大小,或一定时间不在追加时,再通过“/dev/fuse”设备传输到用户态客户端进行数据落盘操作)。经过此测试,FUSE的IO带宽增长到1.2GB/s,通过图1和图3进行对比,可以看出,在FUSE内核模块增加了数据聚合功能。
在对FUSE添加“返回写”功能后,FUSE性能的提升非常明显,但是相对通信库的通信性能和纠删码的计算性能来说,FUSE依然是一个瓶颈,因此,依然需要提升系统性能,采取以下两种方法:
a、基于单一fuse.ko模块,进行多挂载点挂载后,FUSE的聚合性能达到2.9GB/s;
b、通过对源码修改,简单增加fuse.ko模块,增加多挂载点后,FUSE的聚合性能达到3.2GB/s;
通过以上两种方法,通过简单的多挂载点或者多模块聚合后,FUSE的性能提升2倍,通过上述a、b两种测试方法,可以总结为:fuse在经过并发读取“/dev/fuse”设备,或者并发读取多个“/dev/fuse”设备,可以提升FUSE的聚合性能。
如图4所示,本发明提出基于“/dev/fuse”设备,构建基于设备的多链路并发通信模型,数据在通过FUSE内核模块时,并发通过多个fuse设备链路进行通信,FUSE用户态部分同样是并发读取数据,数据可以达到预期效果。
如图5所示,经过page页聚合、多通路并发改进后,FUSE性能依然存在着性能提升的空间,数据在FUSE内核态和用户态空间内存在多次数据拷贝,经过实际测试,系统在测试过程中,每减少一次数据拷贝过程中,FUSE的带宽可以提升300MB/s,并且,数据在FUSE关键路径上的传输过程中,存在多次内存拷贝(用户态向内核态拷贝、数据聚合拷贝、设备写、设备读等)过程,因此,我们需要尽量减少数据的拷贝过程,减少关键路径上的内存操作和数据传输过程。
如图6所示,我们在FUSE内核态与用户态的内存操作过程中,通过内存映射机制,打通通信关键路径上的数据传输操作,减少数据的操作。数据通过进程间通信机制,传输内存操作命令,包括内存操作相关元数据,通过地址映射机制,保证内核态与用户态之间的数据共享,减少数据操作。
数据在传输过程中,经历多次内存的申请和释放操作,严重的影响了系统的性能,并且容易造成内存碎片,因此,我们基于数据聚合的需求,构建多个内存链表,每个链表定制不同的内存大小,定制适用于FUSE的内存分配器,系统建立时预先申请内存空间,内存链表使用达到上限时,自动异步申请内存,添加到内存链表中,当系统内存缺乏时,定期释放内存链表中的内存空间,内存的申请采用简单的先进先出机制,使用简单的缓存策略,减少系统的负担。
如图7所示,基于KVM的多虚拟机云计算环境,通过将宿主机的“/dev/fuse”设备映射到虚拟机中,结合图4的多通路机制,构建多虚拟机映射、多通路的fuse,数据处理下移到宿主机进行处理,将fuse mount操作剥离到虚拟机中,虚拟机涉及操作仅限在数据的传输,减少虚拟机的性能要求,更好的进行其他业务,fuse的正常处理在宿主机端进行,能够在宿主机端更好的发挥宿主机的性能,减少虚拟机带来的性能损耗。
本发明还提出一种基于kvm的多虚拟机映射、多通路的FUSE加速系统,包括:
延迟写模块,对现有FUSE内核模块添加延迟写功能,其中所述返回写功能包括数据在经过内核时,通过VFS层,在FUSE内核模块进行聚合,直接返回到系统调用,仅当聚合数据满足一定大小,或一定时间不在追加时,再通过“/dev/fuse”设备传输到用户态客户端进行数据落盘操作;
挂载模块,用于对FUSE内核模块进行多挂载点挂载。
其中,延迟写模块回迁LINUX kernel3.16版本中的writeback_cache功能,对现有FUSE内核模块数据路径添加延迟写功能,进一步优化函数架构,优化数据通路的内存操作,优化内存聚合粒度。对FUSE内核模块添加返回写功能,其中所述返回写功能包括数据在经过内核时,通过VFS层,在FUSE内核模块进行聚合,直接返回到系统调用,仅当聚合数据满足一定大小,或一定时间不在追加时,再通过“/dev/fuse”设备传输到用户态客户端进行数据落盘操作;
对FUSE关键路径上的内存相关操作进行接管,通过内存映射机制打通用户态内核态数据共享机制,将内存空间整合成可用内存链表,根据聚合大小,提前申请内存空间,打通FUSE数据通路的内存路径,打通内核态与用户态内存通路。当FUSE申请内存时,直接从链表中获取合适的内存块,内存释放时,重新挂回内存链表中,通过内存块的管理和映射,打通用户态和内核态空间的数据共享机制。降低数据路径上内存申请释放的开销,降低FUSE数据路径中的内存拷贝开销,降低数据传输开销,提升数据传输效率。
其中,挂载模块对FUSE内核模块进行多挂载点挂载。a、通过剥离FUSE模块功能,通过多虚机映射机制将多虚机数据直接映射到宿主机,将虚机客户端处理操作下放到宿主机端,能够减少虚拟机CPU、MEM的压力,空出更多的资源供虚拟机进行计算处理任务;b、通过多页聚合、后写机制,减少内核态、用户态的上下文切换,加速写的IOPS。
数据在通过FUSE内核模块时,并发通过多个FUSE设备链路进行通信。
构建多个内存链表,每个链表定制不同的内存大小,预先申请内存空间,内存链表使用达到上限时,自动异步申请内存,添加到内存链表中,当系统内存缺乏时,定期释放内存链表中的内存空间。
数据通过进程间通信机制,传输内存操作命令,包括内存操作相关元数据。

Claims (8)

1.一种基于kvm的多虚拟机映射、多通路的FUSE加速方法,其特征在于,包括:
步骤1,对现有FUSE内核模块的数据路径添加延迟写功能,其中所述延迟写功能包括数据在经过内核时,通过VFS层,在FUSE内核模块进行聚合,直接返回到系统调用,仅当聚合数据满足一定大小,或一定时间不再追加时,再通过“/dev/fuse”设备传输到用户态客户端进行数据落盘操作;
步骤2,对FUSE内核模块进行多挂载点挂载。
2.如权利要求1所述的基于kvm的多虚拟机映射、多通路的fuse加速方法,其特征在于,数据在通过FUSE内核模块时,并发通过多个FUSE设备链路进行通信。
3.如权利要求1所述的基于kvm的多虚拟机映射、多通路的fuse加速方法,其特征在于,构建多个内存链表,每个链表定制不同的内存大小,预先申请内存空间,内存链表使用达到上限时,自动异步申请内存,添加到内存链表中,当系统内存缺乏时,定期释放内存链表中的内存空间。
4.如权利要求1所述的基于kvm的多虚拟机映射、多通路的fuse加速方法,其特征在于,数据通过进程间通信机制,传输内存操作命令,包括内存操作相关元数据。
5.一种基于kvm的多虚拟机映射、多通路的FUSE加速系统,其特征在于,包括:
延迟写模块,对现有FUSE内核模块添加延迟写功能,其中所述返回写功能包括数据在经过内核时,通过VFS层,在FUSE内核模块进行聚合,直接返回到系统调用,仅当聚合数据满足一定大小,或一定时间不在追加时,再通过“/dev/fuse”设备传输到用户态客户端进行数据落盘操作;
挂载模块,用于对FUSE内核模块进行多挂载点挂载。
6.如权利要求5所述的基于kvm的多虚拟机映射、多通路的fuse加速系统,其特征在于,数据在通过FUSE内核模块时,并发通过多个FUSE设备链路进行通信。
7.如权利要求5所述的基于kvm的多虚拟机映射、多通路的fuse加速系统,其特征在于,构建多个内存链表,每个链表定制不同的内存大小,预先申请内存空间,内存链表使用达到上限时,自动异步申请内存,添加到内存链表中,当系统内存缺乏时,定期释放内存链表中的内存空间。
8.如权利要求5所述的基于kvm的多虚拟机映射、多通路的fuse加速系统,其特征在于,数据通过进程间通信机制,传输内存操作命令,包括内存操作相关元数据。
CN201611245262.XA 2016-12-29 2016-12-29 一种基于kvm的多虚拟机映射、多通路的fuse加速方法及系统 Active CN106708627B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611245262.XA CN106708627B (zh) 2016-12-29 2016-12-29 一种基于kvm的多虚拟机映射、多通路的fuse加速方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611245262.XA CN106708627B (zh) 2016-12-29 2016-12-29 一种基于kvm的多虚拟机映射、多通路的fuse加速方法及系统

Publications (2)

Publication Number Publication Date
CN106708627A true CN106708627A (zh) 2017-05-24
CN106708627B CN106708627B (zh) 2020-08-07

Family

ID=58903980

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611245262.XA Active CN106708627B (zh) 2016-12-29 2016-12-29 一种基于kvm的多虚拟机映射、多通路的fuse加速方法及系统

Country Status (1)

Country Link
CN (1) CN106708627B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107479991A (zh) * 2017-08-25 2017-12-15 郑州云海信息技术有限公司 基于内核文件系统的对象存储操作方法、装置及系统
CN109947785A (zh) * 2019-04-18 2019-06-28 苏州浪潮智能科技有限公司 一种块服务lib接口更新方法、装置、电子设备及介质
CN111143072A (zh) * 2019-12-29 2020-05-12 浪潮(北京)电子信息产业有限公司 用户态程序内存分配方法、系统及相关组件
CN111654436A (zh) * 2019-10-24 2020-09-11 北京大学 一种适用于高速移动环境的网络中继设备
CN112162818A (zh) * 2020-09-16 2021-01-01 Oppo(重庆)智能科技有限公司 一种虚拟内存分配方法、装置、电子设备及存储介质
CN113031860A (zh) * 2021-02-24 2021-06-25 紫光云技术有限公司 一种nas存储在视频流领域的性能优化方法
CN113239390A (zh) * 2021-07-13 2021-08-10 统信软件技术有限公司 程序访问权限控制方法、装置、计算设备及存储介质
CN114780042A (zh) * 2022-05-06 2022-07-22 江苏安超云软件有限公司 提升nas存储性能的方法及装置、电子设备和存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101770412A (zh) * 2010-01-22 2010-07-07 华中科技大学 一种连续数据缓存系统及其数据缓存方法
CN102968344A (zh) * 2012-11-26 2013-03-13 北京航空航天大学 一种多虚拟机迁移调度的方法
CN103034684A (zh) * 2012-11-27 2013-04-10 北京航空航天大学 一种基于内容寻址存储的虚拟机镜像存储优化方法
CN103412822A (zh) * 2013-07-26 2013-11-27 华为技术有限公司 操作非易失性内存和数据操作的方法和相关装置
US20150120667A1 (en) * 2009-05-11 2015-04-30 Novell, Inc. Techniques for establishing a file system that exposes a virtual file system for backup operations
CN106201349A (zh) * 2015-12-31 2016-12-07 华为技术有限公司 一种在物理主机中处理读/写请求的方法和装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150120667A1 (en) * 2009-05-11 2015-04-30 Novell, Inc. Techniques for establishing a file system that exposes a virtual file system for backup operations
CN101770412A (zh) * 2010-01-22 2010-07-07 华中科技大学 一种连续数据缓存系统及其数据缓存方法
CN102968344A (zh) * 2012-11-26 2013-03-13 北京航空航天大学 一种多虚拟机迁移调度的方法
CN103034684A (zh) * 2012-11-27 2013-04-10 北京航空航天大学 一种基于内容寻址存储的虚拟机镜像存储优化方法
CN103412822A (zh) * 2013-07-26 2013-11-27 华为技术有限公司 操作非易失性内存和数据操作的方法和相关装置
CN106201349A (zh) * 2015-12-31 2016-12-07 华为技术有限公司 一种在物理主机中处理读/写请求的方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
段翰聪、王勇涛、李林: "EDFUSE:一个基于异步事件驱动的FUSE用户级文件系统框架", 《计算机科学》 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107479991A (zh) * 2017-08-25 2017-12-15 郑州云海信息技术有限公司 基于内核文件系统的对象存储操作方法、装置及系统
CN109947785A (zh) * 2019-04-18 2019-06-28 苏州浪潮智能科技有限公司 一种块服务lib接口更新方法、装置、电子设备及介质
CN111654436A (zh) * 2019-10-24 2020-09-11 北京大学 一种适用于高速移动环境的网络中继设备
CN111143072A (zh) * 2019-12-29 2020-05-12 浪潮(北京)电子信息产业有限公司 用户态程序内存分配方法、系统及相关组件
CN111143072B (zh) * 2019-12-29 2023-09-08 浪潮(北京)电子信息产业有限公司 用户态程序内存分配方法、系统及相关组件
CN112162818A (zh) * 2020-09-16 2021-01-01 Oppo(重庆)智能科技有限公司 一种虚拟内存分配方法、装置、电子设备及存储介质
CN112162818B (zh) * 2020-09-16 2023-04-07 Oppo(重庆)智能科技有限公司 一种虚拟内存分配方法、装置、电子设备及存储介质
CN113031860A (zh) * 2021-02-24 2021-06-25 紫光云技术有限公司 一种nas存储在视频流领域的性能优化方法
CN113239390A (zh) * 2021-07-13 2021-08-10 统信软件技术有限公司 程序访问权限控制方法、装置、计算设备及存储介质
CN113239390B (zh) * 2021-07-13 2021-11-09 统信软件技术有限公司 程序访问权限控制方法、装置、计算设备及存储介质
CN114780042A (zh) * 2022-05-06 2022-07-22 江苏安超云软件有限公司 提升nas存储性能的方法及装置、电子设备和存储介质

Also Published As

Publication number Publication date
CN106708627B (zh) 2020-08-07

Similar Documents

Publication Publication Date Title
Zhang et al. {FlashShare}: Punching Through Server Storage Stack from Kernel to Firmware for {Ultra-Low} Latency {SSDs}
CN106708627A (zh) 一种基于kvm的多虚拟机映射、多通路的fuse加速方法及系统
Kourtis et al. Reaping the performance of fast {NVM} storage with {uDepot}
CN111625201B (zh) 用于存储客户端文件系统的存储卷的动态缩放
US11562091B2 (en) Low latency access to physical storage locations by implementing multiple levels of metadata
JP5657121B2 (ja) 仮想マシンのオンデマンド型イメージ・ストリーミング
US11093148B1 (en) Accelerated volumes
KR102434170B1 (ko) 하이브리드 메모리 시스템
EP3900308A1 (en) Input/output processing in a distributed storage node with rdma
US9501313B2 (en) Resource management and allocation using history information stored in application's commit signature log
US11922537B2 (en) Resiliency schemes for distributed storage systems
CN115413338A (zh) 在计算环境中提供加速器与存储装置之间的直接数据访问
CN113272781A (zh) 通过使用工作负载特性在存储层之间传输数据来提高数据性能
US20210397374A1 (en) Function processing using storage controllers for load sharing
CN102541467A (zh) 一种对象数据服务器读写请求的调度方法
US10459662B1 (en) Write failure handling for a memory controller to non-volatile memory
US10642727B1 (en) Managing migration events performed by a memory controller
KR102443593B1 (ko) 하이브리드 메모리 시스템
US20210357339A1 (en) Efficient management of bus bandwidth for multiple drivers
US10831684B1 (en) Kernal driver extension system and method
KR20240011609A (ko) 원격 서버로부터 읽은 낮은 레이턴시 데이터를 위한 데이터 프리패칭 시스템 및 방법
US11934279B2 (en) Sequential file restore performance using filesystem redirection
US11126371B2 (en) Caching file data within a clustered computing system
CN115136133A (zh) 按需代码执行的单次使用执行环境
US12001338B2 (en) Method and system for implementing metadata compression in a virtualization environment

Legal Events

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