CN115617448A - 包括存储装置及计算装置的虚拟化装置及其操作方法 - Google Patents

包括存储装置及计算装置的虚拟化装置及其操作方法 Download PDF

Info

Publication number
CN115617448A
CN115617448A CN202210829658.8A CN202210829658A CN115617448A CN 115617448 A CN115617448 A CN 115617448A CN 202210829658 A CN202210829658 A CN 202210829658A CN 115617448 A CN115617448 A CN 115617448A
Authority
CN
China
Prior art keywords
address
request
storage
virtualization
computing device
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
CN202210829658.8A
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.)
SNU R&DB Foundation
Original Assignee
SNU R&DB Foundation
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
Priority claimed from KR1020220082341A external-priority patent/KR102532100B1/ko
Application filed by SNU R&DB Foundation filed Critical SNU R&DB Foundation
Publication of CN115617448A publication Critical patent/CN115617448A/zh
Pending legal-status Critical Current

Links

Images

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/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
    • 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
    • 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/4557Distribution of virtual machine instances; Migration and load balancing
    • 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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明提供一种包括存储装置及计算装置的虚拟化装置及其操作方法。根据本公开的实施例的虚拟化装置与运行虚拟机的主机装置进行通信,并且包括计算存储虚拟化CSV(Computational Storage Virtualization)装置、存储装置及计算装置。虚拟化装置的操作方法包括如下步骤:从主机装置接收指示虚拟机的第一地址、存储装置的第二地址和读取操作的第一请求;基于第一请求获取与虚拟机对应的真实机的第三地址和计算装置的第四地址;向存储装置提供指示第二地址、第四地址和重定向的第二请求;基于第二请求向计算装置提供原始数据;向计算装置提供指示第三地址、第四地址和处理操作的第三请求;基于第三请求和原始数据生成经处理的数据;以及向主机装置提供经处理的数据。

Description

