CN107533602B - 计算设备及其方法,以及计算系统 - Google Patents

计算设备及其方法,以及计算系统 Download PDF

Info

Publication number
CN107533602B
CN107533602B CN201680022878.2A CN201680022878A CN107533602B CN 107533602 B CN107533602 B CN 107533602B CN 201680022878 A CN201680022878 A CN 201680022878A CN 107533602 B CN107533602 B CN 107533602B
Authority
CN
China
Prior art keywords
memory
location
component
controller
write
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.)
Active
Application number
CN201680022878.2A
Other languages
English (en)
Other versions
CN107533602A (zh
Inventor
N·爱德华兹
C·I·多尔顿
K·M·麦考利夫
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of CN107533602A publication Critical patent/CN107533602A/zh
Application granted granted Critical
Publication of CN107533602B publication Critical patent/CN107533602B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • 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
    • 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
    • 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/45587Isolation or security of virtual machine instances
    • 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/45591Monitoring or debugging support

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Retry When Errors Occur (AREA)
  • Hardware Redundancy (AREA)

Abstract

示例包括利用资源控制器对存储器控制器进行配置以用于写时复制。一些示例包括,响应于拍摄第一组件可访问的存储器的快照的确定,资源控制器配置存储器控制器以在配置之后独立于资源控制器将映射到可访问存储器的初始存储器位置的位置ID视为针对第一组件而不是针对第二组件的写时复制。

Description

计算设备及其方法,以及计算系统
技术领域
本公开总体涉及存储器控制器的配置。
背景技术
可以通过对计算环境的存储器的内容的取证分析的过程来发现计算环境中的安全问题。例如,可以在计算设备的存储器上执行取证分析过程,以搜索安全问题,例如恶意代码(或“恶意软件”)的存在。在这样的示例中,通过调查存储器中的伪迹(例如运行或最近运行的进程、网络连接、打开的文件、命令历史等),取证分析过程可以揭示恶意软件如何隐藏以及它的行为方式。
发明内容
根据本公开的一个方面,本公开涉及一种计算设备的方法,所述计算设备包括由基于分组的存储器结构互连的第一硬件组件和第二硬件组件,所述方法包括:利用所述计算设备的资源控制器来确定拍摄经由存储器控制器而所述第一硬件组件可访问的存储器的快照,所述存储器控制器针对所述第一硬件组件将位置标识符、即位置ID,映射到所述可访问的存储器的初始存储器位置;响应于所述确定并且利用所述资源控制器,配置所述存储器控制器用于在所述配置后独立于所述资源控制器将所述位置ID视为针对所述第一硬件组件而不是针对所述第二硬件组件的写时复制;所述存储器控制器被配置用于写时复制,并且独立于所述资源控制器:响应于写入分组,所述写入分组包括将所述第一硬件组件标识为源并且针对写入操作指示尚未针对所述第一硬件组件创建写时复制映射的所述位置ID中的给定位置ID的信息,创建所述给定位置ID到用于所述第一硬件组件的备用存储器位置的写时复制映射;在创建所述写时复制映射之后并且响应于读取分组,所述读取分组包括将所述第二硬件组件标识为源并且针对读取操作指示所述给定位置ID的信息,针对所述第二硬件组件返回存储在所述给定位置ID所映射到的初始存储器位置中的数据;以及在所述配置之后,同时利用所述第一硬件组件执行操作系统OS、虚拟机VM或管理程序的至少一部分以及利用所述第二硬件组件执行取证分析系统的至少一部分,而不修改包括在所述配置时存储在所述初始存储器位置中的初始数据的快照,并且所述第一硬件组件和所述第二硬件组件中的每一个硬件组件尝试利用所述位置ID来访问多个所述初始存储器位置。
根据本公开的另一方面,本公开涉及一种计算设备,包括:第一硬件组件和第二硬件组件,其使用基于分组的存储器结构进行通信;所述第一硬件组件可访问的初始存储器位置;存储器控制器,所述存储器控制器将位置标识符、即位置ID,映射到存储初始数据的初始存储器位置;以及存储器,所述存储器包括指令,所述指令能够由所述计算设备的至少一个处理资源执行以执行资源控制器根据如上所述的计算设备的方法进行操作。
根据本公开的又一方面,本公开涉及一种计算系统,包括:计算设备的存储器;存储器控制器,其用于将位置标识符、即位置ID,映射到被分配有第一硬件组件标识符、即第一CID的第一硬件组件可访问的存储器的初始存储器位置,其中,第二硬件组件被分配有第二硬件组件标识符、即第二CID,并且所述第一硬件组件和所述第二硬件组件利用基于分组的存储器结构进行通信;以及存储在所述计算设备的存储器中的指令,所述指令能够由与所述存储器控制器分离的所述第一硬件组件中的至少一个执行以根据如上所述的计算设备的方法来操作资源控制器。
附图说明
以下详细描述参考附图,其中:
图1是用于配置存储器控制器用于写时复制的示例性计算设备的框图;
图2是具有用于配置存储器控制器用于写时复制的资源控制器的示例性计算设备的框图;
图3是包括配置存储器控制器用于写时复制的示例系统的示例性计算设备的框图;
图4是用于配置存储器控制器用于写时复制的示例性方法的流程图;且
图5是响应于完整性违例来配置存储器控制器用于写时复制的示例性方法的流程图。
具体实施方式
如上所述,对于计算设备的取证分析可以涉及分析计算设备的存储器的内容以检测安全问题,例如恶意软件的存在。在一些示例中,可以拍摄存储器内容的快照,以便可以通过取证分析过程来分析快照。在这里描述的示例中,存储器的一部分的“快照”可以是在给定时间存在于存储器中的数据的存储集合。
在一些示例中,当拍摄快照以获得存储器的精确快照时,可以暂停执行操作系统(OS)或虚拟机(VM)。然而,这样的暂停会破坏由OS或VM所提供的服务,并且在某些情况下可能会被可能会通过在回应时回避检测的恶意软件检测到。在其他示例中,可以在运行进程(例如,OS,VM或应用程序)继续在存储器上操作时拍摄快照。如上所述,这样的示例可能不具有系统暂停的缺点,但是会导致包括不一致或不准确的快照,因为在拍摄快照时运行的进程修改存储器。在其它的示例中,每当VM视图对包括在快照中的存储器位置进行写入时,对于适当的存储器处理,管理包括快照的存储器的管理程序可以使得VM退出或暂停,这会显著地放缓管理程序和由管理程序管理的VM的操作。
为了解决这些问题,本文所描述的示例可以通过使用资源控制器配置存储器控制器将存储器的一部分视为针对可能会改变存储器(例如,在执行OS时)的第一组件的写时复制而不是针对要对快照进行取证分析的第二组件的写时复制,来拍摄存储器的该部分的基本上即时的就地快照。通过以这种方式配置存储器控制器,可以保护要分析的存储器的部分不被改变,从而创建存储器的就地快照,同时通过对与快照分离的其他存储器执行写入而允许可写入存储器的组件继续其操作,基本上不中断。
在本文所描述的示例中,存储器控制器可以将位置标识符(ID)(例如,逻辑存储器地址或位置)映射到相关联的存储器(例如,相关联的存储器设备)的物理存储器位置或地址。在本文所描述的示例中,资源控制器(例如,管理程序等)可以配置存储器控制器而使得在资源控制器以此方式配置存储器控制器之后存储器控制器可以独立于资源控制器的参与而将位置ID视为针对第一组件而不是针对第二组件的写时复制。在这些示例中,通过将存储器位置可访问的硬件组件的差别处理从资源控制器卸载到存储器控制器,本文所描述的示例可以保留存储器快照,同时允许运行的进程对存储器中的适当的数据继续进行操作,所有这些对例如资源控制器和其它相关资源(例如,由资源控制器管理的VM)的性能具有极小的影响。
本文描述的示例可以包括计算设备,其包括通过基于分组的存储器结构互连的第一和第二硬件组件,以及经由针对第一和第二组件将位置标识符(ID)映射到可访问存储器的初始存储器位置的存储器控制器而第一组件可访问的存储器。在这样的示例中,计算设备的资源控制器可以确定拍摄第一组件可访问的存储器的快照,并且作为响应可以配置存储器控制器将位置ID视为针对第一组件的写时复制而不是针对第二组件的写时复制,使得在配置之后独立于资源控制器执行差异处理。在本文所描述的示例中,通过存储器控制器独立于资源控制器执行的功能可由存储器控制器来执行,而无需资源控制器整体或部分地执行或管理功能。在本文所描述的示例中,在上述配置之后,可以通过存储器控制器执行差异处理而使得差异处理的执行与资源控制器隔离且不受资源控制器管理或以其它方式由资源控制器执行(整体地或部分地)。相反,通过将存储器控制器配置为将位置ID视为针对第一组件的写时复制而不是针对第二组件的写时复制,如上所述,则本文所描述的差异处理卸载到资源控制器上。
在这样的示例中,响应于写入分组包括将第一组件标识为源且针对写入操作指示位置ID中的给定一个的信息,存储器控制器可以独立于资源控制器创建给定位置ID到用于第一组件的备用存储器位置的写时复制映射。在这样的示例中,在创建了写时复制映射之后且响应于读取分组包括将第二组件标识为源且指示用于读取操作的给定位置ID的信息,存储器控制器可以独立于资源控制器返回存储在针对第二组件给定位置ID所映射到的初始存储器位置中的数据。在这样的示例中,存储器控制器可以创建给定位置ID到用于第一组件的备用存储器位置的写时复制映射,而不通过资源控制器整体地或部分地执行或管理创建,从而独立于资源控制器执行创建。在这样的示例中,在创建了写时复制映射之后且响应于读取分组包括将第二组件标识为源且指示用于读取操作的给定位置ID的信息,存储器控制器可以返回存储在针对第二组件给定位置ID所映射到的初始存储器位置中的数据,而不通过资源控制器整体地或部分地执行或管理创建,且因此独立于资源控制器。
以这种方式,本文所描述的示例可以通过配置存储器控制器管理第一组件可访问的存储器的作为针对第一组件的写时复制来拍摄第一组件可访问的存储器的快照,从而冻结可访问存储器的当前内容,同时还允许至少部分地在第一组件上执行的进程(例如,OS,VM等)继续操作而没有实质的中断。另外,通过使得第二组件能够继续访问不被第一组件改变的初始存储器位置,至少部分地在第二组件上执行的进程(例如,取证分析系统)可以在不会被继续操作的任何第一组件进程所改变的存储器快照上操作。以这种方式,本文所描述的示例可以使得能够在操作的进程(例如,OS)中没有实质性暂停且不会将不一致性引入到快照中的情况下拍摄和分析存储器快照。
现在参考附图,图1是用于配置存储器控制器130用于写时复制的示例性计算设备100的框图。计算设备100包括多个硬件组件,包括第一组件102和第二组件104。硬件组件使用基于分组的存储器架构101被互连以进行通信。
在本文描述的示例中,“硬件组件”(或“组件”)可以是能够经由基于分组的存储器结构101向其他硬件设备发送分组并从其接收分组的硬件设备。作为示例,组件可以是以下中的任一个:片上系统(SOC)(例如,包括处理器核心和存储器)、包括存储器但不包括任何处理器核心的存储器模块、在同一印刷电路板(PCB)上包括至少一个SOC和至少一个存储器设备的设备、处理器核心(例如,另一组件的),诸如专用集成电路(ASIC)和现场可编程门阵列(FPGA)中的至少一个的电子电路(例如,另一组件的)、在结构101中路由分组的路由器,等等。
基于分组的存储器结构101可以互连用于分组的点对点通信的组件,分组的交换通信或其组合。基于分组的存储器结构101可以使用线、迹线,无线通信技术、光通信技术等或其组合来实现。在本文描述的示例中,硬件组件能够生成用于在存储器结构101上进行通信的分组,所述分组至少包括标识分组的源(或发送者)的组件标识符(CID)以及指示响应于分组而执行的所请求的操作(例如,读取,写入等)的操作标识符。在一些示例中,分组(例如用于读取操作的读取分组或用于写入操作的写入分组)可以包括位置标识符(ID),诸如地址,指示要从中读取(用于读取数据分组)或写入到其中(用于写入数据分组)的物理或逻辑存储器地址。对于分组的交换通信,基于分组的存储器结构101可以包括将分组从源组件路由到目的地组件的路由器。在这样的示例中,分组可以包括标识经由存储器结构101分组将被路由到的或被提供给其的目的地组件的目的地CID。
在图1的示例中,计算设备100还包括资源控制器116。在图1的示例中,计算设备100包括至少一个处理资源110和指令存储器112。在图1的示例中,指令存储器112至少包括能够由处理资源110执行来执行本文所描述的资源控制器116的功能的指令114。在本文所描述的示例中,指令存储器112可以由至少一个机器可读存储介质来实现。
在本文所描述的示例中,“资源控制器”可以是能够由计算设备的处理资源执行以配置存储器控制器用于写时复制的机器可读指令所实现的控制器,如本文所描述的。在一些示例中,资源控制器可以是硬件接口管理器,其能够由处理资源执行以与计算设备的其它进程、资源等的硬件接口,并且能够配置存储器控制器用于写时复制,如本文所描述的。例如,硬件接口管理器可以是计算设备的管理程序(或监督程序),用于虚拟化计算设备的硬件资源以便由其它可执行资源诸如虚拟机、操作系统、进程等或其组合来使用。在其它示例中,硬件接口管理器可以是另一类型的管理器,其能够由计算设备的处理资源执行以虚拟化计算设备的硬件资源用于其它可执行资源。在一些示例中,硬件接口管理器可以是另一类型的管理器,在由计算设备的处理资源执行时,该管理器可以直接访问计算设备的无法由与硬件接口资源相关联的另一资源控制器直接访问的至少一个硬件资源。在这样的示例中,硬件接口管理器可以是与安全技术(例如,
Figure GDA0002655185690000061
)相关联的完整性管理进程,该进程能够直接访问计算设备的无法由与硬件接口资源相关联的另一单独的进程直接访问的至少一个硬件资源。在上述的硬件接口管理器的各个示例中,除了上述的硬件接口管理器的其它功能之外,硬件接口管理器可以执行以配置存储器控制器用于写时复制,如本文所述。
在一些示例中,资源控制器可以是虚拟机、操作系统、用户空间进程等或其组合中的任一个,它们能够执行以配置存储器控制器用于写时复制,如本文所描述的。在一些示例中,资源控制器可以是操作系统内核。在一些示例中,计算设备上的操作系统可以具有分段内核架构,其包括用于管理计算设备的多个进程的管理内核段和多个进程内核段,每个进程内核段均与所管理的进程中的一个相关联。在这样的示例中,资源控制器可以是操作系统的管理内核段,其中除了其它功能之外,管理内核段能够执行以配置存储器控制器用于写时复制,如本文所描述的。
在一些示例中,计算设备100可以包括可以执行计算设备100的管理功能的管理子系统。在一些示例中,管理子系统可以通过与存储器结构101分离的管理通道、经由基于分组的存储器结构101、或其组合与硬件组件进行通信。在一些示例中,管理子系统可以利用硬件或通过硬件和编程(例如,由计算设备的处理资源可执行的机器可读指令)的组合来实现。
计算设备100可以包括存储器控制器130和相关联的存储器140。在这里描述的示例中,“存储器”可以由至少一个机器可读存储介质来实现,如下所述。在这里描述的示例中,存储器控制器可以是硬件设备或硬件和编程的组合,以调解对相关联的物理存储器的访问。存储器控制器可以将位置ID(例如,逻辑存储器地址或位置)映射到相关联的存储器(例如,相关联的存储器设备)的物理存储器位置或地址。在这里描述的示例中,存储器控制器可以以任何合适的格式(例如,数据结构)存储位置ID到存储器位置的映射,并且可以将映射存储在存储器控制器内、在存储器控制器之外,但受存储器控制器访问或其组合。
在图1的示例中,第一组件102可以包括存储器140和用于调解对存储器140的访问的存储器控制器130。例如,第一组件102可以是包括处理器核心(参见图2)、存储器140和存储器控制器130的SOC。在其他示例中,存储器140和存储器控制器130中的一者或两者可以与第一组件102和第二组件104分离,但是经由存储器结构101与它们连接。例如,第一组件102可以是包括例如处理资源110、指令存储器112和存储器控制器103的SOC,而存储器140的一些或全部以与第一组件102分离的硬件组件来实现。在图1的示例中,指令存储器112与存储器140分离。在其它的示例中,资源控制器116的资源控制器指令114可以存储在存储器140上,处理资源110(例如,处理器核心)可从存储器140取得并且执行指令114。
在图1的示例中,资源控制器116(或另一资源,诸如管理子系统)可以配置存储器控制器130而使得存储器140的至少一部分可经由存储器控制器130对第一组件102可访问以进行读写访问。在图1的示例中,第一组件102可访问的存储器可以包括初始存储器位置142(例如,物理存储器位置或地址),并且存储器控制器130可以控制将位置ID 133映射到针对第一组件102的初始存储器位置142的位置ID映射数据132。
在图1的示例中,资源控制器116(例如,当由处理资源110执行时,资源控制器116的指令114)可以确定第一组件102可访问的存储器142拍摄快照。例如,指令144可以响应于检测到与第一组件102相关联的完整性违例而拍摄快照,如下文所述。在本文所述的示例中,如通过资源控制器116实施的所描述的功能可以由资源控制器116的指令114在被处理资源110执行时来实施。类似地,如通过指令114实施(例如,当由处理资源110执行时)的所描述的功能可考虑通过资源控制器116来实施。
响应于该确定,资源控制器116可以配置185存储器控制器130以在由资源控制器116配置185之后独立于资源控制器116来将位置ID 133视为针对第一组件102而不是针对第二组件104的写时复制。例如,当被执行时,资源控制器116的指令114可配置185存储器控制器130,使得存储器控制器130在配置后独立于资源控制器116利用位置ID 133到初始存储器位置142的当前映射,将位置ID 133视为针对第一组件102的写时复制(而该处理不由资源控制器116整体上或部分地管理或实施),并且将位置ID 133视为针对第二组件104的只读(或视为针对第二组件104的读写)(而该处理不由资源控制器116整体上或部分地管理或实施)。
在一些示例中,存储器控制器可以具有存储在存储器中的相关联的控制数据结构,其定义存储器控制器如何操作。例如,用于存储器控制器130的控制结构可以存储在存储器140(或任何其它可访问存储器)中,并且当被执行时指令114可以退出控制结构来配置185存储器控制器130,以便独立于资源控制器116将位置ID 133视为针对第一组件102的写时复制且视为针对第二组件104的只读(或视为针对第二组件104的读写)。
在本文所述的示例中,在存储器控制器被配置为将给定位置ID视为针对给定组件的写时复制之后,在包括待写入到给定位置ID的数据的写入分组从第一组件接收到的第一次(在写时复制配置之后),存储器控制器可以(独立于资源控制器116)来创建给定位置ID到用于给定组件的备用存储器位置的新的写时复制映射并且将数据写入备用存储器位置。在这样的示例中,响应于后续从给定位置ID读取分组或者将分组写入给定位置ID,存储器控制器可以(独立于资源控制器116)使用到备用存储器位置的写时复制映射来实施读取或写入操作。
在图1的示例中,被配置为将位置ID 133视为针对第一组件102的写时复制的存储器控制器130可以接收包括写入分组180,其包括将第一组件102标识为写入分组180的源的信息181(例如,CID)以及还包括指定用于执行写入操作的位置ID 133中给定的一个的信息182。在这样的示例中,被配置为将给定位置ID 133视为针对第一组件102的写时复制的存储器控制器130可以独立于资源控制器116并且响应于写入分组180,确定存储器控制器130是否已经针对给定的位置ID 133创建了写时复制映射。如果没有,则存储器控制器130可以响应于分组180(并且独立于资源控制器116)而创建170给定位置ID 133到第一组件102的备用存储器位置的新的写时复制映射134,并且将在分组180中指定的数据写入到备用存储器位置。在这样的示例中,为了创建新的写时复制映射,存储器控制器130可以在存储器140中分配可用的备用存储器位置144,并且写入映射数据134(例如,到数据结构)以将给定位置ID 133映射到针对第一组件102的分配的备用存储器位置144。
在这样的示例中,尽管针对第一组件102创建了给定位置ID 133的新的写时复制映射130,存储器控制器130维持位置ID映射数据132中给定位置ID 133到针对第二组件104的初始存储器位置142的相应一个的先前映射。在这样的示例中,位置ID映射数据132包括指定针对第一组件102和第二组件104的给定位置ID 133作为分组源的不同映射的信息。
在这样的示例中,在针对第一组件102创建给定位置ID 133的写时复制映射134之后,存储器控制器130可以接收读取分组184,其包含将第二组件104标识为读取分组184的源的信息185(例如,CID)并且包括指示用于执行读取操作的给定位置ID 133的信息186。在这样的示例中,存储器控制器130(被配置为将给定位置ID 133视为针对第二组件104的只读或读写)可以独立于资源控制器116,返回存储在给定位置ID 133针对第二组件104映射到的初始存储器位置142中的初始数据143。
在这样的示例中,为了返回初始数据143,存储器控制器130可以(独立于资源控制器116)访问针对第二组件104的给定位置ID 133的映射,以确定其映射到的初始存储器位置142,从确定的初始存储器位置142读取初始数据143,并且经由存储器结构101将初始数据143提供回分组中的第二组件。在一些示例中,初始数据143可以是存储器控制器130被配置为用于第一组件102的写时复制时存储在初始存储器位置142中的数据。
虽然上面描述了针对第一组件102的写时复制的单个示例,被配置用于针对第一组件102的写时复制的存储器控制器130可以类似地处理来自第一组件102的任何或者所有其他写入分组。例如,响应于每个写入分组包括将第一组件102标识为源的信息以及对于写入操作指示未被给予写时复制映射的位置ID 133中的相应一个的信息,存储器控制器130(被配置用于写时复制)可以独立于资源控制器116而创建170相应的位置ID 133到针对第一组件102的相应的备用存储器位置144的写时复制映射134,并将相应的新数据(例如,从写入分组)写入备用存储器位置144,如以上所描述的。
尽管上面描述了针对第二组件104的单个示例读取,被配置用于针对第一组件102的写时复制的存储器控制器130可以类似地处理来自第二组件104的任何或者所有其他读取分组。例如,响应于每个读取分组包括将第二组件104标识为源的信息以及对于读取操作指示位置ID 133中的一个的信息,存储器控制器130(配置用于写时复制)可以独立于资源控制器116而返回存储在位置ID 133针对第二组件104所映射到的初始存储器位置142中的初始数据143。在这样的示例中,存储器控制器130可以作为响应而返回初始数据143,而不管针对位置ID 133是否创建了针对第一组件104的写时复制映射134。
在本文所描述的示例中,通过将存储器控制器130配置为独立于资源控制器116将位置ID 133视为针对第一组件102的写时复制并且视为针对第二组件104的只读或读写,这里所描述的示例可实现位置ID 133被映射到的存储器位置的基本上即时的就地快照195,而不会在每次尝试写入快照195的存储器时暂停由第一组件102(例如,OS、VM、管理程序)执行的资源控制器116或其它资源、进程等且不改变快照195中的数据,快照195中的数据可以由第二组件104(例如其可以执行取证分析)读取而不改变。这样的示例可以提供相对于资源控制器可以直接处置用于写入到快照的存储器中的各个请求而不是将该处置卸载到存储器控制器的示例的相对大的性能改善,如本文所述的。
在一些示例中,在配置存储器控制器130以独立于资源控制器116将位置ID 133视为针对第一组件102的写时复制以及针对第二组件104的只读或读写,计算设备100可以同时利用第一组件102执行OS、VM、管理程序等的至少一部分以及利用第二组件104执行取证分析系统的至少一部分,而不修改包括配置时存储在初始存储器位置142上的初始数据143的快照195,并且第一组件102和第二组件104中的每一个尝试利用位置ID133来访问初始物理存储器位置142。在这样的示例中,通过使用资源控制器116来如上所述配置存储器控制器130来拍摄快照195,可以对第一组件102透明的方式来拍摄快照195,第一组件102可以继续使用与在拍摄快照之前相同的位置ID(例如,地址)来访问存储器。以这种方式,拍摄快照195的事实可以对第一组件102隐藏,对其可能至少部分地执行的资源或进程(例如,OS、VM、管理程序等)隐藏,并且因此对任何可能的恶意软件隐藏。在本文所描述的示例中,资源控制器诸如操作系统、虚拟机、管理程序等的执行可以包括资源控制器本身以及资源控制器的或者与资源控制器相关联的任意数量的进程或资源的执行。
在组件被据信执行(或分配以执行)OS的示例中,组件可以执行(或分配以执行)OS以及OS的任意数量的进程或与OS相关联的任意数量的进程。在组件据信执行(或分配以执行)管理程序的示例中,组件可以执行(或分配以执行)与管理程序相关联的VM、OS、用户空间进程等或其组合中的至少一个。在图1的示例中,资源控制器116可以是由(或至少部分地由)第一组件102执行的管理程序。
在本文描述的示例中,硬件组件可以被分配有一个CID或多个CID或者与一个CID或多个CID相关联。在其中组件与多个CID相关联的示例中,与组件相关联的任何CID可以将组件标识为分组的源。例如,对于具有多个处理器核心的组件(例如,SOC),可以将不同的CID分配给组件的每个处理器核心。在一些示例中,分配给组件的处理器核心的任何CID可以将组件标识为分组(例如,在存储器结构101上传送的分组)的源并且可视为被分配给组件或与组件相关联。在这样的示例中,为了将存储器控制器配置为针对这种组件的写时复制,存储器控制器可以被配置为针对组件的处理器核心的所有CID的写时复制,如上文所述。在一些示例中,这些CID可以被视为一组,使得响应于将这些CID中的一个标识为源的分组而创建的写时复制映射被存储并用于与该组件相关联的所有CID。类似地,在一些示例中,对于包括电子电路(诸如由ASIC和FPGA中的至少一个实现的取证分析电路)的组件,CID可以分配给电子电路并且将电子电路标识为分组的源。在一些示例中,分配给电子电路的CID也可以被视为分配给包括电子电路的组件或与包括电子电路的组件相关联,并且可以将包括电子电路的组件标识为分组的源。
虽然上面已经关于经由一个存储器控制器可访问的存储器描述了示例,但是在其他示例中,针对其拍摄快照的第一组件102可访问的存储器可以分布在多个组件上。在这种示例中,对于调解对针对其拍摄快照的存储器的一部分的访问的每个存储器控制器,资源控制器116可以将存储器控制器配置用于存储器中的针对第一组件的部分的写时复制,如上所述,并且将存储器控制器配置用于针对另一组件的只读或读写访问(例如,执行取证分析)。在这样的示例中,可以通过资源控制器116在每个存储器控制器被配置用于写时复制以拍摄快照处执行释放过程(如下所述)来释放快照。
如本文所使用的,“计算设备”可以是台式计算机、膝上型计算机(或笔记本)计算机、工作站、平板计算机、移动电话、智能设备、交换机、路由器、服务器、刀片机箱或包括处理资源的任何其他处理设备或装备。例如,计算设备可以是包括由基于分组的存储器结构连接的硬件组件的设备,如本文所述的。在本文描述的示例中,处理资源可以包括例如包括在单个设备中或分布在多个设备上的一个硬件处理器或多个硬件处理器。在本文描述的示例中,硬件处理器可以是硬件处理器核心(其在本文可成为“处理器核心”)。
如本文所使用的,“处理器”或“处理器核心”可以是中央处理单元(CPU)、基于半导体的微处理器、图形处理单元(GPU)、被配置为取回和执行指令的现场可编程门阵列(FPGA)、适用于取回和执行存储在机器可读存储介质上的指令的其它电子电路或其组合中的至少一个。处理资源110可以获取、解码和执行存储在存储介质120上的指令以执行本文所述的功能。
如本文所使用的,“机器可读存储介质”可以是用于包含或存储诸如可执行指令、数据等的信息的任何电子、磁性、光学或其他物理存储装置。例如,本文描述的任何机器可读存储介质可以是随机存取存储器(RAM)、易失性存储器、非易失性存储器、闪速存储器、存储驱动器(例如,硬盘驱动器)、固态驱动器、任何类型的存储盘(例如,光盘、DVD等)等,或其组合。此外,本文所述的任何机器可读存储介质可以是非暂时性的。
在本文描述的示例中,可以以多种不同的方式来实现硬件和编程的组合。例如,编程可以是存储在至少一个非暂时机器可读存储介质上的处理器可执行指令,并且硬件可以包括用于执行这些指令的至少一个处理资源。在一些示例中,硬件还可以包括其他电子电路。在一些示例中,本文中结合图1描述的功能可以结合本文关于图2-5中的任一个所描述的功能来提供。
本文关于图2描述了另外的示例。图2是具有用于配置存储器控制器130用于写时复制的资源控制器116的示例性计算设备200的框图。在图2的示例中,计算设备200可以包括基于分组的存储器结构101和管理子系统,每个如上文关于图1所述。在图2的示例中,计算设备200可以包括第一组件202和第二组件204。第一组件202可以包括存储器140和存储器控制器130,每个如上文结合图1所描述的,并且可以包括至少一个处理器核心260。存储器140可以包括初始存储器位置142,如上所述,并且存储器控制器130可以包括用于位置ID133的位置ID映射132,如上所述。在其它示例中,存储器140的至少一些可以在与组件202分离的硬件组件中实现。例如,主存储器区域241、初始存储器位置142和备用存储器位置144中的至少一个可以是能够经由存储器结构101与组件202进行通信的与组件202分离的组件的存储器的部分。
在图2的示例中,计算设备200包括资源控制器216,其可以是任何适合的资源控制器,如上文关于图1所描述的。在图2的示例中,存储器140可以包括能够由处理器核心260执行以执行本文所述的资源控制器216的功能的指令214。在一些示例中,资源控制器216可以是管理程序。在这样的示例中,指令214可以是用于实现管理程序的功能的管理程序指令214,诸如除了下文结合资源控制器216和指令214所描述的功能之外,将用于虚拟机的硬件资源虚拟化、管理虚拟机,等等。在这样的示例中,存储器140可以包括能够由核心260执行以执行OS的至少一部分的OS指令240,以及由核心260执行以执行VM的至少一部分的VM指令238。在这样的示例中,管理程序216可以将用于由指令238实现的VM的计算设备200的硬件资源虚拟化,这可以包括经由OS指令240的执行来执行OS。在这样的示例中,第一组件202的核心260可以执行VM,并且由核心260执行的管理程序216可以管理VM。在其它的示例中,资源控制器216可以是如上文关于图1所描述的任何适合的资源控制器,并且除了下文所述的功能之外,指令214可以实现该资源控制器的功能。
第二组件204可以包括存储器252、用于至少存储器252的存储器控制器250以及至少一个处理器核心262。存储器252可以由至少一个机器可读存储介质实现,并且可以存储能够由核心262执行以执行取证分析系统的至少一部分的指令258。在图2的示例中,计算设备200可以包括组件206(例如,SOC、存储器模块,等等),其至少包括存储器274(由至少一个机器可读存储介质实现)和将位置ID 255映射到存储器274的初始存储器位置272的存储器控制器254。
在图2的示例中,指令214(例如,在一些示例中的管理程序指令214)可以包括上文关于图1所描述的指令114。在这样的示例中,资源控制器216和指令214可以执行上文关于资源控制器116所描述的功能和上文关于图1所描述的指令114。指令214还可以包括附加的指令(例如,执行资源控制器的功能)。
在图2的示例中,资源控制器216(例如,指令214,当由处理器核心260执行时)可以监视计算设备200中的完整性违例,诸如至少部分地由核心260执行的OS的内核完整性违例(例如,改变的代码等)。在一些示例中,指令214可以检测287完整性违例(例如,与第一组件202相关联),并且可以确定响应于检测到完整性违例而拍摄第一组件202可访问的存储器142的快照195。在一些示例中,指令214可以基于特定事件的检测(例如,对存储器的部分进行尝试的非授权访问)、接收到的指示特定事件发生的信号(例如,来自指令214之外的监视器)等或其组合来检测完整性违例。在本文所述的示例中,如通过资源控制器216所实施的描述的功能可以由资源控制器216的指令214在由处理核心260执行时来执行。类似地,如通过指令214实施(例如,当由处理核心260执行时)的所描述的功能可以视为由资源控制器216实施。
响应于确定拍摄第一组件202可访问的存储器142的快照,在被执行时指令214可以执行资源控制器216以配置288存储器控制器130独立于资源控制器216将映射到存储有初始数据143的初始存储器位置142(参见图1)的位置ID 133视为针对第一组件202的写时复制以及针对第二组件204的只读或读写,如上文关于图1所描述的。在这样的示例中,通过执行指令214,资源控制器216可以配置288存储器控制器130以将映射到存储有初始数据143的初始存储器位置142(参见图1)的位置ID 133视为针对第一组件202的写时复制以及针对第二组件的只读或读写,并且使得存储器控制器130可以在配置288之后独立于资源控制器216的进一步参与(例如,整体上或部分地管理或执行差异处理)来实施用于不同硬件组件(例如,SOC)的存储器位置的差异处理。在这样的示例中,响应于确定拍摄第一组件202可访问的存储器的快照195,资源控制器216可以通过配置288存储器控制器130以将位置ID视为针对第一组件的写时复制以及针对第二组件的只读而将对快照的写时复制处理卸载到存储器控制器130。在这样的示例中,配置288可以通过配置存储器控制器130以实施上文所述的差异处理来卸载写时复制处理,而在其配置存储器控制器130用于差异处理之后无需资源控制器216的进一步参与,如上文所述。
在资源控制器216是管理程序216的示例中,通过执行指令214,资源控制器216可以响应于确定拍摄第一组件202可访问的存储器的快照195而配置288存储器控制器130以将映射到存储有初始数据143的初始存储器位置142(参见图1)的位置ID 133视为针对第一组件202的写时复制以及针对第二组件204的只读或读写,并且使得存储器控制器130可以在由管理程序216配置288之后独立于管理程序216的进一步参与而执行用于不同硬件组件(例如,SOC)的存储器位置的差异处理。
由于如所述的存储器控制器130被配置用于针对第一组件202的写时复制,响应于每个写入分组包括将第一组件202标识为源且针对写入操作指示尚未给予写时复制映射的位置ID 133中的相应一个的信息,存储器控制器130可以独立于资源控制器216来创建位置ID 133到针对第一组件202的相应的备用存储器位置144的写时复制映射134,并且将相应的新数据写入备用存储器位置144,如上文所述的。
在这样的示例中,由于响应于每个读取分组包括将第二组件204标识为源且针对读取操作指示位置ID 133中的一个的信息,存储器控制器130被配置用于针对第一组件202的写时复制,存储器控制器130可以独立于资源控制器216而返回存储在位置ID 133针对第二组件204映射到的初始存储器位置142中的初始数据143,如上文所描述的。
在本文所描述的示例中,在存储器控制器创建了针对给定组件的位置ID的写时复制映射之后,存储器控制器使用写时复制映射用于后续从给定组件的该位置ID读以及到给定组件的该位置ID的写。例如,在图2的示例中,被配置为将位置ID 133视为针对第一组件202的写时复制的存储器控制器130可以接收读取分组284,该读取分组包括将第一组件202标识为源的信息285(例如,CID)以及针对读取操作指示先前给予写时复制映射的位置ID133中的给定一个的信息286。在这样的示例中,响应于读取分组284,存储器控制器130可以独立于资源控制器216而返回存储在位置ID133针对第一组件202所映射到的相应的备用存储器位置144中的相应的新数据287。在这样的示例中,为了返回新数据,存储器控制器130可以访问用于第一组件202的给定位置ID 133(例如,与第一组件202相关联的任何CID)的写时复制映射134以确定其所映射到的备用存储器位置144,从所确定的备用存储器位置144读取新数据,并且将该新数据287提供给第一组件202的组件或资源(例如,处理器核心),全部独立于资源控制器216。
在这样的示例中,在配置存储器控制器130将位置ID 133视为针对第一组件202的写时复制以及针对第二组件204的只读(或读写)以拍摄第一组件202可访问的存储器142的快照195之后,第一组件202(例如,处理器核心260)可以执行OS(OS指令240)、VM(VM指令238的)或管理程序(管理程序指令214的)或其组合的至少一部分,而第二组件204同时执行取证分析系统的至少一部分,包括第一组件和第二组件各自尝试利用位置ID 133来访问多个初始物理存储器位置142。在这样的示例中,存储器控制器130的配置允许第一组件202继续操作且执行不改变快照195(以对第一组件202和OS透明的方式)的写并且允许第二组件204对快照195执行取证分析而不暂停OS、VM或管理程序对快照195的存储器的写。在一些示例中,在配置存储器控制器130将位置ID 133视为针对第一组件202的写时复制以及针对第二组件204的只读(或读写)以拍摄第一组件202可访问的存储器142的快照195之后,第一组件202(例如,处理器核心260)可以利用在第一组件202上执行且由在第一组件202上执行的管理程序管理的VM来执行OS的至少一部分,而第二组件204同时执行取证分析系统的至少一部分,包括第一组件和第二组件各自尝试利用位置ID 133来访问多个初始物理存储器位置142。
至少部分地由第二组件204执行的取证分析系统可以对快照195执行任何适合的取证分析。例如,取证分析系统可以扫描快照195以搜索攻击指示符(IOC)、指示恶意行为的模式、对已知恶意站点开放的数据结构、到可疑位置的网络连接、已知恶意代码包的存在、存储器中随时间的可疑改变等或其组合。
在一些示例中,取证分析系统可以向资源控制器216指示281取证分析系统的特定部分是完整的,使得可以释放初始存储器位置142的快照195。在一些示例中,取证分析系统可以将存储在初始存储器位置142中的快照195的数据复制到其他辅助存储器位置,以便在辅助存储器位置中进行分析。在这样的示例中,一旦完成复制,则可以释放快照195并且可以解除写时复制配置。在这样的示例中,取证分析系统可以向资源控制器216指示281复制过程完成。作为响应,指令216可以确定释放快照195。
在其他示例中,取证分析系统可以对初始存储器位置142中的就地的快照195执行分析,并且向资源控制器216提供如下指示281,被存储在初始存储器位置142中的快照195中的数据的取证分析完成。在这样的示例中,响应于指示281,资源控制器216可以确定释放快照195。
响应于确定释放快照195,资源控制器216可以释放快照195。在一些示例中,释放快照195可以包括资源控制器216配置288存储器控制器130针对第一组件202提供对于未对其创建写时复制映射的位置ID 133的读写访问,从而允许在不使用写时复制技术的情况下再次由第一组件202对该对应的初始存储器位置142进行读和写。释放快照195还可以包括资源控制器216,对于位置ID 133中的一个到针对第一组件202创建的备用存储器位置134的每个写时复制映射134,将位置ID 133映射到第一组件202的备用存储器位置144,并且释放(以便由存储器控制器130再使用)位置ID 133先前所映射到的初始存储器位置142。
尽管上面已经关于经由一个存储器控制器可访问的存储器描述了示例,但是在其他示例中,针对其拍摄快照的第一组件202(或其他组件)可访问的存储器可以分布在多个组件中。在这样的示例中,如上所述,对于每个存储器控制器调解对针对其拍摄快照的存储器的一部分的访问,资源控制器216可以配置存储器控制器用于针对存储器的该部分的写时复制,如上所述。在这样的示例中,可以通过资源控制器216在每个存储器控制器被配置用于写时复制以拍摄快照处执行释放过程来释放快照。
例如,除了初始存储器位置142之外,初始存储器位置272可以经由存储器控制器254对于第一组件202可访问。在这样的示例中,响应于确定拍摄第一组件202可访问的存储器的快照,资源控制器216可以如上所述地配置存储器控制器130,并且可以独立于资源控制器216而将存储器控制器254配置为将位置ID 255(映射到初始存储器位置272)视为针对第一组件202的写时复制,并且视为针对第二组件204的只读(或视为针对第二组件204的读写),如上文关于图1所描述的。
在这样的示例中,被配置用于第一组件202的写时复制的存储器控制器254可以接收包括写入分组,其包括将第一组件202标识为分组的源的信息(例如,CID)以及对于写入操作指示尚未给予写时复制映射的位置ID255中的给定一个的信息。响应于这样的写入分组,被配置用于第一组件202的写时复制的存储器控制器254可以独立于资源控制器216而创建给定位置ID到第一组件202的相应的不同存储器位置(例如,在存储器274中)的写时复制映射,如上文关于存储器控制器130所述。虽然描述了一个示例分组的处理,但是被配置用于针对第一组件202的写时复制的存储器控制器254可以类似地独立于资源控制器216而处理来自第一组件202的其他写入分组。
在这样的示例中,存储器控制器254可以接收读取分组,其包含将第二组件204标识为分组的源的信息以及针对读取操作指示位置ID 255中给定的一个的信息。响应于这样的读取分组,被配置用于针对第一组件202的写时复制以及针对第二组件204的只读或读写的存储器控制器254可以独立于资源控制器216而返回存储在给定位置ID 255对于第二组件204所映射到的初始存储器位置272中的数据,如上关于存储器控制器130所描述的。尽管描述了一个示例分组的处置,但被配置用于针对第二组件204的只读或读写访问的存储器控制器254可以类似地独立于资源控制器216而处理来自第二组件204的其它读取分组。
在上述示例中,资源控制器216被配置为两个存储器控制器,从而拍摄涉及计算设备200的两个单独组件中的存储器的快照。在其他示例中,第一组件(例如,SOC)可访问的存储器可以分布在由基于分组的存储器结构101连接的计算设备200的任何数量的组件上,并且可以经由任何数量的存储器控制器访问。在这样的示例中,响应于确定拍摄第一组件可访问的存储器的快照,资源控制器216可以独立于资源控制器216而配置每个存储器控制器调解可访问存储器的一部分来将位置ID视为针对第一组件的写时复制,并且视为针对第二组件(例如,SOC)的只读或读写,如上面关于图1和图2所述的。在这样的示例中,资源控制器216可以针对分布在由存储器结构101连接的计算设备200的各种组件中并且经由各种不同的存储器控制器访问的存储器拍摄第一组件可访问的存储器的基本上即时的就地快照。在这样的示例中,可以通过针对每个涉及的存储器控制器执行上述释放过程来释放快照。
在一些示例中,用于第一组件可访问的存储器的存储器控制器可以将可访问存储器保持为计算设备200的其他存储器的镜像(或重复)。在这样的示例中,如上所述,可以拍摄快照,用于镜像或复制存储器,而不是用于其他(主)存储器。
作为示例,存储器控制器130可以使用可访问存储器142和主存储器区域241的位置ID 133来将可访问存储器142保持为与可访问存储器142不同的存储器241的主区域的镜像。在这样的示例中,存储器控制器130可以通过将每个位置ID 133映射到初始存储器位置142和主存储器区域241中的另一个存储器位置,并且将以位置ID 133为目标的每个操作应用于每个映射的存储器位置来透明地执行镜像。在这样的示例中,响应于第一组件202可访问的存储器拍摄快照的确定,资源控制器216可以将存储器控制器130配置为独立于资源控制器216将位置ID 133视为针对初始存储器位置142的第一组件202的写时复制,并且可以将位置ID 133到主存储器区域241的镜像暂停,停止对主存储器区域241的写入(并且不将位置ID 133配置为针对存储器241的主区域的第一组件的写时复制)。以这种方式,在写时复制的配置之后,资源控制器216可将主存储器区域241中的信息视为快照(例如,用于由组件204进行的取证分析),以及至少部分地由第一组件202(例如,OS、VM、管理程序等)执行的进程可以继续使用位置ID 133来操作以进行初始存储器位置142的读取和写入,同时如上所述应用写时复制来防止对存储在初始存储器位置142中初始数据的改变。
在这样的示例中,在释放快照时,资源控制器216可以通过对初始存储器位置142和主存储器区域241执行上述释放过程来恢复镜像。在这样的示例中,资源控制器216可以使用来自任何写时复制操作的备用存储器位置144以针对初始存储器位置142和主存储器区域241更新针对其执行写入时复制操作的位置ID 133的映射,从而协调两个存储器区域的内容。资源控制器216可以恢复对两个更新的区域的读写访问,使得像快照之前一样恢复镜像。在一些示例中,本文中结合图2描述的功能可以与本文关于图1和3-5中的任何一个所描述的功能相结合地来提供。
图3是包括用于配置存储器控制器用于写时复制的示例系统301的示例计算设备300的框图。如上所述,计算设备300包括使用基于分组的存储器结构101互连以进行通信的多个硬件组件。
在图3的示例中,组件可以包括包含其他组件(例如,分配了CID 370的处理器核心360)的组件302。组件302可以包括计算设备300的存储器340。组件还可以包括包含多个组件的组件304,例如至少分别分配了CID371-373的处理器核心361-363。组件304可以包括存储器352和存储器控制器350。组件还可以包括包含多个组件的组件306,例如至少分别分配了CID 374-376的处理器核心364-366。组件306可以包括存储器356和存储器控制器355。
在图3的示例中,系统301包括多个硬件组件的存储器控制器330。在图3的示例中,存储器控制器330可以是组件302的一部分。在其他示例中,存储器控制器330可以是另一类型的组件的一部分,诸如,存储器模块。系统301还包括资源控制器216和管理子系统,如上面所描述的。
在图3的示例中,可以分配计算设备300的不同硬件组件来执行不同的处理。例如,计算设备300的至少核心360-366中的不同的核心可以被分配以执行OS的至少一部分,而至少核心360-366中的其他核心可被分配以执行取证分析系统。在一些示例中,被分配以执行OS的核心中的一些或全部可以被分配以执行VM来运行OS,并且可以被分配以执行管理程序的至少一部分(例如,资源控制器216)以管理VM。在这样的示例中,计算设备300的至少核心360-366中的不同的核心可以被分配以执行OS、VM和管理程序的至少一部分,而至少核心360-366中的其它核心可以被分配以执行取证分析系统。在一些示例中,核心360可以是被分配以执行OS、VM和管理程序中的至少中的一个的至少一部分的核心当中的。
作为示例,可以分配第一组处理器核心360-363来执行OS的至少一部分,例如通过执行来自存储器(例如,来自存储器340、存储器352等)的相关联的指令。在这样的示例中,核心360可以执行来自存储器340的指令,并且核心361-363可以执行来自存储器352的指令(例如,OS指令354)。在这样的示例中,核心360-363可以形成第一组组件以执行OS的至少一部分(例如,作为由管理程序216管理的VM的部分),并且被分配给核心360-363的CID 370-373可以形成第一组CID。在这样的示例中,可以分配第二组处理器核心364-366来执行取证分析系统的至少一部分,例如通过执行来自存储器356的取证分析系统指令358。在这样的示例中,核心364-366可以形成用于执行取证分析系统的第二组组件,并且分配给核心364-366的CID 374-376可以形成第二组CID。将该示例划分为第一组和第二组组件和CID是用于关于图3进行说明目的的示例。在其他示例中,可以做出其他划分。
在图3的示例中,存储器控制器330可以将某些位置ID映射到第一组组件可访问的存储器340的初始存储器位置。在图3的示例中,计算设备300的存储器(例如,存储器340)可以包括由至少组件302(例如,通过至少核心360)可执行以执行资源控制器216的指令214,如上所述。在一些示例中,指令214可以存储在组件302的存储器的指令存储器区域中。在一些示例中,存储器340可由存储指令214且包括初始存储器位置(例如,在同一存储器设备上)的组件302的单个存储器设备来实现。在其它示例中,存储器340可以由多个存储器设备来实现,并且指令214可以存储在与包括初始存储器位置的存储器设备不同的存储器设备上。在这样的示例中,组件302可以包括存储指令214的存储器,而包括初始存储器位置的存储器可以实现在组件302经由存储器结构101可访问的单独的组件上,诸如包括存储器380(包括初始存储器位置)和存储器控制器385的组件308上。
在图3的示例中,当由与存储器控制器330分离的计算设备300的处理器核心(例如,核心360)执行时,指令214可以执行资源控制器216来确定拍摄第一组件可访问的存储器的快照,如上所述。在图3的示例中,当被执行时,指令214可以执行资源控制器216来响应于确定配置389存储器控制器330分别在配置389之后独立于资源控制器216将映射到可访问存储器的位置ID视为针对由第一CID标识的源的写时复制,并且将其视为针对由任何第二CID标识的至少一个源的只读或读写。指令214可以如上文关于图1和图2的存储器控制器130所描述的那样配置存储器控制器330。
在这样的示例中,存储器控制器330可以接收写入分组,该写入分组包括针对写入操作,未被给予写时复制映射的位置ID中的给定一个和作为源标识符的第一CID中的一个。作为响应,被配置用于针对第一CID的写时复制的存储器控制器330可以独立于资源控制器216创建给定位置ID到由第一CID标识的源的相应的备用存储器位置(例如,在存储器340中或其他地方)的写时复制映射。在这种示例中,在创建了针对给定位置ID的写时复制映射之后,存储器控制器330还可以接收读取分组,该读取分组包含针对读取操作,给定位置ID和作为源标识符的第二CID中的一个。作为响应,存储器控制器330(被配置用于针对第一CID的写时复制)可以独立于资源控制器216返回存储在给定位置ID对于第二CID被映射到的初始存储器位置中的数据。尽管上面描述了针对第一组件的写时复制的单个示例,但被配置用于针对第一组件的写时复制的存储器控制器330可以类似地独立于资源控制器216处理来自第一组件的其他写入分组(即,包括作为源标识符的第一CID的写入分组)。另外,尽管上面描述了针对第二组件读取的单个示例,但是当被配置用于针对第一组件102的写时复制时,存储器控制器330可以类似地独立于资源控制器216处理来自第二组件的其他读取分组(即,包括作为源标识符的第二CID的读取分组)。
以这种方式,为了拍摄快照,资源控制器216(例如,指令214)可以配置存储器控制器330使得存储器控制器330可以独立于资源控制器216将位置ID视为针对与第一CID相关联的组件(即,被分配以执行OS的至少一部分)的写时复制,并且可以将位置ID视为针对与第二CID相关联的组件(即,被分配用于执行取证分析系统的至少一部分)的只读或读写。在一些示例中,系统301可以包括第一组和第二组处理器核心。在本文所描述的示例中,当由处理资源(例如,处理核心)或计算设备300执行时,如通过资源控制器216实施的所描述的功能可以由资源控制器216的指令214来实施。类似地,如通过指令214(例如,当由处理资源执行时)实施的所描述的功能可以视为由资源控制器216来实施。在一些示例中,资源控制器216可以是如上所述的任何适合的资源控制器,诸如硬件接口资源、内核段等,并且指令214可以包括用于执行该类型的资源控制器的指令。在一些示例中,资源控制器216可以是管理程序,如上所述,指令214可以包括用于执行管理程序216的指令。在这样的示例中,指令214可以包括用于执行管理程序216的指令,其中除了管理程序的其它功能之外,管理程序可以实施上文关于资源控制器216所描述的功能。
在其他示例中,不包括在第一组CID中的第二CID(即,CID 391)可被分配给系统301的取证分析电路390,取证分析电路390对快照进行取证分析。在这种示例中,取证分析电路390可以包括专用集成电路(ASIC)和现场可编程门阵列(FPGA)中的至少一个,以执行如上所述的取证分析。在一些示例中,取证分析电路390可以在包括初始存储器位置和存储器控制器330的可访问存储器的本地。在本文所描述的示例中,在存储器控制器和存储器“本地”的组件是作为与存储器和存储器控制器相同的硬件组件(或在一些示例中为相同的硬件设备)的部分的组件,而不是通过存储器结构101与存储器和存储器控制器分离的单独的硬件设备的部分。
在这样的示例中,响应于对包含存储器340的至少部分的第一组件可访问的存储器拍摄快照的确定,指令214在被执行时可以执行资源控制器216以配置存储器控制器330使得存储器控制器330在配置之后可以独立于资源控制器216将映射到可访问存储器的位置ID分别视为针对由第一CID标识的源的写时复制,并且视为针对由第二CID标识的源的只读或读写,第二CID在本例中可以是取证分析电路390。以这种方式,当存储器控制器330被配置为将位置ID视为针对与第一CID相关联的组件(即,被分配用于执行OS的至少一部分)的写时复制时,存储器控制器330被配置为将位置ID视为针对与第二CID 391相关联的取证分析电路390的只读或读写,使得取证分析电路能够读取快照中的数据并对快照中的数据执行取证分析,而第一组件不会在其执行写入操作中被暂停且不更改快照的数据。在一些示例中,系统301可以包括第一组件和取证分析电路391。
在一些示例中,取证分析电路390可以在与被分配以执行OS、VM和管理程序中的至少一个的至少一部分的至少一些核心360相同的组件302上,如上所述,并且在与包括初始存储器位置的存储器340和被配置以对初始存储器位置拍摄快照的存储器控制器330相同的组件302上,如上所述。在这样的示例中,与当由远离具有存储器340和存储器控制器330的组件302的组件执行取证分析时的负荷相比,在与存储器340和存储器控制器330的初始存储器位置(例如,在可访问存储器和存储器控制器本地)相同的组件302上的取证分析电路390可以减少由取证分析过程导致的在存储器结构101上的负荷。在其它的示例中,被分配了CID 391的取证分析电路390可以包含在与核心360分离的另一组件诸如组件308中。在一些示例中,组件308可以包括包含具有初始存储器位置的可访问存储器的存储器380,并且可以包括用于管理可访问存储器(如上文关于存储器控制器330所描述的)的存储器控制器385。在这样的示例中,资源控制器216可以配置存储器控制器385用于写时复制,如上文关于存储器控制器330所描述的(例如,存储器控制器385可以被配置为将位置ID视为针对与第一CID相关联的组件的写时复制并且将位置ID视为针对与第二CID 391相关联的取证分析电路390的只读或读写)。在一些示例中,与检查下的OS和取证分析系统由计算设备的不同处理核心执行的示例相比,具有由ASIC和FPGA中的至少中的一个实现的专用取证分析电路390可以提供来自检查下的OS的取证分析过程的更鲁棒的隔离。
尽管上面已经关于经由一个存储器控制器可访问的存储器描述了示例,但是在其他示例中,针对其拍摄快照的第一组件可访问的存储器可以分布在多个组件上。在这样的示例中,对于每个存储器控制器调解对针对其拍摄快照的存储器的一部分的访问,资源控制器216可以配置存储器控制器用于针对第一组件的存储器部分的写时复制,如上文关于一个存储器控制器所描述的,并且配置存储器控制器用于针对其他组件的只读或读写访问(例如,执行取证分析),如上文关于一个存储器控制器所描述的。在这样的示例中,可以通过资源控制器216在每个存储器控制器被配置用于写时复制以拍摄快照处执行释放过程(如上所述)来释放快照。
在图3的示例中,计算设备330的组件302、304和306可以各自包括本文所述的任何适合的硬件组件。例如,组件302、304和306可以各自包括包含处理器核心的至少一个SOC。在其它示例中,组件302、304和306中的至少一个可以包括包含存储器控制器的存储器模块。例如,组件302可以是包括存储器控制器330、存储器340和取证分析电路390的存储器模块,并且不包括核心360。在一些示例中,本文关于图3所描述的功能可以结合本文关于图1-2和4-5中的任何一个所描述的功能来提供。
图4是用于配置存储器控制器用于写时复制的示例性方法400的流程图。尽管下面参照如上关于图1所述的计算设备100来描述方法400的执行,可以利用用于执行方法400的其他合适的系统(例如,图2的计算设备200或图3的计算设备300)。此外,方法400的实现不限于这些示例。
如上所述,计算设备100包括由基于分组的存储器结构101互连的第一硬件组件102和第二硬件组件104。在方法400的405处,资源控制器116(例如,资源控制器指令114,当被执行时)可以确定拍摄经由存储器控制器130对第一组件102可访问的存储器的快照。如上所述,存储器控制器130可以将位置ID 133映射到第一组件102的可访问存储器的初始存储器位置142。在410处,响应于确定,资源控制器116可以将存储器控制器130配置为独立于资源控制器116将位置ID 133视为针对第一组件102而不是针对第二组件的写时复制。在这样的示例中,资源控制器116可以配置存储器控制器130使得存储器控制器130可以独立于资源控制器116将位置ID 133视为针对第一组件而不是针对第二组件的写时复制。在一些示例中,资源控制器116可以配置存储器控制器130以将位置ID 133视为针对第二组件的只读或读写。
在415处,如上所述,被配置用于写时复制的存储器控制器130响应于写入分组包括将第一组件102标识为源并且针对写入操作指示尚未针对第一组件创建写时复制映射的位置ID 133中的给定一个的信息,存储器控制器130可以独立于资源控制器116而创建给定位置ID 133到第一组件102的备用存储器位置144的写时复制映射134。
在420,被配置用于如上所述的写时复制的存储器控制器130在创建写时复制映射134之后并且响应于读取分组包含将第二组件104标识为源并且针对读取操作指示给定位置ID 133的信息,存储器控制器130可以独立于资源控制器116而返回存储在给定位置ID133针对第二组件104所映射到的初始存储器位置142中的数据143。
尽管图4的流程图示出了某些功能的特定的执行顺序,但是方法400不限于该顺序。例如,可以以不同的顺序执行流程图中连续示出的功能,可以同时或部分并行或其组合来执行流程图中连续示出的功能。尽管上面已经关于经由存储器控制器提供写时复制访问的第一组件和提供只读或读写访问的第二组件描述了示例,但是在其它示例中,可以通过一个或多个不同的存储器控制器来向一个或多个第一组件提供写时复制,如上所述,并且通过一个或多个不同的存储器控制器可以来向一个或多个第二组件提供只读或读写访问,如上所述。在一些示例中,本文中结合图4描述的功能可以结合本文关于图1-3和5中的任一个所描述的功能来提供。
图5是响应于完整性违例而配置存储器控制器用于写时复制的示例方法500的流程图。尽管下面参照如上关于图1所述的计算设备100来描述方法500的执行,可以利用用于执行方法500的其他合适的系统(例如,图2的计算设备200或图3的计算设备300)。另外,方法500的实现不限于这些示例。
如上所述,计算设备100包括由基于分组的存储器结构101互连的第一硬件组件102和第二硬件组件104。在方法500的502,资源控制器116(例如,资源控制器指令114,在被执行时)可以检测与计算设备的第一组件102相关联的完整性违例(参见图2)。在504,资源控制器116可以响应于检测到完整性违例而确定拍摄经由存储器控制器130而第一组件102可访问的存储器的快照195。如上所述,存储器控制器130可以将位置ID 133映射到针对第一组件102的可访问存储器的初始存储器位置142。
在506,响应于确定,资源控制器116可以配置存储器控制器130在配置后独立于资源控制器116将位置ID 133视为针对第一组件而不是针对第二组件的写时复制。在这样的示例中,资源控制器116可以配置存储器控制器130使得存储器控制器130可以在配置后独立于资源控制器116将位置ID133视为针对第一组件而不是针对第二组件的写时复制。在一些示例中,指令221可以配置存储器控制器130以将位置ID 133视为针对第二组件的只读或读写。
在508,在配置存储器控制器130之后,计算设备100可以同时利用第一组件102执行OS、VM或管理程序的至少一部分以及利用第二组件104执行取证分析系统的至少一部分,而不修改包含在配置时存储在初始存储器位置中的初始数据的快照,并且第一和第二组件中的每一个尝试使用位置ID访问多个初始物理存储器位置。
在510处,响应于写入分组包括将第一组件102标识为源且针对写入操作指示尚未针对第一组件创建写时复制映射的位置ID 133中的给定一个的信息,被配置用于写时复制的存储器控制器130可以独立于资源控制器116创建给定位置ID 133到第一组件102的备用存储器位置144的写时复制映射134。
在512处,在创建写时复制映射134之后以及响应于读取分组包含将第二组件104标识为源并且针对读取操作指示给定位置ID 133的信息,被配置用于写时复制的存储器控制器130可以独立于资源控制器116而返回存储在给定位置ID 133针对第二组件104所映射到的初始存储器位置142中的数据143。
在514,如上所述,资源控制器116可以确定释放快照195,如上所述。在一些示例中,资源控制器116可以响应于取证分析系统已经完成复制快照的数据的过程的指示或响应于取证分析系统已经完成快照数据的取证分析的指示来确定释放快照195。
响应于释放快照195的确定,在516,资源控制器116可以配置存储器控制器130,以针对第一组件120,提供针对其没有创建写时复制映射的位置ID 133的读写访问。在518,针对位置ID 133中的一个到针对第一组件120创建的备用存储器位置144的每个写时复制映射,资源控制器116可以将位置ID 133映射到用于第二组件104的备用存储器位置144。在520,对于位置ID 133中的一个到针对第一组件120而创建的备用存储器位置144的每个写时复制映射,资源控制器116可以释放位置ID 133先前映射到的初始存储器位置142。
尽管图5的流程图示出了某些功能的特定的执行顺序,但是方法500不限于该顺序。例如,可以以不同的顺序执行流程图中连续示出的功能,可以同时或部分同时或其组合来执行。虽然上面已经关于经由存储器控制器提供写时复制访问的第一组件和提供只读或读写访问的第二组件描述了示例,但是在其他示例中,也可以通过一个或多个不同的存储器控制器向一个或多个第一组件提供如上所述的写时复制访问,并且可以通过一个或多个不同的存储器控制器向一个或多个第二组件提供如上所述的只读或读写访问。在一些示例中,本文中结合图5描述的功能可以结合本文关于图1-4中任一个所描述的功能来提供。
在本说明书中公开的所有特征和/或如此公开的任何方法或过程的所有元素可以以任何组合来组合,除了这些特征和/或元件中的至少一些是相互排斥的组合之外。

Claims (14)

1.一种计算设备的方法,所述计算设备包括由基于分组的存储器结构互连的第一硬件组件和第二硬件组件,所述方法包括:
利用所述计算设备的资源控制器来确定拍摄经由存储器控制器而所述第一硬件组件可访问的存储器的快照,所述存储器控制器针对所述第一硬件组件将位置标识符、即位置ID,映射到所述可访问的存储器的初始存储器位置;
响应于所述确定并且利用所述资源控制器,配置所述存储器控制器用于在所述配置后独立于所述资源控制器将所述位置ID视为针对所述第一硬件组件而不是针对所述第二硬件组件的写时复制;
所述存储器控制器被配置用于写时复制,并且独立于所述资源控制器:
响应于写入分组,所述写入分组包括将所述第一硬件组件标识为源并且针对写入操作指示尚未针对所述第一硬件组件创建写时复制映射的所述位置ID中的给定位置ID的信息,创建所述给定位置ID到用于所述第一硬件组件的备用存储器位置的写时复制映射;
在创建所述写时复制映射之后并且响应于读取分组,所述读取分组包括将所述第二硬件组件标识为源并且针对读取操作指示所述给定位置ID的信息,针对所述第二硬件组件返回存储在所述给定位置ID所映射到的初始存储器位置中的数据;以及
在所述配置之后,同时利用所述第一硬件组件执行操作系统OS、虚拟机VM或管理程序的至少一部分以及利用所述第二硬件组件执行取证分析系统的至少一部分,而不修改包括在所述配置时存储在所述初始存储器位置中的初始数据的快照,并且所述第一硬件组件和所述第二硬件组件中的每一个硬件组件尝试利用所述位置ID来访问多个所述初始存储器位置。
2.根据权利要求1所述的方法,其中,所述资源控制器是至少部分地由所述第一硬件组件执行的管理程序。
3.根据权利要求2所述的方法,还包括:
至少部分地在所述第一硬件组件上执行虚拟机VM,其中,所述VM由所述管理程序管理;
检测与所述计算设备的所述第一硬件组件相关联的完整性违例,其中,对拍摄所述第一硬件组件可访问的存储器的快照的确定是响应于检测到所述完整性违例的;并且
响应于所述确定,利用所述管理程序,配置所述存储器控制器用于独立于所述管理程序将所述位置ID视为针对所述第二硬件组件的只读或读写。
4.根据权利要求1所述的方法,还包括:
释放所述快照,包括,利用所述资源控制器:
配置所述存储器控制器用于针对所述第一硬件组件提供对未针对其创建写时复制映射的位置ID的读写访问;以及
对于所述位置ID中的一个到针对所述第一硬件组件创建的备用存储器位置的每个写时复制映射:
将所述位置ID映射到用于所述第二硬件组件的备用存储器位置;并且
使所述位置ID先前被映射到的初始存储器位置空闲。
5.根据权利要求4所述的方法,还包括:
响应于所述计算设备的取证分析系统已经完成将存储在所述初始存储器位置中的快照的数据复制到辅助存储器位置的过程的指示来确定释放所述快照;
其中,所述释放是响应于释放所述快照的所述确定而执行的。
6.根据权利要求4所述的方法,还包括:
响应于所述计算设备的取证分析系统已经完成对存储在所述初始存储器位置中的快照的数据的取证分析的指示,确定释放所述快照,
其中,所述释放是响应于释放所述快照的所述确定而执行的。
7.一种计算设备,包括:
第一硬件组件和第二硬件组件,其使用基于分组的存储器结构进行通信;
所述第一硬件组件可访问的初始存储器位置;
存储器控制器,所述存储器控制器将位置标识符、即位置ID,映射到存储初始数据的初始存储器位置;以及
存储器,所述存储器包括指令,所述指令能够由所述计算设备的至少一个处理资源执行以执行资源控制器根据权利要求1至6中任一项所述的方法进行操作。
8.根据权利要求7所述的计算设备,其中:
所述存储器控制器使用用于可访问的存储器和主存储器区域的位置ID来将所述可访问的存储器保持为与所述可访问的存储器不同的存储器的主区域的镜像;
响应于拍摄所述快照的确定,所述指令不将位置ID配置为针对存储器的主区域的第一硬件组件的写时复制;并且
当所述快照被释放时,所述指令使用任何备用存储器位置来更新用于所述可访问的存储器和所述主存储器区域的位置ID的映射。
9.根据权利要求7所述的计算设备,其中:
所述第一硬件组件包括所述存储器控制器、所述存储器和所述至少一个处理资源。
10.根据权利要求7所述的计算设备,其中,所述资源控制器是硬件接口资源,所述硬件接口资源具有对所述计算设备的至少一个硬件资源的直接访问权,其中,所述至少一个硬件资源不能由与所述硬件接口资源相关联的单独的进程直接访问。
11.根据权利要求7所述的计算设备,其中:
所述计算设备包括具有分段内核架构的操作系统,所述分段内核架构包括用于管理所述计算设备的多个进程的管理内核段和多个进程内核段,每个进程内核段与管理的进程中的一个相关联;并且
所述资源控制器是所述操作系统的管理内核段。
12.一种计算系统,包括:
计算设备的存储器;
存储器控制器,其用于将位置标识符、即位置ID,映射到被分配有第一硬件组件标识符、即第一CID的第一硬件组件可访问的存储器的初始存储器位置,其中,第二硬件组件被分配有第二硬件组件标识符、即第二CID,并且所述第一硬件组件和所述第二硬件组件利用基于分组的存储器结构进行通信;以及
存储在所述计算设备的存储器中的指令,所述指令能够由与所述存储器控制器分离的所述第一硬件组件中的至少一个执行以根据权利要求1至6中任一项所述的方法来操作资源控制器。
13.根据权利要求12所述的计算系统,还包括所述第一硬件组件和所述第二硬件组件,其中:
所述资源控制器是管理程序;
所述第一硬件组件包括多个SOC的第一处理器核心,其中,所述第一CID被分配给所述第一处理器核心并且所述第一处理器核心用于执行操作系统OS的作为由所述管理程序管理的虚拟机的一部分的至少一部分;并且
所述第二硬件组件包括所述多个SOC的第二处理器核心,其中,所述第二CID被分配给所述第二处理器核心并且所述第二处理器核心用于执行取证分析系统的至少一部分。
14.根据权利要求12所述的计算系统,还包括所述第一硬件组件和所述第二硬件组件,其中:
所述第一硬件组件包括多个处理器核心,其中,所述第一CID被分配给所述多个处理器核心中的第一处理器核心,并且所述第一处理器核心用于执行操作系统OS的至少一部分;并且
所述第二硬件组件包括在所述存储器控制器和可访问的存储器本地的取证分析电路,所述取证分析电路用于对所述快照执行取证分析,其中,所述第二CID被分配给所述取证分析电路,并且所述取证分析电路包括专用集成电路ASIC和现场可编程门阵列FPGA中的至少一个。
CN201680022878.2A 2016-04-22 2016-04-22 计算设备及其方法,以及计算系统 Active CN107533602B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2016/028902 WO2017184168A1 (en) 2016-04-22 2016-04-22 Configuration of a memory controller for copy-on-write with a resource controller

Publications (2)

Publication Number Publication Date
CN107533602A CN107533602A (zh) 2018-01-02
CN107533602B true CN107533602B (zh) 2021-01-12

Family

ID=60116272

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680022878.2A Active CN107533602B (zh) 2016-04-22 2016-04-22 计算设备及其方法,以及计算系统

Country Status (4)

Country Link
US (1) US11734430B2 (zh)
EP (1) EP3274896B1 (zh)
CN (1) CN107533602B (zh)
WO (1) WO2017184168A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10795991B1 (en) * 2016-11-08 2020-10-06 Fireeye, Inc. Enterprise search
US10915640B2 (en) 2018-10-01 2021-02-09 International Business Machines Corporation Cyber security testing for authorized services
US11010479B2 (en) * 2018-10-01 2021-05-18 International Business Machines Corporation Cyber security for space-switching program calls
US11336679B2 (en) 2020-01-28 2022-05-17 International Business Machines Corporation Combinatorial test design for optimizing parameter list testing
US20220237026A1 (en) * 2021-01-28 2022-07-28 Microsoft Technology Licensing, Llc Volatile memory acquisition

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010042109A1 (en) * 2008-10-07 2010-04-15 Hewlett-Packard Development Company, L.P. Creating snapshots of data using a selected one of different snapshot algorithms
CN104346304A (zh) * 2013-07-23 2015-02-11 国际商业机器公司 使用存储器控制器来请求资源的方法和系统
CN107533524A (zh) * 2015-11-25 2018-01-02 慧与发展有限责任合伙企业 用于写时复制的存储器控制器的配置

Family Cites Families (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5619682A (en) * 1993-09-28 1997-04-08 Bull Hn Information Systems Inc. Executing network layered communications of a first system on a second system using a communication bridge transparent to the different communication layers
WO2001025951A1 (en) * 1999-10-05 2001-04-12 Ejasent Inc. Virtual endpoint
US7269631B2 (en) 2000-06-02 2007-09-11 Hewlett-Packard Development Company, L.P. Architecture for parallel distributed table driven I/O mapping
US6941490B2 (en) 2000-12-21 2005-09-06 Emc Corporation Dual channel restoration of data between primary and backup servers
US6718352B1 (en) 2001-03-20 2004-04-06 Emc Corporation Methods and apparatus for managing a data set stored on a data storage device
WO2003028183A1 (en) 2001-09-28 2003-04-03 Commvault Systems, Inc. System and method for generating and managing quick recovery volumes
US6907505B2 (en) 2002-07-31 2005-06-14 Hewlett-Packard Development Company, L.P. Immediately available, statically allocated, full-logical-unit copy with a transient, snapshot-copy-like intermediate stage
US7743031B1 (en) 2002-09-06 2010-06-22 3Par, Inc. Time and space efficient technique for creating virtual volume copies
US7055010B2 (en) * 2002-11-06 2006-05-30 Synology Inc. Snapshot facility allowing preservation of chronological views on block drives
US20060206677A1 (en) 2003-07-03 2006-09-14 Electronics And Telecommunications Research Institute System and method of an efficient snapshot for shared large storage
US7047380B2 (en) * 2003-07-22 2006-05-16 Acronis Inc. System and method for using file system snapshots for online data backup
JP4500057B2 (ja) 2004-01-13 2010-07-14 株式会社日立製作所 データ移行方法
US8359491B1 (en) 2004-03-30 2013-01-22 Symantec Operating Corporation Disaster recovery rehearsal using copy on write
US8959299B2 (en) 2004-11-15 2015-02-17 Commvault Systems, Inc. Using a snapshot as a data source
US7406634B2 (en) * 2004-12-02 2008-07-29 Cisco Technology, Inc. Method and apparatus for utilizing an exception handler to avoid hanging up a CPU when a peripheral device does not respond
US20060168269A1 (en) * 2004-12-30 2006-07-27 Microsoft Corporation Bus abstraction
US7437617B2 (en) 2005-02-11 2008-10-14 International Business Machines Corporation Method, apparatus, and computer program product in a processor for concurrently sharing a memory controller among a tracing process and non-tracing processes using a programmable variable number of shared memory write buffers
GB0514541D0 (en) 2005-07-14 2005-08-24 Ibm Data transfer apparatus and method
US7917481B1 (en) * 2005-10-31 2011-03-29 Symantec Operating Corporation File-system-independent malicious content detection
JP4809040B2 (ja) 2005-11-08 2011-11-02 株式会社日立製作所 ストレージ装置及びスナップショットのリストア方法
US7697515B2 (en) 2005-12-27 2010-04-13 Emc Corporation On-line data migration of a logical/virtual storage array
US8031632B2 (en) 2006-08-30 2011-10-04 Hewlett-Packard Development Company, L.P. Method and system of implementing virtual local area networks (VLANS) with teamed communication ports
US8261345B2 (en) 2006-10-23 2012-09-04 Endeavors Technologies, Inc. Rule-based application access management
WO2008055269A2 (en) 2006-11-04 2008-05-08 Virident Systems, Inc. Asymmetric memory migration in hybrid main memory
US7809908B2 (en) 2007-02-23 2010-10-05 Inventec Corporation Disk snapshot acquisition method
US7716183B2 (en) 2007-04-11 2010-05-11 Dot Hill Systems Corporation Snapshot preserved data cloning
US8014976B2 (en) 2007-10-24 2011-09-06 Microsoft Corporation Secure digital forensics
US8082411B1 (en) 2008-04-30 2011-12-20 Netapp, Inc. Method and system for logical unit substitution
US8615501B2 (en) 2008-06-23 2013-12-24 International Business Machines Corporation Hypervisor service to provide image version control support
US20100114832A1 (en) 2008-10-31 2010-05-06 Lillibridge Mark D Forensic snapshot
US8055736B2 (en) 2008-11-03 2011-11-08 International Business Machines Corporation Maintaining storage area network (‘SAN’) access rights during migration of operating systems
US8307154B2 (en) * 2009-03-03 2012-11-06 Kove Corporation System and method for performing rapid data snapshots
US8538919B1 (en) * 2009-05-16 2013-09-17 Eric H. Nielsen System, method, and computer program for real time remote recovery of virtual computing machines
JP2013011919A (ja) * 2009-09-17 2013-01-17 Hitachi Ltd ストレージ装置及びそのスナップショット制御方法
US8417907B2 (en) 2009-10-29 2013-04-09 Symantec Corporation Synchronizing snapshot volumes across hosts
US8489799B2 (en) 2009-12-13 2013-07-16 International Business Machines Corporation Efficient loading of data into memory of a computing system
US9015430B2 (en) 2010-03-02 2015-04-21 Symantec Corporation Copy on write storage conservation systems and methods
US8312258B2 (en) 2010-07-22 2012-11-13 Intel Corporation Providing platform independent memory logic
US8793448B2 (en) 2010-07-29 2014-07-29 International Business Machines Corporation Transparent data migration within a computing environment
US8799222B2 (en) 2010-12-17 2014-08-05 Symantec Corporation Host based software block level replication using metadata indicating changed data objects at source and secondary nodes
US8799594B2 (en) 2011-04-27 2014-08-05 International Business Machines Corporation Online volume migration using multi-path input/output masquerading
US9792136B2 (en) 2011-04-28 2017-10-17 Microsoft Technology Licensing, Llc Hardware assisted inter hypervisor partition data transfers
US20120324236A1 (en) 2011-06-16 2012-12-20 Microsoft Corporation Trusted Snapshot Generation
WO2013012436A1 (en) 2011-07-18 2013-01-24 Hewlett-Packard Development Company, L.P. Reset vectors for boot instructions
JP5706974B2 (ja) 2011-07-22 2015-04-22 株式会社日立製作所 計算機システム及びそのデータ移行方法
US8996805B2 (en) 2011-10-26 2015-03-31 Hewlett-Packard Development Company, L.P. Shared cache module and method thereof
US9058120B2 (en) * 2011-11-09 2015-06-16 International Business Machines Corporation Setting optimal space allocation policy for creating dependent snapshots to enhance application write performance and reduce resource usage
US9529614B2 (en) 2012-03-05 2016-12-27 Board Of Regents The University Of Texas Systems Automatically bridging the semantic gap in machine introspection
US9122581B2 (en) 2012-06-12 2015-09-01 International Business Machines Corporation Data versioning in solid state memory
US9678863B2 (en) 2012-06-12 2017-06-13 Sandisk Technologies, Llc Hybrid checkpointed memory
US9086957B2 (en) 2012-08-02 2015-07-21 International Business Machines Corporation Requesting a memory space by a memory controller
US8909990B2 (en) * 2012-08-04 2014-12-09 Microsoft Corporation Historical software diagnostics using lightweight process snapshots
US9258321B2 (en) 2012-08-23 2016-02-09 Raytheon Foreground Security, Inc. Automated internet threat detection and mitigation system and associated methods
US20140068601A1 (en) 2012-08-30 2014-03-06 Raytheon Company System and method for live computer forensics
WO2014062191A1 (en) 2012-10-19 2014-04-24 Hewlett-Packard Development Company, L.P. Asyncrhonous consistent snapshots in persistent memory stores
CN104718578A (zh) 2012-12-21 2015-06-17 惠普发展公司,有限责任合伙企业 具有错误校正逻辑的存储模块
US9195614B2 (en) 2013-01-08 2015-11-24 International Business Machines Corporation Instantaneous save/restore of virtual machines with persistent memory
US20140259169A1 (en) * 2013-03-11 2014-09-11 Hewlett-Packard Development Company, L.P. Virtual machines
US9069955B2 (en) 2013-04-30 2015-06-30 International Business Machines Corporation File system level data protection during potential security breach
US20150039815A1 (en) 2013-08-02 2015-02-05 OCZ Storage Solutions Inc. System and method for interfacing between storage device and host
US9542216B2 (en) * 2013-10-15 2017-01-10 At&T Intellectual Property I, L.P. Richer model of cloud app markets
US9117081B2 (en) 2013-12-20 2015-08-25 Bitdefender IPR Management Ltd. Strongly isolated malware scanning using secure virtual containers
WO2015112150A1 (en) 2014-01-23 2015-07-30 Hewlett-Packard Development Company, L.P. Volume migration for a storage area network
WO2015116077A1 (en) 2014-01-30 2015-08-06 Hewlett-Packard Development Company, L.P. Access controlled memory region
US11073986B2 (en) 2014-01-30 2021-07-27 Hewlett Packard Enterprise Development Lp Memory data versioning
US9202046B2 (en) 2014-03-03 2015-12-01 Bitdefender IPR Management Ltd. Systems and methods for executing arbitrary applications in secure environments
US9992034B2 (en) 2014-03-13 2018-06-05 Hewlett Packard Enterprise Development Lp Component multicast protocol
US10394707B2 (en) 2014-11-25 2019-08-27 Hewlett Packard Enterprise Development Lp Memory controller with memory resource memory management
US10419339B2 (en) 2015-01-22 2019-09-17 Hewlett Packard Enterprise Development Lp Router to send a request from a first subnet to a second subnet
US9842065B2 (en) * 2015-06-15 2017-12-12 Intel Corporation Virtualization-based platform protection technology
CN107533437A (zh) 2015-09-24 2018-01-02 慧与发展有限责任合伙企业 弹性存储器结构

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010042109A1 (en) * 2008-10-07 2010-04-15 Hewlett-Packard Development Company, L.P. Creating snapshots of data using a selected one of different snapshot algorithms
CN104346304A (zh) * 2013-07-23 2015-02-11 国际商业机器公司 使用存储器控制器来请求资源的方法和系统
CN107533524A (zh) * 2015-11-25 2018-01-02 慧与发展有限责任合伙企业 用于写时复制的存储器控制器的配置

Also Published As

Publication number Publication date
EP3274896B1 (en) 2019-08-21
WO2017184168A1 (en) 2017-10-26
EP3274896A4 (en) 2018-05-16
EP3274896A1 (en) 2018-01-31
US20180365428A1 (en) 2018-12-20
CN107533602A (zh) 2018-01-02
US11734430B2 (en) 2023-08-22

Similar Documents

Publication Publication Date Title
EP2840495B1 (en) Container-based processing method and apparatus
CN107533602B (zh) 计算设备及其方法,以及计算系统
US9361145B1 (en) Virtual machine state replication using DMA write records
US9870248B2 (en) Page table based dirty page tracking
CN107209683B (zh) 备份映像恢复
US10956189B2 (en) Methods for managing virtualized remote direct memory access devices
JP2022500759A (ja) 不揮発性メモリエクスプレスデバイスのネットワークをサニタイズするときに使用する方法および装置
US20180157605A1 (en) Configuration of a memory controller for copy-on-write
JP2011527047A (ja) 分散型raidと関連するアプリケーションの実行のための方法およびシステム
CN104572656A (zh) 一种磁盘镜像空间回收的方法及装置
US11138028B1 (en) Hot growing a cloud hosted block device
US8732427B2 (en) Systems and methods for collapsing a derivative version of a primary storage volume
EP2639698B1 (en) Backup control program, backup control method, and information processing device
US20170046186A1 (en) Limited hardware assisted dirty page logging
US9619168B2 (en) Memory deduplication masking
US9952984B2 (en) Erasing a storage block before writing partial data
US10331559B2 (en) Input/output filter configuration of linked storage
US10210035B2 (en) Computer system and memory dump method
CN104618191A (zh) 一种主机与裸存储块之间的通信故障检测方法和装置
EP3278219A1 (en) Migration of computer systems
US20240184612A1 (en) Virtual machine live migration with direct-attached non-volatile memory express device
US20240069980A1 (en) Disabling a processor facility on a new processor generation without breaking binary compatibility

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
GR01 Patent grant
GR01 Patent grant