CN111488121A - 基于动态应用存取的映射系统和方法 - Google Patents
基于动态应用存取的映射系统和方法 Download PDFInfo
- Publication number
- CN111488121A CN111488121A CN202010066888.4A CN202010066888A CN111488121A CN 111488121 A CN111488121 A CN 111488121A CN 202010066888 A CN202010066888 A CN 202010066888A CN 111488121 A CN111488121 A CN 111488121A
- Authority
- CN
- China
- Prior art keywords
- client
- data storage
- data
- copy
- tertiary
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 61
- 238000013507 mapping Methods 0.000 title description 2
- 238000013500 data storage Methods 0.000 claims abstract description 315
- 230000008859 change Effects 0.000 claims abstract description 14
- 230000004044 response Effects 0.000 claims abstract description 14
- 238000012544 monitoring process Methods 0.000 claims description 19
- 230000008014 freezing Effects 0.000 claims description 9
- 238000007710 freezing Methods 0.000 claims description 9
- 230000000977 initiatory effect Effects 0.000 claims 5
- 230000003247 decreasing effect Effects 0.000 claims 3
- 238000010586 diagram Methods 0.000 description 28
- 230000002085 persistent effect Effects 0.000 description 23
- 230000015654 memory Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 239000007787 solid Substances 0.000 description 6
- 230000007704 transition Effects 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000002354 daily effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
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/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/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
- 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/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2056—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
- G06F11/2082—Data synchronisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2094—Redundant storage or storage space
-
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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/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/0631—Configuration or reconfiguration of storage systems by allocating resources to 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/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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/0647—Migration 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
- G06F3/0649—Lifecycle management
-
- 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/0653—Monitoring storage devices or 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/508—Monitor
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
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)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种用于管理来自客户端的数据的存储的数据存储系统,其包含数据存储装置和数据存储协调器。所述数据存储装置包含加速器池和非加速器池。所述数据存储协调器基于所述客户端中的一个客户端对所述数据存储装置的使用的更改来识别客户端分配更新事件,进行所述客户端分配更新事件是升级事件的确定,并且响应于所述确定:升级所述客户端以将所述客户端的主数据存储装置从所述非加速器池移至所述加速器池。
Description
背景技术
计算装置可以生成数据。例如,计算装置可以托管生成数据的应用程序,例如数据库、电子邮件应用程序、即时消息收发应用程序、文字处理应用程序等。生成后,数据将保存在存储装置中。所述存储装置可以是计算装置的永久性存储装置。计算装置可以包含有限数量的可能会发生故障的永久性存储装置。
发明内容
在一个方面,根据本发明一个或多个实施例的用于管理来自客户端的数据的存储的数据存储系统包含数据存储装置和数据存储协调器。所述数据存储装置包含加速器池和非加速器池。所述数据存储协调器基于所述客户端中的一个客户端对所述数据存储装置的使用的更改来识别客户端分配更新事件,进行所述客户端分配更新事件是升级事件的确定,并且响应于所述确定:升级所述客户端以将所述客户端的主数据存储装置从所述非加速器池移至所述加速器池。
在一个方面,根据本发明一个或多个实施例的用于管理来自客户端的数据的存储的方法包含:由数据存储系统的数据协调器基于所述客户端中的一个客户端对所述数据存储系统的数据存储装置的使用的更改来识别客户端分配更新事件。所述数据存储装置包含加速器池和非加速器池。所述方法进一步包含进行所述客户端分配更新事件是升级事件的确定;并且响应于所述确定:升级所述客户端以将所述客户端的主数据存储装置从所述非加速器池移至所述加速器池。
在一个方面,根据本发明一个或多个实施例的非暂时性计算机可读介质包含计算机可读程序代码,所述代码在由计算机处理器执行时使所述计算机处理器能执行用于管理来自客户端的数据的存储的方法。所述方法包含由数据存储系统的数据协调器基于所述客户端中的一个客户端对所述数据存储系统的数据存储装置的使用的更改来识别客户端分配更新事件。所述数据存储装置包含加速器池和非加速器池。所述方法进一步包含进行所述客户端分配更新事件是升级事件的确定;并且响应于所述确定:升级所述客户端以将所述客户端的主数据存储装置从所述非加速器池移至所述加速器池。
附图说明
将参考附图描述本发明的某些实施例。然而,附图仅通过实例说明本发明的某些方面或实施方案,且并不打算限制权利要求书的范围。
图1.1示出根据本发明一个或多个实施例的系统的图。
图1.2示出根据本发明一个或多个实施例的实例客户端的图。
图1.3示出根据本发明一个或多个实施例的实例数据存储协调器的图。
图1.4示出根据本发明一个或多个实施例的实例数据存储装置的图。
图1.5示出根据本发明一个或多个实施例的数据存储关系的关系图。
图2.1示出根据本发明一个或多个实施例的存储数据的方法的流程图。
图2.2示出根据本发明一个或多个实施例的出于数据存储的目的升级客户端的方法的流程图。
图2.3示出根据本发明一个或多个实施例的出于数据存储的目的将客户端降级的方法的流程图。
图3.1示出在第一时间点的数据存储装置的实例的图。
图3.2示出在第二时间点的图3.1的数据存储装置的实例的图。
图3.3示出在第三时间点的图3.1的数据存储装置的实例的图。
图3.4示出在第四时间点的图3.1的数据存储装置的实例的图。
图3.5示出在第五时间点的图3.1的数据存储装置的实例的图。
图4.1示出在第一时间点的数据存储装置的第二实例的图。
图4.2示出在第二时间点的图4.1的数据存储装置的第二实例的图。
图4.3示出在第三时间点的图4.1的数据存储装置的第二实例的图。
图4.4示出在第四时间点的图4.1的数据存储装置的第二实例的图。
图4.5示出在第五时间点的图4.1的数据存储装置的第二实例的图。
图5示出根据本发明一个或多个实施例的计算装置的图。
具体实施方式
现将参考附图来描述具体实施例。在以下描述中,将众多细节阐述为本发明的实例。所属领域的技术人员应理解,可在无这些具体细节的情况下实践本发明的一个或多个实施例,并且在不脱离本发明的范围的情况下,众多变化或修改可为可能的。省略所属领域的一般技术人员已知的某些细节,以免混淆描述。
在附图的以下描述中,在本发明的各种实施例中,关于一图描述的任一组件可等效于关于任一其它图描述的一个或多个相似命名的组件。为简洁起见,将不关于每一图来重复这些组件的描述。因此,每一图的组件的每个实施例被以引用的方式并入,且假定为任选地存在于具有一个或多个相似命名的组件的每一其它图内。另外,根据本发明的各种实施例,图的组件的任何描述应被解释为任选实施例,其可除了关于任一其它图中的对应相似命名的组件描述的实施例外再实施,与所述实施例一起实施,或代替所述实施例加以实施。
一般来说,本发明的实施例是关于用于管理客户端数据的系统、装置和方法。根据本发明的实施例的系统可以包含用于存储客户端数据的数据存储系统。数据存储系统可以是包含高性能和低性能资源的异构系统。提供给数据存储系统的客户端的数据存储服务可以根据为每个客户端提供数据存储服务所分配的资源类型(即,高性能或低性能)而不同。
在本发明的一个或多个实施例中,数据存储系统基于客户端的数据存储使用率来分配数据存储资源以向客户端提供数据存储服务。作为数据存储速率的替代或补充,所述分配可以基于关于客户端对数据存储服务的使用的其它信息。通过这样做,数据存储系统可以有效地整理其有限的计算资源以满足每个客户端的需求。
在本发明的一个或多个实施例中,数据存储系统可以提供一种出于数据存储的目的在不同存储资源之间无缝地转换客户端的方法。通过这样做,即使数据存储系统在不同类型的存储资源之间转换客户端时,客户端也可以继续接收数据存储服务。
图1.1示出根据本发明一个或多个实施例的系统的图。所述系统可以促进将来自客户端(100)的客户端数据存储在数据存储系统(110)中。将客户端数据存储在数据存储系统(110)中可以提供数据冗余和/或允许客户端(100)从客户端(100)的本地存储装置中卸载数据。
数据存储系统(110)可以向任何数量的客户端(102.2、102.4)提供数据存储服务。为了向客户端(100)提供数据存储服务,数据存储系统(110)可以包含数据存储协调器(112)和数据存储装置(114)。数据存储协调器(112)可以分配数据存储装置(114)的不同组件以向客户端(100)提供不同类型的数据存储服务。
图1.1的任何组件可以通过有线和/或无线网络的任何组合可操作地连接。例如,数据存储系统(110)可以通过网络(未示出)可操作地连接到客户端(100)和/或其它实体(未示出)。其它实体可以是例如其它计算装置。虽然为简洁起见已将图1.1的系统示为包含有限数量的组件,但在不脱离本发明的情况下,本发明的实施例可以包含除图1.1所示的组件之外的组件。下文描述图1.1的系统的每个组件。
客户端(100)可以利用数据存储系统(110)的数据存储服务。客户端(100)可以将客户端数据发送到数据存储系统(110)以进行存储并且从数据存储系统(110)检索数据。
在利用数据存储服务时,客户端(100)可以报告客户端对由数据存储系统(110)提供的数据存储服务的使用的特征。例如,客户端中的每一个(102.2、102.4)可以托管实体,所述实体提供有关数据存储服务的相应客户端用户的信息。所述实体可以是例如代理或物理装置。如将在下面更详细地讨论的,当分配数据存储装置(114)的组件以向客户端中的每一个(100)提供数据存储服务时,数据存储协调器(112)可以利用此类信息。
在本发明的一个或多个实施例中,客户端中的每一个(102.2、102.4)是物理装置。物理装置可以是计算装置。计算装置可以是例如移动电话、平板电脑、笔记本电脑、台式计算机、服务器或云资源。计算装置可以包含一个或多个处理器、存储器(例如,随机存取存储器)和永久性存储装置(例如,磁盘驱动器、固态驱动器等)。图5中示出实例计算装置。永久性存储装置可以存储计算机指令(例如,计算机代码),所述计算机指令在由计算装置的处理器执行时使计算装置执行本申请中描述的客户端(102.2、102.4)的功能和/或图2.1-2.3所示的方法的全部或一部分。在不脱离本发明的情况下,客户端(102.2、102.4)可以是其它类型的计算装置。
虽然已经将客户端(102.2、102.4)描述为物理装置,但在不脱离本发明的情况下,可以将客户端(102.2、102.4)实现为利用其它物理计算装置的计算资源的逻辑装置,例如虚拟装置。例如,可以将客户端(102.2、102.4)实现为利用计算装置或可操作地连接到节点的其它实体的计算资源的逻辑装置。有关客户端的其它详细信息,请参考图1.2。
数据存储协调器(112)可以提供分配服务。提供分配服务可以使数据存储装置(114)的各部分向不同的客户端(例如,102.2、102.4)提供数据存储服务。提供分配服务可以包含:(i)监控客户端对数据存储服务的使用,以及(ii)基于所监控的客户端对数据存储服务的使用,分配数据存储装置(114)的组件以向客户端提供存储服务。
在本发明的一个或多个实施例中,数据存储协调器(112)是物理装置。物理装置可以是计算装置。计算装置可以是例如移动电话、平板电脑、笔记本电脑、台式计算机、服务器或云资源。计算装置可以包含一个或多个处理器、存储器(例如,随机存取存储器)和永久性存储装置(例如,磁盘驱动器、固态驱动器等)。图5中示出实例计算装置。永久性存储装置可以存储计算机指令(例如,计算机代码),所述计算机指令在由计算装置的处理器执行时使计算装置执行本申请中描述的部署协调器(110)的功能和/或图2.1-2.3所示的方法的全部或一部分。在不脱离本发明的情况下,数据存储协调器(112)可以是其它类型的计算装置。
虽然已经将数据存储协调器(112)描述为物理装置,但在不脱离本发明的情况下,可以将数据存储协调器(112)实现为利用其它物理计算装置的计算资源的逻辑装置,例如虚拟装置。例如,可以将数据存储协调器(112)实现为利用计算装置或可操作地连接到数据存储协调器(112)的其它实体的计算资源的逻辑装置。有关数据存储协调器(112)的其它详细信息,请参考图1.3。
数据存储装置(114)可以向客户端(100)提供数据存储服务。数据存储服务可以包含存储来自客户端的数据以及将存储的数据提供给客户端。通过这样做,客户端(100)可以更有效地利用其本地存储资源和/或备份客户端数据,使得客户端存储装置的故障不会引起数据丢失。
在本发明的一个或多个实施例中,数据存储装置(114)冗余地存储来自客户端的数据的多个复本。例如,数据存储装置(114)可以存储数据的1个、2个、3个、4个、5个等复本。每个存储的复本可以存储在相似和/或不同的故障域中。故障域可以是数据存储装置(114)的一部分,其不受用于提供数据存储服务的其它故障域的故障的影响。因此,如果存储客户端数据的复本的数据存储装置(114)的一个故障域发生故障,则数据存储装置(114)可以提供存储在数据存储装置的第二故障域中的数据的第二复本以服务于来自客户端对数据的请求。
在本发明的一个或多个实施例中,数据存储装置(114)包括具有不同存储性能特征的异构存储资源。例如,数据存储装置(114)可以包含一些高性能存储资源和一些低性能存储资源。因此,用于向客户端(100)提供数据存储服务的存储性能可以根据分配数据存储装置(114)的哪些组件向客户端(100)提供数据存储服务而变化。
在本发明的一个或多个实施例中,数据存储装置(114)是物理装置。物理装置可以是计算装置。计算装置可以是例如移动电话、平板电脑、笔记本电脑、台式计算机、服务器或云资源。计算装置可以包含一个或多个处理器、存储器(例如,随机存取存储器)和永久性存储装置(例如,磁盘驱动器、固态驱动器等)。图5中示出实例计算装置。永久性存储装置可以存储计算机指令(例如,计算机代码),所述计算机指令在由计算装置的处理器执行时使计算装置执行本申请中描述的数据存储装置(114)的功能和/或图2.1-2.3所示的方法的全部或一部分。在不脱离本发明的情况下,数据存储装置(114)可以是其它类型的计算装置。
虽然已经将数据存储装置(114)描述为物理装置,但在不脱离本发明的情况下,可以将数据存储装置(114)实现为利用其它物理计算装置的计算资源的逻辑装置,例如虚拟装置。例如,可以将数据存储装置(114)实现为利用计算装置或可操作地连接到数据存储装置(114)的其它实体的计算资源的逻辑装置。有关数据存储装置(114)的其它详细信息,请参考图1.4。
虽然已将图1.1的系统示为包含有限数量的组件,但在不脱离本发明的情况下,根据本发明一个或多个实施例的系统可以包含附加的、更少的和/或不同的组件。另外,虽然如图所示的图1.1仅示出系统的一些组件之间的连接,但在不脱离本发明的情况下,根据本发明一个或多个实施例的系统可以包含图1.1中所示的任何组件和/或图1.1中未示出的其它组件之间的任何数量的连接。
如上所述,客户端(100)可以利用由数据存储系统(100)提供的数据存储服务。为了进一步阐述客户端(100),图1.2中示出根据本发明一个或多个实施例的实例客户端(100)的图。
实例客户端(100)可以包含应用程序(132.2)、数据存储系统利用率监控器(132.4)和永久性存储装置(134)。下文讨论实例客户端(100)的每个组件。
应用程序(132.2)可以是使用实例客户端(130)的计算资源执行的任何类型的程序。例如,应用程序(132.2)可以是电子邮件应用程序、文字处理应用程序、数据库应用程序、电子消息收发应用程序和/或任何其它类型的计算机实现的服务。当执行时,应用程序(132.2)可以生成与实例客户端(130)的用户相关的应用程序数据(134.2)。当利用客户端提供的数据存储服务时,实例客户端(130)可以将应用程序数据(134.2)的全部和/或一部分的复本发送到数据存储系统以进行存储。为了升级此类存储装置,实例客户端(130)可以托管接口应用程序(未示出)以将数据有效地存储在数据存储系统中并从数据存储系统检索数据。
数据存储系统利用率监控器(132.4)可以提供数据存储系统使用监控服务。为了提供数据存储系统使用监控服务,数据存储系统利用率监控器(132.4)可以监控:(i)将应用程序数据(134.2)和/或其它数据存储到数据存储系统,以及(i)实例客户端(130)从数据存储系统检索数据。数据存储系统利用率监控器(132.4)可以基于监控来生成统计,并将所生成的统计存储为数据存储系统利用率度量(134.4)。数据存储系统利用率监控器(132.4)可以将监控结果存储为数据存储系统利用率度量(134.4)的一部分。
在本发明的一个或多个实施例中,数据存储系统利用率度量(134.4)包含数据存储速率、数据检索速率以及实例客户端与数据存储系统之间的等待时间信息。数据存储系统利用率度量(134.4)可以包含随时间推移以及任何粒度级别的此类信息,例如每30秒、每30分钟、每小时、每12小时、每天等计算和存储的数据存储速率。
在本发明的一个或多个实施例中,数据存储系统利用率监控器(134.2)向数据存储系统提供数据存储系统利用率度量(134.4)。例如,数据存储系统利用率监控器(134.2)可以将数据存储系统利用率度量(134.4)提供给数据存储系统的数据存储协调器。数据存储系统利用率监控器(134.2)可以基于时间表和/或响应于来自数据存储系统的请求而提供数据存储系统利用率度量(134.4)。所述时间表可以是例如每小时、每15分钟、每天等。在不脱离本发明的情况下,所述时间表可以是其它类型的周期性或非周期性时间表。
在本发明的一个或多个实施例中,数据存储系统利用率监控器(134.2)是物理装置。物理装置可以包含电路系统。物理装置可以包含现场可编程门阵列、专用集成电路、数字信号处理器、微控制器和/或嵌入式处理器。物理装置可以包含存储计算指令的永久性存储装置,所述计算指令在由物理装置执行时使物理装置执行贯穿本申请描述的数据存储系统利用率监控器(134.2)的功能和/或图2.1-2.3所示的方法的全部或一部分。
在本发明的一个或多个实施例中,数据存储系统利用率监控器(134.2)被实现为逻辑实体。例如,数据存储系统利用率监控器(134.2)可以是使用实例客户端(100)的例如处理器周期、存储器容量、存储容量、通信带宽等硬件资源执行的应用程序。
永久性存储装置(134)可以是用于存储数字数据的物理装置。永久性存储装置(134)可以包含用于存储数字数据的任何数量的物理装置。物理装置可以是例如硬盘驱动器、固态驱动器、磁带驱动器,以及用于数据的永久存储的任何其它类型的物理装置。
在本发明的一个或多个实施例中,永久性存储装置(134)是虚拟化资源。例如,永久性存储装置(134)可以是虚拟驱动器。在不脱离本发明的情况下,虚拟驱动器可以使用任何数量的物理计算装置的计算资源。
尽管已将实例客户端(130)示为包含有限数量的组件,但在不脱离本发明的情况下,实例客户端(130)可以包含附加的、更少的和/或不同的组件。
如上所述,协调器(112,图1.1)可以提供分配服务。为了进一步阐述协调器(112,图1.1),图1.3中示出根据本发明一个或多个实施例的实例协调器(140)的示意图。
实例数据存储协调器(140)可以包含数据存储系统分配管理器(142.2)和永久性存储装置(144)。下文讨论实例数据存储协调器(140)的每个组件。
数据存储系统分配管理器(142)可以提供分配服务。通过提供分配服务,数据存储系统的组件可以向客户端提供数据存储服务。例如,数据存储系统分配管理器(142)可以分配数据存储系统的不同组件以向不同客户端提供数据存储服务。如上所述,数据存储系统的不同组件可以具有不同数量/类型的计算资源,并因此提供不同质量的存储服务。
在本发明的一个或多个实施例中,数据存储系统分配管理器(142)通过以下操作来提供分配服务:(i)从客户端获得数据存储系统利用率度量(134.2,图1.2)并存储数据存储系统利用率度量(144.4)的本地复本,(ii)将数据存储系统利用率度量(144.4)与和数据存储系统的不同组件相关联的阈值进行比较,以及(iii)基于所述比较而出于数据存储服务的目的将客户端分配给数据存储系统的某些不同组件。
在本发明的一个或多个实施例中,与数据存储系统的不同组件相关联的阈值各自指定数据存储服务的不同利用率。例如,阈值可以指定每秒10MB的数据存储速率。如果客户端的数据存储速率小于阈值,则可以分配数据存储装置的第一组低性能组件以向客户端提供服务。第一组低性能组件可以用作主数据档案存储装置,也可以用作任何数量的副本存储装置。副本可以是主数据档案的复本。出于数据检索可靠性的目的,副本可以存储在单独的故障域中。在这种情况下,提供给客户端的数据存储服务可能会降低性能。
相反,如果客户端的数据存储速率大于阈值,则可以分配数据存储装置的第二组高性能组件和数据存储装置的第一组低性能组件,以向客户端提供数据存储服务。第二组组件可以用作主数据档案存储装置,第二组组件还可以用作副本存储装置。在第二种情况下,提供给客户端的数据存储服务可能是高性能的,因为客户端可能仅与数据存储装置的第二组高性能组件进行交互。
当数据存储装置的组件被分配给客户端时,所述分配可以被记录在客户端分配存储库(144.2)中。在最初分配客户之后,可以检查分配。可以定期进行检查,也可以响应特定事件的发生进行检查。例如,如果客户端的数据存储系统利用率度量(134.2,图1.2)发生显著变化,则由客户端托管的代理可以通知实例数据存储协调器(140)。
如果数据存储系统利用率度量(144.4)已更改,以致与阈值的比较发生更改,则可以基于新的阈值比较重新分配数据存储系统的组件以向客户端提供数据存储服务。通过这样做,可以连续更新数据存储系统的组件的分配,使得分配具有适当性能的数据存储装置的组件以满足客户端的数据存储需求。
在本发明的一个或多个实施例中,数据存储系统分配管理器(142)是物理装置。物理装置可以包含电路系统。物理装置可以包含现场可编程门阵列、专用集成电路、数字信号处理器、微控制器和/或嵌入式处理器。物理装置可以包含存储计算指令的永久性存储装置,所述计算指令在由物理装置执行时使物理装置执行贯穿本申请描述的数据存储系统分配管理器(142)的功能和/或图2.1-2.3所示的方法的全部或一部分。
在本发明的一个或多个实施例中,数据存储系统分配管理器(142)被实现为逻辑实体。例如,数据存储系统分配管理器(142)可以是使用实例数据存储协调器(140)的例如处理器周期、存储器容量、存储容量、通信带宽等硬件资源执行的应用程序。
永久性存储装置(144)可以是用于存储数字数据的物理装置。永久性存储装置(144)可以包含用于存储数字数据的任何数量的物理装置。物理装置可以是例如硬盘驱动器、固态驱动器、磁带驱动器,以及用于数据的永久存储的任何其它类型的物理装置。
在本发明的一个或多个实施例中,永久性存储装置(144)是虚拟化资源。例如,永久性存储装置(144)可以是虚拟驱动器。在不脱离本发明的情况下,虚拟驱动器可以使用任何数量的物理计算装置的计算资源。
尽管已将实例数据存储协调器(140)示为包含有限数量的组件,但在不脱离本发明的情况下,实例数据存储协调器(140)可以包含附加的、更少的和/或不同的组件。
如上所讨论的,数据存储装置(114,图1.1)可以包含具有不同数量的计算资源的不同的组件。为了进一步阐述数据存储装置(114,图1.1),图1.4中示出根据本发明一个或多个实施例的实例数据存储装置(150)的示意图。
所述实例数据存储装置(150)可以是分布式系统。分布式系统可以包含任何数量的节点。节点中的每一个可以合作以向数据存储系统提供数据存储服务。
当向客户端提供数据存储服务时,数据存储系统的节点可以充当(i)主数据档案或(ii)副本。有关主数据档案和副本的其它详细信息,请参考图1.5。
分布式系统的不同节点可以包含不同数量和/或类型的计算资源,例如,提供处理资源的处理器、提供存储器资源的存储器、提供存储资源的存储装置、提供通信资源的通信器。因此,分布式系统可以包含节点的异构群。
节点的异构群可以在逻辑上分为加速器池(152)和非加速器池(154),所述加速器池包含的节点比其它节点具有更多计算资源,例如高性能节点(152.2、152.4),所述非加速器池包含的节点比所述加速器池(152)中的节点具有更少计算资源,例如低性能节点(154.2、154.4)。例如,加速器池(152)的节点可以是企业级固态存储资源,其提供非常高的存储带宽、低等待时间以及高的每秒输入输出(IOPS)。相反,非加速器池(152)的节点可以包含提供较低存储性能的硬盘驱动器。虽然在图1.4中示为分成两组,但是在不脱离本发明的情况下,可以根据每个节点的相对性能水平将节点分为任意数量的分组。
当数据存储系统协调器分配实例数据存储装置(150)的组件以向客户端提供存储服务时,所述分配可以以节点为基础。也就是说,可以将池中的一者的第一节点分配为主数据档案,并且可以将被分配为服务于客户端的其它节点分配为副本。客户端数据可以最初存储在主数据档案中,并且客户端数据的复本可以在存储于主数据档案中之后存储在副本中。因此,取决于每个客户端的存储需求,可能有利的是分配不同类型的节点以充当主数据档案或副本。如果仅需要低性能存储,则可以仅分配非加速器池(154)的节点。相反,如果需要高性能存储,则可以分配加速器池(152)的节点以充当主数据档案。可以分配非加速器池(154)节点以充当主数据档案的副本。通过这样做,可以从客户端的角度极大地提高数据存储装置(150)的存储性能,而无需用于提供数据存储服务的实例数据存储装置(150)的所有组件作为高性能节点。
在本发明的一个或多个实施例中,实例数据存储装置(150)的不同节点在不同的故障域中。因此,任何节点的故障可能不会使其它节点无法用于向客户端提供数据存储服务的目的。
在本发明的一个或多个实施例中,实例数据存储装置(150)的每个节点是物理装置。物理装置可以是计算装置。计算装置可以是例如移动电话、平板电脑、笔记本电脑、台式计算机、服务器或云资源。计算装置可以包含一个或多个处理器、存储器(例如,随机存取存储器)和永久性存储装置(例如,磁盘驱动器、固态驱动器等)。图5中示出实例计算装置。永久性存储装置可以存储计算机指令(例如,计算机代码),所述计算机指令在由计算装置的处理器执行时使计算装置执行本申请中描述的相应节点的功能和/或图2.1-2.3所示的方法的全部或一部分。在不脱离本发明的情况下,节点(例如152.2、152.4、154.2、154.4)中的每一个可以是其它类型的计算装置。
尽管已将实例数据存储装置(150)示为包含有限数量的组件,但在不脱离本发明的情况下,实例数据存储装置(150)可以包含附加的、更少的和/或不同的组件。
为了进一步阐述本发明的实施例的各方面,在图1.5中示出的关系图示出了根据本发明一个或多个实施例的关系。在图1.5中,示出了主数据档案(160)与副本之间的关系。如上所述,当将数据存储在数据存储装置中时,可以存储数据的多个复本。当第一次存储数据时,可以将其存储在主数据档案(160)中。在将数据最初存储在主数据档案(160)中之后,可以将数据的复本存储在副本中。副本可以是镜像主数据档案(160)的另一个数据结构。当客户端数据的初始复本存储在主数据档案(160)中时,当某些复本存储在副本中时,或当客户端数据的所有复本都存储时(即,主副本和所有副本),可以发送确认。
如图1.5所示,可以存在与主数据档案(160)相对应的任意数量的副本(162.2、162.4)。例如,当客户端数据的至少四个复本要存储在数据存储装置中(主数据档案(160)中的复本以及三个副本中的每个副本的复本)时,可以存在主副本(162.2)、二级副本(未示出)以及三级副本(未示出)。主数据档案和副本中的每一个可以存储在单独的故障域中。
如将在下面更详细地讨论的,当将客户端从接收来自数据存储装置的第一组组件的数据存储服务转换到接收来自数据存储装置的第二组组件的数据存储服务时,可以使用副本。当客户端的数据存储系统使用率更改时,可能会发生此类转换。
如上文所论述,数据存储系统可以向客户端提供数据存储服务。图2.1-2.3示出根据本发明一个或多个实施例的可由图1.1的系统的组件执行的方法。虽然被示为一系列步骤,但是可以省略图2.1-2.3中所示的任何步骤,以不同顺序执行和/或以并行或部分重叠的方式执行所述步骤。此外,在不脱离本发明的情况下,可以作为下文讨论的方法的一部分来执行除了图2.1-2.3中所示的那些步骤之外的其它步骤。
图2.1示出根据本发明一个或多个实施例的方法的流程图。根据本发明一个或多个实施例,图2.1中所描绘的方法可以用于向客户端提供数据存储服务。图2.1中所示的方法可以由例如数据存储系统(例如,110,图1.1)来执行。在不脱离本发明的情况下,图1.1中示出的系统的其它组件可以执行图2.1的方法。
在步骤200中,基于客户端对数据存储系统的使用的更改来识别客户端分配更新事件。
在本发明的一个或多个实施例中,基于对客户端对数据存储系统的使用的监控,识别客户端对数据存储系统的使用的更改。例如,客户端可以向数据存储系统报告其对数据存储系统的使用。在另一个实例中,数据存储系统可以主动地监控客户端对数据存储系统的使用。
在本发明的一个或多个实施例中,在预定时间段内监控客户对数据存储系统的使用。例如,预定时间段可以是24小时。可以将在预定时间段期间的监控与在其它预定时间段期间的监控进行比较以识别更改。
为了进一步阐述,考虑一个方案,其中客户端托管数据库,所述数据库通常每天在数据存储系统中存储100GB的数据。如果客户端在特定的一天中仅将20GB的数据存储在数据存储系统中,则将20GB与100GB的平均值进行比较即可发现更改。
尽管上面描述的是基于每天的比较,但是可以使用客户端进行的客户端对数据存储系统的使用的其它统计特征来识别数据存储系统的客户端用户的更改。例如,可以计算连续7天的平均偏差和标准偏差。如果在特定的一天中数据存储系统的客户端用户不在使用平均值的一个标准偏差范围内,则数据存储系统可以识别出已发生更改。
步骤200的识别可以由数据存储系统的数据存储协调器执行。
在步骤202,进行关于客户端分配更新事件是否是升级事件的确定。
在本发明的一个或多个实施例中,客户端分配更新事件是这样的事件:所述事件在其发生时使数据存储系统转换数据存储装置的不同组件以向客户端提供数据存储服务。
在本发明的一个或多个实施例中,升级事件是这样的事件:所述事件使高性能节点被转换以向客户端提供数据存储服务,并且使低性能节点被转换为不向客户端提供数据存储服务。
在本发明的一个或多个实施例中,基于与数据存储装置池相关联的至少一个阈值进行所述确定。所述阈值可以指定客户端对数据存储服务的使用率。例如,阈值可以指定客户端对数据存储系统的数据存储速率。阈值可以是数据存储装置的非加速器池的节点的最大数据存储速率。在不脱离本发明的情况下,阈值可以是其它值。例如,阈值可以是数据存储装置的非加速器池的节点的最大数据存储速率的80%。
如果使得识别客户端分配更新事件的数据存储速率超过阈值,则将客户端分配更新事件识别为升级事件。如果使得识别客户端分配更新事件的数据存储速率未超过阈值,则不会将客户端分配事件识别为升级事件。
如果客户端分配事件是升级事件,则所述方法可以进入步骤204,如果客户端分配事件不是升级事件,则所述方法可以进入步骤206。
在步骤204,升级客户端。
在本发明的一个或多个实施例中,升级客户端会使客户端的主数据档案被转换到加速器池的高性能节点。
在本发明的一个或多个实施例中,通过图2.2中所示的方法升级客户端。在不脱离本发明的情况下,可以通过其它方法升级客户。
在步骤208中,使用与在步骤200之前用于向客户端提供数据存储服务的主节点不同的数据存储系统的不同主节点向客户端提供数据存储服务。
在本发明的一个或多个实施例中,通过将客户端数据存储在不同的主节点中的主数据档案中来向客户端提供数据存储服务。
在本发明的一个或多个实施例中,数据存储装置的主节点是托管与客户端相关联的主数据档案的节点。客户端与单个主节点相关联。如上所述,在将客户端数据的复本存储在由数据存储装置的其它节点托管的副本中之前,首先将客户端数据存储在主数据档案中。
所述方法可以在步骤208后结束。
返回到步骤202,如果客户端分配更新事件不是升级事件,所述方法可以在步骤202之后进行到步骤206。
在步骤206,将客户端降级。
在本发明的一个或多个实施例中,将客户端降级会使所述客户端的主数据档案被转换到非加速器池的低性能节点。
在本发明的一个或多个实施例中,通过图2.3中所示的方法将客户端降级。在不脱离本发明的情况下,可以通过其它方法将客户端降级。
图2.2示出根据本发明一个或多个实施例的方法的流程图。根据本发明一个或多个实施例,图2.2中描绘的方法可以用于升级客户端。图2.2中所示的方法可以由例如数据存储系统(例如,110,图1.1)来执行。在不脱离本发明的情况下,图1.1中所示的系统的其它组件可以执行图2.2的方法。
在步骤210中,冻结与在加速器池节点中具有主数据档案的客户端相关联的非加速器池节点中的第二副本。
在本发明的一个或多个实施例中,冻结第二副本会使第二副本不再镜像与客户端相关联的主数据档案。冻结第二副本可以防止冻结后在第二副本中镜像对主数据档案的更改。
在步骤212,在第二非加速器池节点中实例化三级副本。
在本发明的一个或多个实施例中,通过在第二非加速器池节点中制作冻结的二级副本的复本来实例化三级副本。因此,在这种情况下,三级副本不会镜像主数据档案。而是,实例化的三级副本会镜像在冻结二级副本之前的主数据档案的状态。第二非加速器池节点是尚未存储任何客户端数据的非加速器池的任何节点。第二非加速器池节点可以位于与其它副本和/或主数据档案不同的故障域中。
在步骤214中,基于在冻结二级副本时发生的差异存储来更新二级副本和三级副本两者。
在本发明的一个或多个实施例中,差异存储是存储在主数据档案中的客户端数据,所述客户端数据是在冻结二级副本时存储的。
在本发明的一个或多个实施例中,更新二级副本和三级副本使两个副本都镜像主数据档案。
在步骤216中,暂停客户端对主数据档案的使用,并将与二级副本相关联且存储在第三非加速器池节点中的主副本重新分配为新的主数据档案。
在本发明的一个或多个实施例中,将主副本重新分配为新的主数据档案会使客户端数据首先存储在主副本中,并使主副本充当客户端的主数据档案。
在本发明的一个或多个实施例中,通过向数据存储装置发送指令以将客户端数据的存储从主数据档案转移到主副本,来暂停客户端对主数据档案的使用。
在步骤218,清除存储在加速器池节点中的主数据档案。
可以通过删除主数据档案来清除主数据档案。
所述方法可以在步骤218后结束。
通过图2.2中所示的方法,可以将在数据存储装置的低性能节点中存储数据的客户端转换为首先在高性能节点中存储数据,并将客户端数据的复本存储在由数据存储装置的低性能节点托管的副本中。上述方法可以提供对客户透明的无缝转换。因此,可以不通过图2.2中所示的方法来中断由数据存储系统提供的数据存储服务。
图2.3示出根据本发明一个或多个实施例的方法的流程图。根据本发明一个或多个实施例,图2.3中描绘的方法可以用于将客户端降级。图2.3中所示的方法可以由例如数据存储系统(例如,110,图1.1)来执行。在不脱离本发明的情况下,图1.1中所示的系统的其它组件可以执行图2.3的方法。
在步骤220中,冻结与在第二非加速器池节点中具有主数据档案的客户端相关联的非加速器池节点中的主副本。
可以如关于图2.2的步骤210所讨论的来冻结二级副本。
在步骤222,在加速器池中实例化三级副本。
在本发明的一个或多个实施例中,通过在加速器池的高性能节点中制作冻结的主副本的复本来实例化三级副本。
在步骤224中,基于在实例化三级副本时发生的差异存储来更新三级副本。
在本发明的一个或多个实施例中,差异存储是在选择了主副本时被存储到与主副本相关联的主数据档案中的客户端数据。可以通过应用差异存储所牵涉的更改来更新三级副本。在更新三级副本之后,三级副本可以镜像主数据档案。
在步骤226中,暂停客户端对存储在第二非加速器池节点中的主数据档案的使用,并将三级副本重新分配为新的主数据档案。
在本发明的一个或多个实施例中,将三级副本重新分配为新的主数据档案会使与主数据档案相关联的客户端数据首先存储在三级副本中,并使三级副本充当客户端的主数据档案。
在本发明的一个或多个实施例中,通过将对主数据档案的写入重新引导到三级副本,来暂停客户端对主数据档案的使用。
在步骤228中,清除存储在第二非加速器池节点上的主数据档案。
在本发明的一个或多个实施例中,通过删除主数据档案来清除主数据档案。
所述方法可以在步骤228后结束。
通过图2.3中所示的方法,可以将在数据存储装置的高性能节点中存储数据的客户端转换为首先在低性能节点中存储数据,并将客户端数据的复本存储在由数据存储装置的其它低性能节点托管的副本中。上述方法可以提供对客户透明的无缝转换。因此,可以不通过图2.3中所示的方法来中断由数据存储系统提供的数据存储服务。
为了进一步阐述本发明的实施例的各方面,在图3.1-3.5和图4.1-4.5中分别提供了两个非限制性实例。在图3.1-4.5中,类似于图1.1的系统的系统为客户端提供数据存储服务。为了简洁起见,图3.1-4.5中仅示出图1.1的系统的有限数量的组件。
第一实例
考虑如图3.1所示的场景,其中客户端在数据存储系统(300)中存储数据。在图3.1所示的时间点,客户端数据最初存储在由加速器池(310)的高性能节点A(312)托管的主数据档案(312.2)中。加速器池(310)还可以包含第二高性能的高性能节点B(314)。在将客户端数据最初存储在主数据档案(312.2)中之后,将数据的复本存储在主副本(322.2)和二级副本(324.2)中。主副本(322.2)由非加速器池(320)的低性能节点A(322)托管。二级副本(324.2)由非加速器池(320)的低性能节点B(322)托管。非加速器池(320)还包含低性能节点C(326)。
随时间推移,在数据存储系统(300)中存储客户端数据的速率降低到低于用于确定加速器池(310)的节点是否将用于客户端数据的初始存储的阈值。响应于客户端数据存储速率低于所述阈值,数据存储协调器(未示出)启动从将客户端数据存储在加速器池(310)中转换为将客户端数据存储在非加速器池(320)中。
为了开始转换,冻结二级副本(324.2)以获得冻结的二级副本(324.4),如图3.2所示。当二级副本被冻结时,客户端数据仍存储在主数据档案(312.2)中,并且主副本(322.2)在初始存储之后继续将客户端数据的复本存储在主数据档案(312.2)中。
在获得冻结的二级副本(324.4)之后,如图3.3所示,实例化低性能节点C(326)中的三级副本(326.2)。当实例化时,三级副本(326.2)是冻结的二级副本(324.4)的复本。由于实例化三级副本(326.2)的计算资源限制,客户端数据继续存储在主数据档案(312.2)和客户端数据的复本中或存储在主副本(322.2)中,这会使冻结的二级副本(324.4)和三级副本(326.2)具有与主数据档案和主副本不同的数据。
在实例化三级副本(326.2)之后,将冻结的二级副本(324.4)和三级副本(326.4)更新为具有与主数据档案和主副本相似的数据。因此,获得更新的冻结的二级副本(324.6)及其更新的三级副本326.4,如图3.4中所示。
在更新了二级和三级副本之后,删除主数据档案(312.2),并修改主副本以充当主数据档案(322.2),如图3.5中所示。
在图3.1-3.5中所示的过程期间,由数据存储系统(300)连续存储客户端数据,同时修改内部存储拓扑,使得客户端数据仅存储在非加速器池(320)中。
第一实例结束
第二实例
考虑如图4.1所示的场景,其中示出与图3.1-3.5中所示的数据存储系统相同但以与图3.1-3.5的数据存储系统不同的方式(例如,在不同的位置)存储客户端数据的数据存储系统(300)。在图4.1所示的时间点,客户端数据最初存储在由非加速器池(320)的低性能节点A(322)托管的主数据档案(422.2)中。主副本(424.2)和二级副本(426.2)分别由低性能节点B(324)和低性能节点C(326)托管。在这种存储拓扑中,低性能节点正在执行客户端数据的存储。因此,为客户端提供了低质量的存储服务。相比之下,图3.1的存储系统最初是在加速器池(310)中存储客户端数据。因此,在所述拓扑中,客户端获得高质量的存储服务。
随时间推移,在数据存储系统(300)中存储客户端数据的速率提高到高于用于确定加速器池(310)的节点是否将用于客户端数据的初始存储的阈值。响应于客户端数据存储速率提高到高于所述阈值,数据存储协调器(未示出)启动从将客户端数据存储在非加速器池(300)中转换为将客户端数据存储在加速器池(310)中。
为了开始转换,冻结主副本(424.2)以获得冻结的主副本(424.4),如图4.2所示。当二级副本被冻结时,客户端数据仍存储在主数据档案(422.2)中,并且二级副本(426.2)在初始存储之后继续将客户端数据的复本存储在主数据档案(422.2)中。
在获得冻结的二级副本(424.4)之后,如图4.3所示,实例化高性能节点A(312)中的三级副本(412.2)。当实例化时,三级副本(412.2)是冻结的主副本(424.4)的复本。由于实例化三级副本(412.2)的计算资源限制,客户端数据继续存储在主数据档案(422.2)中,并且客户端数据的复本存储在二级副本(426.2)中,这会使冻结的主副本(424.4)和三级副本(412.2)具有与主数据档案和主副本不同的数据。
在实例化三级副本(412.2)之后,将三级副本(412.2)更新为具有与主数据档案(422.2)和二级副本(426.2)相似的数据。因此,获得更新的三级副本(412.4),如图4.4所示,它是主数据档案(422.2)的复本。
在更新了三级副本之后,删除冻结的主副本(424.4),修改主数据档案(422.2)以充当主副本(422.4),并且修改更新的三级副本(412.4)以充当主数据档案(412.6),如图4.5所示。
在图4.1-4.5中所示的过程期间,由数据存储系统(300)连续存储客户端数据,同时修改内部存储拓扑,使得客户端数据首先存储在加速器池(310)中,然后存储在非加速器池(320)中。
第二实例结束
如上所述,本发明的实施例可以使用计算装置实施。图5示出根据本发明一个或多个实施例的计算装置的图。计算装置(500)可以包含一个或多个计算机处理器(502)、非永久性存储装置(504)(例如,易失性存储器,例如随机存取存储器(RAM)、高速缓冲存储器)、永久性存储装置(506)(例如,硬盘、例如压缩光盘(CD)驱动器或数字通用光盘(DVD)驱动器的光学驱动器、闪存等)、通信接口(512)(例如,蓝牙接口、红外线接口、网络接口、光接口等)、输入装置(510)、输出装置(508)和众多其它元件(未示出)和功能。下文描述这些组件中的每一个。
在本发明的一个实施例中,计算机处理器(502)可以是用于处理指令的集成电路。例如,计算机处理器可以是处理器的一个或多个核心或微核心。计算装置(500)还可以包含一个或多个输入装置(510),例如触摸屏、键盘、鼠标、麦克风、触控板、电子笔或任何其它类型的输入装置。另外,通信接口(512)可以包含用于将计算装置(500)连接到网络(未示出)(例如,局域网(LAN)、例如因特网的广域网(WAN)、移动网络或任何其它类型的网络)和/或连接到另一装置(例如,另一计算装置)的集成电路。通信接口(512)可以包含网络适配器或支持经由任何类型的网络连接技术/标准进行通信的其它硬件元件。
在本发明的一个实施例中,计算装置(500)可以包含一个或多个输出装置(508),例如屏幕(例如,液晶显示器(LCD)、等离子显示器、触摸屏、阴极射线管(CRT)监控器、投影仪或其它显示装置)、打印机、外部存储装置或任何其它输出装置。输出装置中的一个或多个可以与输入装置相同或不同。输入和输出装置可以在本地或远程连接到计算机处理器(502)、非永久性存储装置(504)和永久性存储装置(506)。存在许多不同类型的计算装置,且前述输入和输出装置可以采取其它形式。
本发明的一个或多个实施例可以改进分布式存储技术的领域。具体地,本发明的实施例可以通过分配分布式存储拓扑的计算资源以满足不同客户端的需求来提高分布式存储技术的效率。根据本发明的实施例的数据存储系统可以基于每个客户端的数据存储需求自动地转换存储客户端数据的位置。因此,数据存储系统可以连续地修改被分配用于向每个客户端提供数据存储服务的数据存储系统的资源。通过这样做,可以向具有高性能数据存储装置的客户端分配相应的数据存储系统资源,以满足客户端的需求。
另外,本发明的实施例可以通过使要执行的转换连续地存储客户端数据来提高在不同的存储资源之间转换客户端的可行性。因此,本发明的一个或多个实施例可以提供一种数据存储系统,其能够在不同的存储资源之间转换客户端而不会中断客户端对由数据存储系统提供的数据存储服务的使用。
因此,本发明的实施例可以解决由于环境的技术性质而引起的技术问题。具体地,本发明的实施例可以解决试图优化客户端之间的存储资源分配的数据存储系统中存储资源的间歇可用性的问题。相反,此类问题可能不会在单个计算系统中出现,而是由分布式计算系统中存在的多个独立运行的实体引起的。
上文讨论的问题应理解为由本文中所公开的本发明的实施例所解决的问题的实例,且本发明不应限于解决相同/类似问题。本发明广泛地适用于解决超出本文中所讨论的那些问题的一系列问题。
可以使用由可配置装置的一个或多个处理器执行的指令来实施本发明的一个或多个实施例。此外,此类指令可以对应于存储在一个或多个非暂时性计算机可读介质上的计算机可读指令。
虽然上文已关于有限数量的实施例描述了本发明,但受益于本发明的所属领域的技术人员将了解,可设计不脱离如本文中所公开的本发明的范围的其它实施例。因此,本发明的范围应只受随附权利要求书限制。
Claims (20)
1.一种用于管理来自客户端的数据的存储的数据存储系统,包括:
数据存储装置,所述数据存储装置包括:
加速器池,和
非加速器池;以及
数据存储协调器,所述数据存储协调器被编程为:
基于所述客户端中的一个客户端对所述数据存储装置的使用的更改来识别客户端分配更新事件,
进行所述客户端分配更新事件是升级事件的确定,并且
响应于所述确定:
升级所述客户端以将所述客户端的主数据存储装置从所述非加速器池移至所述加速器池。
2.根据权利要求1所述的数据存储系统,其中所述数据存储协调器被进一步编程为:
基于所述客户端中的第二客户端对所述数据存储装置的使用的更改来识别第二客户端分配更新事件;
进行所述第二客户端分配更新事件不是升级事件的第二确定;以及
响应于所述第二确定:
将所述客户端降级以将所述第二客户端的主数据存储装置从所述加速器池移至所述非加速器池。
3.根据权利要求2所述的数据存储系统,其中进行所述第二客户端分配更新事件不是所述升级事件的所述第二确定包括:
在预定时间段内执行所述第二客户端对所述数据存储装置的所述使用的监控;
基于所述监控,进行所述第二客户端在所述数据存储装置中存储数据的速率已降低到低于阈值的第三确定;以及
基于所述第三确定,确定所述客户端分配更新事件不是所述升级事件。
4.根据权利要求3所述的数据存储系统,其中进行所述客户端分配更新事件是所述升级事件的所述确定包括:
在第二预定时间段内执行所述客户端对所述数据存储装置的所述使用的第二监控;
基于所述第二监控,进行所述客户端在所述数据存储装置中存储数据的速率已提高到高于第二阈值的第四确定;以及
基于所述第四确定,确定所述客户端分配更新事件是所述升级事件。
5.根据权利要求2所述的数据存储系统,其中将所述第二客户端的所述主数据存储装置从所述加速器池移至所述非加速器池包括:
冻结所述非加速器池中的二级副本,其中所述二级副本与所述第二客户端的所述主数据存储装置相关联;
通过复制冻结的二级副本来实例化所述非加速器池节点的节点中的三级副本;
基于实例化所述三级副本时发生的差异存储来更新所述三级副本;
在更新所述三级副本之后,暂停所述第二客户端对所述第二客户端的主数据档案的使用;
在更新所述三级副本之后,将所述三级副本分配为所述第二客户端的新的主数据档案;
在将所述三级副本分配为所述第二客户端的所述新的主数据档案之后,开始所述第二客户端对所述第二客户端的所述新的主数据档案的使用;以及
清除所述第二客户端的所述主数据档案。
6.根据权利要求1所述的数据存储系统,其中所述加速器池包括高性能节点,其中所述非加速器池包括具有比所述高性能节点更少的计算资源的低性能节点。
7.根据权利要求1所述的数据存储系统,其中将所述客户端的所述主数据存储装置从所述非加速器池移至所述加速器池包括:
冻结所述非加速器池中的主副本,其中所述主副本与所述客户端的所述主数据存储装置相关联;
通过复制冻结的主副本来实例化所述加速器池节点的节点中的三级副本;
基于实例化所述三级副本时发生的差异存储来更新所述三级副本;
在更新所述三级副本之后,暂停所述客户端对所述客户端的主数据档案的使用;
在更新所述三级副本之后,将所述三级副本分配为所述客户端的新的主数据档案;
在将所述三级副本分配为所述客户端的所述新的主数据档案之后,开始所述客户端对所述客户端的所述新的主数据档案的使用;以及
清除所述客户端的所述主数据档案。
8.一种用于管理来自客户端的数据的存储的方法,包括:
由数据存储系统的数据协调器基于所述客户端中的一个客户端对所述数据存储系统的数据存储装置的使用的更改来识别客户端分配更新事件,其中所述数据存储装置包括加速器池和非加速器池;
进行所述客户端分配更新事件是升级事件的确定;并且
响应于所述确定:
升级所述客户端以将所述客户端的主数据存储装置从所述非加速器池移至所述加速器池。
9.根据权利要求8所述的方法,进一步包括:
基于所述客户端中的第二客户端对所述数据存储装置的使用的更改来识别第二客户端分配更新事件;
进行所述第二客户端分配更新事件不是升级事件的第二确定;以及
响应于所述第二确定:
将所述客户端降级以将所述第二客户端的主数据存储装置从所述加速器池移至所述非加速器池。
10.根据权利要求9所述的方法,其中进行所述第二客户端分配更新事件不是所述升级事件的所述第二确定包括:
在预定时间段内执行所述第二客户端对所述数据存储装置的所述使用的监控;
基于所述监控,进行所述第二客户端在所述数据存储装置中存储数据的速率已降低到低于阈值的第三确定;以及
基于所述第三确定,确定所述客户端分配更新事件不是所述升级事件。
11.根据权利要求10所述的方法,其中进行所述客户端分配更新事件是所述升级事件的所述确定包括:
在第二预定时间段内执行所述客户端对所述数据存储装置的所述使用的第二监控;
基于所述第二监控,进行所述客户端在所述数据存储装置中存储数据的速率已提高到高于第二阈值的第四确定;以及
基于所述第四确定,确定所述客户端分配更新事件是所述升级事件。
12.根据权利要求9所述的方法,其中将所述第二客户端的所述主数据存储装置从所述加速器池移至所述非加速器池包括:
冻结所述非加速器池中的二级副本,其中所述二级副本与所述第二客户端的所述主数据存储装置相关联;
通过复制冻结的二级副本来实例化所述非加速器池节点的节点中的三级副本;
基于实例化所述三级副本时发生的差异存储来更新所述三级副本;
在更新所述三级副本之后,暂停所述第二客户端对所述第二客户端的主数据档案的使用;
在更新所述三级副本之后,将所述三级副本分配为所述第二客户端的新的主数据档案;
在将所述三级副本分配为所述第二客户端的所述新的主数据档案之后,开始所述第二客户端对所述第二客户端的所述新的主数据档案的使用;以及
清除所述第二客户端的所述主数据档案。
13.根据权利要求8所述的方法,其中所述加速器池包括高性能节点,其中所述非加速器池包括具有比所述高性能节点更少的计算资源的低性能节点。
14.根据权利要求8所述的方法,其中将所述客户端的所述主数据存储装置从所述非加速器池移至所述加速器池包括:
冻结所述非加速器池中的主副本,其中所述主副本与所述客户端的所述主数据存储装置相关联;
通过复制冻结的主副本来实例化所述加速器池节点的节点中的三级副本;
基于实例化所述三级副本时发生的差异存储来更新所述三级副本;
在更新所述三级副本之后,暂停所述客户端对所述客户端的主数据档案的使用;
在更新所述三级副本之后,将所述三级副本分配为所述客户端的新的主数据档案;
在将所述三级副本分配为所述客户端的所述新的主数据档案之后,开始所述客户端对所述客户端的所述新的主数据档案的使用;以及
清除所述客户端的所述主数据档案。
15.一种非暂时性计算机可读介质,包括计算机可读程序代码,所述代码在由计算机处理器执行时使所述计算机处理器能执行用于管理来自客户端的数据的存储的方法,所述方法包括:
由数据存储系统的数据协调器基于所述客户端中的一个客户端对所述数据存储系统的数据存储装置的使用的更改来识别客户端分配更新事件,其中所述数据存储装置包括加速器池和非加速器池;
进行所述客户端分配更新事件是升级事件的确定;并且
响应于所述确定:
升级所述客户端以将所述客户端的主数据存储装置从所述非加速器池移至所述加速器池。
16.根据权利要求15所述的非暂时性计算机可读介质,其中所述方法进一步包括:
基于所述客户端中的第二客户端对所述数据存储装置的使用的更改来识别第二客户端分配更新事件;
进行所述第二客户端分配更新事件不是升级事件的第二确定;以及
响应于所述第二确定:
将所述客户端降级以将所述第二客户端的主数据存储装置从所述加速器池移至所述非加速器池。
17.根据权利要求16所述的非暂时性计算机可读介质,其中进行所述第二客户端分配更新事件不是所述升级事件的所述第二确定包括:
在预定时间段内执行所述第二客户端对所述数据存储装置的所述使用的监控;
基于所述监控,进行所述第二客户端在所述数据存储装置中存储数据的速率已降低到低于阈值的第三确定;以及
基于所述第三确定,确定所述客户端分配更新事件不是所述升级事件。
18.根据权利要求17所述的非暂时性计算机可读介质,其中进行所述客户端分配更新事件是所述升级事件的所述确定包括:
在第二预定时间段内执行所述客户端对所述数据存储装置的所述使用的第二监控;
基于所述第二监控,进行所述客户端在所述数据存储装置中存储数据的速率已提高到高于第二阈值的第四确定;以及
基于所述第四确定,确定所述客户端分配更新事件是所述升级事件。
19.根据权利要求15所述的非暂时性计算机可读介质,其中将所述第二客户端的所述主数据存储装置从所述加速器池移至所述非加速器池包括:
冻结所述非加速器池中的二级副本,其中所述二级副本与所述第二客户端的所述主数据存储装置相关联;
通过复制冻结的二级副本来实例化所述非加速器池节点的节点中的三级副本;
基于实例化所述三级副本时发生的差异存储来更新所述三级副本;
在更新所述三级副本之后,暂停所述第二客户端对所述第二客户端的主数据档案的使用;
在更新所述三级副本之后,将所述三级副本分配为所述第二客户端的新的主数据档案;
在将所述三级副本分配为所述第二客户端的所述新的主数据档案之后,开始所述第二客户端对所述第二客户端的所述新的主数据档案的使用;以及
清除所述第二客户端的所述主数据档案。
20.根据权利要求16所述的非暂时性计算机可读介质,其中所述加速器池包括高性能节点,其中所述非加速器池包括具有比所述高性能节点更少的计算资源的低性能节点。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/261,155 US10740023B1 (en) | 2019-01-29 | 2019-01-29 | System and method for dynamic application access-based mapping |
US16/261,155 | 2019-01-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111488121A true CN111488121A (zh) | 2020-08-04 |
CN111488121B CN111488121B (zh) | 2024-01-12 |
Family
ID=69176972
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010066888.4A Active CN111488121B (zh) | 2019-01-29 | 2020-01-20 | 基于动态应用存取的映射系统和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10740023B1 (zh) |
EP (1) | EP3690631B1 (zh) |
CN (1) | CN111488121B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11237726B2 (en) * | 2019-12-13 | 2022-02-01 | Micron Technology, Inc. | Memory system performance enhancements using measured signal and noise characteristics of memory cells |
US11221800B2 (en) | 2020-03-02 | 2022-01-11 | Micron Technology, Inc. | Adaptive and/or iterative operations in executing a read command to retrieve data from memory cells |
US11086572B1 (en) | 2020-03-02 | 2021-08-10 | Micron Technology, Inc. | Self adapting iterative read calibration to retrieve data from memory cells |
US11740970B2 (en) | 2020-03-02 | 2023-08-29 | Micron Technology, Inc. | Dynamic adjustment of data integrity operations of a memory system based on error rate classification |
US11029890B1 (en) | 2020-03-02 | 2021-06-08 | Micron Technology, Inc. | Compound feature generation in classification of error rate of data retrieved from memory cells |
US11081200B1 (en) | 2020-05-07 | 2021-08-03 | Micron Technology, Inc. | Intelligent proactive responses to operations to read data from memory cells |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170160983A1 (en) * | 2015-12-04 | 2017-06-08 | International Business Machines Corporation | Allocation of resources with tiered storage |
US20170235609A1 (en) * | 2016-02-12 | 2017-08-17 | Coho Data Inc. | Methods, systems, and devices for adaptive data resource assignment and placement in distributed data storage systems |
CN107077301A (zh) * | 2014-11-05 | 2017-08-18 | 亚马逊科技公司 | 用于存储客户端文件系统的存储卷的动态缩放 |
Family Cites Families (62)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6636242B2 (en) | 1999-08-31 | 2003-10-21 | Accenture Llp | View configurer in a presentation services patterns environment |
US9087319B2 (en) | 2002-03-11 | 2015-07-21 | Oracle America, Inc. | System and method for designing, developing and implementing internet service provider architectures |
US7475126B2 (en) | 2002-03-15 | 2009-01-06 | Nortel Networks Limited | Method and apparatus for system lineup and testing |
US7302436B2 (en) | 2003-10-02 | 2007-11-27 | Bayerische Motoren Werke Aktiengesellschaft | Business workflow database and user system |
US7584338B1 (en) | 2005-09-27 | 2009-09-01 | Data Domain, Inc. | Replication of deduplicated storage system |
US9455955B2 (en) | 2006-05-17 | 2016-09-27 | Richard Fetik | Customizable storage controller with integrated F+ storage firewall protection |
US10180809B2 (en) | 2006-05-17 | 2019-01-15 | Richard Fetik | Secure application acceleration system, methods and apparatus |
US8520850B2 (en) | 2006-10-20 | 2013-08-27 | Time Warner Cable Enterprises Llc | Downloadable security and protection methods and apparatus |
US7769971B2 (en) | 2007-03-29 | 2010-08-03 | Data Center Technologies | Replication and restoration of single-instance storage pools |
US8713144B2 (en) | 2007-09-14 | 2014-04-29 | Ricoh Co., Ltd. | Workflow-enabled client |
US8190835B1 (en) | 2007-12-31 | 2012-05-29 | Emc Corporation | Global de-duplication in shared architectures |
US7987353B2 (en) | 2008-01-09 | 2011-07-26 | International Business Machines Corporation | Remote BIOS for servers and blades |
US8788466B2 (en) | 2008-08-05 | 2014-07-22 | International Business Machines Corporation | Efficient transfer of deduplicated data |
US8099571B1 (en) | 2008-08-06 | 2012-01-17 | Netapp, Inc. | Logical block replication with deduplication |
US8161255B2 (en) | 2009-01-06 | 2012-04-17 | International Business Machines Corporation | Optimized simultaneous storing of data into deduplicated and non-deduplicated storage pools |
US8386930B2 (en) | 2009-06-05 | 2013-02-26 | International Business Machines Corporation | Contextual data center management utilizing a virtual environment |
US8321648B2 (en) | 2009-10-26 | 2012-11-27 | Netapp, Inc | Use of similarity hash to route data for improved deduplication in a storage server cluster |
US8868987B2 (en) | 2010-02-05 | 2014-10-21 | Tripwire, Inc. | Systems and methods for visual correlation of log events, configuration changes and conditions producing alerts in a virtual infrastructure |
US9015268B2 (en) | 2010-04-02 | 2015-04-21 | Intel Corporation | Remote direct storage access |
US8898114B1 (en) | 2010-08-27 | 2014-11-25 | Dell Software Inc. | Multitier deduplication systems and methods |
US9278481B2 (en) | 2010-10-26 | 2016-03-08 | Rinco Ultrasononics USA, INC. | Sonotrode and anvil energy director grids for narrow/complex ultrasonic welds of improved durability |
US9201751B1 (en) * | 2011-04-18 | 2015-12-01 | American Megatrends, Inc. | Data migration between multiple tiers in a storage system using policy based ILM for QOS |
US8874892B1 (en) | 2011-05-26 | 2014-10-28 | Phoenix Technologies Ltd. | Assessing BIOS information prior to reversion |
US8510807B1 (en) | 2011-08-16 | 2013-08-13 | Edgecast Networks, Inc. | Real-time granular statistical reporting for distributed platforms |
US20130067459A1 (en) | 2011-09-09 | 2013-03-14 | Microsoft Corporation | Order-Independent Deployment Collections with Dependency Package Identifiers |
US8949208B1 (en) | 2011-09-30 | 2015-02-03 | Emc Corporation | System and method for bulk data movement between storage tiers |
US8886781B2 (en) | 2011-12-13 | 2014-11-11 | Microsoft Corporation | Load balancing in cluster storage systems |
US8799746B2 (en) | 2012-06-13 | 2014-08-05 | Caringo, Inc. | Erasure coding and replication in storage clusters |
US9830111B1 (en) | 2012-08-08 | 2017-11-28 | Amazon Technologies, Inc. | Data storage space management |
US9898224B1 (en) | 2012-09-12 | 2018-02-20 | EMC IP Holding Company LLC | Automatic adjustment of capacity usage by data storage optimizer for data migration |
US9355036B2 (en) | 2012-09-18 | 2016-05-31 | Netapp, Inc. | System and method for operating a system to cache a networked file system utilizing tiered storage and customizable eviction policies based on priority and tiers |
US9654354B2 (en) | 2012-12-13 | 2017-05-16 | Level 3 Communications, Llc | Framework supporting content delivery with delivery services network |
US9582421B1 (en) | 2012-12-19 | 2017-02-28 | Springpath, Inc. | Distributed multi-level caching for storage appliances |
KR20140117994A (ko) | 2013-03-27 | 2014-10-08 | 한국전자통신연구원 | 복제 파일 중복 제거 방법 및 장치 |
US9336076B2 (en) | 2013-08-23 | 2016-05-10 | Globalfoundries Inc. | System and method for controlling a redundancy parity encoding amount based on deduplication indications of activity |
WO2015046645A1 (en) | 2013-09-27 | 2015-04-02 | Inha-Industry Partnership Institute | Deduplication of parity data in ssd based raid systems |
KR20150067583A (ko) | 2013-12-10 | 2015-06-18 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 중복 데이터 제거 방법 |
US10339455B1 (en) * | 2014-03-24 | 2019-07-02 | EMC IP Holding Company LLC | Techniques for determining workload skew |
US10002048B2 (en) | 2014-05-15 | 2018-06-19 | International Business Machines Corporation | Point-in-time snap copy management in a deduplication environment |
US10242020B2 (en) | 2014-06-17 | 2019-03-26 | International Business Machines Corporation | Placement of data fragments generated by an erasure code in distributed computational devices based on a deduplication factor |
US10044795B2 (en) | 2014-07-11 | 2018-08-07 | Vmware Inc. | Methods and apparatus for rack deployments for virtual computing environments |
US20160062832A1 (en) | 2014-09-02 | 2016-03-03 | Netapp. Inc. | Wide spreading data storage architecture |
US9122501B1 (en) | 2014-09-08 | 2015-09-01 | Quanta Computer Inc. | System and method for managing multiple bios default configurations |
US9152500B1 (en) | 2014-09-22 | 2015-10-06 | Storagecraft Technology Corporation | Hash collision recovery in a deduplication vault |
US10257040B1 (en) | 2014-11-10 | 2019-04-09 | Amazon Technologies, Inc. | Resource configuration history service |
US10296219B2 (en) | 2015-05-28 | 2019-05-21 | Vmware, Inc. | Data deduplication in a block-based storage system |
US10091295B1 (en) | 2015-09-23 | 2018-10-02 | EMC IP Holding Company LLC | Converged infrastructure implemented with distributed compute elements |
US10341185B2 (en) | 2015-10-02 | 2019-07-02 | Arista Networks, Inc. | Dynamic service insertion |
US20180189109A1 (en) | 2015-10-30 | 2018-07-05 | Hitachi, Ltd. | Management system and management method for computer system |
US9710367B1 (en) | 2015-10-30 | 2017-07-18 | EMC IP Holding Company LLC | Method and system for dynamic test case creation and documentation to the test repository through automation |
US10061663B2 (en) | 2015-12-30 | 2018-08-28 | Commvault Systems, Inc. | Rebuilding deduplication data in a distributed deduplication data storage system |
US9749480B1 (en) | 2016-03-31 | 2017-08-29 | Kyocera Document Solutions Inc. | Method that performs from scanning to storing scan data using scan cloud ticket |
US10503413B1 (en) | 2016-06-01 | 2019-12-10 | EMC IP Holding Company LLC | Methods and apparatus for SAN having local server storage including SSD block-based storage |
US10318389B2 (en) | 2016-07-15 | 2019-06-11 | Quantum Corporation | Joint de-duplication-erasure coded distributed storage |
US10409778B1 (en) | 2016-08-19 | 2019-09-10 | EMC IP Holding Company LLC | Data services for software defined storage system |
US11625738B2 (en) | 2016-08-28 | 2023-04-11 | Vmware, Inc. | Methods and systems that generated resource-provision bids in an automated resource-exchange system |
US11150950B2 (en) | 2016-12-01 | 2021-10-19 | Vmware, Inc. | Methods and apparatus to manage workload domains in virtual server racks |
US10705911B2 (en) | 2017-04-24 | 2020-07-07 | Hewlett Packard Enterprise Development Lp | Storing data in a distributed storage system |
US10949903B2 (en) | 2017-05-05 | 2021-03-16 | Servicenow, Inc. | System, computer-readable medium, and method for blueprint-based cloud management |
US10341841B2 (en) | 2017-10-02 | 2019-07-02 | Servicenow, Inc. | Operation of device and application discovery for a managed network |
US11405289B2 (en) | 2018-06-06 | 2022-08-02 | Gigamon Inc. | Distributed packet deduplication |
US11288250B2 (en) | 2018-08-09 | 2022-03-29 | Servicenow, Inc. | Partial discovery of cloud-based resources |
-
2019
- 2019-01-29 US US16/261,155 patent/US10740023B1/en active Active
-
2020
- 2020-01-16 EP EP20152194.5A patent/EP3690631B1/en active Active
- 2020-01-20 CN CN202010066888.4A patent/CN111488121B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107077301A (zh) * | 2014-11-05 | 2017-08-18 | 亚马逊科技公司 | 用于存储客户端文件系统的存储卷的动态缩放 |
US20170160983A1 (en) * | 2015-12-04 | 2017-06-08 | International Business Machines Corporation | Allocation of resources with tiered storage |
US20170235609A1 (en) * | 2016-02-12 | 2017-08-17 | Coho Data Inc. | Methods, systems, and devices for adaptive data resource assignment and placement in distributed data storage systems |
Also Published As
Publication number | Publication date |
---|---|
US20200241758A1 (en) | 2020-07-30 |
CN111488121B (zh) | 2024-01-12 |
EP3690631A1 (en) | 2020-08-05 |
US10740023B1 (en) | 2020-08-11 |
EP3690631B1 (en) | 2022-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111488121B (zh) | 基于动态应用存取的映射系统和方法 | |
US10642698B1 (en) | System and method for consumption based tagging of resources | |
US11262918B1 (en) | Data storage system with uneven drive wear reduction | |
US10732886B2 (en) | Application distributed optimal backup model | |
US11330078B1 (en) | Method and system for managing updates of a data manager | |
US20220083229A1 (en) | Data storage system with configurable durability | |
US11281546B2 (en) | System and method for performing an incremental backup for a persistent storage system that stores data for a node cluster | |
US11128708B2 (en) | Managing remote replication in storage systems | |
CN110413369B (zh) | 用于虚拟化环境中的备份的系统和方法 | |
CN111949442A (zh) | 用于可扩展备份服务的系统和方法 | |
US9934106B1 (en) | Handling backups when target storage is unavailable | |
US11561777B2 (en) | System and method for intelligent update flow across inter and intra update dependencies | |
CN111475279A (zh) | 用于备份的智能数据负载平衡的系统和方法 | |
US11360862B2 (en) | System and method for managing backup operations of storage devices in a backup storage system using cluster evaluations based on usage telemetry | |
CN111104252B (zh) | 用于混合磁盘环境中的数据备份的系统和方法 | |
US11119867B1 (en) | System and method for backup storage selection | |
US10754739B2 (en) | System and method for predictive backup in a distributed environment | |
US10542087B1 (en) | System and method for managing storage tier migration | |
CN111858150A (zh) | 用于大规模数据备份的管理的系统和方法 | |
US11531592B1 (en) | Method and system for determining favorability of upgrade window | |
US11892915B2 (en) | Method and system for performing data protection services using a grouped subsystem level feedback mechanism | |
US11770310B2 (en) | Method and system for performing data protection services using a subsystem level feedback mechanism | |
US10776223B1 (en) | System and method for accelerated point in time restoration | |
US11599352B2 (en) | Method of creating an intelligent upgrade flow for a heterogeneous data center | |
US10922008B2 (en) | System and method for backup of virtual machines organized using logical layers |
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 |