包括存储装置及计算装置的虚拟化装置及其操作方法
技术领域
本公开涉及一种虚拟化装置,更具体而言,涉及一种包括存储装置及计算装置的虚拟化装置及其操作方法。
背景技术
存储虚拟化技术为虚拟机提供实际存储装置的资源。虚拟机可以是由软件实现的计算环境,在这种虚拟机上可以安装并运行操作系统或应用。虚拟机可以根据读取请求而读取存储在实际存储装置中的数据,或者根据写入请求而将数据存储在实际存储装置中。
为了有效地管理大容量数据并提高安全性,存储装置可以存储由主机装置的处理器或单独的计算装置压缩或加密的数据,而不是按原样存储从虚拟机接收的数据。如果用于虚拟机的计算技术由软件实现,则主机装置的资源负担可能增加,并且数据处理速度可能降低。可能要求一种减小主机装置的资源负担,确保装置之间的高速数据通信,同时为虚拟机提供计算资源及存储资源的方法。
发明内容
根据本公开的一实施例,提供一种包括存储装置及计算装置的虚拟化装置及其操作方法。
根据本公开的一实施例,虚拟化装置与运行虚拟机的主机装置进行通信,并且包括计算存储虚拟化(CSV:Computational Storage Virtualization)装置、存储装置及计算装置。所述虚拟化装置的操作方法包括如下步骤:借由所述CSV装置,从所述主机装置接收指示所述虚拟机的第一地址、所述存储装置的第二地址和读取操作的第一请求;借由所述CSV装置,基于所述第一请求获取与所述虚拟机对应的真实机的第三地址和所述计算装置的第四地址;借由所述CSV装置,向所述存储装置提供指示所述第二地址、所述第四地址和重定向的第二请求;借由所述存储装置,基于所述第二请求向所述计算装置提供原始数据;借由所述CSV装置,向所述计算装置提供指示所述第三地址、所述第四地址和处理操作的第三请求;借由所述计算装置,基于所述第三请求和所述原始数据生成经处理的数据;以及借由所述计算装置,向所述主机装置提供所述经处理的数据。
根据本公开的一实施例,虚拟化装置与运行虚拟机的主机装置进行通信,并且包括计算存储虚拟化(CSV:Computational Storage Virtualization)装置、存储装置及计算装置。所述虚拟化装置的操作方法包括如下步骤:借由所述CSV装置,从所述主机装置接收指示所述虚拟机的第一地址、所述存储装置的第二地址和读取操作的第一请求;借由所述CSV装置,基于所述第一请求获取与所述虚拟机对应的真实机的第三地址和所述计算装置的第四地址;借由所述CSV装置,向所述计算装置提供指示所述第三地址、所述第四地址和处理操作的第二请求;借由所述计算装置,基于所述第二请求从所述主机装置接收原始数据;借由所述计算装置,基于所述第二请求和所述原始数据生成经处理的数据;借由所述CSV装置,向所述存储装置提供指示所述第二地址、所述第四地址和存储操作的第三请求;借由所述存储装置,基于所述第三请求从所述计算装置接收所述经处理的数据;以及借由所述存储装置,存储所述经处理的数据。
根据本公开的一实施例,虚拟化装置包括:存储装置,被构成为存储第一数据;计算装置,被构成为处理所述第一数据,并处理由主机装置运行的虚拟机的第二数据;计算存储虚拟化(CSV:Computational Storage Virtualization)装置;以及高速串行计算机扩展总线标准(PCIe:Peripheral Component Interconnect express)电路,与所述存储装置、所述计算装置、所述计算存储虚拟化装置和所述主机装置连接。其中,所述CSV装置被构成为:从所述主机装置接收包括所述虚拟机的第一地址和所述存储装置的第二地址的第一请求;获取与所述虚拟机对应的真实机的第三地址和所述计算装置的第四地址;确定所述第一请求是否指示读取操作或写入操作;在确定所述第一请求指示所述读取操作时,向所述存储装置提供指示所述第二地址、所述第四地址和重定向的第二请求,并且向所述计算装置提供指示所述第三地址、所述第四地址和所述第一数据的第一处理操作的第三请求;以及在确定所述第一请求指示所述写入操作时,向所述计算装置提供指示所述第三地址、所述第四地址和所述第二数据的第二处理操作的第四请求,并且向所述存储装置提供指示所述第二地址、所述第四地址和存储操作的第五请求。
根据本公开的一实施例,提供一种包括存储装置及计算装置的虚拟化装置及其操作方法。
并且,提供一种如下的虚拟化装置及其操作方法:通过硬件加速器提供计算资源来减小主机装置的资源负担,基于与虚拟机对应的真实机的地址及计算装置的地址来确保彼此不同的装置之间的直接通信,并且灵活地管理存储资源及计算资源。
附图说明
图1是根据本公开的实施例的存储系统的框图。
图2是根据本公开的一部分实施例而说明图1的存储系统的框图。
图3是根据本公开的一部分实施例而说明图1的存储系统的框图。
图4是说明根据本公开的一部分实施例的命令格式的图。
图5是根据本公开的一部分实施例而说明图4的保留字段的图。
图6是说明根据本公开的一部分实施例的虚拟化装置的操作方法的顺序图。
图7是根据本公开的一部分实施例而说明存储系统的读取操作的图。
图8是根据本公开的一部分实施例而说明存储系统的写入操作的图。
图9是根据本公开的一部分实施例而说明存储系统的装置之间的直接通信的图。
图10是说明根据本公开的一部分实施例的具有灵活的扩展性的存储系统的框图。
图11是说明根据本公开的一部分实施例的存储系统的框图。
图12是说明根据本公开的一部分实施例的存储系统的框图。
图13是根据本公开的一部分实施例而说明虚拟化装置的读取操作的顺序图。
图14是根据本公开的一部分实施例而说明虚拟化装置的写入操作的顺序图。
具体实施方式
以下,将清楚并详细地说明本公开的实施例,使得本公开的技术领域中具有普通知识的人员能够容易地实施本公开的实施例。
参照在详细说明中使用的部或单元(unit)、模块(module)、层(layer)等术语而说明的构成要素及附图中示出的功能块可以以软件或硬件或它们的组合的形态实现。例如,软件可以是机器代码、固件、嵌入式代码和应用软件。例如,硬件可以包括电气回路、电路、处理器、计算机、集成电路、集成电路核心、压力传感器、惯性传感器、微机电系统(MEMS:microelectromechanical system)、无源元件或其组合。
图1是根据本公开的实施例的存储系统的框图。参照图1,存储系统100可以包括主机装置110、计算存储虚拟化(CSV:Computational Storage Virtualization)装置120、存储装置130、计算装置140、输入/输出(I/O:Input/Output)存储器管理单元150和高速串行计算机扩展总线标准(PCIe:Peripheral Component Interconnect express)电路160。
存储系统100可以提供虚拟机(VM:Virtual Machine)。虚拟机VM可以是以软件方式实现的计算环境,在这种虚拟机VM上可以安装并运行操作系统或应用。在一部分实施例中,存储系统100可以是服务器装置。例如,存储系统100可以是为用户提供包括虚拟机VM的云计算环境的服务器装置。
主机装置110可以包括处理器和主机存储器。主机装置110的处理器可以通过执行存储在主机存储器中的指令来运行虚拟机VM。例如,主机装置110的处理器可以实际执行用于在虚拟机VM上运行的操作系统(OS:operating system)及应用等的计算。
主机装置110的处理器可以管理用于虚拟机VM的数据处理的请求(例如,读取请求、写入请求等)。主机存储器可以管理根据虚拟机VM的写入请求而要提供给存储装置130的数据以及根据来自存储装置130的读取请求而要接收的数据。
CSV装置120可以将基于虚拟机VM的虚拟化环境提供给存储装置130和计算装置140。CSV装置120可以无主机装置110的资源管理负担地向虚拟机VM提供存储资源和计算资源。
例如,CSV装置120可以与运行虚拟机VM的主机装置110进行通信。CSV装置120可以与存储装置130和计算装置140进行通信。CSV装置120可以将虚拟机VM的请求改变为可由存储装置130和计算装置140执行的请求。存储装置130和计算装置140可以在CSV装置120的辅助下无主机装置110的资源管理负担地处理虚拟机VM的请求。
在一部分实施例中,CSV装置120可以确保彼此不同的装置之间的直接通信。例如,CSV装置120可以通过PCIe电路160来辅助主机装置110和存储装置130的直接数据通信、主机装置110和计算装置140的直接数据通信以及存储装置130和计算装置140的直接数据通信。直接数据通信也可以称为直接存储器访问(DMA:Direct Memory Access)通信。
在一部分实施例中,CSV装置120可以以硬件加速器实现。例如,CSV装置120可以以现场可编程门阵列(FPGA:Field Programmable Gate Array)实现。FPGA可以是管理用于虚拟机VM的存储资源和计算资源的硬件。
在一部分实施例中,CSV装置120可以灵活地管理存储资源和计算资源。例如,为了无主机装置110的资源管理负担地处理来自多个虚拟机VM的请求,CSV装置120可以向多个存储装置和多个计算装置分配资源。后文中将与图10一起进行对此的详细说明。
存储装置130可以存储数据。例如,存储装置130可以根据虚拟机VM的读取请求来提供数据,或者可以根据虚拟机VM的写入请求来存储数据。存储装置130可以存储由计算装置140处理的数据。
计算装置140可以处理由存储装置130或主机装置110提供的数据。例如,在由虚拟机VM发出读取请求的情况下,存储装置130可以根据CSV装置120的管理而将所存储的原始数据提供给计算装置140,计算装置140可以处理原始数据,并且计算装置140可以将经处理的数据提供给主机装置110。
作为又一示例,在由虚拟机VM发出写入请求的情况下,计算装置140可以根据CSV装置的管理而从主机装置110接收原始数据,计算装置140可以处理原始数据,并且存储装置130可以存储由计算装置140处理的数据。
在一部分实施例中,计算装置140可以执行数据的压缩或加密。例如,在由虚拟机VM发出读取请求的情况下,计算装置140可以从存储装置130接收与读取请求相对应的原始数据,对原始数据进行解压缩或解密,并将解压缩或解密的数据提供给主机装置110。
作为又一示例,在由虚拟机VM发出写入请求的情况下,计算装置140可以从主机装置110接收与写入请求相对应的原始数据,对原始数据进行压缩或加密,并将压缩或加密的数据提供给存储装置130。
在一部分实施例中,计算装置140可以以硬件加速器实现。例如,计算装置140可以以FPGA实现。FPGA可以是提供计算资源的硬件。
I/O存储器管理单元150可以管理虚拟机VM的虚拟地址与对应于虚拟机VM的真实机(即,主机装置110)的真实地址的映射关系。例如,虚拟机VM可以以由主机装置110的处理器运行的软件来实现,并且针对虚拟机VM管理的数据的虚拟地址可以对应于针对存储在主机装置110的主机存储器中的数据的实际地址。I/O存储器管理单元150可以将虚拟地址转换为对应的物理地址,也可以将物理地址转换为对应的虚拟地址。
在一部分实施例中,在CSV装置120包括管理虚拟地址与实际地址之间的映射关系的地址转换表的情况下,可以省略I/O存储器管理单元150。或者,CSV装置120内的地址管理表和I/O存储器管理单元150可以为了管理虚拟地址和实际地址而被一起使用。
PCIe电路160可以与主机装置110、CSV装置120、存储装置130、计算装置140和I/O存储器管理单元150连接。PCIe电路160可以为CSV装置120、存储装置130、计算装置140和I/O存储器管理单元150中的任意组合提供直接接口环境。例如,存储装置130可以通过PCIe电路160与计算装置140进行直接数据通信。
如上所述,根据本公开,CSV装置120向存储装置130和计算装置140提供虚拟化环境。由于CSV装置120实现为单独的硬件而不是软件模块,因此可以减小主机装置110的资源管理负担。CSV装置120可以通过转换来自虚拟机VM的请求来确保与主机装置110、存储装置130和计算装置140中的任意组合的直接通信。
图2是根据本公开的一部分实施例而说明图1的存储系统的框图。参照图1和图2,存储系统100可以分为主机侧和存储侧。存储侧也可以称为虚拟化装置VD。
主机侧可以包括主机装置110和由主机装置110运行的虚拟机VM。主机装置可以包括CSV驱动器。CSV驱动器可以是存储与CSV装置120之间的通信所需的信息的软件。主机装置110可以通过运行CSV驱动器来与CSV装置120进行通信。
存储侧可以包括CSV装置120、存储装置130、计算装置140和I/O存储器管理单元150。
CSV装置120可以与主机装置110进行直接通信,或者可以通过I/O存储器管理单元150进行通信。CSV装置120可以包括单根输入/输出虚拟化(SR-IOV:single root input/output virtualization)适配器121和装置编排器122。
SR-IOV适配器121可以提供与虚拟机VM的接口。SR-IOV适配器121可以使得虚拟机VM能够不经过单独的软件层而访问存储装置130或计算装置140。
装置编排器122可以通过SR-IOV适配器121识别虚拟机VM。装置编排器122可以识别存储装置130和计算装置140。装置编排器122可以分配针对虚拟机VM的存储装置130的存储资源和计算装置140的计算资源。
装置编排器122可以基于由虚拟机VM提供的读取请求来生成要提供给存储装置130的重定向请求和要提供给计算装置140的处理请求。例如,可以通过将由虚拟机VM提供的读取请求的目的地地址改变到计算装置140而不是存储装置130,来实现重定向请求。装置编排器122可以基于由虚拟机VM提供的写入请求来生成要提供给计算装置140的处理请求和要提供给存储装置130的存储请求。
存储装置130可以与CSV装置120和计算装置140进行通信。响应于来自CSV装置120的请求,存储装置130可以通过PCIe电路160直接向计算装置140提供数据,或者直接从计算装置140接收经处理的数据。
计算装置140可以与CSV装置120和存储装置130进行通信。响应于来自CSV装置120的请求,计算装置140可以通过PCIe电路160直接向存储装置130提供经处理的数据,或者直接从存储装置130接收数据。
图3是根据本公开的一部分实施例而说明图1的存储系统的框图。参照图1和图3,存储系统100可以包括主机装置110、CSV装置120、存储装置130、计算装置140、I/O存储器管理单元150和PCIe电路160。
存储系统100可以将虚拟机VM识别为多个虚拟机中的目标虚拟机。存储系统100可以将存储装置130识别为多个存储装置中的目标存储装置。存储系统100可以将计算装置140识别为多个计算装置中的目标计算装置。
为了处理来自多个虚拟机的请求,存储系统100可以灵活地分配多个存储装置的存储资源和多个计算装置的计算资源。当虚拟机的数量、存储装置的数量和计算装置的数量分别增加或减少时,存储系统100可以为改变的虚拟环境重新分配存储资源和计算资源。
主机装置110可以运行虚拟机VM。虚拟机VM可以包括虚拟提交队列(VSQ:VirtualSubmission Queue)和虚拟完成队列(VCQ:Virtual Completion Queue)。VSQ可以是由虚拟机VM请求的命令要写入的存储器。VCQ可以是接收指示写入对应VSQ的命令的处理完毕的完成确认(completion)的存储器。VSQ和VCQ可以具有彼此对应的关系。VSQ和VCQ的虚拟地址可以对应于主机装置110的主机存储器的一部分。
主机装置110可以包括主机存储器。存储装置130可以包括缓冲存储器。计算装置140可以包括缓冲存储器。主机装置110的主机存储器、存储装置130的缓冲存储器和计算装置140的缓冲存储器中的任意组合可以通过PCIe电路160进行直接数据通信。
I/O存储器管理单元150可以与主机装置110和CSV装置120进行通信。I/O存储器管理单元150可以将由主机装置110提供的虚拟地址转换为实际地址,并将实际地址提供给CSV装置120。I/O存储器管理单元150可以将从CSV装置120提供的实际地址转换为虚拟地址,并将虚拟地址提供给主机装置110。在一部分实施例中,在CSV装置120包括管理虚拟地址和实际地址的映射关系的地址转换表的情况下,可以省略I/O存储器管理单元150。
CSV装置120可以包括SR-IOV适配器121和装置编排器122。
SR-IOV适配器121可以与主机装置110和装置编排器122进行通信。SR-IOV适配器121可以包括多个虚拟功能(VF:Virtual Function)。多个VF中的每一个可以对应于多个虚拟机VM。多个VF中的每一个可以提供与对应的虚拟机VM的接口。VF可以使得对应的虚拟机VM能够不经过软件层而通过装置编排器122访问存储装置130和计算装置140。在SR-IOV适配器121内,多个VF中的每一个可以像独立的装置一样操作。VF可以支持向对应的虚拟机VM分配存储资源和计算资源。
装置编排器122可以与SR-IOV适配器121、存储装置130、计算装置140和I/O存储器管理单元150进行通信。装置编排器122可以包括存储接口电路、计算装置接口电路和资源管理器。
存储接口电路可以提供资源管理器和存储装置130之间的接口。存储接口电路可以包括提交队列(SQ:Submission Queue)和完成队列(CQ:Completion Queue)。SQ可以与写入到VSQ的命令相对应,并且可以是要提供给存储装置130的命令将被写入的存储器。CQ可以是接收指示写入到对应SQ的命令的处理完毕的完成确认的存储器。SQ和CQ可以具有彼此对应的关系。
计算装置接口电路可以提供资源管理器与计算装置140之间的接口。
资源管理器可以通过SR-IOV适配器121接收来自虚拟机VM的请求。资源管理器可以通过存储接口与存储装置130进行通信。资源管理器可通过计算装置接口电路与计算装置140进行通信。
资源管理器可以改变来自虚拟机VM的请求的一部分字段,并将其提供给存储装置130或计算装置140。在下文中,将与图4及图5一起进行对改变的字段的更详细的说明。
资源管理器可以管理多个虚拟机VM、多个存储装置及多个计算装置。例如,资源管理器可以参照多个存储装置的索引,以识别多个存储装置中的目标存储装置。资源管理器可以参照多个计算装置的索引来识别多个计算装置中的目标计算装置。资源管理器可以将识别到的存储装置的存储资源和识别到的计算装置的计算资源分配给虚拟机VM。
资源管理器可以管理虚拟机VM与存储装置130之间的映射。例如,虚拟机VM的VSQ和VCQ可以分别对应于存储接口电路的SQ和CQ。要写入VSQ的命令的层可以与要写入SQ的命令的层不同。要写入CQ的完成确认的层可以不同于要写入VCQ的完成确认的层。资源管理器可以获取写入VSQ的命令,改变所获取的命令的层,并将层被改变的命令写入SQ。资源管理器可以获取写入CQ的复杂功能,改变所获取的复杂功能的层,并将层被改变的复杂功能写入VCQ。
在一部分实施例中,资源管理器可以符合非易失性存储器快速(NVMe:Non-Volatile Memory express)标准。例如,资源管理器可以从主机装置110接收通知在VSQ中写入了命令的门铃。资源管理器可以获取写入到VSQ中的命令。资源管理器可以基于获取到的命令而将层被改变的命令写入SQ。资源管理器可以向存储装置130提供门铃。存储装置130可以获取SQ的层被改变的命令。存储装置130可以与计算装置140进行通信以处理命令。
在处理命令之后,存储装置130可以将完成确认写入CQ。存储装置130可以向资源管理器提供中断通知。资源管理器可以获取写入CQ的完成确认,并基于获取到的完成确认将层被改变的完成确认写入VCQ。资源管理器可以向存储装置130提供门铃。资源管理器可以向主机装置110提供中断通知。主机装置110可以处理写入VCQ的完成确认。主机装置110可以向资源管理器提供门铃。
在一部分实施例中,资源管理器可以包括地址转换表。地址转换表可以管理虚拟地址与真实地址的映射关系。资源管理器可以参照地址转换表而将虚拟地址转换为真实地址,或者将真实地址转换为虚拟地址。在此情况下,可以省略I/O存储器管理单元150,或者可以一起使用地址转换表和I/O存储器管理单元150。
在一部分实施例中,资源管理器可以包括内部计算装置(inner-computationaldevice)。内部计算装置可以处理从存储装置130接收的数据,或者可以处理从主机装置110接收的数据。内部计算装置可以执行与计算装置140类似的功能。在此情况下,可以省略计算装置140,或者内部计算装置和计算装置140可以一起使用。下文中将与图11和图12一起对内部计算装置进行更详细的说明。
图4是说明根据本公开的一部分实施例的命令格式的图。参照图1和图4,说明从主机装置110接收的命令的命令格式。
在一部分实施例中,命令格式可以符合NVMe标准。例如,命令格式可以包括“Op”、“标志(Flags)”、“CID”、“命名空间标识符”、“保留字段”、“元数据”、“PRP1”、“PRP2”、“SLBA”、“长度(length)”、“控制(Control)”、“Dsmgmt”、“Appmask”和“Apptag”。
“Op”可指示操纵码(opcode)或操作码(operation code)。例如,“Op”可以指示将由命令处理的操作是读取操作还是写入操作等。
“标志”可以管理持久性存储器区域(persistent memory region)的标志值。
“CID”可以指示命令标识符(command identifier)。命令标识符可以用于将命令与另一命令区分。
“命名空间标识符”可以用于将命名空间与另一命名空间区分。命名空间可以是向文件系统的文件分配名称的空间。
“保留字段”可以指示根据设计而可改变的区域。
“元数据”可以指示说明要根据命令而处理的数据或与该数据相关的信息。
“PRP1”可以指示第一物理区域页面(first physicalregion page)。“PRP2”可以指示第二物理区域页面。第一物理区域页面和第二物理区域页面可以指示用于DMA通信的存储器的地址。
“SLBA”可以指示开始逻辑块地址(start logicalblockaddress)。在多个虚拟机共享一个存储装置的情况下,可以通过“SLBA”向多个虚拟机中的每一个提供不同的偏移值,使得由多个虚拟机使用的地址不重叠。多个虚拟机中的每一个可以参照添加有偏移值的地址。
“长度”可以指示数据块的字节的长度。“控制”可以用于控制数据传输。“Dsmgmt”、“Appmask”及“Apptag”可以是由虚拟机VM或主机装置110的操作系统或文件系统来管理的字段。
根据本公开的一部分实施例,CSV装置120可以通过改变命令的保留字段来生成能够由存储装置130或计算装置140处理的请求。保留字段可以包括根据本公开的实施例而提出的CSV命令。下文中将与图5一起对保留字段进行更详细的说明。
图5是根据本公开的一部分实施例而说明图4的保留字段的图。参照图1、图4和图5,从主机装置110接收的命令的保留字段可以指示存储有CSV命令的位置(例如,存储有主机装置110内的CSV命令所对应的字段的位置)。
CSV命令可以包括运算符链标识符、源地址、目的地地址、源大小、目的地大小、请求标识符、物理装置标识符、类型、直接参数、文件参数、直接参数指针和文件参数指针中的至少一个。
运算符链标识符可以指示要由计算装置140处理的操作的类型。例如,运算符链标识符是要由计算装置140处理的操作,可以指示加密操作、压缩操作或加密及压缩操作。或者,运算符链标识符是要由计算装置140处理的操作,可以指示解密操作、解压缩操作、或者解密及解压缩操作。
源地址可以指示请求经处理的数据的源的位置。目的地地址可以指示接收经处理的数据的目的地的位置。
例如,在由虚拟机VM发出读取请求的情况下,源地址可以指示在将存储装置130中的原始数据重定向到计算装置140之后的计算装置140内的缓冲存储器。目的地地址可以指示为了向虚拟机VM提供由计算装置140处理的数据而运行虚拟机VM的主机装置110的主机存储器。
作为又一示例,在由虚拟机VM发出写入请求的情况下,为了在计算装置140生成经处理的数据之前计算装置140从主机装置110接收原始数据,源地址可以指示运行虚拟机VM的主机装置110的主机存储器。为了在将数据存储在存储装置130之前由计算装置140处理原始数据,目的地地址可以指示计算装置140的缓冲存储器。
在一部分实施例中,存储装置130的缓冲存储器的位置可以由图4的命令的SLBA管理。例如,在由虚拟机VM发出读取请求或写入请求的情况下,图4的主机装置110的命令的SLBA可以指示存储装置130的缓冲存储器。
源大小可以指示根据源地址要发送的数据的大小。
目的地大小可以指示根据目的地地址要发送的数据的大小。
请求标识符可以指示由于请求而指示的操作。例如,请求标识符作为由于请求而指示的操作,可以指示诸如读取操作、写入操作、处理操作、重定向操作、存储操作等操作中的一个。请求标识符可以管理彼此不同的请求之间的依赖性(dependency)。例如,若当前请求的请求标识符和先前请求的请求标识符相同,则存储系统100可以保留当前请求的执行,直到先前请求的处理完成为止。
物理装置标识符可以指示存储装置130的索引和计算装置140的索引。例如,存储系统100可以包括多个存储装置及多个计算装置。存储系统100可以参照物理装置标识符中记载的索引,将存储装置130识别为多个存储装置中的目标存储装置,并且将计算装置140识别为多个计算装置中的目标计算装置。
类型可以指示是否需要访问存储装置130。
直接参数可以指示主机装置110的主机存储器内的存储有在计算装置的处理操作中使用的信息的位置。例如,直接参数可以指示主机存储器的存储有诸如用于压缩、解压缩、加密、解密等处理操作的函数、算法、哈希函数、密钥值等参数的位置。
文件参数可以指示存储装置130内的存储有在计算装置的处理操作中使用的复制信息的位置。例如,文件参数可以指示存储装置130内的诸如压缩、解压缩、加密、解密等处理操作的函数、算法、哈希函数、密钥值等参数被复制的位置。
直接参数指针可以是存储用于发送直接参数的指针的字段。
文件参数指针可以是存储用于发送文件参数的指针的字段。
图6是说明根据本公开的一部分实施例的虚拟化装置的操作方法的顺序图。参照图2和图6,说明操作虚拟化装置VD的方法。
在步骤S110中,虚拟化装置VD可以从运行虚拟机VM的主机装置110接收请求。
在步骤S120中,虚拟化装置VD可以确定步骤S110的请求是否指示计算存储操作。例如,若请求的保留字段存在,则虚拟化装置VD可以确定为指示计算存储操作,若请求的保留字段为空(Null),则虚拟化装置VD可以确定为不指示计算存储操作。在确定为请求指示计算存储操作时,虚拟化装置VD可以执行步骤S130。在确定为请求不指示计算存储操作时,虚拟化装置VD可以执行步骤S170。
在S130步骤中,虚拟化装置VD可以获取与虚拟机VM对应的真实机的地址及计算装置140的地址。对应于虚拟机VM的真实机可以指示主机装置110。
在一部分实施例中,在步骤S130中,虚拟化装置VD可以检查请求的保留字段中是否存在直接参数或文件参数,若存在直接参数或文件参数,则可以读取直接参数或文件参数。
在步骤S140中,虚拟化装置VD可以确定步骤S110的请求是否指示读取操作。若确定为请求指示读取操作,则虚拟化装置VD可以执行步骤S150。若确定为请求不指示读取操作,则虚拟化装置VD可以执行步骤S160。
在步骤S150中,虚拟化装置VD的CSV装置120可以向存储装置130提供读取数据的重定向请求。此时,重定向请求可以指示将存储在存储装置130中的原始数据提供给计算装置140。
在步骤S151中,虚拟化装置VD的CSV装置120可以向计算装置140提供读取数据的处理请求。此时,读取数据的处理请求可以指示计算装置140处理从存储装置130接收的读取数据以及计算装置140向主机装置110提供经处理的读取数据。
重新回到步骤S140,若在步骤S140中确定为请求不指示读取操作,则虚拟化装置可以执行步骤S160。
在步骤S160中,虚拟化装置VD的CSV装置120可以向计算装置140提供写入数据的处理请求。此时,写入数据的处理请求可以指示计算装置140从主机装置110接收写入数据以及计算装置140处理写入数据。
在步骤S161中,虚拟化装置VD的CSV装置120可以向存储装置130提供经处理的写入数据的存储请求。此时,存储请求可以指示存储装置130从计算装置140接收经处理的写入数据以及存储装置130存储经处理的写入数据。
重新回到操作S120,若在步骤S120中确定为请求不指示计算存储操作,则虚拟化装置VD可以执行步骤S170。
在步骤S170中,虚拟化装置VD可以执行一般存储操作。一般存储操作可以指示不伴随计算装置140或CSV装置120内的内部计算装置的压缩、解压缩、加密、解密等的处理操作的一般读取操作或一般写入操作。
图7是根据本公开的一部分实施例而说明存储系统的读取操作的图。参照图1和图7,存储系统100可以包括运行虚拟机VM的主机装置110、CSV装置120、存储装置130、计算装置140和PCIe电路160。
根据本公开的一部分实施例,存储系统100可以执行基于来自虚拟机VM的请求的读取操作。读取操作可以包括第一操作①至第七操作⑦。
在第一操作①中,运行虚拟机VM的主机装置110可以向CSV装置120提供指示第一地址ADD1、第二地址ADD2和读取操作的第一请求RQ1。读取操作可以指示读取存储在存储装置130中的原始数据RDT。第一地址ADD1可以指示虚拟机VM的虚拟地址。第二地址ADD2可以指示原始数据RDT在存储装置130存储器储的位置。
在第二操作②中,CSV装置120可以基于第一请求RQ1获取第三地址ADD3和第四地址ADD4。第三地址ADD3可以指示对应于虚拟机VM的真实机的位置(即,主机装置110的主机存储器内的位置)。第四地址ADD4可以指示将要处理存储装置130的原始数据RDT的计算装置140的缓冲存储器内的位置。
在第三操作③中,CSV装置120可以向存储装置130提供指示第二地址ADD2、第四地址ADD4和重定向的第二请求RQ2。重定向可以指示通过PCIe电路系统160将存储在存储装置130中的数据提供给计算装置140。
在第四操作④中,存储装置130可以基于第二请求RQ2向计算装置140提供原始数据RDT。例如,存储装置130可以基于第二请求RQ2的第二地址ADD2和第四地址ADD4而通过PCIe电路160执行针对计算装置140的DMA通信。在向计算装置140提供原始数据RDT之后,存储装置130可以向CSV装置120提供完成确认,从而向CSV装置120通知第二请求RQ2已经被处理。
在第五操作⑤中,CSV装置120可以向计算装置140提供指示第三地址ADD3、第四地址ADD4和处理操作的第三请求RQ3。处理操作可以指示由计算装置140处理(例如,解压缩、解密等)原始数据RDT。
在第六操作⑥中,计算装置140可以基于第三请求RQ3处理原始数据RDT来生成经处理的数据PDT。经处理的数据PDT可以是经解压缩的数据或经解密的数据。
在第七操作⑦中,计算装置140可以基于第三请求RQ3而向主机装置110提供经处理的数据PDT。例如,计算装置140可以基于第三请求RQ3的第三地址ADD3和第四地址ADD4来通过PCIe电路160执行针对主机装置110的DMA通信。在向主机装置110提供经处理的数据PDT之后,计算装置140可以向CSV装置120提供完成通知(done notification)。CSV装置120可以响应于完成通知,发布用于虚拟机VM的完成确认。
图8是根据本公开的一部分实施例而说明存储系统的写入操作的图。参照图1和图8,存储系统100可以包括运行虚拟机VM的主机装置110、CSV装置120、存储装置130、计算装置140和PCIe电路160。
根据本公开的一部分实施例,存储系统100可以执行基于来自虚拟机VM的请求的写入操作。写入操作可以包括第一操作①至第八操作⑧。
在第一操作①中,运行虚拟机VM的主机装置110可以向CSV装置120提供指示第一地址ADD1、第二地址ADD2和写入操作的第一请求RQ1。写入操作可以指示将与虚拟机VM的虚拟地址对应的原始数据RDT写入存储装置130。第一地址ADD1可以指示虚拟机VM的虚拟地址。第二地址ADD2可以指示与原始数据RDT对应的经处理的数据PDT将存储在存储装置130内的位置。
在第二操作②中,CSV装置120可以基于第一请求RQ1获取第三地址ADD3和第四地址ADD4。第三地址ADD3可以指示对应于虚拟机VM的真实机的位置(即,主机装置110的主机存储器内的位置)。第四地址ADD4可以指示将要处理虚拟机VM的原始数据RDT的计算装置140的缓冲存储器内的位置。
在第三操作③中,CSV装置120可以向计算装置140提供指示第三地址ADD3、第四地址ADD4和处理操作的第二请求RQ2。处理操作可以指示计算装置140从主机装置110接收原始数据RDT以及计算装置140处理(例如,压缩、加密等)原始数据RDT。
在第四操作④中,计算装置140可以基于第二请求RQ2从主机装置110接收原始数据RDT。例如,计算装置140可以基于第二请求RQ2的第三地址ADD3和第四地址ADD4来通过PCIe电路160执行针对主机装置110的DMA通信。
在第五操作⑤中,计算装置140可以基于第二请求RQ2处理原始数据RDT来生成经处理的数据PDT。经处理的数据PDT可以是压缩的数据或加密的数据。在生成经处理的数据PDT之后,计算装置140可以向CSV装置120提供完成通知。
在第六操作⑥中,CSV装置120可以向存储装置130提供指示第二地址ADD2、第四地址ADD4和存储操作的第三请求RQ3。存储操作可以指示存储装置130从计算装置140接收经处理的数据PDT以及存储装置130存储经处理的数据PDT。
在第七操作⑦中,存储装置130可以基于第三请求RQ3从计算装置140接收经处理的数据PDT。例如,存储装置130可以基于第三请求RQ3的第二地址ADD2和第四地址ADD4来通过PCIe电路160执行针对计算装置140的DMA通信。
在第八操作⑧中,存储装置130可以存储基于第三请求RQ3而经处理的数据PDT。在存储经处理的数据PDT之后,存储装置130可以向CSV装置120提供完成确认。CSV装置120可以基于从存储装置130接收的完成确认来向虚拟机VM提供完成确认。
图9是根据本公开的一部分实施例而说明存储系统的装置之间的直接通信的图。参照图9,存储系统100可以包括主机装置110、CSV装置120、存储装置130、计算装置140和PCIe电路160。
主机装置110、存储装置130和计算装置140中的任意组合可以通过PCIe通信而直接进行数据通信(即,执行DMA通信)。为了帮助理解本公开,图9说明了计算装置140作为源而向主机装置110或存储装置130提供经处理的数据PDT的操作,但是主机装置110和存储装置130也可以与后述的内容类似地作为源而操作。
CSV装置120可以向计算装置140提供源地址和目的地地址。源地址可以是指示计算装置140的缓冲存储器的位置的第四地址ADD4。目的地地址可以指示能够通过PCIe电路160与计算装置140进行通信的主机装置110或存储装置130。
例如,范围“0~1023”的地址可以是与主机装置110对应的第三地址ADD3。在CSV装置120将范围“0~1023”的地址作为目的地地址而提供给计算装置140的情况下,计算装置140可以参照目的地地址而通过PCIe电路160向主机装置110直接提供经处理的数据PDT。
作为又一示例,范围“1024~2047”的地址可以是与存储装置130对应的第二地址ADD2。在CSV装置120将范围“1024~2047”的地址作为目的地地址而提供给计算装置140的情况下,计算装置140可以参照目的地地址而通过PCIe电路160向存储装置130直接提供经处理的数据PDT。
图10是说明根据本公开的一部分实施例的具有灵活的扩展性的存储系统的框图。参照图10,存储系统100可以管理多个虚拟机、多个存储装置和多个计算装置之间的资源分配。
存储系统100可以包括虚拟机组、存储装置组、计算装置组、SR-IOV适配器121和装置编排器122。
虚拟机组可以包括第一虚拟机VM_1至第N虚拟机VM_N。存储装置组可以包括第一存储装置130_1至第M存储装置130_M。计算装置组可以包括第一计算装置140_1至第L计算装置140_L。其中,N、M和L是任意的正整数。
SR-IOV适配器121可以与虚拟机组进行通信。SR-IOV适配器121可以包括多个VF。多个VF可以提供第一虚拟机VM_1至第N虚拟机VM_N与资源管理器之间的接口。
存储接口电路可以与存储装置组进行通信。存储接口电路可以提供第一存储装置130_1至第M存储装置130_M与资源管理器之间的接口。
计算装置接口电路可以与计算装置组进行通信。计算装置接口电路可以提供第一计算装置140_1至第L计算装置140_L及资源管理器之间的接口。
资源管理器可以管理虚拟机组、存储装置组和计算装置组之间的资源分配。例如,资源管理器可以向第一虚拟机VM_1分配第一存储装置130_1和第一计算装置140_1。或者,资源管理器可以向第一虚拟机VM_1分配第一存储装置130_1和第二存储装置130_2以及第一计算装置140_1和第二计算装置140_2。
在虚拟机的数量增加或减少的情况下,或者在存储装置的数量增加或减少的情况下,或者在计算装置的数量增加或减少的情况下,资源管理器可以根据改变的虚拟化环境而向虚拟机灵活地分配存储资源和计算资源。
在存储资源或计算资源不足的情况下,通过对图1的PCIe电路160添加另一存储装置或另一计算装置,可以灵活地扩展存储资源或计算资源。
图11是说明根据本公开的一部分实施例的存储系统的框图。参照图11,说明根据本公开的一部分实施例的存储系统200。
存储系统200可以管理来自虚拟机VM的请求。存储系统200可以包括主机装置210、CSV装置220、存储装置230和I/O存储器管理单元250。CSV装置220可以包括SR-IOV适配器221和装置编排器222。
虚拟机VM、主机装置210、SR-IOV适配器221、存储装置230和I/O存储器管理单元250的特征与图3的虚拟机VM、主机装置110、SR-IOV适配器121、存储装置130和I/O存储器管理单元150的特征类似,因此省略对此的详细说明。
装置编排器222可以包括资源管理器、存储接口电路和内部计算装置。内部计算装置可以包括加速器和缓冲存储器。加速器可以提供计算资源。例如,加速器可以执行诸如压缩、解压缩、加密、解密等操作。内部计算装置的缓冲存储器可以通过PCIe电路直接与存储装置230的缓冲存储器和主机装置210的主机存储器进行通信。资源管理器可以向虚拟机VM分配存储装置230的存储资源和内部计算装置的计算资源。即,内部计算装置可以执行与图3的计算装置140类似的功能。
在一部分实施例中,CSV装置220可以以硬件加速器实现。例如,CSV装置220可以以FPGA实现。FPGA可以是提供计算资源并管理用于虚拟机VM的存储资源和计算资源的硬件。
图12是说明根据本公开的一部分实施例的存储系统的框图。参照图12,说明根据本公开的一部分实施例的存储系统300。存储系统300可以管理来自虚拟机VM的请求。存储系统300可以包括主机装置310、CSV装置320、存储装置330、计算装置340和I/O存储器管理单元350。CSV装置320可以包括SR-IOV适配器321和装置编排器322。
虚拟机VM、主机装置310、SR-IOV适配器321、存储装置330、计算装置340和I/O存储器管理单元350的特征与图3中的虚拟机VM、主机装置110、SR-IOV适配器121、存储装置130、计算装置140和I/O存储器管理单元150的特征类似,因此省略对此的详细说明。
装置编排器322可以包括资源管理器、内部计算装置、存储接口电路和计算装置接口电路。
内部计算装置可以包括加速器和缓冲存储器。加速器可以提供计算资源。计算装置340可以提供计算资源。资源管理器可以通过综合管理内部计算装置和计算装置340来向虚拟机VM分配计算资源。
图13是根据本公开的一部分实施例而说明虚拟化装置的读取操作的顺序图。参照图13,说明虚拟化装置VD的读取操作。虚拟化装置VD可以与运行虚拟机的主机装置110进行通信。虚拟化装置VD可以包括CSV装置120、存储装置130和计算装置140。
在步骤S210中,虚拟化装置VD可以通过CSV装置120从主机装置110接收指示第一地址ADD1、第二地址ADD2和读取操作的第一请求RQ1。第一地址ADD1可以指示由主机装置110运行的虚拟机的虚拟地址。第二地址ADD2可以指示存储有与读取操作对应的原始数据的存储装置130内的位置。
在步骤S220中,虚拟化装置VD可以通过CSV装置120从第一地址ADD1获取第三地址ADD3。第一地址ADD1可以是虚拟机的虚拟地址。第三地址ADD3可以是与虚拟机对应的真实机(即,主机装置110)的地址。CSV装置120可以参照所包括的地址转换表从第一地址ADD1获取第三地址ADD3。或者,虚拟化装置VD可以进一步包括I/O存储器管理单元,并且CSV装置120可以从I/O存储器管理单元接收与第一地址ADD1对应的第三地址ADD3。
在步骤S221中,虚拟化装置VD可以通过CSV装置120指定(designate)指示计算装置140的缓冲存储器的位置的第四地址ADD4。例如,CSV装置120可以识别计算装置140,并且向虚拟机VM分配计算装置140的计算资源。
在步骤S230中,虚拟化装置VD可以通过CSV装置120向存储装置130提供指示第二地址ADD2、第四地址ADD4和重定向的第二请求RQ2。重定向可以指示存储装置130向计算装置140提供原始数据。
在步骤S240中,虚拟化装置VD可以通过存储装置130基于第二请求RQ2向计算装置140提供原始数据。原始数据可以是压缩的数据或加密的数据。
在步骤S241中,虚拟化装置VD可以在通过存储装置130处理原始数据之后向CSV装置120提供第一完成确认COMP1。第一完成确认可以被写入CSV装置120的CQ。
在步骤S250中,响应于第一完成确认COMP1,虚拟化装置VD可以由CSV装置120向计算装置140提供指示第三地址ADD3、第四地址ADD4和处理操作的第三请求RQ3。处理操作可以指示计算装置140处理原始数据以及计算装置140向主机装置110提供经处理的数据。
在S260步骤中,虚拟化装置VD可以通过计算装置140处理原始数据。例如,计算装置140可以通过对原始数据进行解压缩或解密来生成经处理的数据。经处理的数据可以是经解压缩的数据或经解密的数据。
在操作S270中,虚拟化装置VD可以通过计算装置140将基于第三请求RQ3处理的数据提供到主机装置110。
在步骤S280中,虚拟化装置VD可以通过计算装置140向CSV装置120提供完成通知。
在步骤S281中,虚拟化装置VD可以借由CSV装置120而响应于完成通知向主机装置110提供第二完成确认COMP2。第二完成确认COMP2可以被写入虚拟机VM的VCQ。
图14是根据本公开的一部分实施例而说明虚拟化装置的写入操作的顺序图。参照图14,说明虚拟化装置VD的写入操作。虚拟化装置VD可以与运行虚拟机的主机装置110进行通信。虚拟化装置VD可以包括CSV装置120、存储装置130和计算装置140。
在步骤S310中,虚拟化装置VD可以通过CSV装置120从主机装置110接收指示第一地址ADD1、第二地址ADD2和写入操作的第一请求RQ1。第一地址ADD1可以指示由主机装置110运行的虚拟机的虚拟地址。第二地址ADD2可以指示对与写入操作对应的原始数据进行处理后将要在存储装置130中存储经处理的数据的位置。
在步骤S320中,虚拟化装置VD可以通过CSV装置120从第一地址ADD1获取第三地址ADD3。第一地址ADD1可以是虚拟机的虚拟地址。第三地址ADD3可以是与虚拟机对应的真实机(即,主机装置110)的地址。CSV装置120可以参照所包括的地址转换表从第一地址ADD1获取第三地址ADD3。或者,虚拟化装置VD可以进一步包括I/O存储器管理单元,并且CSV装置120可以从I/O存储器管理单元接收与第一地址ADD1对应的第三地址ADD3。
在步骤S321中,虚拟化装置VD可以通过CSV装置120指定指示计算装置140的缓冲存储器的位置的第四地址ADD4。例如,CSV装置120可以识别计算装置140,并且向虚拟机VM分配计算装置140的计算资源。
在步骤S330中,虚拟化装置VD可以通过CSV装置120向计算装置140提供指示第三地址ADD3、第四地址ADD4和处理操作的第二请求RQ2。处理操作可以指示计算装置140从主机装置110接收原始数据以及计算装置140处理原始数据。
在步骤S340中,虚拟化装置VD可以通过计算装置140基于第二请求RQ2从主机装置110接收原始数据。原始数据可以是未压缩的数据或未加密的数据。
在S350步骤中,虚拟化装置VD可以通过计算装置140处理原始数据。例如,计算装置140可以通过对原始数据进行压缩或加密来生成经处理的数据。经处理的数据可以是经压缩的数据或经加密的数据。
在步骤S351中,虚拟化装置VD可以通过计算装置140向CSV装置120提供完成通知。
在步骤S360中,虚拟化装置VD可以通过CSV装置120而响应于完成通知向存储装置130提供指示第二地址ADD2、第四地址ADD4和存储操作的第三请求RQ3。
在步骤S370中,虚拟化装置VD可以通过存储装置130基于第三请求RQ3从计算装置140接收经处理的数据。
在操作S380中,虚拟化装置VD可以由存储装置130存储经处理的数据。
在步骤S390中,在由存储装置130存储经处理的数据之后,虚拟化装置VD向CSV装置120提供第一完成确认COMP1。第一完成确认可以写入CSV装置120的CQ。
在步骤S391中,虚拟化装置VD可以通过CSV装置120而响应于第一完成确认COMP1向主机装置110提供第二完成确认COMP2。第二完成确认COMP2可以被写入虚拟机VM的VCQ。
上述内容是用于实施本发明的具体实施例。本发明不仅包括上述的实施例,还包括能够简单地进行设计变更或容易地进行变更的实施例。并且,本发明还包括可利用实施例来容易地变形实施的技术。因此,本发明的范围不应局限于上述实施例,而应由权利要求及其等同物限定。

