CN112748865A - 用于存储管理的方法、电子设备和计算机程序产品 - Google Patents
用于存储管理的方法、电子设备和计算机程序产品 Download PDFInfo
- Publication number
- CN112748865A CN112748865A CN201911053145.7A CN201911053145A CN112748865A CN 112748865 A CN112748865 A CN 112748865A CN 201911053145 A CN201911053145 A CN 201911053145A CN 112748865 A CN112748865 A CN 112748865A
- Authority
- CN
- China
- Prior art keywords
- configuration data
- transaction
- control node
- storage area
- request
- 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 abstract description 75
- 238000004590 computer program Methods 0.000 title claims abstract description 15
- 230000015654 memory Effects 0.000 claims abstract description 88
- 230000003139 buffering effect Effects 0.000 claims abstract description 9
- 238000012986 modification Methods 0.000 claims description 12
- 230000004048 modification Effects 0.000 claims description 12
- 230000000977 initiatory effect Effects 0.000 claims description 8
- 230000008569 process Effects 0.000 description 46
- 238000007726 management method Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 9
- 230000009977 dual effect Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000000638 solvent extraction Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 238000013479 data entry Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001360 synchronised effect Effects 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/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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- 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
- 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/0614—Improving the reliability of storage systems
- G06F3/0617—Improving the reliability of storage systems in relation to availability
-
- 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/064—Management of blocks
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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/0673—Single storage device
-
- 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/0689—Disk arrays, e.g. RAID, JBOD
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)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开的实施例提供了一种用于存储管理的方法、电子设备和计算机程序产品。该方法包括检测要修改存储系统的配置数据的事务是否被发起。配置数据被存储在数据库存储区中,并且配置数据的缓冲版本被存储在独立于数据库存储区的存储器中。该方法还包括根据检测到事务被发起,建立数据缓冲区以旨在缓冲要修改的目标配置数据部分。数据缓冲区被映射到存储器中预期存储目标配置数据部分的存储区段。该方法还包括确定事务是否成功完成,并且根据确定事务无法成功完成,释放数据缓冲区并且中止事务,而不修改配置数据的缓冲版本。通过这种方式,可以确保在事务没有成功完成之前存储器中的配置数据保持在先前的版本而不被修改,使得事务的中止成为可能。
Description
技术领域
本公开的实施例一般地涉及存储系统,并且更特别地,涉及一种用于存储管理的方法、电子设备和计算机程序产品。
背景技术
当前,存储系统被设计为具有简单性、高性能和经济性。这样的存储系统能够支持下一代存储介质,并且具有能够纵向扩展和横向扩展的架构、灵活的消费模型和高度的简单性。然而,随着信息技术的快速发展,对存储系统的要求日益提高。因此,需要能够进一步提高存储系统的性能的方案。
发明内容
本公开的实施例涉及一种用于存储管理的改进方案。
在本公开的第一方面,提供了一种用于存储管理的方法。该方法包括:检测要修改存储系统的配置数据的事务是否被发起,配置数据被存储在数据库存储区中,并且配置数据的缓冲版本被存储在独立于数据库存储区的存储器中;根据检测到事务被发起,建立数据缓冲区以旨在缓冲要修改的目标配置数据部分,数据缓冲区被映射到存储器中预期存储目标配置数据部分的存储区段;确定事务是否成功完成;以及根据确定事务无法成功完成,释放数据缓冲区并且中止事务,而不修改配置数据的缓冲版本。
在本公开的第二方面,提供了一种电子设备。该电子设备包括至少一个处理器;以及存储有计算机程序指令的至少一个存储器,至少一个存储器和计算机程序指令被配置为与至少一个处理器一起使电子设备执行动作。动作包括:检测要修改存储系统的配置数据的事务是否被发起,配置数据被存储在数据库存储区中,并且配置数据的缓冲版本被存储在独立于数据库存储区的存储器中;根据检测到事务被发起,建立数据缓冲区以旨在缓冲要修改的目标配置数据部分,数据缓冲区被映射到存储器中预期存储目标配置数据部分的存储区段;确定事务是否成功完成;以及根据确定事务无法成功完成,释放数据缓冲区并且中止事务,而不修改配置数据的缓冲版本。
在本公开的第三方面,提供了一种计算机程序产品。该计算机程序产品被有形地存储在非易失性计算机可读介质上并且包括机器可执行指令。机器可执行指令在被执行时使设备执行第一方面的方法。
应当理解,发明内容部分中所描述的内容并非旨在限定本公开的实施例的关键或重要特征,亦非用于限制本公开的范围。本公开的其他特征通过以下的描述将变得容易理解。
附图说明
通过参考附图阅读下文的详细描述,本公开的实施例的上述以及其他目的、特征和优点将变得容易理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施例,其中:
图1示出了本公开的实施例可以在其中被实现的示例存储系统的框图;
图2示出了在图1的存储系统中硬件存储池的示例配置的示意图;
图3示出了根据本公开的一些实施例的用于存储管理的过程的流程图;
图4示出了根据本公开的一些实施例的在存储器中建立数据缓冲区的示例的示意图;
图5示出了根据本公开的另一些实施例的用于存储管理的过程的流程图;
图6示出了根据本公开的又一些实施例的用于存储管理的过程的流程图;以及
图7示出了可以被用来实施本公开的实施例的设备的示意性框图。
贯穿所有附图,相同或者相似的参考标号被用来表示相同或者相似的组件。
具体实施方式
下面将参考附图中所示出的若干示例性实施例来描述本公开的原理和精神。应当理解,描述这些具体的实施例仅是为了使本领域的技术人员能够更好地理解并实现本公开,而并非以任何方式限制本公开的范围。
图1示出了本公开的实施例可以在其中被实现的示例性存储系统100的示意图。在图1的示例中,存储系统100是基于双控制节点的存储系统。如图1所示,存储系统100包括控制节点110-1、控制节点110-2以及硬件存储池120。控制节点110-1和控制节点110-2有时统称为或单独称为控制节点110。
硬件存储池120提供存储系统100的物理存储空间,包括多个存储盘122-1、122-2、122-3、122-4、122-5、……、122-N(N是大于等于1的整数)等等。为便于讨论,这些存储盘有时被统称为或分别称为存储盘122。存储盘122可以包括各种类型的具有存储功能的设备,包括但不限于,硬盘(HDD)、固态盘(SSD)、可移除盘、紧致盘(CD)、激光盘、光盘、数字多功能盘(DVD)、软盘、蓝光盘、串行附接小型计算机系统接口(SCSI)存储盘(SAS)、串行高级技术附接(SATA)存储盘、任何其他磁性存储设备和任何其他光学存储设备、或它们的任何组合。
在一些实施例中,存储系统100可以利用独立磁盘冗余阵列(RAID)算法来组织存储盘122的物理存储空间。控制节点110-1和控制节点110-2可以具有相应逻辑来提供基于RAID的数据存储和访问功能。例如,控制节点110-1中可以具有RAID逻辑,用于向映射器逻辑提供扁平物理地址空间。映射器逻辑被配置为管理存储系统100的物理地址与逻辑地址之间的映射。映射器逻辑向命名空间逻辑提供扁平线性逻辑地址空间。命名空间逻辑利用映射器提供的逻辑地址空间,并且可以调用映射器逻辑的应用程序接口(API)来获得逻辑到物理地址的映射。在对存储系统100执行I/O操作时,来自用户的I/O请求由命名空间逻辑接收,并被发送给映射器逻辑。映射器逻辑查找I/O请求所针对的数据的物理(数据被写入的地址或读取数据的地址),并向RAID逻辑发起I/O请求,以由RAID逻辑向后端的存储盘进行实际I/O操作。
在图1所示的双控制节点的架构中,控制节点110-2与控制节点110-1保持同步。在一些实施例中,控制节点110-1可以充当主控制节点,而控制节点110-2可以充当辅控制节点。控制节点110-2也能够在创建于存储盘122上的物理存储空间和逻辑存储空间中执行I/O操作。这种架构能够显著提高性能。例如,当一个控制节点宕机时,另一个控制节点可以立即接管存储空间,从而使得在故障过程中用户数据能够保持安全、可靠而且仍然可以被访问。控制节点110-1和控制节点110-2可以包括但不限于云计算设备、大型计算机、服务器、个人计算机、桌面计算机、膝上型计算机、平板计算机和个人数字助理等任何具有计算能力的设备。
控制节点110-1和控制节点110-2分别可访问各自的存储器130-1和130-2(有时被统称为或单独称为存储器130)。存储器130-1和130-2可以是用于支持控制节点110-1和控制节点110-2的运行的存储器,例如可以是具有比存储盘122更快的访问速度的存储设备。在一些示例中,存储器130-1和130-2例如可以是各种类型的随机访问存储设备(RAM)或者任何其他可提供快速访问的存储器等。
在基于RAID的存储系统中,可以利用各种RAID算法来组织物理存储盘122,包括传统RAID算法以及当前被称为RAID 2.0的架构。为了更好地理解基于RAID的存储系统,图2示出了RAID逻辑的示例结构。如图2所示,存储盘122被划分为多个盘区(disk extent)或多个盘切片(disk slice)202。这样的划分可以是逻辑上的划分。盘区202的大小取决于存储盘大小和划分方式。在一些示例中,盘区202的大小可以是千兆字节(gigabyte)级别。例如,每个盘区可以具有4GB或者其他大小。当然,根据实际部署需要,其他盘区大小也是可能的。
RAID逻辑以盘区202为单位构建。在一些动态分配的存储系统中,当RAID逻辑初始被创建时,所有盘区是空闲的。随着数据写入,当发现RAID的容量不足时,RAID逻辑将以一定算法从不同存储盘122中选择多个盘区202,并将这些盘区202组成RAID逻辑的RAID块210(有时也称为Uber)。这样的RAID块210可以被认为是一个小型的RAID,因为RAID块210的I/O访问和管理类似于常规的RAID。
可以以任何适当算法,诸如轮询分发(Round-Robin)算法、加权轮询分发算法等,从多个存储盘122选择盘区202。每个RAID块210所包括的盘区的数目取决于RAID的类型,以提供不同级别的数据冗余和恢复能力。RAID的类型包括RAID 2、RAID 3、RAID 4、RAID 5、RAID 6、RAID 7、RAID 10等。例如,在图2示出的示例中,根据RAID 5类型,每个RAID块210包括来自不同的存储盘122的五个盘区。然而,应当理解,可以在硬件存储池120的存储盘122上创建任何其他RAID类型。
在一些实施例中,一个或多个RAID块210可以形成一个存储区220,有时也称为存储层(tier)。存储区220作为存储空间被提供给用户,以用于访问和存储数据。在存储系统100中,可以存在用于不同目的的存储区220,例如用户存储区,用于存储用户数据;映射器元数据存储区,用于映射器内部的元数据;日志数据存储区,用于存储日志;日志元数据存储区,用于存储日志相关的元数据;数据库(DB)存储区,用于存储与存储系统100的配置相关的数据(称为配置数据)。
DB存储区有时也称为RAID DB存储区,其中存储的配置数据包括其他类型的存储区的元数据。本文主要关注对于DB存储区的存储管理,因此为便于讨论,下文中将引用DB存储区220。例如,配置数据可以包括与其他类型的存储区的布局相关的几何信息、存储区和/或RAID块的分配状况、存储区和/或RAID块中提供冗余存储的存储条带的上线状况、存储条带中的各个存储块在盘区之间的分布等。DB存储区220本身的元数据被存储在硬件存储装置的顶部。
DB存储区220可以被划分为三个部分,包括地址区段、缓冲区段和数据区段。地址区段用于存储地址信息,包括缓冲区段的地址以及数据区段的头部地址和尾部地址。缓冲区段可以用于缓冲要存储的配置数据,在累积到一定量之后将缓冲的配置数据存储到数据区段中。数据区段占DB存储区220的大部分空间,主要存储配置数据。数据区段的存储空间由头部地址和尾部地址限定。在一些实施例中,要写入的配置数据总是被附加到数据区段的尾部,包括对原配置数据的修改以及新增的配置数据。因此,在给定时间,数据区段中会存在过期数据。
通常,为了方便控制节点的快速访问,DB存储区220所存储的数据(例如,配置数据以及地址信息)被加载到存储器130-1和130-2中,例如在系统启动时被加载。在存储器130-1和130-2中存储的数据的版本被称为数据的缓冲版本(例如,配置数据的缓冲版本和地址信息的缓冲版本)。因此,控制节点110-1和控制节点110-2可以分别从存储器130-1和130-2快速读取配置数据,并且在需要修改配置数据时才将配置数据写入硬件存储池120中的DB存储区220。
应当理解,图1仅示意性地示出了存储系统100中的与本公开的实施例相关的单元、模块或组件。例如,存储系统100可以不基于双控制节点的架构,而是仅有一个控制节点。图1中示出的各个组件仅是一种示例存储系统管理架构,在其他基于RAID的存储系统中,可能存在其他架构划分方式,用于其他功能的其他单元、模块或组件,等等。因此,本公开的实施例不限于图1所描绘的具体设备、单元、模块或组件,而是一般性地适用于任何基于RAID技术的存储系统。图1中示出的各个组件(除硬件存储盘122之外)可以被实现在单个或多个计算设备中。
通常,配置数据的修改是基于事务来完成的。例如,如果根据存储管理的修改或者根据用户请求,要在存储系统中分配新的RAID块用于存储。相应地,控制节点将启动RAID块分配任务。这个任务将涉及对存储系统的配置的调整,需要修改DB存储区中的配置数据,因此控制节点在完成RAID块分配任务期间将要启动修改配置数据的事务。如果修改配置数据的事务被发起,控制节点首先修改存储器中所存储的配置数据的缓冲版本,然后再将存储器中被修改的配置数据部分写入硬件存储池中的DB存储区。
然而,由于配置数据在存储器中的缓冲版本没有冗余,如果在修改配置数据的事务的执行期间修改了该缓冲版本、但DB存储区出现故障(例如,存储区在下线状态),那么该事务将不能被中止,因为此时存储器中的配置数据无法返回到之前的版本、而DB存储区由于故障而可能导致配置数据丢失。在传统方案中,控制节点将不断重新尝试执行修改DB存储区的配置数据的事务。在一些场景中,修改配置数据的事务是存储系统的其他任务的一部分,持续尝试完成事务也导致对应的上层任务停滞,即无法成功完成也无法上报失败。这进一步导致无法任务请求方(例如,映射器逻辑)无法获知任务状态,进而也无法采取进一步措施来应对这样的出错状况。
根据本公开的示例实施例,提出了一种改进的存储管理的方案。在该方案中,如果检测到要修改存储系统的配置数据的事务被发起,建立数据缓冲区。数据缓冲区不同于存储器中用于缓冲配置数据的缓冲版本的存储区,其目的在于缓冲要修改的目标配置数据部分。数据缓冲区被映射到存储器中预期要存储目标配置数据部分的存储区段。如果事务无法成功完成,数据缓冲区将被释放,并且事务被中止。在这种情况下,存储器中所存储的配置数据的缓冲版本不被修改。根据本公开的方案,通过建立数据缓冲区用于暂时缓冲要修改的目标配置数据部分,而不用直接修改存储器中的配置数据的缓冲版本。这可以确保在事务没有成功完成之前存储器中的配置数据保持在先前的版本而不被修改,从而使得事务的中止成为可能,避免了不断尝试完成事务而造成的处理停滞和延迟。
下文将参考附图来更详细描述本公开的实施例。
图4示出了根据本公开的实施例的用于存储管理的过程300的流程图。在一些实施例中,过程300可以被实现在存储系统100中,特别是被实现在控制节点110-1或控制节点110-2(在下文中统称为控制节点110)处。为便于说明,在下文中将参考图1和图2的存储系统架构来描述。然而,应当理解,过程300可以不限于图1和图2中所图示的应用,而是可以被应用于任何其他适当类型的存储系统。
在310,控制节点110检测要修改存储系统100的配置数据的事务是否被发起。如以上提及的,存储系统100例如可以是基于RAID的存储系统,存储系统100的DB存储区220用于存储存储系统100的配置数据。此外,配置数据的缓冲版本还被存储在独立于DB存储区220的存储器130中。存储器130由控制节点110可访问。存储器130可以提供比建立在存储盘122基础上的DB存储区220更快的访问速度。因此,在操作过程中,控制节点110可以直接从存储器130读取配置数据而无需访问DB存储区220。
在一些情况下,存储系统100的配置数据可能会发生改变,例如需要新增配置数据部分、要更新当前配置数据的一部分或全部、或者要删除当前配置数据的一部分或全部,那么可能会发起修改配置数据的事务。该事务例如可以是用于请求更新存储系统100的配置的任务中的一个事务。请求更新存储系统100的配置的任务可以是请求分配新的RAID块、请求修改已有的RAID块的配置等等。只要涉及到对存储系统100中其他类型的存储区的配置的改变的任务,均可能触发对DB存储区220中的配置数据的修改,因而将发起修改配置数据的事务。
在一些实施例中,如果存储系统100基于双控制节点的架构并且包括主控制节点和辅控制节点,那么向DB存储区220写入目标配置数据部分的事务可以被发起在主控制节点处,例如在控制节点110-1处。控制节点110-1将能够检测到修改存储系统100的配置数据的事务被发起。然而,在事务的执行过程中,作为辅控制节点的控制节点110-2也需要执行一些操作才能完成该事务。因此,如果过程300由控制节点110-2执行,控制节点110-2也可以通过控制节点110-1的指令而确定该事务被发起。下文中将会详细讨论在控制节点110-1和110-2处分别如何执行该事务。
如果检测到事务被发起,在320,控制节点110建立数据缓冲区以旨在缓冲要被修改的目标配置数据部分。要被修改的目标配置数据部分可以是新增的配置数据部分、当前配置数据中要被修改的一部分或全部、和/或当前配置数据中要删除的一部分或全部。
根据本公开的实施例,不同于在事务被发起时直接修改存储器130中当前存储的配置数据的缓冲版本,而是额外建立一个数据缓冲区以用于暂时存储要修改的目标配置数据部分。该数据缓冲区被映射到存储器130中预期要存储目标配置数据部分的存储区段。通常,修改配置数据的事务将会触发控制节点110对存储器130中的配置数据的缓冲版本进行修改。因此,所建立的数据缓冲区被映射到存储器130中预期存储目标配置数据部分的存储区段,以便于后续数据转移。
在一些实施例中,数据缓冲区被建立在控制节点110可访问的存储器130中。应当理解,数据缓冲区也可以被建立在控制节点110可访问的其他存储设备中。图4示出了在存储器130中建立数据缓冲区的示例。如图4所示,存储器130中存储DB存储区220中的配置数据的缓冲版本410。配置数据的缓冲版本410可以以数据表的格式被存储在存储器130中,包括多个数据条目。在确定修改配置数据的事务被发起后,控制节点110在存储器130中建立数据缓冲区420。数据缓冲区420被映射到存储器130中预期存储目标配置数据部分的存储区段。在图4示出的示例中,假设目标配置数据部分是要修改或者删除配置数据的一部分,那么数据缓冲区420将被映射到存储器130中当前存储要被修改或删除的目标配置数据部分的存储区段。
注意到,配置数据在存储器130中的存储和修改方式可能不同于在DB存储区220中的存储方式。如以上提及的,在DB存储区220中,修改或新增的配置数据均被附接到DB存储区220的数据区段的尾部。然而,在存储器130中,如果要进行配置数据的修改,目标配置数据部分将替换已有的配置数据中要被修改的那部分。可以理解,如果要写入的目标配置数据部分是对已有配置数据的增加,那么数据缓冲区420将被映射到存储器130中新分配用于存储新增配置数据的存储区段。
在一些实施例中,控制节点110将获得配置数据的缓冲版本410中要被修改的目标配置数据部分(例如,一个或多个要被修改/删除的条目,和/或一个或多个新增的条目)的存储地址,并且在该存储地址与数据缓冲区420的存储地址之间建立映射。
在建立数据缓冲区后,控制节点110可以继续执行修改配置数据的事务,但在该事务的执行过程中,控制节点110不修改存储器130中所存储的配置数据的缓冲版本。在330,控制节点110确定事务是否成功完成。修改配置数据的事务可以包括多个操作,并且在双控制节点的架构中涉及到两个控制节点110-1和110-2的操作。在这个过程中,任何一个操作无法成功执行可能就会导致修改配置数据的事务无法成功完成。
通常而言,修改配置数据的事务失败是由于DB存储区220的故障,例如组成DB存储区220的存储盘122故障(例如,处于下线状态),这将导致对DB存储区220的I/O请求失败。在一些实施例,DB存储区220基于镜像技术建立,例如DB存储区220是三镜像存储区,这意味着DB存储区220跨三个存储盘122分布,以指示DB存储区220中的数据的冗余存储。三个存储盘122中均存储相同的数据。当三块存储盘122中的一块或两块存储盘122故障时,DB存储区220仍然能够进行正常的数据读取和写入。然而,如果三块存储盘122均故障,那么将无法向DB存储区220写入数据或者从中读取数据。DB存储区220的故障可能发生在事务执行的任何阶段。下文将参照图5和图6,分别从控制节点110-1和控制节点110-2在执行修改配置数据的事务过程的各个阶段中判断事务是否被成功完成。
如果确定修改配置数据的事务无法成功完成,在340,控制节点110将释放数据缓冲区并且中止事务。此时,存储器130中存储的配置数据的缓冲版本没有被修改,仍然保留在原始版本。因此,要修改配置数据的事务的中止不会导致配置数据无法回退。在要修改配置数据的事务被中止后,发起该事务的任务的执行状态可以被标记为失败状态。例如,可以由作为主控制节点的控制节点110-1将该任务标记为失败状态。控制节点110由此可以无需等待任务的完成,并且可以采取相应措施来修复存储系统的故障问题。在故障被修复之后,可以再次发起任务,以及发起修改配置数据的事务。
在一些实施例中,如果确定事务成功完成,这意味着DB存储区220中的配置数据已经成功被修改,在350,控制节点110将数据缓冲区中存储的目标配置数据部分转移到该数据缓冲区映射到的存储器130中的存储区段。这样,存储器130中的配置数据的缓冲版本也与DB存储区220中存储的配置数据保持一致。进一步地,在360,控制节点110释放数据缓冲区。
数据缓冲区的释放包括释放数据缓冲区的存储资源。如果数据缓冲区中已经存储有目标配置数据部分,该目标配置数据部分也被释放,因为该数据部分已经被成功存储到存储器130中以及被存储在DB存储区220中。
以上从一般控制节点110的角度描述了过程300。如果在双控制节点的存储结构中,控制节点110-1可以用作主控制节点,控制节点110-2可以用作辅控制节点。在确定要修改配置数据的事务被发起之后,控制节点110-1和控制节点110-2可能执行不同的操作。在这个过程中,某些操作的失败可能导致事务无法成功被完成。
下面将参考图5和图6来分别从控制节点110-1和控制节点110-2的角度来描述根据本公开的一些实施例的用于存储管理的过程500和过程600。
首先参考图5。图5示出的过程500由作为主控制节点的控制节点110-1执行。要修改配置数据的事务可以在控制节点110-1上被首先发起,因此控制节点110-1可以直接检测到事务的发起,然后建立数据缓冲区,该数据缓冲区被映射到存储器130-1中预期存储要修改的目标配置数据部分的存储区段。在过程300的320处建立数据缓冲区之后,控制节点110-1执行过程500。
具体地,在建立数据缓冲区之后,在510,控制节点110-1将目标配置数据部分存储到数据缓冲区中。如以上提及的,要修改的目标配置数据部分可以是新增的配置数据部分、当前配置数据中要被修改的一部分或全部、和/或当前配置数据中要删除的一部分或全部。对于后两种情况,控制节点110-1从存储器130-1存储的配置数据的缓冲版本中复制要被修改和/或要被删除的数据部分以存储到数据缓冲区中。
在515,控制节点110-1发起针对DB存储区220的写入请求(为便于说明,称为“第一写入请求”),以请求修改DB存储区220中存储的配置数据。第一写入请求包括数据缓冲区的地址。在一些实施例中,控制节点110-1提交要修改配置数据的事务,从而促使DB存储区220进行数据写入。
在520,控制节点110-1确定第一写入请求是否成功,即是否成功修改DB存储区220中的目标配置数据部分。如果第一写入请求失败,这意味着DB存储区220故障、导致无法成功响应第一写入请求,那么控制节点110-1将确定要修改配置数据的事务无法成功完成。在这种情况下,根据以上参考过程300的描述,控制节点110-1将执行过程300的操作340。
如果确定第一写入请求成功完成,即DB存储区220此时仍能够正常响应写入请求,在525,控制节点110-1继续向辅控制节点(即控制节点110-2)发送更新请求,以请求控制节点110-1从DB存储区220读取目标配置数据部分用于更新由控制节点110-2维持的配置数据的另一缓冲版本。控制节点110-2也在其可访问的存储器130-2中维护DB存储区220中的配置数据的缓冲版本。因此,在控制节点110-1利用目标配置数据部分来修改DB存储区220中的配置数据后,为了实现数据同步,控制节点110-2将需要从DB存储区220中读取被修改的目标配置数据部分用于更新配置数据的缓冲版本。
控制节点110-2将对该更新请求进行响应,这将在下文中参考图6进行描述。在发出更新请求后,在530,控制节点110-1确定控制节点110-2是否从DB存储区220成功读取目标配置数据部分。控制节点110-2将告知控制节点110-1对更新请求的完成情况,即控制节点110-2是否能成功从DB存储区220读取目标配置数据部分。
如果控制节点110-1确定控制节点110-2无法从DB存储区220成功读取目标配置数据部分,这意味着DB存储区220故障、导致无法成功响应读取请求,那么控制节点110-1将确定要修改配置数据的事务无法成功完成。在这种情况下,根据以上参考过程300的描述,控制节点110-1将执行过程300的操作340。
如果控制节点110-1确定控制节点110-2无法从DB存储区220成功读取目标配置数据部分,在535,控制节点110-1继续发起针对DB存储区220的写入请求(为便于讨论,称为“第二写入请求”),以请求更新DB存储区220中存储的配置数据的地址信息。如以上提及的,除在数据区段中存储配置数据(或者在缓冲区段中缓冲少量配置数据)之外,DB存储区220还存储配置数据的地址信息(例如,在地址区段存储)。对DB存储区220的配置数据的修改将会导致配置数据的地址信息发生变化。例如,新增或修改的目标配置数据部分会被附接到数据区段的尾部,从而需要更新数据区段的尾部地址。对当前配置数据的删除同样也会导致数据区段的头部地址或尾部地址发生改变。
因此,在确定第一写入请求完成并且控制节点110-2成功读取修改的目标配置数据部分之后,控制节点110-1还需要请求将DB存储区220中存储的当前地址信息更新为修改后的配置数据的地址信息。此时还需要对DB存储区220进行I/O请求,即写入请求。
在540,控制节点110-1确定第二写入请求是否成功,即是否成功修改DB存储区220中配置数据的地址信息。如果第二写入请求失败,这意味着DB存储区220故障、导致无法成功响应第二写入请求,那么控制节点110-1将确定要修改配置数据的事务无法成功完成。在这种情况下,根据以上参考过程300的描述,控制节点110-1将执行过程300的操作340。
如果确定第二写入请求成功完成,即DB存储区220此时仍能够正常响应第二写入请求并且正确更新了地址信息,那么控制节点110-1将确定要修改配置数据的事务成功完成。在这种情况下,根据以上参考过程300的描述,控制节点110-1将执行过程300的操作350和360。
继续参考图6。图6示出的过程600由作为辅控制节点的控制节点110-2执行。控制节点110-2可以在接收到来自控制节点110-1的更新请求,例如控制节点110-1在过程500的操作525处发送的更新请求之后,确定要修改DB存储区220中的配置数据的事务被发起。响应于这样的事务发起,如以上参考图3的过程300的描述,控制节点110-2将建立数据缓冲区,该数据缓冲区被映射到存储器130-2中预期存储要修改的目标配置数据部分的存储区段。在过程300的320处建立数据缓冲区之后,控制节点110-2执行过程600。
具体地,在建立数据缓冲区之后,在610,控制节点110-2发起针对DB存储区220的读取请求,以请求从DB存储区220读取目标配置数据部分以用于存储器130中存储的更新配置数据的缓冲版本。
在615,控制节点110-2确定读取请求是否成功,即是否能够成功从DB存储区220读取数据。如果读取请求失败,这意味着DB存储区220此时处于故障状态、导致无法成功响应读取请求,那么控制节点110-2将确定要修改配置数据的事务无法成功完成。在这种情况下,根据以上参考过程300的描述,控制节点110-1将执行过程300的操作340。
如果确定读取请求成功完成,即DB存储区220此时仍能够正常响应读取请求,在620,控制节点110-2获得目标配置数据部分。然后,在625,控制节点110-2将目标配置数据部分存储到先前建立的数据缓冲区中。在630,控制节点110-2确定是否接收到事务成功完成的指示。例如,可以由控制节点110-1在确定请求更新地址信息的第二写入请求成功完成之后向控制节点110-2告知事务成功完成。
如果没有接收到事务成功完成的指示,这意味着DB存储区220故障、导致无法成功响应第二写入请求,那么控制节点110-2将确定要修改配置数据的事务无法成功完成。在这种情况下,根据以上参考过程300的描述,控制节点110-2将执行过程300的操作340。
如果接收到事务成功完成的指示,即DB存储区220此时仍能够正常响应第二写入请求并且正确更新了地址信息,那么控制节点110-2将确定要修改配置数据的事务成功完成。在这种情况下,根据以上参考过程300的描述,控制节点110-2将执行过程300的操作350和360。
图7示意性示出能够被用来实施本公开的实施例的设备700的框图。设备700可以被实现为或者被包括于图1的控制节点110-1或控制节点110-2。
如图7中所示出的,设备700包括中央处理单元(CPU)701,其可以根据存储在只读存储设备(ROM)702中的计算机程序指令或者从存储单元708加载到随机访问存储设备(RAM)703中的计算机程序指令,来执行各种适当的动作和处理。在RAM 703中,还可存储设备700操作所需的各种程序和数据。CPU 701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
设备700中的多个部件连接至I/O接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如过程300、过程500和/过程600可由处理单元701来执行。例如,在一些实施例中,过程300、过程500和/过程600可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM 702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序被加载到RAM 703并由CPU 701执行时,可以执行上文描述的过程300、过程500和/过程600的一个或多个步骤。
如本文所使用的,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。本文还可能包括其他明确的和隐含的定义。
如本文所使用的,术语“确定”涵盖各种各样的动作。例如,“确定”可以包括运算、计算、处理、导出、调查、查找(例如,在表格、数据库或另一数据结构中查找)、查明等。此外,“确定”可以包括接收(例如,接收信息)、访问(例如,访问存储器中的数据)等。此外,“确定”可以包括解析、选择、选取、建立等。
应当注意,本公开的实施例可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。
此外,尽管在附图中以特定顺序描述了本公开的方法的操作,但是这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤组合为一个步骤执行,和/或将一个步骤分解为多个步骤执行。还应当注意,根据本公开的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。
虽然已经参考若干具体实施例描述了本公开,但是应当理解,本公开不限于所公开的具体实施例。本公开旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等效布置。
Claims (23)
1.一种用于存储管理的方法,包括:
检测要修改所述存储系统的配置数据的事务是否被发起,所述配置数据被存储在所述数据库存储区中,并且所述配置数据的缓冲版本被存储在独立于所述数据库存储区的存储器中;
根据检测到所述事务被发起,建立数据缓冲区以旨在缓冲要修改的目标配置数据部分,所述数据缓冲区被映射到所述存储器中预期存储所述目标配置数据部分的存储区段;
确定所述事务是否成功完成;以及
根据确定所述事务无法成功完成,释放所述数据缓冲区并且中止所述事务,而不修改所述配置数据的所述缓冲版本。
2.根据权利要求1所述的方法,进一步包括:
根据确定所述事务成功完成,
将所述数据缓冲区中存储的所述目标配置数据部分转移到所述数据缓冲区映射到的所述存储区段;以及
释放所述数据缓冲区。
3.根据权利要求1所述的方法,其中所述事务是用于请求更新所述存储系统的配置的任务中的事务,所述方法进一步包括:
根据确定所述事务无法成功完成,促使所述任务的执行状态被标记为失败状态。
4.根据权利要求1所述的方法,其中所述存储系统由主控制节点和辅控制节点控制,所述方法由所述主控制节点执行并且所述配置数据的缓冲版本由所述主控制节点维持,并且所述方法进一步包括:在建立所述数据缓冲区之后,
将所述目标配置数据部分存储到所述数据缓冲区中;以及
发起针对所述数据库存储区的第一写入请求,以请求修改所述数据库存储区中存储的所述配置数据,所述第一写入请求包括所述数据缓冲区的地址。
5.根据权利要求4所述的方法,其中确定所述事务是否成功完成包括:
根据确定所述第一写入请求失败,确定所述事务无法成功完成。
6.根据权利要求4所述的方法,其中确定所述事务是否成功完成包括:
根据确定所述第一写入请求成功完成,向所述辅控制节点发送更新请求,以请求所述辅控制节点从所述数据库存储区读取所述目标配置数据部分用于更新由所述辅控制节点维持的所述配置数据的另一缓冲版本;以及
根据确定所述辅控制节点无法从所述数据库存储区读取所述目标配置数据部分,确定所述事务无法成功完成。
7.根据权利要求6所述的方法,其中所述数据库存储区还存储所述配置数据的地址信息,并且其中确定所述事务是否成功完成还包括:
根据确定所述辅控制节点从所述数据库存储区成功读取所述目标配置数据部分,发起针对所述数据库存储区的第二写入请求,以请求将所述地址信息更新为修改后的所述配置数据的地址信息;以及
根据所述第二写入请求失败,确定所述事务无法成功完成。
8.根据权利要求1所述的方法,其中所述存储系统由主控制节点和辅控制节点控制,所述方法由所述辅控制节点执行并且所述配置数据的缓冲版本由所述主控制节点维持,并且其中检测所述事务被发起包括:
接收来自所述主控制节点的更新请求,以请求所述辅控制节点从所述数据库存储区读取所述目标配置数据部分以用于更新所述配置数据的所述缓冲版本;以及
根据接收到所述更新请求,确定所述事务被发起。
9.根据权利要求8所述的方法,进一步包括:
在建立所述数据缓冲区之后,发起针对所述数据库存储区的读取请求,以请求从所述数据库存储区读取所述目标配置数据部分,并且
其中确定所述事务是否成功完成包括:
根据所述读取请求失败,确定所述事务无法成功完成。
10.根据权利要求9所述的方法,进一步包括:
根据确定所述读取请求成功,从所述数据库存储区获得所述目标配置数据部分;以及
将所述目标配置数据部分存储到所述数据缓冲区中。
11.根据权利要求1所述的方法,其中建立所述数据缓冲区包括:
在所述存储器中建立所述数据缓冲区。
12.一种电子设备,包括:
至少一个处理器;以及
存储有计算机程序指令的至少一个存储器,所述至少一个存储器和所述计算机程序指令被配置为与所述至少一个处理器一起使所述电子设备执行动作,所述动作包括:
检测要修改所述存储系统的配置数据的事务是否被发起,所述配置数据被存储在所述数据库存储区中,并且所述配置数据的缓冲版本被存储在独立于所述数据库存储区的存储器中;
根据检测到所述事务被发起,建立数据缓冲区以旨在缓冲要修改的目标配置数据部分,所述数据缓冲区被映射到所述存储器中预期存储所述目标配置数据部分的存储区段;
确定所述事务是否成功完成;以及
根据确定所述事务无法成功完成,释放所述数据缓冲区并且中止所述事务,而不修改所述配置数据的所述缓冲版本。
13.根据权利要求12所述的电子设备,其中所述动作进一步包括:
根据确定所述事务成功完成,
将所述数据缓冲区中存储的所述目标配置数据部分转移到所述数据缓冲区映射到的所述存储区段;以及
释放所述数据缓冲区。
14.根据权利要求12所述的电子设备,其中所述事务是用于请求更新所述存储系统的配置的任务中的事务,所述动作进一步包括:
根据确定所述事务无法成功完成,促使所述任务的执行状态被标记为失败状态。
15.根据权利要求12所述的电子设备,其中所述存储系统由主控制节点和辅控制节点控制,所述电子设备是所述主控制节点,并且所述配置数据的缓冲版本由所述电子设备维持,并且所述动作进一步包括:在建立所述数据缓冲区之后,
将所述目标配置数据部分存储到所述数据缓冲区中;以及
发起针对所述数据库存储区的第一写入请求,以请求修改所述数据库存储区中存储的所述配置数据,所述第一写入请求包括所述数据缓冲区的地址。
16.根据权利要求15所述的电子设备,其中确定所述事务是否成功完成包括:
根据确定所述第一写入请求失败,确定所述事务无法成功完成。
17.根据权利要求15所述的电子设备,其中确定所述事务是否成功完成包括:
根据确定所述第一写入请求成功完成,向所述辅控制节点发送更新请求,以请求所述辅控制节点从所述数据库存储区读取所述目标配置数据部分用于更新由所述辅控制节点维持的所述配置数据的另一缓冲版本;以及
根据确定所述辅控制节点无法从所述数据库存储区读取所述目标配置数据部分,确定所述事务无法成功完成。
18.根据权利要求17所述的电子设备,其中所述数据库存储区还存储所述配置数据的地址信息,并且其中确定所述事务是否成功完成还包括:
根据确定所述辅控制节点从所述数据库存储区成功读取所述目标配置数据部分,发起针对所述数据库存储区的第二写入请求,以请求将所述地址信息更新为修改后的所述配置数据的地址信息;以及
根据所述第二写入请求失败,确定所述事务无法成功完成。
19.根据权利要求12所述的电子设备,其中所述存储系统由主控制节点和辅控制节点控制,所述电子设备是所述辅控制节点,并且所述配置数据的缓冲版本由所述主控制节点维持,并且其中检测所述事务被发起包括:
接收来自所述主控制节点的更新请求,以请求所述辅控制节点从所述数据库存储区读取所述目标配置数据部分以用于更新所述配置数据的所述缓冲版本;以及
根据接收到所述更新请求,确定所述事务被发起。
20.根据权利要求19所述的电子设备,其中所述动作进一步包括:
在建立所述数据缓冲区之后,发起针对所述数据库存储区的读取请求,以请求从所述数据库存储区读取所述目标配置数据部分,并且
其中确定所述事务是否成功完成包括:
根据所述读取请求失败,确定所述事务无法成功完成。
21.根据权利要求20所述的电子设备,其中所述动作进一步包括:
根据确定所述读取请求成功,从所述数据库存储区获得所述目标配置数据部分;以及
将所述目标配置数据部分存储到所述数据缓冲区中。
22.根据权利要求12所述的电子设备,其中建立所述数据缓冲区包括:
在所述存储器中建立所述数据缓冲区。
23.一种计算机程序产品,所述计算机程序产品被有形地存储在非易失性计算机可读介质上并且包括机器可执行指令,所述机器可执行指令在被执行时使设备执行根据权利要求1至11中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911053145.7A CN112748865B (zh) | 2019-10-31 | 2019-10-31 | 用于存储管理的方法、电子设备和计算机程序产品 |
US16/890,345 US11442663B2 (en) | 2019-10-31 | 2020-06-02 | Managing configuration data |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911053145.7A CN112748865B (zh) | 2019-10-31 | 2019-10-31 | 用于存储管理的方法、电子设备和计算机程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112748865A true CN112748865A (zh) | 2021-05-04 |
CN112748865B CN112748865B (zh) | 2024-06-14 |
Family
ID=75645075
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911053145.7A Active CN112748865B (zh) | 2019-10-31 | 2019-10-31 | 用于存储管理的方法、电子设备和计算机程序产品 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11442663B2 (zh) |
CN (1) | CN112748865B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112748861B (zh) | 2019-10-31 | 2024-06-07 | 伊姆西Ip控股有限责任公司 | 用于提供信息的方法、电子设备和计算机程序产品 |
US11893273B2 (en) * | 2022-01-20 | 2024-02-06 | Vmware, Inc. | Crash-safe tiered memory system |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160110403A1 (en) * | 2014-10-19 | 2016-04-21 | Microsoft Corporation | High performance transactions in database management systems |
US20160202920A1 (en) * | 2015-01-08 | 2016-07-14 | Dell Products, Lp | System and Method for Providing Consistent Metadata for RAID Solutions |
CN106096460A (zh) * | 2015-04-30 | 2016-11-09 | Arm 有限公司 | 在互连中实施数据保护 |
US20170083377A1 (en) * | 2015-09-18 | 2017-03-23 | Wipro Limited | System and Method for Adaptive Configuration of Software Based on Current and Historical Data |
US20190042355A1 (en) * | 2018-06-26 | 2019-02-07 | Intel Corporation | Raid write request handling without prior storage to journaling drive |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7103797B1 (en) | 1998-03-30 | 2006-09-05 | Emc Corporation | Resource allocation throttling in remote data mirroring system |
US8416954B1 (en) | 2008-09-30 | 2013-04-09 | Emc Corporation | Systems and methods for accessing storage or network based replicas of encrypted volumes with no additional key management |
US8261068B1 (en) | 2008-09-30 | 2012-09-04 | Emc Corporation | Systems and methods for selective encryption of operating system metadata for host-based encryption of data at rest on a logical unit |
US8166314B1 (en) | 2008-12-30 | 2012-04-24 | Emc Corporation | Selective I/O to logical unit when encrypted, but key is not available or when encryption status is unknown |
US11010054B1 (en) | 2015-06-10 | 2021-05-18 | EMC IP Holding Company LLC | Exabyte-scale data processing system |
US11023433B1 (en) | 2015-12-31 | 2021-06-01 | Emc Corporation | Systems and methods for bi-directional replication of cloud tiered data across incompatible clusters |
US10645158B1 (en) | 2017-10-10 | 2020-05-05 | EMC IP Holding Company LLC | Host data replication using deduplication and binary search trees |
KR102541897B1 (ko) * | 2018-08-27 | 2023-06-12 | 에스케이하이닉스 주식회사 | 메모리 시스템 |
-
2019
- 2019-10-31 CN CN201911053145.7A patent/CN112748865B/zh active Active
-
2020
- 2020-06-02 US US16/890,345 patent/US11442663B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160110403A1 (en) * | 2014-10-19 | 2016-04-21 | Microsoft Corporation | High performance transactions in database management systems |
US20160202920A1 (en) * | 2015-01-08 | 2016-07-14 | Dell Products, Lp | System and Method for Providing Consistent Metadata for RAID Solutions |
CN106096460A (zh) * | 2015-04-30 | 2016-11-09 | Arm 有限公司 | 在互连中实施数据保护 |
US20170083377A1 (en) * | 2015-09-18 | 2017-03-23 | Wipro Limited | System and Method for Adaptive Configuration of Software Based on Current and Historical Data |
US20190042355A1 (en) * | 2018-06-26 | 2019-02-07 | Intel Corporation | Raid write request handling without prior storage to journaling drive |
Also Published As
Publication number | Publication date |
---|---|
US20210132862A1 (en) | 2021-05-06 |
US11442663B2 (en) | 2022-09-13 |
CN112748865B (zh) | 2024-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9697219B1 (en) | Managing log transactions in storage systems | |
US8131969B2 (en) | Updating system configuration information | |
US10838829B2 (en) | Method and apparatus for loading data from a mirror server and a non-transitory computer readable storage medium | |
US7694087B2 (en) | Duplicate data storing system, duplicate data storing method, and duplicate data storing program for storage device | |
US11811895B2 (en) | Automatic data replica manager in distributed caching and data processing systems | |
US11144252B2 (en) | Optimizing write IO bandwidth and latency in an active-active clustered system based on a single storage node having ownership of a storage object | |
JP2007133471A (ja) | ストレージ装置及びスナップショットのリストア方法 | |
US11509716B2 (en) | Method and apparatus for performing simple storage service seamless migration using index objects | |
US11449402B2 (en) | Handling of offline storage disk | |
US11099768B2 (en) | Transitioning from an original device to a new device within a data storage array | |
JP6652647B2 (ja) | ストレージシステム | |
US7849264B2 (en) | Storage area management method for a storage system | |
CN112748865B (zh) | 用于存储管理的方法、电子设备和计算机程序产品 | |
US7676644B2 (en) | Data processing system, storage apparatus and management console | |
US7725654B2 (en) | Affecting a caching algorithm used by a cache of storage system | |
US10210060B2 (en) | Online NVM format upgrade in a data storage system operating with active and standby memory controllers | |
US9547450B2 (en) | Method and apparatus to change tiers | |
US20160036653A1 (en) | Method and apparatus for avoiding performance decrease in high availability configuration | |
WO2018055686A1 (ja) | 情報処理システム | |
US11188425B1 (en) | Snapshot metadata deduplication | |
US20170090823A1 (en) | Storage system, control device, memory device, data access method, and program recording medium | |
US10509707B1 (en) | Selective data mirroring | |
US11340795B2 (en) | Snapshot metadata management | |
JP5636703B2 (ja) | ブレードサーバ | |
JP2005301560A (ja) | クラスタファイルサーバ |
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 |