CN108008911A - 读写请求处理方法及装置 - Google Patents

读写请求处理方法及装置 Download PDF

Info

Publication number
CN108008911A
CN108008911A CN201610942888.XA CN201610942888A CN108008911A CN 108008911 A CN108008911 A CN 108008911A CN 201610942888 A CN201610942888 A CN 201610942888A CN 108008911 A CN108008911 A CN 108008911A
Authority
CN
China
Prior art keywords
read
write requests
address
virtual machine
disk
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
Application number
CN201610942888.XA
Other languages
English (en)
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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201610942888.XA priority Critical patent/CN108008911A/zh
Priority to TW106125916A priority patent/TWI752066B/zh
Priority to US15/801,189 priority patent/US20180121366A1/en
Priority to PCT/US2017/059557 priority patent/WO2018085421A1/en
Publication of CN108008911A publication Critical patent/CN108008911A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • G06F12/063Address space extension for I/O modules, e.g. memory mapped I/O
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • 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
    • 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/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种读写请求处理方法及装置。其中,该方法包括:接收来自虚拟机的IO读写请求,其中,IO读写请求用于请求读和/或写虚拟机的任意一个磁盘中的数据;获取预先映射得到的地址空间,并根据IO读写请求和地址空间获取物理机中存放数据的地址,其中,地址空间是映射得到的虚拟机的磁盘的地址;在向存储设备提交IO读写请求之后,接收数据在存储设备上的处理结果,其中,存储设备为物理机中存储数据的装置;通过地址空间向虚拟机返回处理结果。本申请实施例通过将来自虚拟机的IO读写请求对应的数据使用内存地址的方式进行处理的方式,从而减少了数据的拷贝环节,降低了IO Latency,进而解决了现有技术中IO latency升高的技术问题。

Description