Claims (20)

1.一种虚拟化装置的操作方法,所述虚拟化装置与运行虚拟机的主机装置进行通信,并且包括计算存储虚拟化装置、存储装置及计算装置,所述虚拟化装置的操作方法包括如下步骤:
借由所述计算存储虚拟化装置而从所述主机装置接收指示所述虚拟机的第一地址、所述存储装置的第二地址和读取操作的第一请求;
借由所述计算存储虚拟化装置而基于所述第一请求获取与所述虚拟机对应的真实机的第三地址和所述计算装置的第四地址;
借由所述计算存储虚拟化装置而向所述存储装置提供指示所述第二地址、所述第四地址和重定向的第二请求;
借由所述存储装置而基于所述第二请求向所述计算装置提供原始数据;
借由所述计算存储虚拟化装置而向所述计算装置提供指示所述第三地址、所述第四地址和处理操作的第三请求;
借由所述计算装置而基于所述第三请求和所述原始数据生成经处理的数据;以及
借由所述计算装置而向所述主机装置提供所述经处理的数据。
2.根据权利要求1所述的虚拟化装置的操作方法,其中,
所述虚拟化装置还包括:高速串行计算机扩展总线标准电路,与所述主机装置、所述计算存储虚拟化装置、所述存储装置和所述计算装置连接,
借由所述存储装置而基于所述第二请求向所述计算装置提供原始数据的步骤包括如下步骤:
借由所述存储装置,基于所述第二请求的所述第四地址,通过所述高速串行计算机扩展总线标准电路向所述计算装置直接提供所述原始数据,
其中,借由所述计算装置而向所述主机装置提供所述经处理的数据的步骤包括如下步骤:
借由所述计算装置,基于所述第三请求的所述第三地址,通过所述高速串行计算机扩展总线标准电路向所述主机装置直接提供所述经处理的数据。
3.根据权利要求1所述的虚拟化装置的操作方法,其中,
所述第一请求、所述第二请求和所述第三请求中的每一个通过改变非易失性存储器快速标准的命令格式的保留字段来实现。
4.根据权利要求3所述的虚拟化装置的操作方法,其中,
所述保留字段指示如下项目中的至少一个:
运算符链标识符,指示所述计算装置的所述处理操作的类型;
源地址,指示请求所述经处理的数据的源的位置;
目的地地址,指示接收所述经处理的数据的目的地的位置;
源大小,指示根据所述源地址要发送的数据的大小;
目的地大小,指示根据所述目的地地址要传输的数据的大小;
请求标识符,管理指示相同类型的操作的彼此不同的请求之间的依赖性;
物理装置标识符,指示所述存储装置的索引和所述计算装置的索引;
类型,指示是否需要访问所述存储装置;
直接参数,指示所述主机装置内的存储有在所述计算装置的所述处理操作中使用的信息的位置;
文件参数,指示所述存储装置内的存储有在所述计算装置的所述处理操作中使用的复制信息的位置;
直接参数指针,用于发送所述直接参数;以及
文件参数指针,用于发送所述文件参数。
5.根据权利要求1所述的虚拟化装置的操作方法,其中,
所述存储装置内的所述原始数据是经压缩的数据或经加密的数据,
借由所述计算装置的所述经处理的数据是经解压缩的数据或经解密的数据。
6.根据权利要求1所述的虚拟化装置的操作方法,其中,
借由所述计算存储虚拟化装置而基于所述第一请求获取与所述虚拟机对应的真实机的所述第三地址和所述计算装置的所述第四地址的步骤包括如下步骤:
借由所述计算存储虚拟化装置,参照所述第一请求的保留字段来确定所述第一请求是否指示计算存储操作;以及
借由所述计算存储虚拟化装置,在确定所述第一请求指示所述计算存储操作时获取所述第三地址和所述第四地址。
7.根据权利要求1所述的虚拟化装置的操作方法,其中,
借由所述存储装置而基于所述第二请求向所述计算装置提供原始数据的步骤包括如下步骤:
借由所述存储装置,在提供所述原始数据之后向所述计算存储虚拟化装置提供第一完成确认,
其中,借由所述计算存储虚拟化装置而向所述计算装置提供指示所述第三地址、所述第四地址和处理操作的第三请求的步骤包括如下步骤:
借由所述计算存储虚拟化装置,响应于所述第一完成确认,向所述计算装置提供所述第三请求,
其中,借由所述计算装置而向所述主机装置提供所述经处理的数据的步骤包括如下步骤:
借由所述计算装置,在提供所述经处理的数据之后向所述计算存储虚拟化装置提供完成通知;以及
借由所述计算存储虚拟化装置,响应于所述完成通知而向所述主机装置提供第二完成确认。
8.根据权利要求1所述的虚拟化装置的操作方法,其中,
借由所述计算存储虚拟化装置而基于所述第一请求获取与所述虚拟机对应的真实机的第三地址和所述计算装置的第四地址的步骤包括如下步骤:
借由所述计算存储虚拟化装置,参照所述计算存储虚拟化装置内的地址转换表而基于所述第一地址获取所述第三地址。
9.根据权利要求1所述的虚拟化装置的操作方法,其中,
所述虚拟化装置还包括:输入/输出存储器管理单元,与所述主机装置和所述计算存储虚拟化装置进行通信,
其中,借由所述计算存储虚拟化装置而基于所述第一请求获取与所述虚拟机对应的真实机的第三地址和所述计算装置的第四地址的步骤包括如下步骤:
借由所述输入/输出存储器管理单元,基于所述第一请求将所述第一地址转换为所述第三地址;以及
借由所述计算存储虚拟化装置,从所述输入/输出存储器管理单元接收所述第三地址。
10.根据权利要求1所述的虚拟化装置的操作方法,其中,
所述虚拟化装置被构成为,将所述虚拟机识别为多个虚拟机中的目标虚拟机,将所述存储装置识别为多个存储装置中的目标存储装置,并且将所述计算装置识别为多个计算装置中的目标计算装置。
11.根据权利要求1所述的虚拟化装置的操作方法,其中,
所述计算存储虚拟化装置以第一现场可编程门阵列实现,
所述计算装置以第二现场可编程门阵列实现。
12.根据权利要求1所述的虚拟化装置的操作方法,其中,
所述计算装置以所述计算存储虚拟化装置的内部计算装置实现。
13.一种虚拟化装置的操作方法,所述虚拟化装置与运行虚拟机的主机装置进行通信,并且包括计算存储虚拟化装置、存储装置及计算装置,所述虚拟化装置的操作方法包括如下步骤:
借由所述计算存储虚拟化装置而从所述主机装置接收指示所述虚拟机的第一地址、所述存储装置的第二地址和读取操作的第一请求;
借由所述计算存储虚拟化装置而基于所述第一请求获取与所述虚拟机对应的真实机的第三地址和所述计算装置的第四地址;
借由所述计算存储虚拟化装置而向所述计算装置提供指示所述第三地址、所述第四地址和处理操作的第二请求;
借由所述计算装置而基于所述第二请求从所述主机装置接收原始数据;
借由所述计算装置,基于所述第二请求和所述原始数据生成经处理的数据;
借由所述计算存储虚拟化装置而向所述存储装置提供指示所述第二地址、所述第四地址和存储操作的第三请求;
借由所述存储装置而基于所述第三请求从所述计算装置接收所述经处理的数据;以及
借由所述存储装置而存储所述经处理的数据。
14.根据权利要求13所述的虚拟化装置的操作方法,其中,
所述虚拟化装置还包括:高速串行计算机扩展总线标准电路,与所述主机装置、所述计算存储虚拟化装置、所述存储装置和所述计算装置连接,
其中,借由所述计算装置而基于所述第二请求从所述主机装置接收所述原始数据的步骤包括如下步骤:
借由所述计算装置,基于所述第二请求的所述第三地址,通过所述高速串行计算机扩展总线标准电路从所述主机装置直接接收所述原始数据,
其中,借由所述存储装置而基于所述第三请求从所述计算装置接收所述经处理的数据的步骤包括如下步骤:
借由所述存储装置,基于所述第三请求的所述第四地址,通过所述高速串行计算机扩展总线标准电路从所述计算装置直接接收所述经处理的数据。
15.根据权利要求13所述的虚拟化装置的操作方法,其中,
所述第一请求、所述第二请求和所述第三请求中的每一个通过改变非易失性存储器快速标准的命令格式的保留字段来实现。
16.根据权利要求15所述的虚拟化装置的操作方法,其中,
所述保留字段指示如下中的至少一个:
运算符链标识符,指示所述计算装置的所述处理操作的类型;
源地址,指示请求所述经处理的数据的源的位置;
目的地地址,指示接收所述经处理的数据的目的地的位置;
源大小,指示根据所述源地址要发送的数据的大小;
目的地大小,指示根据所述目的地地址要传输的数据的大小;
请求标识符,管理指示相同类型的操作的彼此不同的请求之间的依赖性;
物理装置标识符,指示所述计算存储虚拟化装置的索引、所述存储装置的索引和所述计算装置的索引;
类型,指示是否需要访问所述存储装置;
直接参数,指示所述主机装置内的存储有在所述计算装置的所述处理操作中使用的信息的位置;
文件参数,指示所述存储装置内的存储有在所述计算装置的所述处理操作中使用的复制信息的位置;
直接参数指针,用于发送所述直接参数;以及
文件参数指针,用于发送所述文件参数。
17.根据权利要求13所述的虚拟化装置的操作方法,其中,
所述主机装置的原始数据是未压缩的数据或未加密的数据,
借由所述计算装置的所述经处理的数据是经压缩的数据或经加密的数据。
18.根据权利要求13所述的虚拟化装置的操作方法,其中,
借由所述计算装置而基于所述第二请求和所述原始数据生成经处理的数据的步骤包括如下步骤:
借由所述计算装置,在生成所述经处理的数据之后,向所述计算存储虚拟化装置提供完成通知,
其中,借由所述计算存储虚拟化装置而向所述存储装置提供指示所述第二地址、所述第四地址和所述存储操作的第三请求的步骤包括如下步骤:
借由所述计算存储虚拟化装置,响应于所述完成通知,向所述存储装置提供所述第三请求,
借由所述存储装置而存储所述经处理的数据的步骤包括如下步骤:
借由所述存储装置,在存储所述经处理的数据之后,向所述计算存储虚拟化装置提供第一完成确认;以及
借由所述计算存储虚拟化装置,响应于所述第一完成确认,向所述主机装置提供第二完成确认。
19.一种虚拟化装置,包括:
存储装置,被构成为存储第一数据;
计算装置,被构成为处理所述第一数据,并处理由主机装置运行的虚拟机的第二数据;
计算存储虚拟化装置;以及
高速串行计算机扩展总线标准电路,与所述存储装置、所述计算装置、所述计算存储虚拟化装置和所述主机装置连接,
其中,所述计算存储虚拟化装置被构成为:
从所述主机装置接收包括所述虚拟机的第一地址和所述存储装置的第二地址的第一请求;
获取与所述虚拟机对应的真实机的第三地址和所述计算装置的第四地址;
确定所述第一请求是否指示读取操作或写入操作;
在确定所述第一请求指示所述读取操作时,向所述存储装置提供指示所述第二地址、所述第四地址和重定向的第二请求,并且向所述计算装置提供指示所述第三地址、所述第四地址和所述第一数据的第一处理操作的第三请求;以及
在确定所述第一请求指示所述写入操作时,向所述计算装置提供指示所述第三地址、所述第四地址和所述第二数据的第二处理操作的第四请求,并且向所述存储装置提供指示所述第二地址、所述第四地址和存储操作的第五请求。
20.根据权利要求19所述的虚拟化装置,其中,
所述计算存储虚拟化装置包括:
单根输入/输出虚拟化适配器,包括提供与所述虚拟机的接口的虚拟功能;以及
装置编排器,构成为通过所述虚拟功能识别所述虚拟机,为所述虚拟机分配所述存储装置的资源和所述计算装置的资源,基于所述第一请求获取所述第三地址和所述第四地址,并且基于所述第一请求生成所述第二请求和所述第三请求或基于所述第一请求生成所述第四请求和所述第五请求。
CN202210829658.8A 2021-07-14 2022-07-14 包括存储装置及计算装置的虚拟化装置及其操作方法 Pending CN115617448A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR10-2021-0092432 2021-07-14
KR20210092432 2021-07-14
KR1020220082341A KR102532100B1 (ko) 2021-07-14 2022-07-05 스토리지 장치 및 연산 장치를 포함하는 가상화 장치, 및 이의 동작하는 방법
KR10-2022-0082341 2022-07-05

