CN109582221A - 主机计算设备、远程服务器设备、存储系统及其方法 - Google Patents
主机计算设备、远程服务器设备、存储系统及其方法 Download PDFInfo
- Publication number
- CN109582221A CN109582221A CN201811130023.9A CN201811130023A CN109582221A CN 109582221 A CN109582221 A CN 109582221A CN 201811130023 A CN201811130023 A CN 201811130023A CN 109582221 A CN109582221 A CN 109582221A
- Authority
- CN
- China
- Prior art keywords
- file system
- data
- storage
- processor
- cache
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0888—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/184—Distributed file systems implemented as replicated file system
- G06F16/1844—Management specifically adapted to replicated file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45545—Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45591—Monitoring or debugging support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/604—Details relating to cache 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)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及主机计算设备、远程服务器设备、存储系统及其方法。提供了一种主机计算设备,其可以包括具有主机操作系统以及与之相关联的主机内核的主机处理器。所述主机处理器可以被配置成托管访客操作系统、经由主机内核来使访客操作系统的文件系统镜像,以及通过扫描被镜像的文件系统来生成高速缓存准则。所述主机计算设备可以此外包括高速缓存引擎。所述高速缓存引擎可以被配置成基于由主机处理器所生成的高速缓存准则而对来自访客操作系统的I/O请求进行处理。
Description
技术领域
各种方面一般地涉及主机计算设备(arrangement)、远程服务器设备、存储系统,以及用于操作存储系统的方法。
背景技术
随着在存储架构中数据量以及数据业务增加,高效的数据管理技术可能变得越来越重要。在一些应用中,可以将数据远程地存储在与数据的实际用户间隔开的存储系统处。在远程存储系统和客户端系统之间的数据传递可以基于通信协议。在其它应用中,虚拟机监控器可以用于在主机系统内托管各种访客操作系统。访客操作系统可以访问由主机系统提供的或者通信地耦合到主机系统的一个或多个存储设备。
附图说明
贯穿附图,应当注意到,同样的参考标号用于描绘相同或类似的元件、特征和结构。附图不一定是按比例的,代替地,强调一般被置于说明本公开内容的各方面上。在以下描述中,参考以下附图来描述本公开内容的一些方面,在所述附图中:
图1A和1B分别示出了用于差异化存储服务技术的示例性文件系统基准;
图2示出了根据本公开内容的一些方面的存储系统架构;
图3示出了根据本公开内容的一些方面的高速缓存处理器;
图4示出了根据本公开内容的一些方面的被配置成使文件系统镜像的镜像结构的内部配置;
图5示出了根据本公开内容的一些方面的存储系统架构;
图6示出了根据本公开内容的一些方面的用于操作计算系统的方法;
图7示出了根据各种方面的用于操作主机计算设备的示例性方法;以及
图8示出了根据本公开内容的各种方面的用于操作远程服务器设备的方法。
具体实施方式
以下详细描述参考附图,所述附图作为说明而示出了其中可以实践本公开内容的特定细节和实施例。
词语“示例性”在本文中用于意指“用作示例、实例或说明”。在本文中被描述为“示例性”的任何实施例或设计不一定被解释为相比其它实施例或设计是优选的或有利的。
贯穿附图,应当注意到,同样的参考标号用于描绘相同或类似的元件、特征和结构。
充分详细地描述了一个或多个方面以使得本领域技术人员能够实践本公开内容。可以利用其它方面,并且可以做出结构的、逻辑的和/或电气的改变而不偏离本公开内容的范围。
本公开内容的各种方面不一定互斥,因为一些方面可以与一个或多个其它方面相组合以形成新的方面。
结合方法来描述各种方面,并且结合设备来描述各种方面。然而,可以理解的是,结合方法所描述的方面可以类似地适用于设备,并且反之亦然。
术语“至少一个”和“一个或多个”可以被理解成包括大于或等于一的数值量(例如一个、两个、三个、四个、[...]、等等)。术语“多个”可以被理解成包括大于或等于二的数值量(例如两个、三个、四个、五个、[...]、等等)。
关于元素群组的短语“其中至少一个”可以在本文中用于意指来自包括元素的群组的至少一个元素。例如,关于元素群组的短语“其中至少一个”可以在本文中用于意指对以下各项的选择:所列举的元素中之一、多个所列举的元素之一、多个单独列举的元素、或者多个多重列举的元素。
在说明书和权利要求中的词语“复数”和“多个”明确地是指大于一的数量。因此,显式地调用关于对象数量的先前提及的词语(例如“复数个[对象]”、“多个[对象]”)的任何短语明确地涉及多于一个所述对象。在说明书中和在权利要求中的术语“(的)群组”、“(的)组”、“(的)集合”、“(的)系列”、“(的)序列”、“(的)分组”等等诸如此类——如果有任何的话——涉及等于或大于一的数量,即一个或多个。
如本文中所使用的术语“数据”可以被理解为包括以任何合适的模拟或数字形式的信息,其例如被提供为文件、文件的一部分、文件集合、信号或流、信号或流的一部分、信号或流的集合等等。此外,术语“数据”还可以用于意指对信息的引用,例如以指针的形式。然而,术语数据不限于先前提及的示例,并且可以采取各种形式并且表示如本领域中理解的任何信息。
如例如在本文中所使用的术语“处理器”或“控制器”可以被理解为允许处置数据的任何种类的实体。可以根据由处理器或控制器所执行的一个或多个特定功能来处置数据。此外,如本文中所使用的处理器或控制器可以被理解为任何种类的电路、例如任何种类的模拟或数字电路。如例如在本文中所使用的、关于数据处置、文件处置或请求处置的术语“处置”或“进行处置”可以被理解为任何种类的操作,例如I/O操作,或任何种类的逻辑操作。I/O操作可以例如是存储(也被称为写入)和读取。
处理器或控制器可以因而是或包括模拟电路、数字电路、混合信号电路、逻辑电路、处理器、微处理器、中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、集成电路、专用集成电路(ASIC)等等,或其任何组合。将在以下进一步详细描述的相应功能的任何其它种类的实现方式还可以被理解为处理器、控制器或逻辑电路。理解到,本文中详述的处理器、控制器或逻辑电路中的任何两个(或更多)可以被实现为具有等同功能性等等的单个实体,并且相反地,本文中详述的任何单个处理器、控制器或逻辑电路可以被实现为具有等同功能性等等的两个或(更多)分离实体。
在软件和硬件实现的数据处置之间的差异可能变得模糊。本文中详述的处理器、控制器和/或电路可以被实现在软件、硬件中,和/或被实现为包括软件和硬件的混合实现方式。
本文中详述的术语“系统”(例如存储系统、服务器系统、客户端系统、访客系统等等)可以被理解为进行交互的元件的集合,其中所述元件可以作为示例并且不是限制地是一个或多个机械组件、一个或多个电气组件、一个或多个指令(例如被编码在存储介质中),和/或一个或多个处理器等等。
本文中详述的术语“存储装置”(例如存储设备、主存储装置等等)可以被理解成包括任何合适类型的存储器或存储器设备,例如硬盘驱动器(HDD)等等。
本文中详述的术语“高速缓存存储装置”(例如高速缓存存储设备)或“高速缓存存储器”可以被理解成包括任何合适类型的快速可访问存储器或存储器设备、固态驱动器(SSD)等等。根据各种实施例,高速缓存存储设备或高速缓存存储器可以是具有高I/O性能(例如大的读取/写入速度、低等待时间等等)的特殊类型的存储设备或存储器。通常,高速缓存设备可以具有比主存储装置更高的I/O性能,其中所述主存储装置关于存储空间可能一般是更成本高效的。根据一些方面,存储设备可以包括高速缓存存储器和主存储器二者。根据一些方面,存储设备可以包括用于将数据分布到高速缓存存储器和主存储器的控制器。根据各种实施例,主存储器的存储容量可大于高速缓存存储器的存储容量。根据各种实施例,主存储装置的存储容量可大于高速缓存存储设备的存储容量。
如本文中所使用的,术语“存储器”、“存储器设备”等等可以被理解为非暂时性计算机可读介质,其中可以存储数据或信息用于检索。对本文中所包括的“存储器”的提及可以因而被理解为涉及易失性或非易失性存储器,包括随机存取存储器(RAM)、只读存储器(ROM)、闪速存储器、固态存储装置、磁带、硬盘驱动器、光学驱动器、3D XPointTM)等等,或其任何组合。此外,领会到,寄存器、移位寄存器、处理器寄存器、数据缓冲器等等也在本文中被术语存储器包括。领会到,被称为“存储器”或“一存储器”的单个组件可以由多于一个不同类型的存储器组成,并且因而可以涉及包括一个或多个类型的存储器的集合组件。容易理解到,任何单个存储器组件可以被分离成多个共同地等同的存储器组件,并且反之亦然。此外,虽然存储器可以被描绘为与一个或多个其它组件分离(诸如在附图中那样),但是理解到,存储器可以被集成在另一组件内,诸如被集成在公共集成芯片上。
易失性存储器可以是需要电力来维持由介质存储的数据的状态的存储介质。易失性存储器的非限制性示例可以包括各种类型的RAM、诸如动态随机存取存储器(DRAM)或静态随机存取存储器(SRAM)。可以被使用在存储器模块中的一种特定类型的DRAM是同步动态随机存取存储器(SDRAM)。在一些方面中,存储器组件的DRAM可以遵从由电子器件工程联合委员会(JEDEC)所发布的标准,诸如针对双数据速率(DDR)SDRAM的JESD79F,针对DDR2SDRAM的JESD79-2F、针对DDR3 SDRAM的JESD79-3F、针对DDR4 SDRAM的JESD79-4A、针对低功率DDR(LPDDR)的JESD209、针对LPDDR2的JESD209-2、针对LPDDR3的JESD209-3、以及针对LPDDR4的JESD209-4(这些标准在www.jedec.org上可得到)。这样的标准(和类似的标准)可以被称为基于DDR的标准,并且实现这样的标准的存储设备的通信接口可以被称为基于DDR的接口。
各种方面可以被应用于包括非易失性存储器的任何存储器设备。在一个方面中,存储器设备是块可寻址的存储器设备,诸如基于“与非”(NAND)逻辑或者“或非”(NOR)逻辑技术的那些。存储器还可以包括未来世代的非易失性设备,诸如3D XPointTM存储器设备,或其它字节可寻址的、在适当位置写入的非易失性存储器设备。3D XPointTM存储器可以包括无晶体管、可堆叠的交叉点架构,其中存储器单元位于字线和位线的交叉处,并且单独可寻址,并且其中位存储基于体电阻中的改变。
在一些方面中,存储器设备可以是或可以包括使用硫族化物玻璃的存储器设备、多阈值层级NAND闪速存储器、NOR闪速存储器、单层级或多层级相变存储器(PCM)、电阻性存储器、纳米线存储器、铁电晶体管随机存取存储器(FeTRAM)、反铁电存储器、磁阻型随机存取存储器(MRAM)、并入了忆阻器技术的存储器、包括金属氧化物基底、氧空位基底的电阻性存储器、以及导电桥随机存取存储器(CB-RAM)、或自旋转移力矩(STT)-MRAM、基于自旋电子学磁性结存储器的设备、基于磁性隧道结(MTJ)的设备、基于DW(畴壁)和SOT(自旋轨道转移)的设备、基于晶闸管的存储器设备、或者以上各项中任何的组合、或其它存储器。术语存储器或存储器设备可以是指管芯本身和/或是指经封装的存储器产品。
根据一些方面,计算系统(例如主机计算系统或主机计算设备;远程服务器系统或远程服务器设备)可以实现一个或多个高速缓存策略来高效地对最重要的数据进行高速缓存,并且避免这些数据被不太重要的数据逐出(例如,文件系统元数据可具有较高优先级,例如被定义为比文件系统数据更重要)。
根据一些方面,差异化存储服务(DSS)技术可以被实现在计算系统中。该技术可以通过减少I/O等待时间和/或响应时间并且增加吞吐量和/或带宽来改善存储性能。差异化存储服务可以涉及分类,其中I/O操作被指派给一个或多个类。基于该分类,策略可以与类相关联(例如,文件系统的文件系统数据可能需要高性能I/O)。存储系统可以被配置成根据所述一个或多个策略来处置数据(例如,高速缓存存储设备可以用于为文件系统数据I/O提供低等待时间)。用于获得性能值的该技术可以例如被实现在软件、例如因特尔高速缓存加速软件——CAS中,所述软件被执行在主机计算设备上或被执行在远程存储设备上。
高速缓存可以适用于一个或多个块设备。块设备可以包括原始数据和文件系统,所述文件系统向用户提供例如原始数据的逻辑树视图。用户可仅仅处置用户数据,例如文件的名称和内容。文件系统实现方式可以使用与之相关联的附加原始数据;所述附加原始数据可以被存储在块设备上,仅仅用于实现文件系统。因此,用户工作负载可以是文件系统数据(用户数据)与文件系统元数据(例如用于文件系统的数据)的混合。根据各种实施例,文件系统元数据可以具有最高的高速缓存优先级。文件系统数据可具有较低优先级,例如取决于其文件大小,例如具有较小文件大小(例如4kb)的文件与具有较大文件大小(例如1Mb)的文件相比可具有更高的高速缓存优先级。然而,根据各种实施例,特定类型的数据的优先级可以被预定义,例如经用户定义,如所期望的那样。
根据各种方面,文件系统数据可以被称为文件中所存储的用户数据。文件系统元数据可以由文件系统所拥有以追踪布局、文件和目录放置、属性等等。
根据一些方面,数据、例如文件系统数据、文件系统元数据等等的分类可以被提供以增加I/O性能。这例如适用于CAS中,所述CAS可以使用I/O分类以便为软件定义的存储系统(SDS,一种存储平台,其在单个分布式计算机集群上实现对象存储,并且提供接口来用于对象层级、块层级以及文件层级的存储)、比如Ceph或 OpenStack SWIFT中的存储设备提供高效的高速缓存。
图1A图示了根据各种实施例的用于各种高速缓存策略的文件系统基准101。文件系统基准101可以与在具有SPECsfs基准分布的Lustre文件系统上运行的Postmark一起被应用。文件系统基准101可以被执行以用于CAS实现方式相比于HDD和SSD性能,并且相比于与多达特定文件大小、例如仅仅元数据、元数据与从4kB到1GB的文件、以及元数据和所有文件(如在水平轴上所描绘的)的DSS相组合的CAS实现方式。如所图示的,TPS(每秒的交易)性能101y(被描绘在垂直轴上)针对实现CAS和DSS二者的情况是增加的,其中TPS性能101y具有用于高速缓存元数据和多达4MB的文件的最大值101m。
图1B图示了针对两个不同的Ceph配置与各种高速缓存策略(被描绘在水平轴上)的被规格化到HDD速度的相对加速102(被描绘在垂直轴上)。图1B中所图示的第一Ceph配置102a包括一个虚拟机(VM)、一个对象存储守护进程(daemon)(OSD)以及一个副本。图1B中所图示的第二Ceph配置102b包括一个虚拟机(VM)、三个对象存储守护进程(OSD)以及三个副本。对于Ceph配置102a、102b中的每一个,为各种高速缓存策略示出相对加速102。说明性的高速缓存策略可以包括例如LRU(最近被使用)写通(Write-Through)102-1、DSS(差异化存储服务)、写通102-2、LRU写回102-3、以及DSS写回102-4。
如图1A和图1B中所图示的,DSS高速缓存策略可以允许一种高效的数据高速缓存,所述高效的数据高速缓存可以被使用在根据一些方面的计算系统中。然而,存储堆栈和/或输送API可能没有将I/O提示嵌入到I/O请求中的可能性。换言之,可以在没有分类准则(例如分类标签)的情况下传输(例如发送和/或接收)I/O请求,所述分类准则允许根据利用所述分类准则所指派的各种类来处置I/O请求。在这样的情况中,基于嵌入式I/O提示的I/O分类可以不被执行。因此,后端存储系统可能不能采用DSS技术,也不能实现与之相关联的先前提及的改进。
根据一些方面,高速缓存引擎(也被称为高速缓存处理器,例如具有被实现的DSS逻辑的CAS)可以被实现在计算系统(例如存储系统)中,所述计算系统将原始I/O(例如未经分类的I/O,也被称为没有嵌入式提示的I/O)提供给高速缓存引擎,使得高速缓存引擎例如不能从彼此中区分文件系统元数据与其它数据。在一些方面中,存储虚拟化可以被实现为基于快速仿真器(QEMU)的超级监督器(hypervisor)。术语超级监督器可以被称为虚拟机监控器(VMM)。经由超级监督器所操作的访客系统可能不能将经提示的I/O提供到超级监督器的高速缓存引擎。作为另一示例,经由iSCSI通信的远程附连的存储装置可能不能将经提示的I/O从在计算节点上所提供的文件系统逻辑提供到运行高速缓存引擎的远程存储节点,因为在该情况中,远程存储节点上的高速缓存引擎仅仅接收原始I/O(即,没有用于高速缓存的嵌入式提示的I/O)。
通常,也许有可能修改整个存储堆栈并且调节所使用的软件以便将I/O提示从其中生成I/O的点输送到后端存储装置。该可能的DSS演进可被延迟,因为向新版本的软件和规范(例如SCSI)的转变具有长上市时间。在虚拟化的情况中,同样地,访客操作系统(访客OS)需要被更新。然而,如果用户想要使用更老旧的访客OS版本,则可以不生成和/或不传输I/O提示。在这些情况中,DSS和CAS技术不能被应用在所传输的I/O上,也不能实现与之相关联的先前提及的改进。
此外,可以在运行中(on the fly)实施对I/O含义的分析以及对I/O的提示。然而,这可能是复杂的任务,并且将会需要理解各种文件系统的布局。因此,在这样的运行中实现方式的情况下,可能出现巨大软件量、复杂度、持续性问题等等,这例如在本文中可以如所描述的那样被避免。
根据一些方面,可以提供一种计算系统以及用于操作所述计算系统的方法来在没有对现有存储软件和输送层的任何修改的情况下区分文件系统数据与在主机侧上或在远程存储装置侧上的文件系统元数据。
根据一些方面,文件系统实现方式可以用于提示I/O,其中文件系统实现方式可用于主机侧上或远程存储装置侧上的内核。根据一些方面,在应用流之外的后台线程中执行文件系统元数据检测。换言之,文件系统元数据检测可例如不影响主机计算系统的访客OS或远程存储系统的计算节点。
根据一些方面,线程可以通过计算系统的相应处理器来被执行,其中所述线程有关于文件系统元数据检测。该线程在本文中还被称为文件系统(FS)扫描仪。所述文件系统扫描仪可以被实现在硬件、软件中,或被实现为包括硬件和软件二者的混合实现方式。
一些方面有关于主机计算系统中的文件系统扫描仪的实现方式,所述主机计算系统包括超级监督器(诸如QEMU)或任何其它合适的虚拟化或仿真环境。然而,文件系统扫描仪可以被实现在任何其它存储系统中,以用于生成I/O提示,这是在这些提示可能没有被嵌入在I/O请求本身上的情况下。
如以下更详细地描述的,可以在主机操作系统的内核中创建镜像块设备(其可以例如反映到主存储装置)。所述镜像块设备可以被配置成对存储设备(例如主存储装置)进行镜像。根据一些方面,所述文件系统扫描仪和主机操作系统可以被配置成以只读模式来挂载存储设备的镜像。主机操作系统的内核可以被配置成通过读取例如文件系统的超级块来检测镜像块设备上的文件系统类型。这可以引起一个或多个I/O请求,所述I/O请求可以被转发到文件系统扫描仪,并且例如随后被转发到主存储装置。包含元数据的I/O请求可以从主存储装置返回到内核。一旦挂载了文件系统,文件系统扫描仪就可以递归地读取文件系统树和/或文件状态(或将被分类的文件系统的任何其它期望的数据)。读取文件系统树可以生成元数据I/O,其中从文件系统扫描仪到主存储装置的每个I/O请求可以被分类为文件系统元数据I/O。这允许例如通过使用文件系统扫描仪来对I/O请求进行分类(也被称为对I/O作提示),这例如基于由文件系统扫描仪对镜像块设备的文件系统的读取。该扫描可以在预定义的时间之后(例如以预定义的时间间隔)被重复,以便对新文件系统元数据进行检测和分类,或者换言之,以便刷新文件系统元数据的分类。
图2根据一些方面、在示意性视图中图示了存储系统200。存储系统200可以包括存储设备202、高速缓存存储设备204、以及高速缓存处理器208。存储设备202可以包括例如一个或多个硬盘驱动器(HDD)。高速缓存存储设备204可以包括例如一个或多个固态驱动器(SSD)。高速缓存处理器208可以被配置成将数据分布到存储设备202以及分布到高速缓存存储设备204。根据一些方面,存储系统200可以此外包括处理器206。根据一些方面,高速缓存处理器208可以被实现在例如由处理器206所执行的软件中。
根据一些方面,处理器206可以被配置成提供文件系统扫描仪226以及存储设备202的镜像(参见参考标记216)。存储设备202的镜像可以被配置成将数据从存储设备202提供到文件系统扫描仪226。在一些方面中,存储设备202的镜像可以被配置成从存储设备202而不是从高速缓存存储设备204镜像数据。
根据一些方面,存储系统200的处理器206可以被配置成检测在存储设备上提供的文件系统202f的文件系统类型,并且挂载文件系统的镜像以允许文件系统扫描仪226从文件系统202f中读取数据,例如读取存储设备202的文件系统202f或文件系统元数据202f。
根据一些方面,文件系统扫描仪226可以被配置成扫描(例如读取)226s文件系统202f的被挂载的镜像,并且生成与来自文件系统202f的被镜像的数据相对应的一个或多个分类标签226c。
根据一些方面,高速缓存处理器208可以被配置成接收待存储的数据230。所接收的待存储的数据230在本文中还被称为请求230(例如被称为I/O请求230)或被称为待存储的文件230。如上所述,所接收的待存储的数据230可以是没有用于高速缓存的嵌入式提示的原始数据。因此,根据一些方面,高速缓存处理器208可以被配置成确定针对所接收的数据230的对应的所生成的分类标签226c的存在(以及相应地不存在,如果没有检测到任何存在的话)。以类似的方式,高速缓存处理器208可以被配置成确定针对所接收的数据230的对应的所生成的分类标签226c的存在信息。在一些方面中,存在信息可以包括对应的所生成的分类标签的存在。在一些方面中,存在信息可以包括对应的所生成的分类标签的不存在。在一些方面中,高速缓存处理器208可以被配置成将所接收的数据230分布218t到存储设备202,或分布到高速缓存存储设备204,使得没有对应分类标签的所接收的数据230(即,在通过高速缓存处理器208确定了不存在针对所接收的数据230的对应的所生成的分类标签226c的情况中)被存储在存储设备202中。在其它情况中(即,在通过高速缓存处理器208确定了存在针对所接收的数据230的对应的所生成的分类标签226c的情况中),具有对应分类标签226c的所接收的数据根据所述对应的分类标签226c被存储在存储设备202中和/或高速缓存存储设备204中。
说明性地,高速缓存处理器208提供一个或多个高速缓存策略,所述高速缓存策略定义规则来确定请求230(例如I/O请求)是否可以通过使用所请求的数据或文件的被高速缓存的拷贝(例如通过使用高速缓存存储设备204)来被满足。如果不是这种情况,则通过使用存储设备202来满足请求230。由于根据一些方面在没有与相应一个或多个高速缓存策略有关的分类标签(还被称为提示)的情况下接收请求230,文件系统扫描仪226可以用于提供一个或多个分类标签226c,例如,作为查找表,其允许对请求230的分类。在接收到特定请求230时,高速缓存处理器208可以被配置成检查对应于特定请求230的分类标签226c(也被称为对应的所生成的分类标签)是否被文件系统扫描仪226提供,并且如果是这种情况,则可以根据所述一个或多个高速缓存策略、基于对应的分类标签来处置请求230。
换言之,如图2中所图示的,处理器206可以被配置成经由使存储设备202镜像的镜像结构216来将存储设备202的文件系统202f提供给文件系统扫描仪226。文件系统扫描仪226可以被配置成为文件系统202f的数据生成分类226c,所述文件系统202f的数据经由镜像结构216被提供给文件系统扫描仪226。高速缓存处理器208可以被配置成接收请求230,所述请求230具有与之相关联的数据,并且所述高速缓存处理器208可以被配置成基于由文件系统扫描仪226所生成的、针对文件系统202f的数据的分类226c来确定存在或不存在针对与所接收的请求230相关联的数据的对应分类。高速缓存处理器208可以此外被配置成将与所接收的请求230相关联的数据分布到存储设备202和/或分布到高速缓存存储设备204。在该情况中,高速缓存处理器208可以被配置成分布与所接收的请求230相关联的数据,使得与所接收的请求230相关联的、没有对应分类226c的数据被分布218t到存储设备202。此外,高速缓存处理器208可以被配置成分布与所接收的请求230相关联的数据,使得与所接收的请求230相关联的、具有对应分类226c的数据根据所述对应的分类226c被分布218t到存储设备202或分布到高速缓存存储设备204。
根据一些方面,主机计算设备可以包括主机处理器206与高速缓存处理器208(也被称为高速缓存引擎),如例如在图2中所图示的那样。主机计算设备可以是主机计算系统的部分,所述主机计算系统包括主机计算设备以及通信地耦合到所述主机计算设备的存储设备202和高速缓存存储设备204。主机计算设备的主机处理器206可以执行主机操作系统和与之相关联的主机内核,并且主机处理器206可以被配置成托管访客操作系统,用以经由主机内核(参见参考标记216)来使访客操作系统的文件系统镜像,并且通过扫描(参见参考标记226s)被镜像的文件系统而生成高速缓存准则(参见参考标记226c)。高速缓存处理器208可以被配置成基于由主机处理器206所生成的高速缓存准则而对来自访客操作系统的I/O请求(参见参考标记230)进行处理。
根据一些方面,远程服务器设备可以包括远程服务器处理器206与高速缓存处理器208(也被称为高速缓存引擎),如例如在图2中所图示的那样。远程服务器设备可以是远程服务器系统的部分,所述远程服务器系统包括远程服务器设备以及通信地耦合到所述远程服务器设备的存储设备202和高速缓存存储设备204。远程服务器设备的远程服务器处理器206可以执行远程服务器操作系统以及与之相关联的远程服务器内核,并且远程服务器处理器206可以被配置成与客户端操作系统通信(例如经由网络连接),用于经由远程服务器内核(参见参考标记216)来使客户端操作系统的文件系统镜像。可以通过扫描(参见参考标记226s)被镜像的文件系统来生成高速缓存准则(参见参考标记226c)。高速缓存处理器208可以被配置成基于由远程服务器处理器206所生成的高速缓存准则而对来自客户端操作系统的I/O请求(参见参考标记230)进行处理。对于远程服务器设备,可以在远程侧上实现镜像。所述镜像可以从主存储装置中取得数据。主存储装置可以位于相同的机器上,其中可以直接(即利用附加的网络)从主存储装置取得数据。在主存储装置被分解(例如主存储装置可以位于各种机器上)的情况中,所述镜像通过网络通信来取得数据。根据各种实施例,所述镜像可以不从客户端侧接收数据。
图3图示了根据一些方面的高速缓存处理器208的示意性视图。如上所述,高速缓存处理器208可以是存储系统200的部分,例如主机计算系统或远程服务器系统的部分。高速缓存处理器208可以被配置成将数据分布到各种存储设备,例如分布到存储设备202以及分布到高速缓存存储设备。根据一些方面,文件系统扫描仪226可以用于通过分析存储设备202(例如存储设备的文件系统)来生成分类226c(例如,以查找表的形式,或以任何其它合适的形式),如本文中所描述的那样。分类226c可以包括与提示相关联的多个请求,所述提示有关于用于所述多个请求的高速缓存策略。高速缓存处理器208被配置成为所接收的请求230中的每一个检查318d所接收的请求230是否被分类226c(例如,查找表是否具有针对所接收的请求230的条目),并且如果是这种情况,则根据被定义用于该请求230的高速缓存策略来处置318t所接收的请求230。在所接收的请求230没有被分类的情况中,例如如果没有任何针对所接收的请求230的条目在查找表326中可用,则根据预定义的处置方案来处置318p所接收的请求230,例如,在该情况中,所接收的请求230可以在没有改变的情况下被传递到存储设备202(例如被存储在其中)。
图4图示了根据一些方面的处理器206的例如镜像结构216的示意性视图,镜像结构216使存储设备202的文件系统202f镜像。如本文中所描述的,存储设备202的或存储设备202的文件系统202f的镜像可以由镜像结构216提供给文件系统扫描仪226,用以分析226s(例如扫描)被镜像的文件系统402f并且为与文件系统202f有关的I/O生成提示。如上所述,镜像结构216可以是存储系统200的部分,例如主机计算系统或远程服务器系统的部分。
根据一些方面,镜像结构216可以包括被配置成使存储设备202镜像的块设备驱动器416d。块设备驱动器可以是虚拟块设备驱动器。根据一些方面,镜像结构216可以包括文件系统交换机(switch)416s,用于挂载存储设备202的文件系统202f。文件系统交换机416s可以是虚拟文件系统交换机。
根据一些方面,镜像结构216可以此外被配置成检测存储设备202的文件系统202f的文件系统类型402f(例如XFS、EXT3等等),并且挂载存储设备202的文件系统202f,例如以只读模式。
根据一些方面,镜像结构216和文件系统扫描仪226可以被配置成访问存储设备202的文件系统202f的元数据。另外,可以访问一种或多种指定类型的文件。在一些方面中,镜像结构216和文件系统扫描仪226可以被配置成仅仅访问存储设备202的文件系统202f的元数据。
如本文中所述的处理器206可以被配置成运行操作系统(例如主机操作系统或远程服务器操作系统),所述操作系统具有与之相关联的操作系统内核。根据一些方面,镜像结构216可以由操作系统内核来提供,或者换言之,操作系统内核可以被配置成将存储设备202的或存储设备202的文件系统202f的镜像提供给文件系统扫描仪226。
根据一些方面,高速缓存处理器208可以包括差异化存储服务逻辑,用于基于分类226c来提供用于所接收的请求230的处置策略,其中分类226c不被嵌入到所接收的请求230中,而是由文件系统扫描仪226提供,所述文件系统扫描仪226扫描存储设备202的文件系统202f,例如作为后台线程。
根据一些方面,由于所接收的I/O 230的分类由文件系统扫描仪226提供,所以该实现方式不需要对现有存储软件堆栈的任何修改从而例如获益于DSS逻辑。文件系统扫描仪226,作为后台线程,可以固定(pin)到高速缓存文件系统元数据或具有特定大小的文件中。
从性能观点上,通过在没有分类的情况下——通常地LRU策略——进行高速缓存来提供基线;参见例如图1B。由文件系统扫描仪226所提供的分类允许通过对应的I/O类来区分I/O含义。用户(或具有自动调谐的高速缓存分析学)可以通过如期望的那样设置高速缓存策略以及I/O类来如期望的那样配置高速缓存引擎。
根据一些方面,如本文中所描述的文件系统扫描仪226可以是主机计算设备的部分,如以下更详细地描述的。以类似的方式,文件系统扫描仪226可以是远程存储设备的部分。
主机计算设备可以包括主机处理器(例如,类似于上述处理器206),所述主机处理器具有主机操作系统以及与之相关联的主机内核。根据一些方面,主机处理器可以被配置成托管一个或多个访客操作系统。主机处理器可以此外被配置成使访客操作系统的文件系统202f在主机内核中镜像216。主机处理器可以此外被配置成通过扫描226s被镜像的文件系统202f(参见图1到4)来生成高速缓存准则226c。如上所述,主机计算设备可以此外包括高速缓存引擎(也被称为高速缓存处理器)208,所述高速缓存引擎被配置成基于由主机处理器206所生成的高速缓存准则226c而对来自访客操作系统的I/O请求206进行处理。
远程服务器设备可以包括远程服务器处理器206(例如,类似于上述处理器206),所述远程服务器处理器具有远程服务器操作系统以及与之相关联的远程服务器内核。根据一些方面,远程服务器处理器206可以被配置成与客户端操作系统进行通信(例如,经由iSCSI或另一存储区域网络(SAN)协议)。远程服务器处理器206可以此外被配置成使客户端操作系统的文件系统202f在远程服务器内核中镜像216。远程服务器处理器206可以此外被配置成通过扫描226s被镜像的文件系统202f(参见图1到4)来生成高速缓存准则226c。如上所述,远程服务器设备可以此外包括高速缓存引擎(也被称为高速缓存处理器)208,所述高速缓存引擎被配置成基于由远程服务器处理器206所生成的高速缓存准则226c而对来自客户端操作系统的I/O请求206进行处理。
根据一些方面,文件系统202f可以被存储在主存储装置202(也被称为存储设备202)上。为了高速缓存I/O请求230,可以实现高速缓存存储设备204,如本文中所描述的那样。
根据一些方面,主机计算设备或远程服务器设备可以包括存储设备202以及高速缓存存储设备204。可替换地,主机计算设备或远程服务器设备可以耦合到存储设备202以及高速缓存存储设备204(例如通过使用存储区域网络)。
图5根据一些方面、在示意性视图中图示了主机计算系统500。主机计算系统500可以用上文参考存储系统200所述的类似的方式被配置,其中文件系统扫描仪226与高速缓存处理器208被实现在超级监督器526环境中。主机计算系统500可以包括主机处理器506(类似于以上参考存储系统200所述的处理器206),所述主机处理器操作主机操作系统(主机OS),所述主机操作系统具有与之相关联的主机内核506k。
由主机计算系统500提供超级监督器526(例如QEMU或任何其它合适的超级监督器)。可以由主机处理器506执行超级监督器526。超级监督器526可以被配置成托管访客系统536,例如访客操作系统(访客OS),其运行(或换言之执行)至少一个访客应用536a。访客应用536a运作在访客文件系统536f上。访客系统536可以一般能够对I/O进行分类,例如经由至少一个块设备驱动器536d。然而,访客系统536可能没有向超级监督器526(例如QEMU)告知关于I/O类的可能性,例如访客系统536可能没有在I/O请求230(参见参考标记A1)中存储I/O类id的可能性。因而,在没有任何其它分类将会被提供的情况中,超级监督器526将会利用相同的优先级来处置所有I/O请求230。可以在超级监督器526中实现高速缓存引擎508(例如类似于或等同于如上参考存储系统200所描述的高速缓存处理器208)。在没有为与访客系统536所通信的数据230另外提供分类的情况下,与访客系统所通信的所有数据230将会被等同地对待,并且高速缓存引擎508的高速缓存逻辑不能执行优先级逐出和分配机制。作为示例,在没有为与访客系统536所通信的数据230另外提供分类的情况下,与访客系统所通信的所有数据230将会被存储在主存储装置502上。
如上所述,主存储装置502(也被称为存储设备202)的镜像516可以在主机OS内核506k中被生成。为了检测文件系统结构,可以使用文件系统的现有内核实现方式。根据一些方面,可以在内核506k中提供虚拟块设备,所述内核506k反映到主存储装置502。说明性地,主机OS内核506k与访客OS内核看到完全相同的数据。根据一些方面,经由前端高速缓存API将数据从主存储装置502提供到主机OS内核506k。根据一些方面,如本文中所述的文件系统扫描仪226可以被实现在超级监督器526中。
一旦创建了镜像516,块设备就在主机计算系统500上的设备树下可用。它允许通过主机OS内核506k来检测分区规划和文件系统类型。
在挂载了虚拟块设备之后,文件系统扫描仪226可以能够在后台线程中读取文件系统树和/或具有给定大小的所有其它文件。来自核镜像516的I/O可以被转发到文件系统扫描仪226,并且文件系统扫描仪226可以负责对I/O 230作提示,如本文中所描述的(参见参考标记B1到B3)。经提示的I/O可以被传递到高速缓存引擎508(参见参考标记B4),其中例如,可以执行DSS逻辑或任何其它期望的高速缓存策略。最后,可以从主存储装置502、高速缓存引擎508、文件系统扫描仪226、核镜像516、块设备驱动器416d、被镜像的文件系统416f、以及虚拟文件系统交换机(VFS)416s返回数据。
根据一些方面,文件系统扫描仪226可以被配置成实施周期性重扫描来刷新高速缓存内容并且检测例如新访客的文件系统改变。
根据一些方面,上述所执行的操作允许例如将最需要且热的数据(例如文件系统元数据)存储在高速缓存中,例如存储在高速缓存设备204(也被称为高速缓存存储设备204)中。来自访客应用536a的I/O 230可以在不改变已经高速缓存的数据分类的情况下被处置,并且可以在从文件系统扫描仪226中没有任何分类可用的情况中被传递到主存储装置502。
根据一些方面,虚拟文件系统交换机(VFS)416s可以包括一组标准接口用于为各种文件系统执行I/O请求。因此,各种文件系统402f可以经由主机OS内核506k来被检测和挂载;并且,在挂载之后,经由文件系统扫描仪226来被分析。相应的文件系统402f可以用只读模式来被挂载,用于防止干扰同时或在两个随后的文件系统扫描中间访问(例如改变)文件系统536f的访客OS 536。
根据一些方面,可以使用文件系统扫描仪226,例如以类似的方式、在其中提供高速缓存的远程存储设备的iSCSI远程侧上。换言之,提供提示以用于对在没有提示的情况下被传输的I/O请求进行高速缓存的这种方式被使用在计算节点侧(例如使用QEMU)以及远程存储节点(例如使用iSCSI)二者上。在该情况中,经由远程存储节点的处理器和操作系统来创建文件系统的镜像。
根据一些方面,高速缓存引擎508和文件系统扫描仪226可以被实现在超级监督器526中,例如QEMU中。此外,高速缓存块设备驱动器526d以及核块设备驱动器526c可以被实现在超级监督器526中,以用于与高速缓存设备204以及主存储装置502通信。
根据一些方面,仅仅文件系统元数据540可以被存储在高速缓存设备204中,这基于由文件系统扫描仪226所提供的分类(例如,允许分类的标签或提示)。分类可以将相应的数据、I/O、文件等等关联到特定的类,并且因此,所述相应的数据、I/O、文件等等可以根据其相应的类来被处置。由于未经分类的请求230可以被存储在主存储装置502中,所以数据550与元数据540二者都可以被存储在主存储装置504中。
根据一些方面,主机侧上的文件系统的扫描可能需要附加的存储器用于主机系统(例如用于存储打开的文件和目录、文件系统条目、比如索引节点(inode)、文件系统内部存储器高速缓存)。根据一些方面,如果期望,则可以利用存储器占用限制来挂载被扫描(例如被镜像)的文件系统402f。这可以防止过度存储器消耗。此外,来自文件系统扫描仪226的附加IO可消耗主存储装置带宽,并且减少用于访客的主存储装置带宽,特别是在第一扫描期间或在高速缓存错失的情况中。因而,根据一些方面,文件系统扫描仪226可以被配置成自动地压制I/O(例如用于扫描的)以便不扰乱主机工作负载。
图6图示了根据一些方面的用于操作计算系统(例如存储系统、例如主机系统、例如远程存储系统)的方法600的示意性流程图。所述方法600可以包括:在610中,提供存储设备的文件系统的镜像;在620中,通过经由镜像读取文件系统来生成针对文件系统的数据的分类;在630中,接收请求,所述请求具有与之相关联的数据;以及在640、650、660中,将所接收的请求分布到存储设备或分布到高速缓存存储设备。根据一些方面,分布所接收的请求可以包括:在640中,基于针对文件系统的数据的分类来确定存在或不存在针对与所接收的请求相关联的数据的对应分类,以及在650中,将与所接收的请求相关联的、没有对应分类的数据分布到存储设备,以及在660中,将与所接收的请求相关联的、具有对应分类的数据根据所述对应的分类而分布到存储设备或分布到高速缓存存储设备。
根据一些方面,分布数据可以包括从相应的存储器中选择性地读取、写入和/或更新数据、元文件、文件等等。
图7图示了根据一些方面的用于操作主机计算设备或主机计算系统的方法700的示意性流程图。根据一些方面,所述方法700可以包括:在710中,托管访客操作系统,在720中,经由主机操作系统来使访客操作系统的文件系统镜像,所述主机操作系统具有与之相关联的主机内核;在730中,通过扫描被镜像的文件系统来生成高速缓存准则;以及在740中,基于通过扫描被镜像的文件系统所生成的高速缓存准则而对来自访客操作系统的I/O请求进行处理。
图8图示了根据一些方面的用于操作远程服务器设备或远程服务器系统的方法800的示意性流程图。根据一些方面,所述方法800可以包括:在810中,经由远程服务器操作系统来使客户端操作系统的文件系统镜像,所述远程服务器操作系统具有与之相关联的远程服务器内核;在820中,通过扫描被镜像的文件系统来生成高速缓存准则;以及在830中,基于通过扫描被镜像的文件系统所生成的高速缓存准则而对来自客户端操作系统的I/O请求进行处理。
根据一些方面,在远程服务器设备中或在远程服务器系统中,至少一个远程服务器处理器可以被配置成与客户端、例如与客户端操作系统通信。
根据一些方面,存储系统可以包括例如:存储设备;高速缓存存储设备;处理器,所述处理器被配置成为文件系统扫描仪提供镜像存储设备,其中所述镜像存储设备至少部分地从存储设备中镜像数据,并且挂载所述镜像存储设备。文件系统扫描仪可以被配置成对所挂载的镜像存储设备进行读取;并且生成与来自所挂载的镜像存储设备的被镜像的数据相对应的分类标签。高速缓存处理器可以被使用被配置用于接收待存储的数据,确定针对所接收的数据的对应的所生成的分类标签的存在,并且将所接收的数据分布到存储设备或分布到高速缓存存储设备,使得:所接收的没有对应分类标签的数据被存储在存储设备中;并且所接收的具有对应分类标签的数据根据所述对应的分类标签被存储在存储设备中或高速缓存存储设备中。
根据一些方面,一种用于操作存储系统的方法可以包括:生成镜像存储设备,所述镜像存储设备至少部分地使存储设备镜像;挂载所述镜像存储设备;对所挂载的镜像存储设备进行读取并且生成与来自所挂载的镜像存储设备的被镜像的数据相对应的分类标签;接收用于存储的数据,并且将所接收的数据分布到存储设备或分布到高速缓存存储设备,其中分布所接收的数据包括:确定针对所接收的数据的对应的所生成的分类标签(来自所述多个分类标签)的存在,以及将所接收的没有对应的所生成的分类标签(即没有通过文件系统扫描仪被生成)的数据存储到存储设备中,以及将所接收的具有对应的所生成的分类标签的数据根据所述对应的所生成的分类标签而存储到存储设备中或高速缓存存储设备中。
根据一些方面,一种主机计算系统可以包括:主机处理器,所述主机处理器被配置成托管虚拟机;所述主机处理器此外被配置成提供镜像存储设备,所述镜像存储设备至少部分地从存储设备中镜像数据,所述主机处理器此外被配置成检测镜像存储设备的文件系统并且挂载文件系统(例如,以只读模式);文件系统扫描仪,所述文件系统扫描仪被配置成生成与来自所挂载的文件系统的至少一个文件相对应的至少一个分类标签;高速缓存引擎,所述高速缓存引擎被配置成从虚拟机接收待存储的文件,并且评估对应的分类标签是否被提供用于从文件系统扫描仪接收的文件,并且将所接收的文件分布到存储设备或分布到高速缓存存储设备,其中所接收的没有对应分类标签的文件(即,不是通过文件系统扫描仪被分类的文件)被存储在存储设备中,并且其中所接收的具有对应分类标签的文件(即,通过文件系统扫描仪被分类的文件)根据所述对应的分类标签被存储在存储设备中或高速缓存存储设备中。
根据一些方面,一种远程存储系统可以包括:处理器,所述处理器被配置成提供镜像存储设备,所述镜像存储设备至少部分地从存储设备中镜像数据,所述处理器此外被配置成检测镜像存储设备的文件系统并且挂载所述文件系统(例如以只读模式);文件系统扫描仪,所述文件系统扫描仪被配置成生成与来自所挂载的文件系统的至少一个文件相对应的至少一个分类标签;高速缓存引擎,所述高速缓存引擎被配置成从客户端计算机系统接收待存储的文件,并且评估对应的分类标签是否被提供用于从文件系统扫描仪接收的文件,并且将所接收的文件分布到存储设备或分布到高速缓存存储设备,其中所接收的没有对应分类标签的文件(即,不是通过文件系统扫描仪被分类/加标签的文件)被存储在存储设备中,并且其中所接收的具有对应分类标签的文件(即,通过文件系统扫描仪被分类/加标签的文件)根据所述对应的分类标签被存储在存储设备中或高速缓存存储设备中。
根据一些方面,一种用于操作计算系统(例如用于托管虚拟机或远程存储系统的主机计算系统)的方法可以包括:操作高速缓存引擎和文件系统扫描仪;创建镜像存储设备,所述镜像存储设备至少部分地使存储设备镜像,所述存储设备与所述高速缓存引擎进行通信;检测镜像存储设备的文件系统,挂载镜像存储设备,相应地生成与来自镜像存储设备的文件相对应的分类标签。在该情况中,操作所述高速缓存引擎可以包括:接收待存储的文件(例如从虚拟机或从远程客户端),以及评估对应的分类标签是否被提供用于从文件系统扫描仪所接收的数据,以及将所接收的文件分布到存储设备或分布到高速缓存存储设备,其中所接收的没有通过文件系统扫描仪所提供的对应分类标签(即不是通过文件系统扫描仪所生成的)的文件被存储在存储设备中,并且其中所接收的具有通过文件系统扫描仪所提供的对应分类标签(即,通过文件系统扫描仪所生成的)的文件根据所述对应的分类标签被存储在存储设备中或高速缓存存储设备中。
根据一些方面,存储系统可以包括存储设备;高速缓存存储设备、处理器和高速缓存引擎。所述处理器可以被配置成向文件系统扫描仪提供镜像存储设备,所述镜像存储设备至少部分地从存储设备镜像数据,并且挂载所述镜像存储设备。文件系统扫描仪可以被配置成对所挂载的镜像存储设备进行读取;并且生成与来自所挂载的镜像存储设备的被镜像的数据相对应的分类标签。所述高速缓存处理器可以包括被配置用于接收待存储的数据,确定针对所接收的数据的对应的所生成的分类标签的存在,并且将所接收的数据分布到存储设备或分布到高速缓存存储设备,使得:所接收的没有对应分类标签的数据被存储在存储设备中;并且所接收的具有对应分类标签的数据根据所述对应的分类标签被存储在存储设备中或高速缓存存储设备中。在该情况中,所述处理器可以此外被配置成以只读模式来挂载镜像存储设备,检测镜像存储设备的文件系统,运行具有内核的操作系统来通过使用所述内核来挂载所检测的文件系统,所述内核包括虚拟文件系统交换机,和/或提供镜像存储设备,作为虚拟镜像存储设备。处理器可以此外被配置成提供虚拟机监控器以用于托管虚拟机,所述虚拟机发送待存储的数据,以及可替换地,提供远程存储服务器以用于与客户端通信,所述客户端发送待存储的数据。
根据一些方面,存储系统可以包括:存储设备;高速缓存存储设备;处理器,所述处理器被配置成为文件系统扫描仪提供镜像存储设备,其中所述镜像存储设备至少部分地从存储设备中镜像文件,并且挂载所述镜像存储设备;其中所述文件系统扫描仪被配置成为来自所挂载的镜像存储设备的被镜像的文件生成文件分类;高速缓存处理器,所述高速缓存处理器被配置成接收待存储的文件,确定针对所接收的文件的对应的所生成的文件分类的存在,并且将所接收的文件分布到存储设备或分布到高速缓存存储设备,使得:所接收的不具有对应的所生成的文件分类的文件被存储在存储设备中;并且所接收的具有对应的所生成的文件分类的文件根据所述对应的文件分类而被存储到存储设备中或高速缓存存储设备中。
根据一些方面,一种用于操作存储系统的方法可以包括:生成镜像存储设备,所述镜像存储设备至少部分地使存储设备镜像;挂载所述镜像存储设备;对所挂载的镜像存储设备进行读取并且生成与来自所挂载的镜像存储设备的被镜像的数据相对应的分类标签;接收用于存储的数据,并且将所接收的数据分布到存储设备或分布到高速缓存存储设备。分布所接收的数据可以包括:确定针对所接收的数据的对应的所生成的分类标签(来自所述多个分类标签)的存在,以及将所接收的没有对应的所生成的分类标签(即没有通过文件系统扫描仪被生成)的数据存储到存储设备中,以及将所接收的具有对应的所生成的分类标签的数据根据所述对应的所生成的分类标签而存储到存储设备中或高速缓存存储设备中。
根据一些方面,本文中所述的高速缓存处理器208(或高速缓存引擎)可以此外被配置成通过使用差异化存储服务逻辑(DSS)而将所接收的数据分布到存储设备202或分布到高速缓存存储设备204。差异化存储服务逻辑可以包括将数据请求指派到由分类标签(也被称为提示)所指示的各种类,并且根据相应的类来为数据应用处置策略。
根据各种方面,高速缓存处理器可以将来自客户端的或来自访客操作系统的I/O作为具有预定义的(例如最低)优先级的未经分类的数据来处置。在该情况中,只要在高速缓存存储设备中空间可用或者只要高速缓存存储设备没有完全被具有更高优先级的数据占用,未经分类的数据就可以被高速缓存。文件系统扫描仪可以将经提示的I/O发送到高速缓存引擎,所述经提示的I/O被相应地处置。在高速缓存存储设备处没有空间的情况中,未经分类的数据被传递直到存储设备。高速缓存引擎可以基于来自文件系统扫描仪的经提示的I/O而逐出数据。
在一些方面中,基于由文件系统扫描仪(例如通过使用查找表等等)所生成的提示,未经分类的数据可以被重分类并且高速缓存引擎可以相应地处置所述经重分类的数据。
根据各种方面,文件系统扫描仪I/O请求可以是经提示的I/O请求。来自访客(或客户端的)I/O可能没有经提示。在来自访客的I/O请求时,高速缓存引擎可以确定是要访问高速缓存存储设备还是存储设备来履行请求,其也被称为命中或错失。在命中的情况中,可以从高速缓存存储设备中读取I/O请求。在错失的情况中,可以从存储设备中读取I/O请求。根据一些方面,文件系统扫描仪可以被配置成从主存储装置中读取数据,并且将提示支援到高速缓存引擎,使得高速缓存引擎可以对数据进行分类。
根据各种方面,没有提示的I/O请求可以利用预定义的类而被分类(例如,同样“未经分类”可以是具有低优先级的类),并且高速缓存引擎可以执行命中查找以检查是否可以从高速缓存存储设备中取得I/O请求。在错失的情况中,如果在高速缓存中没有未经使用的可用空间或者如果高速缓存充满更高优先级的数据,则这些未经分类的I/O请求可以取自存储设备。因此,未经分类的数据也可以被高速缓存,这通过从主装置中读取并且高速缓存具有最低优先级的这些数据。文件系统扫描仪可以用于将具有较高优先级的数据插入到高速缓存中和/或从高速缓存移除具有较低优先级的数据,并且将具有较低优先级的这些数据写入到主存储装置(也被称为逐出)。
根据各种方面,文件系统扫描仪可以基于文件系统的扫描而生成具有提示的I/O。根据各种方面,将由文件系统扫描仪扫描的文件的类型可以是可配置的,例如特定的文件类型可以被扫描,具有预定义的文件大小的文件可以被扫描,元数据可以被扫描等等。根据各种方面,文件系统扫描仪可以仅仅扫描文件系统元数据,或者文件系统扫描仪可以扫描文件系统数据和文件系统元数据二者。根据各种方面,文件系统扫描仪可以扫描文件系统树(例如,读取文件的名称并且去到文件结构中更深),并且例如可选地扫描文件的属性。文件的属性可以是上次修改的日期、文件大小、文件类型(例如文件的扩展)等等。作为示例,用户可以指示文件系统扫描仪读取具有预定义的文件大小和更小的文件。
根据各种方面,对应的高速缓存准则可以包括高速缓存映射、查找、高速缓存配置、标签(分类)配置等等。根据各种方面,高速缓存引擎可以包括用于未经分类的数据的第一高速缓存策略,以及考虑由文件系统扫描仪所提供的高速缓存准则的第二高速缓存策略。
根据各种方面,在扫描了文件系统之后,可以携带嵌入式I/O类(例如分类标签)的I/O可以被高速缓存引擎使用。可替换地或附加地,当服务来自访客或客户端的没有I/O提示的I/O的时候,分类结构(例如查找表)可以被高速缓存引擎使用。高速缓存引擎可以在该情况中基于分类结构的信息将I/O从未经分类重分类到某个I/O类。
根据各种方面,在没有任何I/O分类被提供的情况中,高速缓存引擎可以另外通过它自己来对I/O进行分类。高速缓存引擎可以检查所请求的数据是否在高速缓存中,并且如果所请求的数据在高速缓存中可用,则将所请求的数据返回到请求者。如果所请求的数据不在高速缓存中可用,则高速缓存引擎可以从主存储装置取得所请求的数据,并且可以尝试在高速缓存中为所请求的数据找到地方。在该情况中,高速缓存引擎可以执行逐出操作(例如移除具有较小优先级的数据)。然而,在该情况中,仅仅可以逐出具有较低或相等优先级的I/O类。如果没有任何存储空间可以在高速缓存中被找到,则所请求的I/O可以仅仅被转发到主存储装置。根据各种方面,基于由文件系统扫描仪所提供的分类,具有较高优先级的数据可以被写到可能没有被高速缓存引擎独自逐出的高速缓存。
根据各种方面,如果没有任何分类可以可用于I/O中,则高速缓存引擎可以尝试从高速缓存存储装置取得数据,如果它们可用的话。此外,可以利用低优先级(例如最低优先级)来处置未经分类的数据,并且高速缓存引擎可以应用直通(Pass-Through)策略(例如仅仅从主存储装置取得数据)。另一可能性可以是在高速缓存中为该I/O分配空间。然而,分配可不移除更重要的I/O类(例如来自文件系统扫描仪的IO类)。
在以下,参考上述方面来提供各种示例。
示例1是一种主机计算设备。所述主机计算设备可以包括具有主机操作系统以及与之相关联的主机内核的主机处理器,所述主机处理器被配置成托管访客操作系统、经由主机内核来使访客操作系统的文件系统镜像,并且通过扫描被镜像的文件系统而生成高速缓存准则。所述主机计算设备可以此外包括高速缓存引擎,所述高速缓存引擎被配置成基于由主机处理器生成的高速缓存准则来处理I/O请求。
在示例2中,示例1的主题可以可选地包括:所述主机处理器此外被配置成提供虚拟机监控器,所述虚拟机监控器托管访客操作系统。
在示例3中,示例2的主题可以可选地包括:所述虚拟机监控器包括文件系统扫描仪,所述文件系统扫描仪被配置成扫描被镜像的文件系统。
在示例4中,示例2或3中任一个的主题可以可选地包括:所述虚拟机监控器被配置成提供高速缓存引擎。
在示例5中,示例1到4中任一个的主题可以可选地包括:所述主机处理器被配置成经由块设备驱动器来使文件系统镜像。
在示例6中,示例1到5中任一个的主题可以可选地包括:所述主机处理器被配置成经由挂载文件系统的文件系统交换机来使文件系统镜像。
在示例7中,示例1到6中任一个的主题可以可选地包括:所述主机处理器被配置成通过检测文件系统的文件系统类型以及挂载文件系统来使文件系统镜像。
在示例8中,示例7的主题可以可选地包括:所述主机处理器被配置成以只读模式挂载文件系统。
在示例9中,示例1到8中任一个的主题可以可选地包括:所述主机计算设备此外包括存储设备和高速缓存存储设备。所述高速缓存引擎被配置成确定针对来自访客操作系统的I/O请求的对应的高速缓存准则的存在,并且将所述来自访客操作系统的I/O请求分布到存储设备或分布到高速缓存存储设备。
在示例10中,示例9的主题可以可选地包括:所述高速缓存引擎被配置成分布所述来自访客操作系统的I/O请求,使得没有对应高速缓存准则的I/O请求被分布到存储设备。
在示例11中,示例9或10中任一个的主题可以可选地包括:所述高速缓存引擎被配置成分布所述来自访客操作系统的I/O请求,使得具有对应高速缓存准则的I/O请求根据所述对应的高速缓存准则而被分布到存储设备或被分布到高速缓存存储设备。
在示例12中,示例1到8中任一个的主题可以可选地包括:所述主机计算设备此外包括存储设备和高速缓存存储设备。所述主机处理器被配置成将具有由主机处理器所生成的对应高速缓存准则的I/O请求提供给高速缓存引擎。
在示例13中,示例12的主题可以可选地包括:所述高速缓存引擎被配置成基于与来自主机处理器的I/O请求相关联的高速缓存准则而进行以下各项中的至少一个:将数据分配到高速缓存存储设备中,或从高速缓存存储设备逐出数据。
示例14是一种用于操作主机计算设备的方法。所述方法可以包括托管访客操作系统;经由主机操作系统来使访客操作系统的文件系统镜像,所述主机操作系统具有与之相关联的主机内核;通过扫描被镜像的文件系统而生成高速缓存准则;以及基于通过扫描被镜像的文件系统所生成的高速缓存准则来处理I/O请求。
在示例15中,示例14的主题可以可选地包括:所述方法此外包括提供虚拟机监控器,所述虚拟机监控器托管访客操作系统。
在示例16中,示例15的主题可以可选地包括:所述方法此外包括经由虚拟机监控器的文件系统扫描仪来扫描被镜像的文件系统。
在示例17中,示例15或16中任一个的主题可以可选地包括:所述方法此外包括经由虚拟机监控器来提供高速缓存引擎。
在示例18中,示例15到17中任一个的主题可以可选地包括:所述方法此外包括经由块设备驱动器来使文件系统镜像。
在示例19中,示例15到18中任一个的主题可以可选地包括:所述方法此外包括经由挂载文件系统的文件系统交换机来使文件系统镜像。
在示例20中,示例15到19中任一个的主题可以可选地包括:所述方法此外包括检测文件系统的文件系统类型并且挂载文件系统来使文件系统镜像。
在示例21中,示例20的主题可以可选地包括:以只读模式挂载文件系统。
在示例22中,示例15到21中任一个的主题可以可选地包括:所述方法此外包括确定针对来自访客操作系统的I/O请求的对应的高速缓存准则的存在,并且将所述来自访客操作系统的I/O请求分布到存储设备或分布到高速缓存存储设备。
在示例23中,示例22的主题可以可选地包括:没有对应高速缓存准则的I/O请求被分布到存储设备。
在示例24中,示例22或23中任一个的主题可以可选地包括:具有对应高速缓存准则的I/O请求根据所述对应的高速缓存准则而被分布到存储设备或被分布到高速缓存存储设备。
在示例25中,示例15到21中任一个的主题可以可选地包括:所述方法此外包括经由主机操作系统来生成具有对应高速缓存准则的I/O请求,并且基于所述对应的高速缓存准则来高速缓存数据。
示例26是一种远程服务器设备。所述远程服务器设备可以包括具有远程服务器操作系统以及与之相关联的远程服务器内核的远程服务器处理器,所述远程服务器处理器被配置成在远程服务器内核中使客户端操作系统的文件系统镜像,并且通过扫描被镜像的文件系统而生成高速缓存准则。所述远程服务器设备可以此外包括高速缓存引擎,所述高速缓存引擎被配置成基于由远程服务器处理器生成的高速缓存准则来处理I/O请求。
在示例27中,示例26的主题可以可选地包括:所述远程服务器处理器此外被配置成提供与客户端操作系统的基于传输控制协议(TCP)的通信。
在示例28中,示例26或27中任一个的主题可以可选地包括:所述远程服务器处理器此外被配置成通过与客户端操作系统的基于光纤的通信而提供因特网小型计算机系统接口(iSCSI)或快速非易失性存储器(NVMe)。
在示例29中,示例26到28中任一个的主题可以可选地包括:所述远程服务器处理器被配置成提供文件系统扫描仪,所述文件系统扫描仪被配置成扫描被镜像的文件系统。
在示例30中,示例26到29中任一个的主题可以可选地包括:所述远程服务器处理器被配置成提供高速缓存引擎。
在示例31中,示例26到30中任一个的主题可以可选地包括:所述远程服务器处理器被配置成经由块设备驱动器来使文件系统镜像。
在示例32中,示例26到31中任一个的主题可以可选地包括:所述远程服务器处理器被配置成经由用于挂载文件系统的文件系统交换机来使文件系统镜像。
在示例33中,示例26到32中任一个的主题可以可选地包括:所述远程服务器处理器被配置成通过检测文件系统的文件系统类型以及挂载文件系统来使文件系统镜像。
在示例34中,示例33的主题可以可选地包括:所述远程服务器处理器被配置成以只读模式挂载文件系统。
在示例35中,示例26到34中任一个的主题可以可选地包括:所述远程服务器设备此外包括存储设备和高速缓存存储设备。所述高速缓存引擎被配置成确定针对来自客户端操作系统的I/O请求的对应的高速缓存准则的存在,并且将所述来自客户端操作系统的I/O请求分布到存储设备或分布到高速缓存存储设备。
在示例36中,示例35的主题可以可选地包括:所述高速缓存引擎被配置成分布所述来自客户端操作系统的I/O请求,使得没有对应高速缓存准则的I/O请求被分布到存储设备。
在示例37中,示例35或36中任一个的主题可以可选地包括:所述高速缓存引擎被配置成分布所述来自客户端操作系统的I/O请求,使得具有对应高速缓存准则的I/O请求根据所述对应的高速缓存准则而被分布到存储设备或被分布到高速缓存存储设备。
在示例38中,示例26到34中任一个的主题可以可选地包括:所述远程服务器设备此外包括存储设备和高速缓存存储设备。所述远程服务器处理器被配置成将具有由主机处理器所生成的对应高速缓存准则的I/O请求提供给高速缓存引擎。
在示例39中,示例38的主题可以可选地包括:所述高速缓存引擎被配置成基于与来自远程服务器处理器的I/O请求相关联的高速缓存准则而进行以下各项中的至少一个:将数据分配到高速缓存存储设备中,或从高速缓存存储设备逐出数据。
示例40是一种用于操作远程服务器设备的方法。所述方法可以包括经由远程服务器操作系统来使客户端操作系统的文件系统镜像,所述远程服务器操作系统具有与之相关联的远程服务器内核;通过扫描被镜像的文件系统而生成高速缓存准则;以及基于通过扫描被镜像的文件系统所生成的高速缓存准则来处理I/O请求。
在示例41中,示例40的主题可以可选地包括:所述方法此外包括经由虚拟机监控器的文件系统扫描仪来扫描被镜像的文件系统。
在示例42中,示例40或41中任一个的主题可以可选地包括:所述方法此外包括经由块设备驱动器来使文件系统镜像。
在示例43中,示例40到42中任一个的主题可以可选地包括:所述方法此外包括经由挂载文件系统的文件系统交换机来使文件系统镜像。
在示例44中,示例40到43中任一个的主题可以可选地包括:所述方法此外包括检测文件系统的文件系统类型并且挂载文件系统来使文件系统镜像。
在示例45中,示例44的主题可以可选地包括:以只读模式挂载文件系统。
在示例46中,示例40到45中任一个的主题可以可选地包括:所述方法此外包括确定针对来自客户端操作系统的I/O请求的对应的高速缓存准则的存在,并且将所述来自客户端操作系统的I/O请求分布到存储设备或分布到高速缓存存储设备。
在示例47中,示例46的主题可以可选地包括:没有对应高速缓存准则的I/O请求被分布到存储设备。
在示例48中,示例46或47中任一个的主题可以可选地包括:具有对应高速缓存准则的I/O请求根据所述对应的高速缓存准则而被分布到存储设备或被分布到高速缓存存储设备。
示例49是一种存储系统。所述存储系统可以包括存储设备、高速缓存存储设备,以及处理器,所述处理器被配置成经由使存储设备镜像的镜像结构来将存储设备的文件系统提供给文件系统扫描仪,所述文件系统扫描仪被配置成生成针对文件系统的数据的分类,所述文件系统的数据经由所述使存储设备镜像的镜像结构被提供给文件系统扫描仪。所述存储系统可以此外包括高速缓存处理器,所述高速缓存处理器被配置成接收具有与之相关联的数据的请求,基于由文件系统扫描仪所生成的针对文件系统的数据的分类而确定存在或不存在针对与所接收的请求相关联的数据的对应分类,以及将与所接收的请求相关联的数据分布到存储设备或分布到高速缓存存储设备,使得与所接收的请求相关联的、没有对应分类的数据被分布到存储设备,以及使得与所接收的请求相关联的、具有对应分类的数据根据所述对应的分类被分布到存储设备或分布到高速缓存存储设备。
在示例50中,示例49的主题可以可选地包括:所述镜像结构包括被配置成使存储设备镜像的块设备驱动器。
在示例51中,示例50的主题可以可选地包括:所述块设备驱动器是虚拟块设备驱动器。
在示例52中,示例49到51中任一个的主题可以可选地包括:所述镜像结构包括挂载存储设备的文件系统的文件系统交换机。
在示例53中,示例52的主题可以可选地包括:所述文件系统交换机被配置为虚拟文件系统交换机。
在示例54中,示例49到53中任一个的主题可以可选地包括:所述镜像结构此外被配置成检测存储设备的文件系统的文件系统类型。
在示例55中,示例49到54中任一个的主题可以可选地包括:所述镜像结构此外被配置成挂载存储设备的文件系统。
在示例56中,示例55的主题可以可选地包括:所述镜像结构被配置成以只读模式挂载存储设备的文件系统。
在示例57中,示例55或56中任一个的主题可以可选地包括:所述镜像结构被配置成在存储器占用限制的情况下挂载文件系统。
在示例58中,示例49到57中任一个的主题可以可选地包括:所述处理器此外被配置成基于操作系统内核来运行操作系统,并且经由操作系统内核来提供所述镜像结构。
在示例59中,示例49到58中任一个的主题可以可选地包括:所述处理器是被配置成操作主机操作系统的主机处理器。所述主机操作系统被配置成提供虚拟机监控器,所述虚拟机监控器托管虚拟机。所述虚拟机被配置成向高速缓存处理器发送请求。
在示例60中,示例59的主题可以可选地包括:所述虚拟机监控器包括文件系统扫描仪。
在示例61中,示例59或60中任一个的主题可以可选地包括:所述高速缓存处理器被实现在虚拟机监控器中。
在示例62中,示例59到61中任一个的主题可以可选地包括:所述镜像结构被实现在主机操作系统的主机内核中。
在示例63中,示例59到62中任一个的主题可以可选地包括:所述虚拟机包括访客操作系统,其基于与存储设备通信的访客内核。
在示例64中,示例59到63中任一个的主题可以可选地包括:所述文件系统扫描仪被实现在虚拟机监控器中。
在示例65中,示例64的主题可以可选地包括:所述文件系统扫描仪被配置为后台线程。
在示例66中,示例49到65中任一个的主题可以可选地包括:所述处理器是与存储系统外部客户端系统通信的远程存储处理器,并且所述客户端系统被配置成向高速缓存处理器发送请求。
在示例67中,示例49到66中任一个的主题可以可选地包括:在没有与向存储设备或向高速缓存存储设备分布与所接收的请求相关联的数据对应的分类数据的情况下接收请求,所述请求具有与之相关联的数据。
在示例68中,示例49到67中任一个的主题可以可选地包括:所述高速缓存处理器包括差异化存储设备(DSS)逻辑,所述差异化存储设备(DSS)逻辑被配置成基于针对文件系统的数据的分类而提供针对所接收的请求的处置策略。
在示例69中,示例49到68中任一个的主题可以可选地包括:针对文件系统的数据的分类包括生成与文件系统的数据对应的一个或多个分类标签。每个分类标签定义被指派给特定处置策略的多个类中的特定类。
在示例70中,示例49到69中任一个的主题可以可选地包括:前端应用编程接口被配置成将文件系统的数据提供到镜像结构。
在示例71中,示例49到70中任一个的主题可以可选地包括:所述文件系统扫描仪被配置成通过读取文件系统的数据来生成针对文件系统的数据的分类。
在示例72中,示例49到71中任一个的主题可以可选地包括:所述文件系统扫描仪被配置成以预定义的时间间隔来更新针对文件系统的数据的分类。
示例73是一种用于操作存储系统的方法。所述方法可以包括:提供存储设备的文件系统的镜像;通过经由镜像读取文件系统来生成针对文件系统的数据的分类;以及接收请求,所述请求具有与之相关联的数据;以及将所接收的请求分布到存储设备或分布到高速缓存存储设备。分布所接收的请求包括基于针对文件系统的数据的分类来确定存在或不存在针对与所接收的请求相关联的数据的对应分类,将与所接收的请求相关联的、没有对应分类的数据分布到存储设备,以及将与所接收的请求相关联的、具有对应分类的数据根据所述对应的分类分布到存储设备或分布到高速缓存存储设备。
在示例74中,示例73的主题可以可选地包括:提供存储设备的文件系统的镜像包括提供被配置成使存储设备镜像的块设备驱动器。
在示例75中,示例73或74中任一个的主题可以可选地包括:提供存储设备的文件系统的镜像包括提供文件系统交换机用于挂载存储设备的文件系统。
在示例76中,示例73到75中任一个的主题可以可选地包括:提供存储设备的文件系统的镜像此外包括检测存储设备的文件系统的文件系统类型。
在示例77中,示例73到76中任一个的主题可以可选地包括:提供存储设备的文件系统的镜像此外包括挂载存储设备的文件系统。
在示例78中,示例77的主题可以可选地包括:挂载存储设备的文件系统包括在存储器占用限制的情况下挂载文件系统。
在示例79中,示例73到78中任一个的主题可以可选地包括:所述方法此外包括基于操作系统内核来对操作系统进行操作,并且经由操作系统内核来提供存储设备的文件系统的镜像。
在示例80中,示例73到79中任一个的主题可以可选地包括:所述方法此外包括操作主机操作系统,提供虚拟机监控器,并且经由虚拟机监控器来托管虚拟机,并且经由虚拟机来向高速缓存处理器发送请求。
在示例81中,示例80的主题可以可选地包括:托管虚拟机包括基于访客内核来托管访客操作系统,所述访客内核与存储设备通信。
在示例82中,示例81的主题可以可选地包括:生成针对文件系统的数据的分类是后台线程。
在示例83中,示例73到82中任一个的主题可以可选地包括:所述方法此外包括操作与客户端系统通信的远程存储服务器操作系统,并且经由客户端系统向高速缓存处理器发送请求。
在示例84中,示例73到83中任一个的主题可以可选地包括:接收具有与之相关联的数据的请求包括在没有与向存储设备或向高速缓存存储设备分布与所接收的请求相关联的数据对应的分类数据的情况下接收所述请求。
在示例85中,示例73到84中任一个的主题可以可选地包括:所述方法此外包括基于针对文件系统的数据的分类与根据所述分类的处置策略来处置所接收的请求。
在示例86中,示例73到85中任一个的主题可以可选地包括:生成针对文件系统的数据的分类包括生成与文件系统的数据对应的一个或多个分类标签,并且为所述一个或多个分类标签中的每一个定义被指派给特定处置策略的多个类中的特定类。
在示例87中,示例73到86中任一个的主题可以可选地包括:所述方法此外包括经由前端应用编程接口来使文件系统的数据镜像。
在示例88中,示例73到87中任一个的主题可以可选地包括:所述文件此外包括以预定义的时间间隔来更新针对文件系统的数据的分类。
示例89是一种存储了指令的非暂时性计算机可读介质,所述指令当被处理器执行的时候使得所述处理器执行根据示例14到25、40到58、以及73到88中任一个的方法。
示例90是一种计算系统。所述计算系统可以包括操作第一操作系统以及与之相关联的内核的处理器,所述处理器被配置成与第二操作系统通信,所述第二操作系统包括与之相关联的文件系统、被配置成从第二操作系统接收I/O请求的高速缓存引擎、包括与从第二操作系统所接收的I/O请求相对应的高速缓存信息的查找表,所述高速缓存信息定义针对I/O请求的高速缓存规则。所述高速缓存引擎被配置成根据由查找表的高速缓存信息所定义的高速缓存规则来处置从第二操作系统所接收的I/O请求。所述处理器被配置成通过在内核中挂载第二操作系统的文件系统的镜像并且扫描所挂载的文件系统镜像来生成查找表。
在示例91中,示例90的主题可以可选地包括:所述高速缓存引擎被配置成分布所述来自第二操作系统的I/O请求,使得没有对应高速缓存信息的I/O请求被分布到存储设备。
在示例92中,示例90或91中任一个的主题可以可选地包括:所述高速缓存引擎被配置成分布所述来自第二操作系统的I/O请求,使得具有对应高速缓存信息的I/O请求根据所述对应的高速缓存信息而被分布到存储设备或被分布到高速缓存存储设备。
示例93是一种计算系统。所述计算系统可以包括操作第一操作系统以及与之相关联的内核的处理器,所述处理器被配置成与第二操作系统通信,所述第二操作系统包括:与之相关联的文件系统;文件系统扫描仪,所述文件系统扫描仪被配置成通过在内核中挂载第二操作系统的文件系统的镜像并且扫描所挂载的文件系统镜像来生成经分类的I/O请求;高速缓存引擎,所述高速缓存引擎被配置成从文件系统扫描仪接收经分类的I/O请求,并且基于从文件系统扫描仪所接收的经分类的I/O请求来执行分配或逐出操作中的至少一个。
在示例94中,示例93的主题可以可选地包括:所述高速缓存引擎此外被配置成分布来自第二操作系统的I/O请求,使得具有对应高速缓存信息的I/O请求根据所述对应的高速缓存信息而被分布到存储设备或被分布到高速缓存存储设备。
虽然已经参考特定方面特别地示出和描述了本公开内容,但是本领域技术人员应当理解到,在其中可以做出在形式和细节上的各种改变,而不偏离如由所附权利要求所限定的公开内容的精神和范围。公开内容的范围因而由所附权利要求和所有改变来指示,所述改变在权利要求的等价的含义和范围内,因此意图被包含。
Claims (20)
1.一种主机计算设备,包括:
具有主机操作系统以及与之相关联的主机内核的主机处理器,所述主机处理器被配置成:
托管访客操作系统,
经由所述主机内核来使访客操作系统的文件系统镜像,以及
通过扫描被镜像的文件系统来生成高速缓存准则;以及
高速缓存引擎,所述高速缓存引擎被配置成基于由主机处理器生成的高速缓存准则来处理I/O请求。
2.根据权利要求1所述的主机计算设备,
其中所述主机处理器此外被配置成提供虚拟机监控器,所述虚拟机监控器托管访客操作系统。
3.根据权利要求2所述的主机计算设备,
其中所述虚拟机监控器包括文件系统扫描仪,所述文件系统扫描仪被配置成扫描被镜像的文件系统。
4.根据权利要求1所述的主机计算设备,此外包括:
存储设备和高速缓存存储设备,其中所述高速缓存引擎被配置成确定针对来自访客操作系统的I/O请求的对应的高速缓存准则的存在,并且将所述来自访客操作系统的I/O请求分布到存储设备或分布到高速缓存存储设备。
5.根据权利要求4所述的主机计算设备,
其中所述高速缓存引擎被配置成分布所述来自访客操作系统的I/O请求,使得具有对应高速缓存准则的I/O请求根据所述对应的高速缓存准则而被分布到存储设备或被分布到高速缓存存储设备。
6.根据权利要求1所述的主机计算设备,此外包括:
存储设备和高速缓存存储设备,其中所述主机处理器被配置成将具有由主机处理器所生成的对应高速缓存准则的I/O请求提供给高速缓存引擎。
7.一种存储系统,包括:
存储设备;
高速缓存存储设备;
处理器,所述处理器被配置成:
经由使存储设备镜像的镜像结构来向文件系统扫描仪提供存储设备的文件系统,所述文件系统扫描仪被配置成生成针对文件系统的数据的分类,所述文件系统的数据经由所述使存储设备镜像的镜像结构被提供给文件系统扫描仪;
高速缓存处理器,所述高速缓存处理器被配置成:
接收请求,所述请求具有与之相关联的数据;
基于由文件系统扫描仪所生成的针对文件系统的数据的分类而确定存在或不存在针对与所接收的请求相关联的数据的对应分类,以及
将与所接收的请求相关联的数据分布到存储设备或分布到高速缓存存储设备使得
与所接收的请求相关联的、没有对应分类的数据被分布到存储设备,以及
与所接收的请求相关联的、具有对应分类的数据根据所述对应的分类被分布到存储设备或分布到高速缓存存储设备。
8.根据权利要求7所述的存储系统,
其中所述镜像结构包括块设备驱动器,所述块设备驱动器被配置成使存储设备镜像。
9.根据权利要求7所述的存储系统,
其中所述镜像结构包括文件系统交换机,所述文件系统交换机挂载存储设备的文件系统。
10.根据权利要求7所述的存储系统,
其中所述镜像结构此外被配置成检测存储设备的文件系统的文件系统类型。
11.根据权利要求7所述的存储系统,
其中所述镜像结构此外被配置成挂载存储设备的文件系统。
12.根据权利要求7所述的存储系统,
其中所述处理器此外被配置成基于操作系统内核来运行操作系统,以及
经由操作系统内核来提供所述镜像结构。
13.根据权利要求7所述的存储系统,
其中所述处理器是被配置成操作主机操作系统的主机处理器,
所述主机操作系统被配置成提供虚拟机监控器,所述虚拟机监控器托管虚拟机,并且
所述虚拟机被配置成向高速缓存处理器发送请求。
14.根据权利要求7所述的存储系统,
其中所述处理器是与存储系统外部客户端系统通信的远程存储处理器,以及
所述客户端系统被配置成向高速缓存处理器发送请求。
15.根据权利要求7所述的存储系统,
其中在没有与向存储设备或向高速缓存存储设备分布与所接收的请求相关联的数据对应的分类数据的情况下接收请求,所述请求具有与之相关联的数据。
16.根据权利要求7所述的存储系统,
其中针对文件系统的数据的分类包括生成与文件系统的数据相对应的一个或多个分类标签,其中每个分类标签定义被指派给特定处置策略的多个类中的特定类。
17.根据权利要求7所述的存储系统,
其中所述文件系统扫描仪被配置成以预定义的时间间隔来更新针对文件系统的数据的分类。
18.一种用于操作存储系统的方法,所述方法包括:
提供存储设备的文件系统的镜像;
通过经由镜像而读取文件系统来生成针对文件系统的数据的分类;以及
接收具有与之相关联的数据的请求并且将所接收的请求分布到存储设备或分布到高速缓存存储设备,其中分布所接收的请求包括:
基于针对文件系统的数据的分类而确定存在或不存在针对与所接收的请求相关联的数据的对应分类,将与所接收的请求相关联的、没有对应分类的数据分布到存储设备,以及
将与所接收的请求相关联的、具有对应分类的数据根据所述对应的分类分布到存储设备或分布到高速缓存存储设备。
19.根据权利要求18所述的方法,此外包括:
操作主机操作系统;
提供虚拟机监控器并且经由所述虚拟机监控器来托管虚拟机;以及
经由所述虚拟机向高速缓存处理器发送请求。
20.根据权利要求18所述的方法,此外包括:
操作与客户端系统通信的远程存储服务器操作系统;以及
经由所述客户端系统向高速缓存处理器发送请求。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/718,032 US10782904B2 (en) | 2017-09-28 | 2017-09-28 | Host computing arrangement, remote server arrangement, storage system and methods thereof |
US15/718032 | 2017-09-28 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109582221A true CN109582221A (zh) | 2019-04-05 |
Family
ID=65638302
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811130023.9A Pending CN109582221A (zh) | 2017-09-28 | 2018-09-27 | 主机计算设备、远程服务器设备、存储系统及其方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10782904B2 (zh) |
CN (1) | CN109582221A (zh) |
DE (1) | DE102018123669A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110908602A (zh) * | 2019-10-31 | 2020-03-24 | 北京浪潮数据技术有限公司 | 分布式存储系统的数据写入方法、装置、设备及存储介质 |
CN113076170A (zh) * | 2021-06-03 | 2021-07-06 | 统信软件技术有限公司 | 一种远程协助方法、系统、装置、计算设备及存储介质 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11914556B2 (en) * | 2018-10-19 | 2024-02-27 | Red Hat, Inc. | Lazy virtual filesystem instantiation and caching |
US11934342B2 (en) | 2019-03-15 | 2024-03-19 | Intel Corporation | Assistance for hardware prefetch in cache access |
EP3938888A1 (en) | 2019-03-15 | 2022-01-19 | INTEL Corporation | Systolic disaggregation within a matrix accelerator architecture |
WO2020190796A1 (en) * | 2019-03-15 | 2020-09-24 | Intel Corporation | Systems and methods for cache optimization |
WO2020190802A1 (en) | 2019-03-15 | 2020-09-24 | Intel Corporation | Compression techniques |
US11861761B2 (en) | 2019-11-15 | 2024-01-02 | Intel Corporation | Graphics processing unit processing and caching improvements |
CN114095496A (zh) * | 2020-08-04 | 2022-02-25 | 中国电信股份有限公司 | 终端应用处理方法、边缘云应用服务器以及系统、介质 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6357042B2 (en) * | 1998-09-16 | 2002-03-12 | Anand Srinivasan | Method and apparatus for multiplexing separately-authored metadata for insertion into a video data stream |
US7346664B2 (en) * | 2003-04-24 | 2008-03-18 | Neopath Networks, Inc. | Transparent file migration using namespace replication |
US7092976B2 (en) * | 2003-06-24 | 2006-08-15 | International Business Machines Corporation | Parallel high speed backup for a storage area network (SAN) file system |
US20060036775A1 (en) * | 2004-08-16 | 2006-02-16 | Konstantin Levit-Gurevich | Apparatus and methods for video graphics array (VGA) virtualization in system exploiting multiple operating systems |
US20060137013A1 (en) * | 2004-12-06 | 2006-06-22 | Simon Lok | Quarantine filesystem |
US8135763B1 (en) * | 2005-09-30 | 2012-03-13 | Emc Corporation | Apparatus and method for maintaining a file system index |
US7752173B1 (en) * | 2005-12-16 | 2010-07-06 | Network Appliance, Inc. | Method and apparatus for improving data processing system performance by reducing wasted disk writes |
US8301602B1 (en) * | 2008-05-01 | 2012-10-30 | Emc Corporation | Detection of inconsistencies in a file system |
US8595271B1 (en) * | 2010-12-15 | 2013-11-26 | Symantec Corporation | Systems and methods for performing file system checks |
US9336150B2 (en) * | 2012-06-08 | 2016-05-10 | International Business Machines Corporation | Performing asynchronous discard scans with staging and destaging operations |
US9760574B1 (en) * | 2014-06-30 | 2017-09-12 | EMC IP Holding Company LLC | Managing I/O requests in file systems |
CN105335181A (zh) * | 2014-08-06 | 2016-02-17 | 中兴通讯股份有限公司 | 一种实现ota升级的方法和终端 |
US10146788B1 (en) * | 2014-10-10 | 2018-12-04 | Google Llc | Combined mirroring and caching network file system |
US9697092B2 (en) * | 2015-08-27 | 2017-07-04 | International Business Machines Corporation | File-based cluster-to-cluster replication recovery |
-
2017
- 2017-09-28 US US15/718,032 patent/US10782904B2/en active Active
-
2018
- 2018-09-26 DE DE102018123669.7A patent/DE102018123669A1/de active Pending
- 2018-09-27 CN CN201811130023.9A patent/CN109582221A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110908602A (zh) * | 2019-10-31 | 2020-03-24 | 北京浪潮数据技术有限公司 | 分布式存储系统的数据写入方法、装置、设备及存储介质 |
CN113076170A (zh) * | 2021-06-03 | 2021-07-06 | 统信软件技术有限公司 | 一种远程协助方法、系统、装置、计算设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US10782904B2 (en) | 2020-09-22 |
US20190095336A1 (en) | 2019-03-28 |
DE102018123669A1 (de) | 2019-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109582221A (zh) | 主机计算设备、远程服务器设备、存储系统及其方法 | |
US10754562B2 (en) | Key value based block device | |
JP5276218B2 (ja) | リアルタイムでlunをファイルに、またはファイルをlunに変換すること | |
US9182927B2 (en) | Techniques for implementing hybrid flash/HDD-based virtual disk files | |
KR20170133247A (ko) | 어드레스 기반의 멀티-스트림 스토리지 장치 액세스 | |
CN109977111A (zh) | 采用基于散列和基于树的键-值数据结构的数据管理系统 | |
CN104850358B (zh) | 一种磁光电混合存储系统及其数据获取和存储方法 | |
CN107967124A (zh) | 一种分布式持久性内存存储系统及方法 | |
US9779026B2 (en) | Cache bypass utilizing a binary tree | |
CN108572796A (zh) | 具有异构nvm类型的ssd | |
CN108009008A (zh) | 数据处理方法和系统、电子设备 | |
US20120072656A1 (en) | Multi-tier caching | |
TWI537962B (zh) | 記憶體控制之資料移動及時序 | |
US20120066473A1 (en) | Memory Architecture with Policy Based Data Storage | |
CN110119425A (zh) | 固态驱动器、分布式数据存储系统和利用键值存储的方法 | |
US20150058548A1 (en) | HIERARCHICAL STORAGE FOR LSM-BASED NoSQL STORES | |
CN107148622B (zh) | 智能闪存高速缓存记录器 | |
CN105917318A (zh) | 用于实现基于ssd的i/o高速缓存的系统和方法 | |
US20150149742A1 (en) | Memory unit and method | |
US9870322B2 (en) | Memory mapping for object-based storage devices | |
CN105095113B (zh) | 一种缓存管理方法和系统 | |
US10482033B2 (en) | Method and device for controlling memory | |
CN106095817A (zh) | 基于微内核的可扩展文件系统及文件访问方法 | |
CN104111898A (zh) | 基于多维数据相似性的混合存储系统及数据管理方法 | |
KR20170085951A (ko) | 버저닝 저장 장치 및 방법 |
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 |