读写请求处理方法及装置
技术领域
本申请涉及软件领域,具体而言,涉及一种读写请求处理方法及装置。
背景技术
在云计算环境中,一个数据中心的计算资源通过虚拟化技术切分为大量虚拟机(Virtual Machine,简称为VM,VM是一台服务器上虚拟出来的多个可以运行OS的实例),用户在VM中灵活部署自己的应用,例如web、社交、游戏、金融等,这些应用有的保存着重要数据,要求数据读写的时延越低越好,并且能做到7*24小时不间断服务、有足够好的可用性。对于这些数据的保存,可以根据不同的需要选择不同的存储方式。例如,有的应用要求有足够好的数据可靠性,因此,数据需要有多个冗余备份,这样即使单个服务器宕机也不影响使用,这种情况下,需要将VM磁盘接入到分布式存储。又例如,有的应用要求比较高的性能,IO的延时(IO Latency)要求的比较低,如果这些应用不需要进行冗余备份,此时,这些应用需要接入本地RAID存储。
数据中心内部都由一个个集群组成,每个服务器上部署着虚拟化平台、后端存储(这里的后端存储包括上述段落中介绍的分布式存储和RAID存储)、业务管理监控***等,这些***本身也会消耗一些资源(如CPU、内存、网络等),并且虚拟机磁盘接入后端存储的链路,也会因此变长,这些因素都导致服务器上负载升级,让用户的IO时延(latency)升高。
针对现有技术中IO latency升高的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种读写请求处理方法及装置,以至少解决现有技术中IOlatency升高的技术问题。
根据本申请实施例的一个方面,提供了一种读写请求处理方法,包括:接收来自虚拟机的IO读写请求,其中,IO读写请求用于请求读和/或写虚拟机的任意一个磁盘中的数据;获取预先映射得到的地址空间,并根据IO读写请求和地址空间获取物理机中存放数据的地址,其中,地址空间是映射得到的虚拟机的磁盘的地址;在向存储设备提交IO读写请求之后,接收数据在存储设备上的处理结果,其中,存储设备为物理机中存储数据的装置;通过地址空间向虚拟机返回处理结果。
根据本申请实施例的一个方面,还提供了一种基于虚拟机的读写请求处理方法,包括:接收读写虚拟机上的虚拟磁盘时产生的IO读写请求,其中,虚拟机为物理机上部署的任意一个虚拟机;获取IO读写请求所要请求的数据的映射地址,其中,映射地址用于将IO读写请求映射至物理机中后端存储装置的数据;按照映射地址提交IO读写请求至物理机中的后端存储装置,得到请求结果;接收后端存储装置处理IO读写所产生的请求结果;向虚拟机返回请求结果。
根据本申请的另一个实施例,还提供了一种快速处理读写请求的方法,包括:接收读写虚拟机上的虚拟磁盘时产生的IO读写请求,其中,虚拟机为物理机上部署的任意一个虚拟机;获取IO读写请求所要请求的数据的映射地址,其中,映射地址用于将IO读写请求映射至物理机中后端存储装置的数据。
根据本申请的另一个实施例,还提供了一种读写请求处理装置,包括:第一接收单元,用于接收来自虚拟机的IO读写请求,其中,IO读写请求用于请求读和/或写虚拟机的任意一个磁盘中的数据;获取单元,用于获取预先映射得到的地址空间,并根据IO读写请求和地址空间获取物理机中存放数据的地址,其中,地址空间是映射得到的虚拟机的磁盘的地址;第二接收单元,用于在向存储设备提交IO读写请求之后,接收数据在存储设备上的处理结果,其中,存储设备为物理机中存储数据的装置;返回单元,用于通过地址空间向虚拟机返回处理结果。
根据本申请实施例的一个方面,还提供了一种基于虚拟机的读写请求处理装置,包括:第一接收单元,用于接收读写虚拟机上的虚拟磁盘时产生的IO读写请求,其中,虚拟机为物理机上部署的任意一个虚拟机;获取单元,用于获取IO读写请求所要请求的数据的映射地址,其中,映射地址用于将IO读写请求映射至物理机中后端存储装置的数据;提交单元,用于按照映射地址提交IO读写请求至物理机中的后端存储装置,得到请求结果;第二接收单元,用于接收后端存储装置处理IO读写所产生的请求结果;返回单元,用于向虚拟机返回请求结果。
根据本申请的另一个实施例,还提供了一种读写请求处理装置,包括:接收单元,用于接收读写虚拟机上的虚拟磁盘时产生的IO读写请求,其中,虚拟机为物理机上部署的任意一个虚拟机;获取单元,用于获取IO读写请求所要请求的数据的映射地址,其中,映射地址用于将IO读写请求映射至物理机中后端存储装置的数据。
在本申请实施例中,接收来自虚拟机的IO读写请求,从预先映射得到的地址空间中,根据IO读写请求和地址空间,获取物理机中存放数据的地址在向存储设备提交IO读写请求之后,接收数据在存储设备上的处理结果,通过地址空间向虚拟机返回处理结果,从而实现将虚拟机发出的读写请求发送给存储设备。
容易注意到,由于可以从预先映射得到的地址空间中获取物理机中存放该数据的地址,而地址空间是映射虚拟机的磁盘对应的地址空间到的,可以减少从虚拟化平台向IO接入装置的拷贝或者减少从IO接入装置向虚拟化平台的数据拷贝,通过减少数据的拷贝环节,从而降低了IO的Latency。因此,通过本申请实施例所提供的方案,可以达到缩短IO链路,实现数据零拷贝,降低IO latency的效果。
由此,本申请提供的上述实施例解决了现有技术中IO latency升高的技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种用于实现读写请求处理方法的计算机终端的硬件结构框图;
图2是根据本申请实施例的一种可选的物理机运行VM的示意图;
图3是根据本申请实施例一的读写请求处理方法的流程图;
图4是根据本申请实施例一的一种可选的IO接入装置的模块示意图;
图5是根据本申请实施例一的一种可选的读写请求处理方法的交互图;
图6是根据本申请实施例二的基于虚拟机的读写请求处理方法的流程图;
图7是根据本申请实施例三的快速处理读写请求的方法的流程图;
图8是根据本申请实施例四的一种读写请求处理装置的结构框图;
图9是根据本申请实施例五的基于虚拟机的读写请求处理装置的结构框图;
图10是根据本申请实施例六的快速处理读写请求的装置的结构框图;以及
图11是根据本申请实施例的一种计算机终端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
以下实施例中涉及到的英文缩写的中文含义如下:
VM:Virtual Manufacturing的简写,虚拟机,将一台服务器分割成多个虚拟机(VM主机),一台服务器上虚拟出来的多个可以运行OS的实例,每一个VM主机平台的运行和管理都与一***立主机完全相同,每一个VM均可独立进行重启并拥有自己的root访问权限、用户、IP地址、内存、过程、文件、应用程序、***函数库以及配置文件。
Disk:磁盘,存储数据的介质。
IO:输入/输出(Input/Output),即读写请求。
IOPS:Input/Output Operations Per Second缩写,即每秒进行读写操作的次数,用于数据库等场合,衡量随机访问的性能。
BPS:bits per second的简写,比特率,即每秒进行读写操作的字节大小。
Latency:IO的时延,从发出请求到完成所花费的时间。
RAID:磁盘阵列,Redundant Arrays of independent Disks,利用数组方式来作磁盘组,任意一个磁盘故障时仍可读出数据。
实施例1
根据本申请实施例,还提供了一种读写请求处理方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图1示出了一种用于实现读写请求处理方法的计算机终端的硬件结构框图。如图1所示,计算机终端10可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端10中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的读写请求处理方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的读写请求处理方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端10(或移动设备)的用户界面进行交互。
此处需要说明的是,在一些可选实施例中,上述图1所示的计算机终端可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图1仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算机终端中的部件的类型。
本申请实施例应用于虚拟机,虚拟机运行在虚拟平台上,虚拟平台上可以运行一个或多个虚拟机。虚拟机VM可以通过软件模拟的具有完整硬件***功能的、运行在一个完全隔离环境中的完整计算机***。虚拟***通过生成现有操作***的全新虚拟镜像,它具有真实操作***完全一样的功能,进入虚拟***后,所有操作都是在这个全新的独立的虚拟***里面进行,可以独立安装运行软件,保存数据,拥有自己的独立桌面,不会对物理机上的真正的***产生任何影响。并且,虚拟机中的操作***还可以与还具有能够在物理机上的操作***进行灵活切换。虚拟机中可以运行多种类的操作***,例如,Windows***、各种版本的Linux***、MacOS***。
现有的虚拟平台有VMware、Virtual Box和Virtual PC,它们都能在操作***为Windows***的物理机上虚拟出多个虚拟机。现有的虚拟平台还有Xen、OpenVZ、KVM。其中,Xen是半虚拟化技术,相当于自己运行了一个内核的实例,可以自由的加载内核模块,虚拟的内存和IO,稳定而且可预测。Xen计算分为Xen+pv和Xen+hvm,区别就是pv只支持linux,而hvm支持win***。OpenVZ是操作***级别的虚拟化技术,是底层操作***上的一层应用,这意味着易于理解和低权重开销,一般来说也意味着更优的性能,并且是OpenVZ配置起来也比较灵活。KVM和xen类似,比xen更好的一点是,kvm是完全虚拟的,所以不分pv和hvm的区别,所有的kvm类+型的虚拟技术都可以装各种linux的发行版和各种win的发行版。
图2是根据本申请实施例的一种可选的物理机运行VM的示意图,如图2所示,物理机运行有虚拟化平台,虚拟化平台上运行了多个虚拟机VM1……VMn,每个虚拟机上可以有一个或多个磁盘,例如,***盘和数据盘,每个磁盘都连接前端驱动,前端驱动是虚拟机中的磁盘驱动,前端驱动通过虚拟化平台连接后端驱动。虚拟化平台运行在物理机上,通过IO接入装置连接存储设备(或称为后端设备)。该存储设备可以包括:分布式存储设备和/或本地磁盘阵列RAID存储设备。
选择采用哪些类型的存储设备,可以根据不同的虚拟机的功能来进行选择。例如,有的虚拟机中运行的服务要求有足够好的数据可靠性,此时数据需要有多个冗余备份,这样即使单个虚拟机宕机也不影响使用,这种情况下,可以将VM磁盘接入到分布式存储。又例如,有的虚拟机中运行的服务要求比较高的性能,此时IO的延时要求比较低,如果这些服务不需要进行冗余备份或者已经解决了冗余备份的问题,此时,这些服务可以接入本地RAID存储。
以下实施例中的步骤和单元可以在IO接入装置中执行,IO接入装置可以是一个物理机上的一个守护进程,它完成从虚拟化后端驱动中接收IO,经过相应处理后提交给后端存储。该IO接入装置可以是软件实现的。在以下实施例中的方法步骤或者模块可以是IO接入装置所执行的方法步骤或者IO接入装置所包括的模块。
在上述运行环境下,本申请实施例提供了如图3所示的读写请求处理方法。图3是根据本申请实施例一的读写请求处理方法的流程图,如图3所示,该流程包括如下步骤:
步骤S302,接收来自虚拟机的IO读写请求,其中,IO读写请求用于请求读和/或写虚拟机的任意一个磁盘中的数据。
具体的,上述虚拟化平台可以是VMware、Virtual Box、Virtual PC、Xen、OpenVZ、KVM,在本实施例中以Xen为例进行说明。在本实施例中以Xen为例的原因是,目前比较倾向于选择Xen,因为它是对供应商和和客户来说都是可以接受的折衷方案。其他虚拟化平台上也可以采用相同的方式进行处理,在此不再赘述。
在一种可选的方案中,一台物理机可以虚拟出很多个VM,用户在这些VM内部署的应用会读取和存放数据到VM内的磁盘,VM至少会有一个***盘,存放操作***,可能有多个数据盘,数据盘存放自己的业务数据。每个磁盘的IO读写请求,经过VM内的前端驱动,再经过Xen虚拟化平台到达后端驱动,后端驱动将IO读写请求转发给IO接入装置。
步骤S304,获取预先映射得到的地址空间,并根据IO读写请求和地址空间获取物理机中存放数据的地址,其中,地址空间是映射得到的虚拟机的磁盘的地址。
在一种可选的方案中,在接收到来自虚拟机的IO读写请求之后,可以通过将虚拟机中的磁盘对应的地址空间映射到IO接入装置中,得到IO接入装置可以访问的地址空间,并根据映射的地址空间和IO读写请求,获取物理机中存放数据的地址。
步骤S306,在向存储设备提交IO读写请求之后,接收数据在存储设备上的处理结果,其中,存储设备为物理机中存储数据的装置。
可选的,根据本申请上述实施例,上述存储设备可以包括以下至少之一:分布式存储设备、本地磁盘阵列RAID存储设备。
在一种可选的方案中,可以根据配置决定此VM磁盘的IO读写请求是提交到分布式存储还是本地RAID存储,在将接收到的IO读写请求提交给后端存储,后端存储完成IO读写请求之后,将处理结果返回给IO接入装置。
步骤S308,通过地址空间向虚拟机返回处理结果。
在一种可选的方案中,可以将接收到的请求结果封装为回应,即上述的处理结果,并返回给虚拟机。
由上可知,本申请上述实施例一公开的方案中,接收来自虚拟机的IO读写请求,获取预先映射得到的地址空间,从根据IO读写请求和地址空间获取物理机中存放该数据的地址,向存储设备提交IO读写请求之后,接收数据在存储设备上的处理结果,通过地址空间向虚拟机返回处理结果,从而实现将虚拟机发出的读写请求发送给存储设备的目的。
容易注意到,由于可以从预先映射得到的地址空间中获取物理机中存放该数据的地址,而地址空间是映射虚拟机的磁盘对应的地址空间到的,可以减少从虚拟化平台向IO接入装置的拷贝或者减少从IO接入装置向虚拟化平台的数据拷贝,通过减少数据的拷贝环节,从而降低了IO的Latency。因此,通过本申请实施例所提供的方案,可以达到缩短IO链路,实现数据零拷贝,降低IO latency的效果。
由此,本申请提供的上述实施例一的方案解决了现有技术中IO latency升高的技术问题。
根据本申请上述实施例,步骤S304,获取预先映射得到的地址空间,并根据IO读写请求和地址空间获取物理机中存放数据的地址,可以包括如下步骤:
步骤S3042,获取IO读写请求的上下文。
步骤S3044,根据IO读写请求的上下文计算得到数据的地址。
在一个可选的实施例中,可以通过映射的方式从地址空间中获取数据的地址。可以从映射的地址空间中获取所述IO读写请求的上下文,在得到IO读写请求的上下文之后,可以根据IO读写请求的上下文计算数据的地址。
此处需要说明的是,通过映射的方式进行处理实现较为方便,例如,在某些操作***中就提供了一些***调用,通过这些***调用就可以进行映射。当然其他方式也可以使得获得到IO读写请求的上下文,在此不再赘述。
根据本申请上述实施例,步骤S3044,根据IO读写请求的上下文计算得到数据的地址包括如下步骤:
步骤S30440,根据IO读写请求的上下文中携带的IO读写请求的信息以及地址空间的信息计算数据的地址,其中,IO读写请求的信息包括以下至少之一:IO读写请求的编号、IO读写请求的偏移、IO读写请求的大小、IO读写请求的相对地址;地址空间的信息包括至少之一:地址空间的起始地址、地址空间的长度。
在一种可选的方案中,在获得IO读写请求之后,可以根据IO读写请求的上下文计算得到所述数据的内存地址,然后根据该内存地址进行数据的处理,这样避免了一定的拷贝从而降低了IO的时延。可以根据IO读写请求的上下文中携带的IO读写请求的信息以及映射的地址空间的信息计算该数据的内存地址,其中,该IO读写请求的信息包括以下至少之一:IO读写请求的编号、IO读写请求的偏移、IO读写请求的大小、IO读写请求的相对地址。通过IO读写请求的上下文携带的内容以及地址空间的信息可以计算出该数据的内存地址。
通过上述方案,不再需要将写请求的数据内容从后端驱动拷贝到IO接入装置或将读请求的数据内容从IO接入装置拷贝到后端驱动,从实现IO读写请求数据的零拷贝,降低IO的Latency。
根据本申请上述实施例,在步骤S3042,获取IO读写请求的上下文之前,上述方法还包括如下步骤:
步骤S3040,在创建虚拟机的磁盘时,将磁盘对应的地址空间映射到物理机中得到地址空间,其中,地址空间的信息包括以下至少之一:该地址空间的起始地址、该地址空间的长度。
将虚拟机的地址空间映射到IO接入装置中可以在很多情况下进行,在一个可选的实施例中,可以在虚拟机的磁盘被创建时,通过mmap等***调用,将该虚拟机的磁盘对应的地址空间映射到物理机中得到映射的地址空间。当然也可以在其他情况下进行映射,该映射动作只要在获取IO读写请求之前进行即可。
根据本申请上述实施例,步骤S306,向存储设备提交IO读写请求包括如下步骤:
步骤S3062,根据预先设置的限制条件判断是否允许向存储设备提交IO读写请求。
此处需要说明的是,由于一个物理机上的虚拟平台上运行有多个虚拟机,这些虚拟机都需要进行IO操作,而这些虚拟机所依附的物理机上的资源是有限的。为了更好的对资源进行处理,可以考虑对虚拟机的IO读写请求进行限制。对每个虚拟机的限制条件可以是不同的,这可以根据虚拟机上运行的服务来进行确定。即可以针对每个虚拟机单独制定限制条件。以上述虚拟机为例。上述限制条件可以是外部设定的条件,如针对某一个VM磁盘的IOPS、BPS设定。由于运行不同服务的虚拟机由于服务的重要性不同,还可以为每个虚拟机制定一个优先级,对于优先级高的虚拟机中的IO读写请求,可以不进行限制,或者可以限制的较少,即可以针对不同的优先级制定不同的限制条件。
可选的,根据本申请上述实施例,上述限制条件可以包括以下至少之一:对于虚拟机的磁盘,在第一预定时长内的处理的IO读写请求个数和/或处理的数据的量不超过阈值;对于所有虚拟机的磁盘,在第二预定时长内的处理的IO读写请求个数和/或处理的数据的量不超过阈值;IO读写请求的优先级;虚拟机的优先级。
步骤S3064,在判断结果为允许的情况下,向存储设备提交IO读写请求。
在一种可选的方案中,可以根据预先设置的限制条件判断是否允许就该虚拟机的IO读写请求向存储设备提交,在判断结果为允许的情况下,IO接入装置才向存储设备提交所述IO读写请求。例如,在接收到来自虚拟机的IO读写请求之后,可以计算请求个数或请求字节数是否超出当前时间片允许的范围,如果未超出,则确定允许向存储设备提交IO读写请求,IO接入装置可以向存储设备提交IO读写请求。
通过上述方案,通过根据预先设置的限制条件判断是否允许向存储设备提交IO读写请求,可以防止某些VM磁盘占用太多资源。
根据本申请上述实施例,步骤S306,向存储设备提交IO读写请求包括如下步骤:
步骤S3066,在判断结果为不允许的情况下,在预定时间后向存储设备提交IO读写请求;或者,在预定时间后根据预先设置的限制条件再次判断是否允许向存储设备提交IO读写请求。
具体的,上述预定时间可以是根据计算得到的IO读写请求需要等待的时间。
在一种可选的方案中,如果限制条件不允许提交IO读写请求,此时,可以拒绝该IO读写请求,并提示现在受到了资源的限制。或者,作为一个相对友好的处理方式,可以在预定时间后再向存储设备提交该IO读写请求。当再次提交的时候,可以不再判断该IO读写请求是否符合预先设置的限制条件。或者,再次提交的时候依然根据预先设置的限制条件再次判断是否允许提交该IO读写请求,如果不允许则继续等待预定时间后再提交。例如,在接收到来自虚拟机的IO读写请求之后,可以计算请求个数或请求字节数是否超出当前时间片允许的范围,如果超出,则计算此请求需要等待的时间,将请求放到等待队列,并在预定时间后,将IO从等待队列取出,然后提交给后端存储请求提交与回调模块,从而将一块磁盘所能抢占的IO性能限定在设定的IOPS、BPS以下。
根据本申请上述实施例,上述方法还可以包括如下步骤:
步骤S310,在创建所述虚拟机的磁盘过程中,从线程池中为来自虚拟机的IO读写请求分配线程,其中,在线程上执行读写请求处理方法以处理虚拟机的磁盘的所有IO读写请求,线程池中包括至少一个线程,物理机中的所有虚拟机的磁盘的IO读写请求均从线程池中分配线程进行处理。
可选的,根据本申请上述实施例,一个虚拟机的磁盘的IO读写请求的所有处理均在一个线程上,一个线程能够同时处理多个虚拟机的磁盘的IO读写请求。
此处需要说明的是,运行在物理机上的虚拟机其本质上还是要使用该物理机上的资源,物理机上可能不仅仅运行有虚拟化平台,还可能运行其他服务或者其他应用。为了更好的为物理机上的虚拟机提供资源,可以为来自虚拟机的IO读写请求分配线程。
在一个可选的实施方式中,可以为物理机上运行的所有虚拟机的IO读写请求分配一个线程池,该线程池中包括至少一个线程,物理机中的所有虚拟机的磁盘的IO读写请求均在该线程池中处理。IO接入装置可以从线程池中为虚拟机的磁盘分配线程,其中,在该线程上执行本实施例的读写请求处理方法处理该虚拟机的磁盘的所有IO读写请求。
根据本申请上述实施例,步骤S310,在线程上执行读写请求处理方法可以包括如下步骤:
步骤S3102,在线程上运行事件循环。
步骤S3104,通过事件触发的方式在线程上执行读写请求处理方法。
在一种可选的方案中,在线程上执行IO读写请求的处理的方式有很多种,例如可以通过事件触发的方式来进行执行,例如,可以在线程上运行事件循环,然后,通过事件触发的方式在该线程上执行本实施例的读写请求处理方法。
通过线程池的方式实现了资源的共享,如果结合IO读写请求的限制条件,可以提高资源的利用率,实现对资源的管理。
下面结合图4和图5详细介绍本申请的一种优选实施例。
图4是根据本申请实施例一的一种可选的接入设备的模块示意图,如图5所示,可以是与VM和后端存储连接的接入装置,该接入装置可以包含以下几个模块:
VM磁盘IO读写请求感知与回应模块(简称为模块1):实现从物理机后端驱动中感知请求已经到达,并在请求完成后回应VM;
IO读写请求映射模块(简称为模块2):实现IO读写请求上下文和IO数据部分的内存映射,从而直接拿到存放数据的内存地址,而不必再拷贝数据;
流控模块(简称为模块3):实现单个磁盘、多个磁盘的IO流控,实现读写IOPS、读写BPS的流控上限;
后端存储请求提交与回调模块(简称为模块4):实现给后端存储的请求提交,以及后端存储完成请求的后续处理。
公共线程池模块(简称为模块5):给上述所有模块提供共享的线程资源。
公共线程池模块是本接入装置的核心资源,其它模块的处理逻辑都在这个线程池上执行,它有多个线程,数量可以配置,每个线程上运行一个epoll事件循环,任何一个事件到来,epoll都会感知到,并执行事件对应的回调处理逻辑,这些事件包括VM磁盘IO到达接入模块的通知、流控模块定时任务、后端存储完成IO、内部条件等待事件等等。一个VM磁盘的IO读写请求的所有阶段始终在一个线程上处理,不会切换线程,一个线程可以同时处理多个VM磁盘的IO读写请求,互不阻塞互不干扰,一个物理机上所有VM的磁盘IO都在这组线程池中处理,从而共享CPU资源。
图5是根据本申请实施例一的一种可选的接入装置处理单个磁盘的IO读写请求的流程图,如图5所示,该流程包括如下步骤:
步骤S51,虚拟机将IO读写请求发送给IO接入装置。
步骤S52,IO接入装置的模块1在感知到IO读写请求之后,解析该请求。
可选的,VM磁盘IO读写请求感知与回应模块是接入装置的入口,VM的磁盘在创建的时候,接入装置会从公共线程池中分配一个线程,并将请求到达的处理回调逻辑注册到此线程的epoll事件循环上。VM中的应用读写磁盘时,IO读写请求会经过Xen前后端驱动到达物理机,并触发接入装置的epoll事件,从而触发请求处理逻辑执行,VM磁盘IO读写请求感知与回应模块将IO读写请求解析并拿到IO的长度、偏移、操作、编号、相对地址等,然后交给内存映射模块。
步骤S53,IO接入装置的模块2映射该IO读写请求的数据的内存地址。
可选的,当VM磁盘IO读写请求感知与回应模块将请求提交过来时,IO读写请求映射模块先从映射的地址空间中拿到请求的上下文,包括请求编号、偏移、大小、请求数据的相对地址等,根据请求的编号、相对地址以及地址空间的起始地址,计算得到存放这个请求数据的内存地址。
步骤S54,IO接入装置的模块3进行流控限速,在超速的时候设置定时任务。
可选的,流控模块可以维护时间片、当前已经提交给后端的IO个数与字节数、被限制IO的等待队列等信息,收到IO读写请求映射模块提交的请求后,计算请求个数或请求字节数是否超出当前时间片允许的范围,如果超出,则计算此请求需要等待的时间,将请求放到等待队列,并在公共线程池模块线程池中当前线程里注册一个定时任务;定时任务时间到了以后在当前线程将IO从等待队列取出,然后提交给后端存储请求提交与回调模块,从而将一块磁盘所能抢占的IO性能限定在设定的IOPS、BPS以下。流控模块可以防止某些VM磁盘占用太多资源,并且它只使用公共线程池模块的线程资源,不再需要其它CPU、线程资源。
步骤S55,IO接入装置的模块4将IO读写请求提交到后端存储。
步骤S56,后端存储完成IO,返回响应结果给IO接入装置。
步骤S57,IO接入装置的模块4接收响应结果,模块1封装该IO读写请求结构。
步骤S58,IO接入装置将封装好的响应结果返回给虚拟机。
可选的,后端存储提交与回调模块接收流控模块提交的IO读写请求,并提交给后端存储,后端存储完成IO后,会触发此磁盘所在线程的事件循环,这个线程也是请求提交的线程,事件处理逻辑会请请求的结果给VM磁盘IO读写请求感知与回应模块,VM磁盘IO读写请求感知与回应模块将请求结果封装为回应返回给前后端驱动。
在原有Xen虚拟化平台和存储平台软件中,IO在前后端处理后还需要通过一个用户态进程处理,才提交给接入装置,提交、回应过程还需要将请求拷贝两次,并且每个磁盘都会创建一个独立的进程,IO处理会有线程切换并且无法实现线程池资源。本接入装置去除了这些独立进程,从而缩短了IO链路,通过内存映射实现了数据的零拷贝,并实现多个磁盘共享同一组线程池资源从而降低资源消耗提高性能,并在这组线程池里实现IO流控,防止少数磁盘抢占太多资源。
在本申请上述优选的实施例中,提出一种缩短IO链路、更加节省资源的虚拟机磁盘接入后端存储的装置,并且实现数据零拷贝;能在共享CPU、线程池等资源的情况下接入多个VM的磁盘IO,降低管理资源消耗,降低IO latency;并且还能实现流控限速模块,防止某些设备抢占太多CPU、线程资源,影响其它VM的IO性能,并且流控限速也共享IO处理的线程池。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
实施例2
根据本申请实施例,还提供了一种基于虚拟机的读写请求处理方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例提供了如图6所示的基于虚拟机的读写请求处理方法。图6是根据本申请实施例二的基于虚拟机的读写请求处理方法的流程图,如图6所示,该流程包括如下步骤:
步骤S602,接收读写虚拟机上的虚拟磁盘时产生的IO读写请求,其中,虚拟机为物理机上部署的任意一个虚拟机。
具体的,上述虚拟化平台可以是VMware、Virtual Box、Virtual PC、Xen、OpenVZ、KVM,在本实施例中以Xen为例进行说明。在本实施例中以Xen为例的原因是,目前比较倾向于选择Xen,因为它是对供应商和和客户来说都是可以接受的折衷方案。其他虚拟化平台上也可以采用相同的方式进行处理,在此不再赘述。
在一种可选的方案中,一台物理机可以虚拟出很多个VM,用户在这些VM内部署的应用会读取和存放数据到VM内的磁盘,VM至少会有一个***盘,存放操作***,可能有多个数据盘,数据盘存放自己的业务数据。每个磁盘的IO读写请求,经过VM内的前端驱动,再经过Xen虚拟化平台到达后端驱动,后端驱动将IO读写请求转发给IO接入装置,IO接入装置的IO请求感知与回应模块感知到IO读写请求。
步骤S604,获取IO读写请求所要请求的数据的映射地址,其中,映射地址用于将IO读写请求映射至物理机中后端存储装置的数据。
在一种可选的方案中,在接收到来自虚拟机的IO读写请求之后,可以通过IO请求映射模块将虚拟机中的磁盘对应的地址空间映射到IO接入装置中,得到IO接入装置可以访问的地址空间,并根据映射的地址空间和IO读写请求,获取物理机中存放数据的地址。
步骤S606,按照映射地址提交IO读写请求至物理机中的后端存储装置,得到请求结果。
可选的,根据本申请上述实施例,上述后端存储装置可以包括以下至少之一:分布式存储设备、本地磁盘阵列RAID存储设备。
步骤S608,接收后端存储装置处理IO读写所产生的请求结果。
在一种可选的方案中,可以根据配置决定此VM磁盘的IO读写请求是提交到分布式存储还是本地RAID存储,通过后端存储提交与回调模块将接收到的IO读写请求提交给后端存储,后端存储完成IO读写请求之后,将处理结果返回给IO接入装置。
步骤S610,向虚拟机返回请求结果。
在一种可选的方案中,可以通过IO请求感知与回应模块将接收到的请求结果封装为回应返回给虚拟机。
由上可知,本申请上述实施例二公开的方案中,接收读写所述虚拟机上的虚拟磁盘时产生的IO读写请求,获取所述IO读写请求所要请求的数据的映射地址,向存储设备提交IO读写请求之后,按照映射地址提交IO读写请求至物理机中的后端存储装置,得到请求结果,并向虚拟机返回请求结果,从而实现将虚拟机发出的读写请求发送给存储设备的目的。
容易注意到,由于可以根据IO读写请求所要请求的数据的映射地址,获取物理机中存放该数据的地址,而不需要获取到该数据的具体内容,可以减少从虚拟化平台向IO接入装置的拷贝或者减少从IO接入装置向虚拟化平台的数据拷贝,通过减少数据的拷贝环节,从而降低了IO的Latency。因此,通过本申请实施例所提供的方案,可以达到缩短IO链路,实现数据零拷贝,降低IO latency的效果。
由此,本申请提供的上述实施例二的方案解决了现有技术中IO latency升高的技术问题。
根据本申请上述实施例,在步骤S602,接收读写虚拟机上的虚拟磁盘时产生的IO读写请求之前,上述方法还可以包括如下步骤:
步骤S600,在虚拟机中创建虚拟磁盘之后,映射得到虚拟磁盘对应的地址空间,并从线程池中分配一个线程,其中,线程用于在读写虚拟磁盘时运行IO读写请求所触发的事件。
在一个可选的实施例中,可以通过映射的方式从地址空间中获取数据的地址,可以在虚拟机的磁盘被创建时,通过mmap等***调用,将该虚拟机的磁盘对应的地址空间映射到物理机中得到映射的地址空间。当然也可以在其他情况下进行映射,该映射动作只要在获取IO读写请求之前进行即可。并且,可以为物理机上运行的所有虚拟机的IO读写请求分配一个线程池,该线程池中包括至少一个线程,物理机中的所有虚拟机的磁盘的IO读写请求均在该线程池中处理。
此处需要说明的是,通过映射的方式进行处理实现较为方便,例如,在某些操作***中就提供了一些***调用,通过这些***调用就可以进行映射。当然其他方式也可以使得获得到IO读写请求的上下文,在此不再赘述。
根据本申请上述实施例,步骤S604,获取IO读写请求所要请求的数据的映射地址可以包括如下步骤:
步骤S6042,映射得到虚拟磁盘对应的地址空间的起始地址和长度。
步骤S6044,读取IO读写请求的信息,信息至少包括:请求编号、请求的相对地址。
步骤S6046,根据IO读写请求的相对地址和地址空间的起始地址,计算得到存放IO读写请求所要请求的数据的内存地址。
步骤S6048,按照计算得到的内存地址生成映射地址。
在一种可选的方案中,在接收到IO读写请求之后,可以从映射的地址空间中读取IO读写请求的信息,可以根据IO读写请求的编号、相对地址和地址空间的起始地址,计算得到数据的内存地址,然后根据该内存地址生成映射地址,这样避免了一定的拷贝从而降低了IO的时延。
通过上述方案,不再需要将写请求的数据内容从后端驱动拷贝到IO接入装置或将读请求的数据内容从IO接入装置拷贝到后端驱动,从实现IO读写请求数据的零拷贝,降低IO的Latency。
根据本申请上述实施例,在步骤S604,获取IO读写请求所要请求的数据的映射地址之后,上述方法还包括如下步骤:
步骤S612,计算IO读写请求的请求量是否超过预设值。
具体的,上述预设值可以是外部设定的值,例如,可以是针对某一个VM磁盘的IOPS、BPS设定。
步骤S614,如果超出,则将IO读写请求放入等待队列。
步骤S616,如果检测到定时时间到达,则从等待队列中读取IO读写请求;其中,定时时间为在线程池中注册的定时任务所限定的时长。
此处需要说明的是,由于一个物理机上的虚拟平台上运行有多个虚拟机,这些虚拟机都需要进行IO操作,而这些虚拟机所依附的物理机上的资源是有限的。为了更好的对资源进行处理,可以考虑对虚拟机的IO读写请求进行限制。对每个虚拟机的限制条件可以是不同的,这可以根据虚拟机上运行的服务来进行确定。即可以针对每个虚拟机单独制定限制条件。
在一种可选的方案中,在获取到数据的映射地址之后,可以计算请求个数或请求字节数是否超出当前时间片允许的范围,如果超出,则计算此请求需要等待的时间,将请求放到等待队列,并在预定时间后,将IO从等待队列取出,然后提交给后端存储请求提交与回调模块,从而将一块磁盘所能抢占的IO性能限定在设定的IOPS、BPS以下。
通过上述方案,通过根据预先设置的限制条件判断是否允许向存储设备提交IO读写请求,可以防止某些VM磁盘占用太多资源。
实施例3
根据本申请实施例,还提供了一种快速处理读写请求的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例提供了如图7所示的基于虚拟机的读写请求处理方法。图7是根据本申请实施例三的快速处理读写请求的方法的流程图,如图7所示,该流程包括如下步骤:
步骤S702,接收读写虚拟机上的虚拟磁盘时产生的IO读写请求,其中,虚拟机为物理机上部署的任意一个虚拟机。
具体的,上述虚拟化平台可以是VMware、Virtual Box、Virtual PC、Xen、OpenVZ、KVM,在本实施例中以Xen为例进行说明。在本实施例中以Xen为例的原因是,目前比较倾向于选择Xen,因为它是对供应商和和客户来说都是可以接受的折衷方案。其他虚拟化平台上也可以采用相同的方式进行处理,在此不再赘述。
在一种可选的方案中,一台物理机可以虚拟出很多个VM,用户在这些VM内部署的应用会读取和存放数据到VM内的磁盘,VM至少会有一个***盘,存放操作***,可能有多个数据盘,数据盘存放自己的业务数据。每个磁盘的IO读写请求,经过VM内的前端驱动,再经过Xen虚拟化平台到达后端驱动,后端驱动将IO读写请求转发给IO接入装置,IO接入装置的IO请求感知与回应模块感知到IO读写请求。
步骤S704,获取IO读写请求所要请求的数据的映射地址,其中,映射地址用于将IO读写请求映射至物理机中后端存储装置的数据。
在一种可选的方案中,在接收到来自虚拟机的IO读写请求之后,可以通过IO请求映射模块将虚拟机中的磁盘对应的地址空间映射到IO接入装置中,得到IO接入装置可以访问的地址空间,并根据映射的地址空间和IO读写请求,获取物理机中存放数据的地址。
由上可知,本申请上述实施例三公开的方案中,接收读写所述虚拟机上的虚拟磁盘时产生的IO读写请求,获取所述IO读写请求所要请求的数据的映射地址。
容易注意到,由于可以根据IO读写请求所要请求的数据的映射地址,获取物理机中存放该数据的地址,而不需要获取到该数据的具体内容,可以减少从虚拟化平台向IO接入装置的拷贝或者减少从IO接入装置向虚拟化平台的数据拷贝,通过减少数据的拷贝环节,从而降低了IO的Latency。因此,通过本申请实施例所提供的方案,可以达到缩短IO链路,实现数据零拷贝,降低IO latency的效果。
由此,本申请提供的上述实施例三的方案解决了现有技术中IO latency升高的技术问题。
根据本申请上述实施例,在步骤S704,获取所述IO读写请求所要请求的数据的映射地址之后,上述方法还可以包括:
步骤S706,按照映射地址提交IO读写请求至物理机中的后端存储装置,得到请求结果。
可选的,根据本申请上述实施例,上述后端存储装置可以包括以下至少之一:分布式存储设备、本地磁盘阵列RAID存储设备。
步骤S708,接收后端存储装置处理IO读写所产生的请求结果。
在一种可选的方案中,可以根据配置决定此VM磁盘的IO读写请求是提交到分布式存储还是本地RAID存储,通过后端存储提交与回调模块将接收到的IO读写请求提交给后端存储,后端存储完成IO读写请求之后,将处理结果返回给IO接入装置。
步骤S710,向虚拟机返回请求结果。
在一种可选的方案中,可以通过IO请求感知与回应模块将接收到的请求结果封装为回应返回给虚拟机。
通过上述步骤S706至步骤S710,按照映射地址提交IO读写请求至物理机中的后端存储装置,得到请求结果,接收后端存储装置处理IO读写所产生的请求结果,向虚拟机返回请求结果,从而实现将虚拟机发出的读写请求发送给存储设备的目的。
实施例4
根据本实施例,还提供了一种用于实施读写请求处理方法的读写请求处理装置。
图8是根据本申请实施例四的一种读写请求处理装置的结构框图,如图8所示,该装置800包括如下单元:第一接收单元801,获取单元803,第二接收单元805和返回单元807。
其中,第一接收单元801用于接收来自虚拟机的IO读写请求,其中,IO读写请求用于请求读和/或写虚拟机的任意一个磁盘中的数据;获取单元803用于获取预先映射得到的地址空间,并根据IO读写请求和地址空间获取物理机中存放数据的地址,其中,地址空间是映射得到的虚拟机的磁盘的地址;第二接收单元805用于在向存储设备提交IO读写请求之后,接收数据在存储设备上的处理结果,其中,存储设备为物理机中存储数据的装置;返回单元807用于通过地址空间向虚拟机返回处理结果。
具体的,上述虚拟化平台可以是VMware、Virtual Box、Virtual PC、Xen、OpenVZ、KVM,在本实施例中以Xen为例进行说明。在本实施例中以Xen为例的原因是,目前比较倾向于选择Xen,因为它是对供应商和客户来说都是可以接受的折衷方案。其他虚拟化平台上也可以采用相同的方式进行处理,在此不再赘述。
可选的,根据本申请上述实施例,上述存储设备可以包括以下至少之一:分布式存储设备、本地磁盘阵列RAID存储设备。
此处需要说明的是,上述第一接收单元801,获取单元803,第二接收单元805和返回单元807对应于实施例一中的步骤S302至步骤S308,四个单元与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述单元作为装置的一部分可以运行在实施例一提供的计算机终端10中。
由上可知,本申请上述实施例四公开的方案中,接收来自虚拟机的IO读写请求,获取预先映射得到的地址空间,从根据IO读写请求和地址空间获取物理机中存放该数据的地址,向存储设备提交IO读写请求之后,接收数据在存储设备上的处理结果,通过地址空间向虚拟机返回处理结果,从而实现将虚拟机发出的读写请求发送给存储设备的目的。
容易注意到,由于可以从预先映射得到的地址空间中获取物理机中存放该数据的地址,而地址空间是映射虚拟机的磁盘对应的地址空间到的,可以减少从虚拟化平台向IO接入装置的拷贝或者减少从IO接入装置向虚拟化平台的数据拷贝,通过减少数据的拷贝环节,从而降低了IO的Latency。因此,通过本申请实施例所提供的方案,可以达到缩短IO链路,实现数据零拷贝,降低IO latency的效果。
由此,本申请提供的上述实施例四的方案解决了现有技术中IO latency升高的技术问题。
根据本申请上述实施例,如图8所示,获取单元803包括如下子单元:获取子单元809和计算子单元811。
其中,获取子单元809用于获取IO读写请求的上下文;计算子单元811用于根据IO读写请求的上下文计算得到数据的地址。
此处需要说明的是,通过映射的方式进行处理实现较为方便,例如,在某些操作***中就提供了一些***调用,通过这些***调用就可以进行映射。当然其他方式也可以使得获得到IO读写请求的上下文,在此不再赘述。
此处还需要说明的是,上述获取子单元809和计算子单元811对应于实施例一中的步骤S3042至步骤S3044,两个单元与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述单元作为装置的一部分可以运行在实施例一提供的计算机终端10中。
根据本申请上述实施例,计算子单元811还用于根据IO读写请求的上下文中携带的IO读写请求的信息以及地址空间的信息计算数据的地址,其中,IO读写请求的信息包括以下至少之一:IO读写请求的编号、IO读写请求的偏移、IO读写请求的大小、IO读写请求的相对地址;地址空间的信息包括至少之一:地址空间的起始地址、地址空间的长度。
此处还需要说明的是,上述计算子单元811对应于实施例一中的步骤S30440,该单元与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述单元作为装置的一部分可以运行在实施例一提供的计算机终端10中。
通过上述方案,不再需要将写请求的数据内容从后端驱动拷贝到IO接入装置或将读请求的数据内容从IO接入装置拷贝到后端驱动,从实现IO读写请求数据的零拷贝,降低IO的Latency。
根据本申请上述实施例,如图8所示,上述装置800还包括如下单元:映射单元813。
其中,映射单元813用于在创建虚拟机的磁盘时,将磁盘对应的地址空间映射到物理机中得到地址空间,其中,地址空间的信息包括以下至少之一:该地址空间的起始地址、该地址空间的长度。
此处需要说明的是,上述映射单元813对应于实施例一中的步骤S3040,该单元与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述单元作为装置的一部分可以运行在实施例一提供的计算机终端10中。
根据本申请上述实施例,如图8所示,上述装置800还包括如下单元:处理单元815。
其中,处理单元815用于根据预先设置的限制条件判断是否允许向存储设备提交IO读写请求,并在判断结果为允许的情况下,向存储设备提交IO读写请求。
此处需要说明的是,由于一个物理机上的虚拟平台上运行有多个虚拟机,这些虚拟机都需要进行IO操作,而这些虚拟机所依附的物理机上的资源是有限的。为了更好的对资源进行处理,可以考虑对虚拟机的IO读写请求进行限制。对每个虚拟机的限制条件可以是不同的,这可以根据虚拟机上运行的服务来进行确定。即可以针对每个虚拟机单独制定限制条件。以上述虚拟机为例。上述限制条件可以是外部设定的条件,如针对某一个VM磁盘的IOPS、BPS设定。由于运行不同服务的虚拟机由于服务的重要性不同,还可以为每个虚拟机制定一个优先级,对于优先级高的虚拟机中的IO读写请求,可以不进行限制,或者可以限制的较少,即可以针对不同的优先级制定不同的限制条件。
可选的,根据本申请上述实施例,上述限制条件可以包括以下至少之一:对于虚拟机的磁盘,在第一预定时长内的处理的IO读写请求个数和/或处理的数据的量不超过阈值;对于所有虚拟机的磁盘,在第二预定时长内的处理的IO读写请求个数和/或处理的数据的量不超过阈值;IO读写请求的优先级;虚拟机的优先级。
此处还需要说明的是,上述处理单元815对应于实施例一中的步骤S3062至步骤S3064,该单元与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述单元作为装置的一部分可以运行在实施例一提供的计算机终端10中。
通过上述方案,通过根据预先设置的限制条件判断是否允许向存储设备提交IO读写请求,可以防止某些VM磁盘占用太多资源。
根据本申请上述实施例,处理单元815用于在判断结果为不允许的情况下,在预定时间后向存储设备提交IO读写请求;或者,在预定时间后根据预先设置的限制条件再次判断是否允许向存储设备提交IO读写请求。
具体的,上述预定时间可以是根据计算得到的IO读写请求需要等待的时间。
此处需要说明的是,上述处理单元815对应于实施例一中的步骤S3066,该单元与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述单元作为装置的一部分可以运行在实施例一提供的计算机终端10中。
根据本申请上述实施例,如图8所示,上述装置800还包括如下单元:线程分配单元817。
其中,线程分配单元817用于在创建所述虚拟机的磁盘过程中,从线程池中为来自虚拟机的IO读写请求分配线程,其中,在线程上执行读写请求处理方法以处理虚拟机的磁盘的所有IO读写请求,线程池中包括至少一个线程,所有虚拟机的磁盘的IO读写请求均从线程池中分配线程进行处理。
可选的,根据本申请上述实施例,一个虚拟机的磁盘的IO读写请求的所有处理均在一个线程上,一个线程能够同时处理多个虚拟机的磁盘的IO读写请求。
此处需要说明的是,运行在物理机上的虚拟机其本质上还是要使用该物理机上的资源,物理机上可能不仅仅运行有虚拟化平台,还可能运行其他服务或者其他应用。为了更好的为物理机上的虚拟机提供资源。
此处需要说明的是,上述线程分配单元817对应于实施例一中的步骤S310,该单元与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述单元作为装置的一部分可以运行在实施例一提供的计算机终端10中。
根据本申请上述实施例,上述读写请求处理装置中的单元通过事件触发的方式在线程上执行,其中,在线程上运行有事件循环。
在一种可选的方案中,在线程上执行IO读写请求的处理的方式有很多种,例如可以通过事件触发的方式来进行执行,例如,可以在线程上运行事件循环,然后,通过事件触发的方式在该线程上执行本实施例的读写请求处理方法。
通过线程池的方式实现了资源的共享,如果结合IO读写请求的限制条件,可以提高资源的利用率,实现对资源的管理。
实施例5
根据本申请实施例,还提供了一种基于虚拟机的读写请求处理装置实施例。
本申请实施例提供了如图8所示的基于虚拟机的读写请求处理装置。图9是根据本申请实施例五的基于虚拟机的读写请求处理装置的结构框图,如图9所示,该装置900包括:第一接收单元901,获取单元903,提交单元905,第二接收单元907和返回单元909。
第一接收单元901,用于接收读写虚拟机上的虚拟磁盘时产生的IO读写请求,其中,虚拟机为物理机上部署的任意一个虚拟机;获取单元903,用于获取IO读写请求所要请求的数据的映射地址,其中,映射地址用于将IO读写请求映射至物理机中后端存储装置的数据;提交单元905,用于按照映射地址提交IO读写请求至物理机中的后端存储装置,得到请求结果;第二接收单元807,用于接收后端存储装置处理IO读写所产生的请求结果;返回单元909,用于向虚拟机返回请求结果。
具体的,上述虚拟化平台可以是VMware、Virtual Box、Virtual PC、Xen、OpenVZ、KVM,在本实施例中以Xen为例进行说明。在本实施例中以Xen为例的原因是,目前比较倾向于选择Xen,因为它是对供应商和和客户来说都是可以接受的折衷方案。其他虚拟化平台上也可以采用相同的方式进行处理,在此不再赘述。
可选的,根据本申请上述实施例,上述后端存储装置可以包括以下至少之一:分布式存储设备、本地磁盘阵列RAID存储设备。
此处还需要说明的是,上述第一接收单元901,获取单元903,提交单元905,第二接收单元907和返回单元909对应于实施例二中的步骤S602至步骤S610,五个单元与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例二所公开的内容。需要说明的是,上述单元作为装置的一部分可以运行在实施例一提供的计算机终端10中。
由上可知,本申请上述实施例四公开的方案中,接收读写所述虚拟机上的虚拟磁盘时产生的IO读写请求,获取所述IO读写请求所要请求的数据的映射地址,向存储设备提交IO读写请求之后,按照映射地址提交IO读写请求至物理机中的后端存储装置,得到请求结果,并向虚拟机返回请求结果,从而实现将虚拟机发出的读写请求发送给存储设备的目的。
容易注意到,由于可以根据IO读写请求所要请求的数据的映射地址,获取物理机中存放该数据的地址,而不需要获取到该数据的具体内容,可以减少从虚拟化平台向IO接入装置的拷贝或者减少从IO接入装置向虚拟化平台的数据拷贝,通过减少数据的拷贝环节,从而降低了IO的Latency。因此,通过本申请实施例所提供的方案,可以达到缩短IO链路,实现数据零拷贝,降低IO latency的效果。
由此,本申请提供的上述实施例四的方案解决了现有技术中IO latency升高的技术问题。
实施例6
根据本申请实施例,还提供了一种用于实施快速处理读写请求的快速处理读写请求的装置。
本申请实施例提供了如图10所示的快速处理读写请求的装置。图10是根据本申请实施例六的快速处理读写请求的装置的结构框图,如图10所示,该装置包括1000:接收单元1001和获取单元1003。
接收单元,用于接收读写虚拟机上的虚拟磁盘时产生的IO读写请求,其中,虚拟机为物理机上部署的任意一个虚拟机;获取单元,用于获取IO读写请求所要请求的数据的映射地址,其中,映射地址用于将IO读写请求映射至物理机中后端存储装置的数据。
具体的,上述虚拟化平台可以是VMware、Virtual Box、Virtual PC、Xen、OpenVZ、KVM,在本实施例中以Xen为例进行说明。在本实施例中以Xen为例的原因是,目前比较倾向于选择Xen,因为它是对供应商和和客户来说都是可以接受的折衷方案。其他虚拟化平台上也可以采用相同的方式进行处理,在此不再赘述。
此处还需要说明的是,上述接收单元1001和获取单元1003对应于实施例三中的步骤S702至步骤S704,两个单元与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例三所公开的内容。需要说明的是,上述单元作为装置的一部分可以运行在实施例一提供的计算机终端10中。
由上可知,本申请上述实施例六公开的方案中,接收读写所述虚拟机上的虚拟磁盘时产生的IO读写请求,获取所述IO读写请求所要请求的数据的映射地址。
容易注意到,由于可以根据IO读写请求所要请求的数据的映射地址,获取物理机中存放该数据的地址,而不需要获取到该数据的具体内容,可以减少从虚拟化平台向IO接入装置的拷贝或者减少从IO接入装置向虚拟化平台的数据拷贝,通过减少数据的拷贝环节,从而降低了IO的Latency。因此,通过本申请实施例所提供的方案,可以达到缩短IO链路,实现数据零拷贝,降低IO latency的效果。
由此,本申请提供的上述实施例六的方案解决了现有技术中IO latency升高的技术问题。
实施例7
本申请的实施例可以提供一种计算机终端或者称为计算设备,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。
可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。
在本实施例中,上述计算机终端可以执行以下方法中以下步骤的程序代码:接收来自虚拟机的IO读写请求,其中,IO读写请求用于请求读和/或写虚拟机的任意一个磁盘中的数据;获取预先映射得到的地址空间,并根据IO读写请求和地址空间获取物理机中存放数据的地址,其中,地址空间是映射得到的虚拟机的磁盘的地址;在向存储设备提交IO读写请求之后,接收数据在存储设备上的处理结果,其中,存储设备为物理机中存储数据的装置;通过地址空间向虚拟机返回处理结果。
可选地,图11是根据本申请实施例的一种计算机终端的结构框图。如图11所示,该计算机终端1100可以包括:一个或多个(图中仅示出一个)处理器1101、存储器1103。
其中,存储器可用于存储软件程序以及单元,如本申请实施例中的读写请求处理方法和装置对应的程序指令/单元,处理器通过运行存储在存储器内的软件程序以及单元,从而执行各种功能应用以及数据处理,即实现上述的读写请求处理方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:接收来自虚拟机的IO读写请求,其中,IO读写请求用于请求读和/或写虚拟机的任意一个磁盘中的数据;获取预先映射得到的地址空间,并根据IO读写请求和地址空间获取物理机中存放数据的地址,其中,地址空间是映射得到的虚拟机的磁盘的地址;在向存储设备提交IO读写请求之后,接收数据在存储设备上的处理结果,其中,存储设备为物理机中存储数据的装置;通过地址空间向虚拟机返回处理结果。
可选的,上述处理器还可以执行如下步骤的程序代码:获取IO读写请求的上下文;根据IO读写请求的上下文计算得到数据的地址。
可选的,上述处理器还可以执行如下步骤的程序代码:根据IO读写请求的上下文中携带的IO读写请求的信息以及地址空间的信息计算数据的地址,其中,IO读写请求的信息包括以下至少之一:IO读写请求的编号、IO读写请求的偏移、IO读写请求的大小、IO读写请求的相对地址;地址空间的信息包括至少之一:地址空间的起始地址、地址空间的长度。
可选的,上述处理器还可以执行如下步骤的程序代码:在获取IO读写请求的上下文之前,在创建虚拟机的磁盘时,将磁盘对应的地址空间映射到物理机中得到地址空间,其中,地址空间的信息包括以下至少之一:该地址空间的起始地址、该地址空间的长度。
可选的,上述处理器还可以执行如下步骤的程序代码:根据预先设置的限制条件判断是否允许向存储设备提交IO读写请求;在判断结果为允许的情况下,向存储设备提交IO读写请求。
可选的,上述处理器还可以执行如下步骤的程序代码:在判断结果为不允许的情况下,在预定时间后向存储设备提交IO读写请求;或者,在预定时间后根据预先设置的限制条件再次判断是否允许向存储设备提交IO读写请求。
可选的,上述处理器还可以执行如下步骤的程序代码:限制条件包括以下至少之一:对于虚拟机的磁盘,在第一预定时长内的处理的IO读写请求个数和/或处理的数据的量不超过阈值;对于所有虚拟机的磁盘,在第二预定时长内的处理的IO读写请求个数和/或处理的数据的量不超过阈值;IO读写请求的优先级;虚拟机的优先级。
可选的,上述处理器还可以执行如下步骤的程序代码:在创建所述虚拟机的磁盘过程中,从线程池中为来自虚拟机的IO读写请求分配线程,其中,在线程上执行读写请求处理方法以处理虚拟机的磁盘的所有IO读写请求,线程池中包括至少一个线程,所有虚拟机的磁盘的IO读写请求均从线程池中分配线程进行处理。
可选的,上述处理器还可以执行如下步骤的程序代码:一个虚拟机的磁盘的IO读写请求的所有处理均在一个线程上,一个线程能够同时处理多个虚拟机的磁盘的IO读写请求。
可选的,上述处理器还可以执行如下步骤的程序代码:在线程上运行事件循环;通过事件触发的方式在线程上执行读写请求处理方法。
采用本申请实施例,接收来自虚拟机的IO读写请求,获取预先映射得到的地址空间,从根据IO读写请求和地址空间获取物理机中存放该数据的地址,向存储设备提交IO读写请求之后,接收数据在存储设备上的处理结果,通过地址空间向虚拟机返回处理结果,从而实现将虚拟机发出的读写请求发送给存储设备的目的。
容易注意到,由于可以从预先映射得到的地址空间中获取物理机中存放该数据的地址,而地址空间是映射虚拟机的磁盘对应的地址空间到的,可以减少从虚拟化平台向IO接入装置的拷贝或者减少从IO接入装置向虚拟化平台的数据拷贝,通过减少数据的拷贝环节,从而降低了IO的Latency。因此,通过本申请实施例所提供的方案,可以达到缩短IO链路,实现数据零拷贝,降低IO latency的效果。
由此,本申请提供的上述实施例一的方案解决了现有技术中IO latency升高的技术问题。
本领域普通技术人员可以理解,图11所示的结构仅为示意,计算机终端也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌声电脑以及移动互联网设备(MobileInternet Devices,MID)、PAD等终端设备。图11其并不对上述电子装置的结构造成限定。例如,计算机终端1100还可包括比图11中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图11所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
实施例8
本申请的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的方法所执行的程序代码。
可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:接收来自虚拟机的IO读写请求,其中,IO读写请求用于请求读和/或写虚拟机的任意一个磁盘中的数据;获取预先映射得到的地址空间,并根据IO读写请求和地址空间获取物理机中存放数据的地址,其中,地址空间是映射得到的虚拟机的磁盘的地址;在向存储设备提交IO读写请求之后,接收数据在存储设备上的处理结果,其中,存储设备为物理机中存储数据的装置;通过地址空间向虚拟机返回处理结果。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:获取IO读写请求的上下文;根据IO读写请求的上下文计算得到数据的地址。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:根据IO读写请求的上下文中携带的IO读写请求的信息以及地址空间的信息计算数据的地址,其中,IO读写请求的信息包括以下至少之一:IO读写请求的编号、IO读写请求的偏移、IO读写请求的大小、IO读写请求的相对地址;地址空间的信息包括至少之一:地址空间的起始地址、地址空间的长度。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在获取IO读写请求的上下文之前,在创建虚拟机的磁盘时,将磁盘对应的地址空间映射到物理机中得到地址空间,其中,地址空间的信息包括以下至少之一:该地址空间的起始地址、该地址空间的长度。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:根据预先设置的限制条件判断是否允许向存储设备提交IO读写请求;在判断结果为允许的情况下,向存储设备提交IO读写请求。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在判断结果为不允许的情况下,在预定时间后向存储设备提交IO读写请求;或者,在预定时间后根据预先设置的限制条件再次判断是否允许向存储设备提交IO读写请求。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:限制条件包括以下至少之一:对于虚拟机的磁盘,在第一预定时长内的处理的IO读写请求个数和/或处理的数据的量不超过阈值;对于所有虚拟机的磁盘,在第二预定时长内的处理的IO读写请求个数和/或处理的数据的量不超过阈值;IO读写请求的优先级;虚拟机的优先级。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在创建所述虚拟机的磁盘过程中,从线程池中为来自虚拟机的IO读写请求分配线程,其中,在线程上执行读写请求处理方法以处理虚拟机的磁盘的所有IO读写请求,线程池中包括至少一个线程,所有虚拟机的磁盘的IO读写请求均从线程池中分配线程进行处理。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:一个虚拟机的磁盘的IO读写请求的所有处理均在一个线程上,一个线程能够同时处理多个虚拟机的磁盘的IO读写请求。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在线程上运行事件循环;通过事件触发的方式在线程上执行读写请求处理方法。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (31)