Publications (1)

Publication Number Publication Date
CN115617448A true CN115617448A (zh) 2023-01-17

Family

ID=84856845

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210829658.8A Pending CN115617448A (zh) 2021-07-14 2022-07-14 包括存储装置及计算装置的虚拟化装置及其操作方法

Country Status (2)

Country Link
US (1) US20230016692A1 (zh)
CN (1) CN115617448A (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109634720B (zh) * 2018-12-13 2021-11-19 郑州云海信息技术有限公司 一种多虚拟机共享fpga板卡的方法、系统及装置

Also Published As

Publication number Publication date
US20230016692A1 (en) 2023-01-19

Similar Documents

Publication Publication Date Title
US10963393B1 (en) Storage system and a method for application aware processing
US20220164104A1 (en) Virtualizing non-volatile storage at a peripheral device
US9665534B2 (en) Memory deduplication support for remote direct memory access (RDMA)
US10380048B2 (en) Suspend and resume in a time shared coprocessor
US10860380B1 (en) Peripheral device for accelerating virtual computing resource deployment
GB2510348A (en) Data transmissions using RDMA, data structures and fingerprints of the data structures
US20210336994A1 (en) Attestation support for elastic cloud computing environments
CN111797437A (zh) 超安全加速器
US11907120B2 (en) Computing device for transceiving information via plurality of buses, and operating method of the computing device
CN115617448A (zh) 包括存储装置及计算装置的虚拟化装置及其操作方法
CN117349870B (zh) 基于异构计算的透明加解密计算系统、方法、设备和介质
KR20230000941A (ko) 가상 머신의 라이브 마이그레이션을 위한 erdma(encrypted remote direct memory access)를 지원하기 위한 회로 및 방법들
US10445012B2 (en) System and methods for in-storage on-demand data decompression
US11281602B1 (en) System and method to pipeline, compound, and chain multiple data transfer and offload operations in a smart data accelerator interface device
US9135043B1 (en) Interface for enabling an application in a virtual machine to access high performance devices
US11966335B2 (en) Hardware interconnect with memory coherence
KR102532100B1 (ko) 스토리지 장치 및 연산 장치를 포함하는 가상화 장치, 및 이의 동작하는 방법
US20220335109A1 (en) On-demand paging support for confidential computing
US20230032236A1 (en) Data streaming accelerator
CN114647858A (zh) 使用聚合密码引擎的存储加密
US20240192870A1 (en) Data transform acceleration
GB2519578A (en) Managing data transfer
US20240193178A1 (en) Data transform acceleration using metadata stored in accelerator memory
KR102536943B1 (ko) 데이터 절감 장치, 데이터 절감 방법 및 데이터 절감 장치를 포함하는 시스템
CN118193119A (zh) 使用存储在加速器存储器的元数据的数据变换加速

Legal Events

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