1.一种读写请求处理方法,其特征在于,包括:
接收来自虚拟机的IO读写请求,其中,所述IO读写请求用于请求读和/或写所述虚拟机的任意一个磁盘中的数据;
获取预先映射得到的地址空间,并根据所述IO读写请求和所述地址空间获取物理机中存放所述数据的地址,其中,所述地址空间是映射得到的所述虚拟机的磁盘的地址;
在向存储设备提交所述IO读写请求之后,接收所述数据在所述存储设备上的处理结果,其中,所述存储设备为物理机中存储所述数据的装置;
通过所述地址空间向所述虚拟机返回所述处理结果。
2.根据权利要求1所述的方法,其特征在于,获取预先映射得到的地址空间,并根据所述IO读写请求和所述地址空间获取物理机中存放所述数据的地址,包括:
获取所述IO读写请求的上下文;
根据所述IO读写请求的上下文计算得到所述数据的地址。
3.根据权利要求2所述的方法,其特征在于,根据所述IO读写请求的上下文计算得到所述数据的地址包括:
根据所述IO读写请求的上下文中携带的所述IO读写请求的信息以及所述地址空间的信息计算所述数据的地址,其中,所述IO读写请求的信息包括以下至少之一:所述IO读写请求的编号、所述IO读写请求的偏移、所述IO读写请求的大小、所述IO读写请求的相对地址;所述地址空间的信息包括至少之一:所述地址空间的起始地址、所述地址空间的长度。
4.根据权利要求2或3所述的方法,其特征在于,在获取所述IO读写请求的上下文之前,所述方法还包括:
在创建所述虚拟机的磁盘时,将所述磁盘对应的地址空间映射到所述物理机中得到所述地址空间,其中,所述地址空间的信息包括以下至少之一:该地址空间的起始地址、该地址空间的长度。
5.根据权利要求1所述的方法,其特征在于,向所述存储设备提交所述IO读写请求包括:
根据预先设置的限制条件判断是否允许向所述存储设备提交所述IO读写请求;
在判断结果为允许的情况下,向所述存储设备提交所述IO读写请求。
6.根据权利要求5所述的方法,其特征在于,向所述存储设备提交所述IO读写请求包括:
在判断结果为不允许的情况下,在预定时间后向所述存储设备提交所述IO读写请求;或者,在预定时间后根据预先设置的限制条件再次判断是否允许向所述存储设备提交所述IO读写请求。
7.根据权利要求5或6所述的方法,其特征在于,所述限制条件包括以下至少之一:
对于所述虚拟机的磁盘,在第一预定时长内的处理的IO读写请求个数和/或处理的数据的量不超过阈值;
对于所有虚拟机的磁盘,在第二预定时长内的处理的IO读写请求个数和/或处理的数据的量不超过阈值;
所述IO读写请求的优先级;
所述虚拟机的优先级。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在创建所述虚拟机的磁盘过程中,从线程池中为来自所述虚拟机的IO读写请求分配线程,其中,在所述线程上执行所述读写请求处理方法以处理所述虚拟机的磁盘的所有IO读写请求,所述线程池中包括至少一个线程,所有虚拟机的磁盘的IO读写请求均从所述线程池中分配线程进行处理。
9.根据权利要求8所述的方法,其特征在于,一个虚拟机的磁盘的IO读写请求的所有处理均在一个线程上,一个线程能够同时处理多个虚拟机的磁盘的IO读写请求。
10.根据权利要求8所述的方法,其特征在于,在所述线程上执行所述读写请求处理方法包括:
在所述线程上运行事件循环;
通过事件触发的方式在所述线程上执行所述读写请求处理方法。
11.根据权利要求1所述的方法,其特征在于,所述存储设备包括以下至少之一:分布式存储设备、本地磁盘阵列RAID存储设备。
12.一种基于虚拟机的读写请求处理方法,其特征在于,包括:
接收读写所述虚拟机上的虚拟磁盘时产生的IO读写请求,其中,所述虚拟机为物理机上部署的任意一个虚拟机;
获取所述IO读写请求所要请求的数据的映射地址,其中,所述映射地址用于将所述IO读写请求映射至所述物理机中后端存储装置的所述数据;
按照所述映射地址提交所述IO读写请求至所述物理机中的后端存储装置,得到请求结果;
接收所述后端存储装置处理所述IO读写所产生的请求结果;
向所述虚拟机返回所述请求结果。
13.根据权利要求12所述的方法,其特征在于,在读写所述虚拟机上的虚拟磁盘时产生IO读写请求之前,所述方法还包括:
在所述虚拟机中创建所述虚拟磁盘之后,映射得到所述虚拟磁盘对应的地址空间,并从线程池中分配一个线程,其中,所述线程用于在读写所述虚拟磁盘时运行所述IO读写请求所触发的事件。
14.根据权利要求13所述的方法,其特征在于,获取所述IO读写请求所要请求的数据的映射地址,包括:
映射得到所述虚拟磁盘对应的地址空间的起始地址和长度;
读取所述IO读写请求的信息,所述信息至少包括:请求编号、请求的相对地址;
根据所述IO读写请求的相对地址和所述地址空间的起始地址,计算得到存放所述IO读写请求所要请求的数据的内存地址;
按照计算得到的内存地址生成所述映射地址。
15.根据权利要求13所述的方法,其特征在于,在获取所述IO读写请求所要请求的数据的映射地址之后,所述方法还包括:
计算所述IO读写请求的请求量是否超过预设值;
如果超出,则将所述IO读写请求放入等待队列;
如果检测到定时时间到达,则从所述等待队列中读取所述IO读写请求;
其中,所述定时时间为在所述线程池中注册的定时任务所限定的时长。
16.根据权利要求12至15中任一项所述的方法,其特征在于,所述后端存储装置设备包括以下至少之一:分布式存储设装置、本地磁盘阵列RAID存储装置。
17.一种快速处理读写请求的方法,其特征在于,包括:
接收读写虚拟机上的虚拟磁盘时产生的IO读写请求,其中,所述虚拟机为物理机上部署的任意一个虚拟机;
获取所述IO读写请求所要请求的数据的映射地址,其中,所述映射地址用于将所述IO读写请求映射至所述物理机中后端存储装置的所述数据。
18.根据权利要求17所述的方法,其特征在于,在获取所述IO读写请求所要请求的数据的映射地址之后,所述方法还包括:
按照所述映射地址提交所述IO读写请求至所述物理机中的后端存储装置,得到请求结果;
接收所述后端存储装置处理所述IO读写所产生的请求结果;
向所述虚拟机返回所述请求结果。
19.一种读写请求处理装置,其特征在于,所述装置包括:
第一接收单元,用于接收来自虚拟机的IO读写请求,其中,所述IO读写请求用于请求读和/或写所述虚拟机的任意一个磁盘中的数据;
获取单元,用于获取预先映射得到的地址空间,并根据所述IO读写请求和所述地址空间获取物理机中存放所述数据的地址,其中,所述地址空间是映射得到的所述虚拟机的磁盘的地址;
第二接收单元,用于在向存储设备提交所述IO读写请求之后,接收所述数据在所述存储设备上的处理结果,其中,所述存储设备为物理机中存储所述数据的装置;
返回单元,用于通过所述地址空间向所述虚拟机返回所述处理结果。
20.根据权利要求19所述的装置,其特征在于,所述获取单元包括:
获取子单元,用于获取所述IO读写请求的上下文;
计算子单元,用于根据所述IO读写请求的上下文计算得到所述数据的地址。
21.根据权利要求20所述的装置,其特征在于,
所述计算子单元用于根据所述IO读写请求的上下文中携带的所述IO读写请求的信息以及所述地址空间的信息计算所述数据的地址,其中,所述IO读写请求的信息包括以下至少之一:所述IO读写请求的编号、所述IO读写请求的偏移、所述IO读写请求的大小、所述IO读写请求的相对地址;所述地址空间的信息包括至少之一:所述地址空间的起始地址、所述地址空间的长度。
22.根据权利要求20或21所述的装置,其特征在于,所述装置还包括:
映射单元,用于在创建所述虚拟机的磁盘时,将所述磁盘对应的地址空间映射到所述物理机中得到所述地址空间,其中,所述地址空间的信息包括以下至少之一:该地址空间的起始地址、该地址空间的长度。
23.根据权利要求22所述的装置,其特征在于,所述装置还包括:
处理单元,用于根据预先设置的限制条件判断是否允许向所述存储设备提交所述IO读写请求,并在判断结果为允许的情况下,向所述存储设备提交所述IO读写请求。
24.根据权利要求23所述的装置,其特征在于,
所述处理单元,还用于在判断结果为不允许的情况下,在预定时间后向所述存储设备提交所述IO读写请求;或者,在预定时间后根据预先设置的限制条件再次判断是否允许向所述存储设备提交所述IO读写请求。
25.根据权利要求23或24所述的装置,其特征在于,所述限制条件包括以下至少之一:
对于所述虚拟机的磁盘,在第一预定时长内的处理的IO读写请求个数和/或处理的数据量不超过阈值;
对于所有虚拟机的磁盘,在第二预定时长内的处理的IO读写请求个数和/或处理的数据量不超过阈值;
所述IO读写请求的优先级;
所述虚拟机的优先级。
26.根据权利要求19所述的装置,其特征在于,所述装置还包括:
线程分配单元,用于在创建所述虚拟机的磁盘过程中,从线程池中为来自所述虚拟机的IO读写请求分配线程,其中,在所述线程上执行所述读写请求处理装置以处理所述虚拟机的磁盘的所有IO读写请求,所述线程池中包括至少一个线程,所有虚拟机的磁盘的IO读写请求均从所述线程池中分配线程进行处理。
27.根据权利要求26所述的装置,其特征在于,一个虚拟机的磁盘的IO读写请求的所有处理均在一个线程上,一个线程能够同时处理多个虚拟机的磁盘的IO读写请求。
28.根据权利要求26所述的装置,其特征在于,
所述读写请求处理装置中的单元通过事件触发的方式在所述线程上执行,其中,在所述线程上运行有事件循环。
29.根据权利要求19所述的装置,其特征在于,所述存储设备包括以下至少之一:分布式存储设备、本地磁盘阵列RAID存储设备。
30.一种基于虚拟机的读写请求处理装置,其特征在于,包括:
第一接收单元,用于接收读写所述虚拟机上的虚拟磁盘时产生的IO读写请求,其中,所述虚拟机为物理机上部署的任意一个虚拟机;
获取单元,用于获取所述IO读写请求所要请求的数据的映射地址,其中,所述映射地址用于将所述IO读写请求映射至所述物理机中后端存储装置的所述数据;
提交单元,用于按照所述映射地址提交所述IO读写请求至所述物理机中的后端存储装置,得到请求结果;
第二接收单元,用于接收所述后端存储装置处理所述IO读写所产生的请求结果;
返回单元,用于向所述虚拟机返回所述请求结果。
31.一种快速处理读写请求的装置,其特征在于,包括:
接收单元,用于接收读写虚拟机上的虚拟磁盘时产生的IO读写请求,其中,所述虚拟机为物理机上部署的任意一个虚拟机;
获取单元,用于获取所述IO读写请求所要请求的数据的映射地址,其中,所述映射地址用于将所述IO读写请求映射至所述物理机中后端存储装置的所述数据。
CN201610942888.XA 2016-11-01 2016-11-01 读写请求处理方法及装置 Pending CN108008911A (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201610942888.XA CN108008911A (zh) 2016-11-01 2016-11-01 读写请求处理方法及装置
TW106125916A TWI752066B (zh) 2016-11-01 2017-08-01 讀寫請求處理方法及裝置
US15/801,189 US20180121366A1 (en) 2016-11-01 2017-11-01 Read/write request processing method and apparatus
PCT/US2017/059557 WO2018085421A1 (en) 2016-11-01 2017-11-01 Read/write request processing method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610942888.XA CN108008911A (zh) 2016-11-01 2016-11-01 读写请求处理方法及装置

Publications (1)

Publication Number Publication Date
CN108008911A true CN108008911A (zh) 2018-05-08

Family

ID=62021357

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610942888.XA Pending CN108008911A (zh) 2016-11-01 2016-11-01 读写请求处理方法及装置

Country Status (4)

Country Link
US (1) US20180121366A1 (zh)
CN (1) CN108008911A (zh)
TW (1) TWI752066B (zh)
WO (1) WO2018085421A1 (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109375874A (zh) * 2018-09-28 2019-02-22 深信服科技股份有限公司 一种分布式存储的调用方法、装置及设备
CN109582685A (zh) * 2018-12-03 2019-04-05 武芮 一种记录上下文请求执行过程的方法及装置
CN109597712A (zh) * 2018-11-27 2019-04-09 杭州宏杉科技股份有限公司 空间分配方法及装置
CN110221867A (zh) * 2019-05-31 2019-09-10 湖北三江航天万峰科技发展有限公司 一种xp***下脉冲i/o功能卡通信驱动***及方法
CN110688057A (zh) * 2018-07-05 2020-01-14 阿里巴巴集团控股有限公司 一种分布式存储方法及装置
CN110737608A (zh) * 2018-07-03 2020-01-31 阿里巴巴集团控股有限公司 一种数据操作方法、装置及***
CN111367472A (zh) * 2020-02-28 2020-07-03 北京百度网讯科技有限公司 虚拟化方法和装置
CN111367627A (zh) * 2018-12-26 2020-07-03 北京奇虎科技有限公司 一种读写磁盘任务的处理方法和装置
CN112947867A (zh) * 2021-04-06 2021-06-11 苏州菲瑞斯信息技术有限公司 全闪存阵列高性能存储***及电子设备
CN114265558A (zh) * 2021-12-23 2022-04-01 苏州优鲜信网络生活服务科技有限公司 一种具有数据通道的多线程集单***及数据存储装置
CN115098033A (zh) * 2022-07-04 2022-09-23 阿里巴巴(中国)有限公司 操作干扰表的处理方法和装置

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11099789B2 (en) 2018-02-05 2021-08-24 Micron Technology, Inc. Remote direct memory access in multi-tier memory systems
US10782908B2 (en) 2018-02-05 2020-09-22 Micron Technology, Inc. Predictive data orchestration in multi-tier memory systems
US11416395B2 (en) 2018-02-05 2022-08-16 Micron Technology, Inc. Memory virtualization for accessing heterogeneous memory components
US10880401B2 (en) * 2018-02-12 2020-12-29 Micron Technology, Inc. Optimization of data access and communication in memory systems
US10877892B2 (en) 2018-07-11 2020-12-29 Micron Technology, Inc. Predictive paging to accelerate memory access
CN110740099B (zh) * 2018-07-18 2023-03-31 阿里巴巴集团控股有限公司 一种数据流控方法和装置
CN110865769B (zh) * 2018-08-28 2023-06-20 阿里巴巴集团控股有限公司 处理读/写请求的方法、网络存储***及电子设备
CN109344054A (zh) * 2018-09-03 2019-02-15 郑州云海信息技术有限公司 一种软件测试数据统计方法及***
TWI687808B (zh) * 2019-01-25 2020-03-11 睿寬智能科技有限公司 減少寫入效能變化並防止io阻塞的方法
US10852949B2 (en) 2019-04-15 2020-12-01 Micron Technology, Inc. Predictive data pre-fetching in a data storage device
CN112148206A (zh) * 2019-06-28 2020-12-29 北京金山云网络技术有限公司 一种数据读写方法、装置、电子设备及介质
CN110888865A (zh) * 2019-12-04 2020-03-17 北京明略软件***有限公司 一种基于单向链表的数据处理方法及装置
CN111209263A (zh) * 2020-01-14 2020-05-29 中国建设银行股份有限公司 数据存储方法、装置、设备及存储介质
US11012512B1 (en) * 2020-05-20 2021-05-18 EMC IP Holding Company LLC Host device with automated write throttling responsive to storage system write pressure condition
CN113849428A (zh) * 2020-06-28 2021-12-28 华为技术有限公司 共享内存权限配置方法,内存单元和***
CN113849119A (zh) * 2020-08-28 2021-12-28 京东科技控股股份有限公司 存储方法、存储装置和计算机可读存储介质
US11550511B2 (en) 2021-05-21 2023-01-10 EMC IP Holding Company LLC Write pressure throttling based on service level objectives
CN113253938B (zh) * 2021-06-10 2021-11-05 北京世纪好未来教育科技有限公司 数据处理方法、装置、设备、存储介质及计算机程序产品
CN113360287B (zh) * 2021-06-21 2022-09-23 上海哔哩哔哩科技有限公司 数据处理方法及装置
CN113487026B (zh) * 2021-07-05 2024-05-03 江苏号百科技有限公司 一种图计算中io节点高效读取数据的方法及***
US12001679B2 (en) 2022-03-31 2024-06-04 Dell Products L.P. Storage system configured to collaborate with host device to provide fine-grained throttling of input-output operations
US11934659B1 (en) 2022-09-28 2024-03-19 Dell Products L.P. Host background copy process with rate adjustment utilizing input-output processing pressure feedback from storage system
CN115858410B (zh) * 2023-02-16 2023-05-23 浪潮电子信息产业股份有限公司 一种io处理方法、装置、设备及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100275205A1 (en) * 2009-04-28 2010-10-28 Hiroshi Nakajima Computer machine and access control method
US20100299459A1 (en) * 2006-07-20 2010-11-25 Oracle America, Inc. Reflecting bandwidth and priority in network attached storage i/o
US20110239213A1 (en) * 2010-03-25 2011-09-29 Vmware, Inc. Virtualization intermediary/virtual machine guest operating system collaborative scsi path management
CN102467408A (zh) * 2010-11-12 2012-05-23 阿里巴巴集团控股有限公司 一种虚拟机数据的访问方法和设备
CN102541468A (zh) * 2011-12-12 2012-07-04 华中科技大学 虚拟化环境下的脏数据回写***
CN104104705A (zh) * 2013-04-11 2014-10-15 阿里巴巴集团控股有限公司 分布式存储***的接入方法和设备
CN104506540A (zh) * 2014-12-29 2015-04-08 成都致云科技有限公司 虚拟主机的读写请求处理方法及***、宿主机
US20150234617A1 (en) * 2014-02-18 2015-08-20 University Of Florida Research Foundation, Inc. Method and apparatus for virtual machine live storage migration in heterogeneous storage environment

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7577722B1 (en) * 2002-04-05 2009-08-18 Vmware, Inc. Provisioning of computer systems using virtual machines
US8239655B2 (en) * 2010-01-18 2012-08-07 Vmware, Inc. Virtual target addressing during direct data access via VF of IO storage adapter
US9372812B2 (en) * 2011-12-22 2016-06-21 Intel Corporation Determining policy actions for the handling of data read/write extended page table violations
US9245140B2 (en) * 2013-11-15 2016-01-26 Kabushiki Kaisha Toshiba Secure data encryption in shared storage using namespaces
TWI676898B (zh) * 2013-12-09 2019-11-11 安然國際科技有限公司 分散式記憶體磁碟群集儲存系統運作方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100299459A1 (en) * 2006-07-20 2010-11-25 Oracle America, Inc. Reflecting bandwidth and priority in network attached storage i/o
US20100275205A1 (en) * 2009-04-28 2010-10-28 Hiroshi Nakajima Computer machine and access control method
US20110239213A1 (en) * 2010-03-25 2011-09-29 Vmware, Inc. Virtualization intermediary/virtual machine guest operating system collaborative scsi path management
CN102467408A (zh) * 2010-11-12 2012-05-23 阿里巴巴集团控股有限公司 一种虚拟机数据的访问方法和设备
CN102541468A (zh) * 2011-12-12 2012-07-04 华中科技大学 虚拟化环境下的脏数据回写***
CN104104705A (zh) * 2013-04-11 2014-10-15 阿里巴巴集团控股有限公司 分布式存储***的接入方法和设备
US20150234617A1 (en) * 2014-02-18 2015-08-20 University Of Florida Research Foundation, Inc. Method and apparatus for virtual machine live storage migration in heterogeneous storage environment
CN104506540A (zh) * 2014-12-29 2015-04-08 成都致云科技有限公司 虚拟主机的读写请求处理方法及***、宿主机

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
李永忠: "《物联网信息安全》", 31 May 2016, 西安电子科技大学出版社 *

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110737608B (zh) * 2018-07-03 2024-03-15 阿里巴巴集团控股有限公司 一种数据操作方法、装置及***
CN110737608A (zh) * 2018-07-03 2020-01-31 阿里巴巴集团控股有限公司 一种数据操作方法、装置及***
CN110688057B (zh) * 2018-07-05 2023-05-23 阿里巴巴集团控股有限公司 一种分布式存储方法及装置
CN110688057A (zh) * 2018-07-05 2020-01-14 阿里巴巴集团控股有限公司 一种分布式存储方法及装置
CN109375874B (zh) * 2018-09-28 2021-12-21 深信服科技股份有限公司 一种分布式存储的调用方法、装置及设备
CN109375874A (zh) * 2018-09-28 2019-02-22 深信服科技股份有限公司 一种分布式存储的调用方法、装置及设备
CN109597712A (zh) * 2018-11-27 2019-04-09 杭州宏杉科技股份有限公司 空间分配方法及装置
CN109582685B (zh) * 2018-12-03 2023-01-10 武芮 一种记录上下文请求执行过程的方法及装置
CN109582685A (zh) * 2018-12-03 2019-04-05 武芮 一种记录上下文请求执行过程的方法及装置
CN111367627A (zh) * 2018-12-26 2020-07-03 北京奇虎科技有限公司 一种读写磁盘任务的处理方法和装置
CN111367627B (zh) * 2018-12-26 2024-02-13 三六零科技集团有限公司 一种读写磁盘任务的处理方法和装置
CN110221867A (zh) * 2019-05-31 2019-09-10 湖北三江航天万峰科技发展有限公司 一种xp***下脉冲i/o功能卡通信驱动***及方法
CN111367472A (zh) * 2020-02-28 2020-07-03 北京百度网讯科技有限公司 虚拟化方法和装置
CN112947867A (zh) * 2021-04-06 2021-06-11 苏州菲瑞斯信息技术有限公司 全闪存阵列高性能存储***及电子设备
CN114265558A (zh) * 2021-12-23 2022-04-01 苏州优鲜信网络生活服务科技有限公司 一种具有数据通道的多线程集单***及数据存储装置
CN114265558B (zh) * 2021-12-23 2023-06-27 苏州优鲜信网络生活服务科技有限公司 一种具有数据通道的多线程集单***及数据存储装置
CN115098033A (zh) * 2022-07-04 2022-09-23 阿里巴巴(中国)有限公司 操作干扰表的处理方法和装置

Also Published As

Publication number Publication date
US20180121366A1 (en) 2018-05-03
WO2018085421A1 (en) 2018-05-11
TWI752066B (zh) 2022-01-11
TW201818262A (zh) 2018-05-16

Similar Documents

Publication Publication Date Title
CN108008911A (zh) 读写请求处理方法及装置
US20170031699A1 (en) Multiprocessing Within a Storage Array System Executing Controller Firmware Designed for a Uniprocessor Environment
EP3441870B1 (en) Managing function level reset in an io virtualization-enabled storage device
CN108628685A (zh) 用本地BMC在结构上NVMe内分配共享资源的***、设备和方法
US20230214956A1 (en) Resiliency Schemes for Distributed Storage Systems
CN113312143A (zh) 云计算***、命令处理方法及虚拟化仿真装置
CN108829525A (zh) 可信平台遥测机制
CN110647359A (zh) 半导体装置、其操作方法和具有其的层叠存储装置
US11061746B2 (en) Enqueue-related processing based on timing out of an attempted enqueue
US11036404B2 (en) Devices, systems, and methods for reconfiguring storage devices with applications
CN107203408A (zh) 重定向的方法、装置和***
US20160234296A1 (en) Synchronization optimization based upon allocation data
US10852954B1 (en) Running an enterprise storage subsystem as a virtual machine
CN116540952B (zh) 磁盘访问方法及装置、存储介质、电子设备
US11256577B2 (en) Selective snapshot creation using source tagging of input-output operations
EP3388937A1 (en) Local disks erasing mechanism for pooled physical resources
US20240086299A1 (en) Development platform validation with simulation
US12032981B2 (en) Force provisioning using available resources
US12019882B2 (en) Force provisioning virtual objects in degraded stretched clusters
US20220188137A1 (en) Force provisioning using available resources
US20240028363A1 (en) Providing availability of passthrough devices configured on virtual computing instances
CN117311646B (zh) 固态硬盘配置管理方法、装置、计算机设备及存储介质
US20220137998A1 (en) Storage virtualization device supporting virtual machine, operation method thereof, and operation method of system having the same
CN109857521B (zh) 一种主机搬迁方法及装置
US20240086224A1 (en) Workload placement based on datastore connectivity group

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1255171

Country of ref document: HK

RJ01 Rejection of invention patent application after publication

Application publication date: 20180508

RJ01 Rejection of invention patent application after publication