CN111857540A - 数据存取方法、装置和计算机程序产品 - Google Patents
数据存取方法、装置和计算机程序产品 Download PDFInfo
- Publication number
- CN111857540A CN111857540A CN201910340221.6A CN201910340221A CN111857540A CN 111857540 A CN111857540 A CN 111857540A CN 201910340221 A CN201910340221 A CN 201910340221A CN 111857540 A CN111857540 A CN 111857540A
- Authority
- CN
- China
- Prior art keywords
- disk
- data
- storage location
- information
- degraded
- 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
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000004590 computer program Methods 0.000 title claims abstract description 11
- 238000013507 mapping Methods 0.000 claims abstract description 39
- 230000004044 response Effects 0.000 claims abstract description 18
- 238000012795 verification Methods 0.000 claims description 14
- 238000010586 diagram Methods 0.000 description 21
- 238000011084 recovery Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 8
- 238000013500 data storage Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- 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
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
- G11B20/1883—Methods for assignment of alternate areas for defective areas
- G11B20/1889—Methods for assignment of alternate areas for defective areas with discs
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/1084—Degraded mode, e.g. caused by single or multiple storage removals or disk failures
-
- 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/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/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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/82—Solving problems relating to consistency
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/12—Formatting, e.g. arrangement of data block or words on the record carriers
- G11B20/1217—Formatting, e.g. arrangement of data block or words on the record carriers on discs
- G11B2020/1218—Formatting, e.g. arrangement of data block or words on the record carriers on discs wherein the formatting concerns a specific area of the disc
- G11B2020/1222—ECC block, i.e. a block of error correction encoded symbols which includes all parity data needed for decoding
Abstract
本公开的实施方式提供了一种用于针对磁盘阵列执行数据存取的方法、装置和计算机程序产品。所述磁盘阵列包括校验盘和多个数据盘。在一种方法中,响应于在所述磁盘阵列处于降级状态下对所述磁盘阵列中的故障数据盘的写入请求,将数据写入所述磁盘阵列中的校验盘;以及在磁盘资源映射信息中设置相应的降级存储位置信息,指示所述数据被存储在所述校验盘中。通过本公开的实施方式,可以节省大量计算资源,而且可以减少了降级状态的读取需要的I/O操作。
Description
技术领域
本公开的一些实施方式涉及数据存储领域,并且更具体地,涉及一种用于针对磁盘阵列执行数据存取的方法、装置和计算机程序产品。
背景技术
可以基于一个或多个物理存储设备来构建存储系统,以便提供数据存储的能力。独立冗余磁盘阵列(RAID)是通过组合多个磁盘来实现数据冗余和提高存取速率的一种存储技术。根据RAID技术,将利用多个独立磁盘组成一个大容量的磁盘组,而且采用了条带化技术来将数据输入/输出(I/O)负载均衡地分配到多个物理磁盘上。换句话说,一块连续数据块被均匀地分成几个较小的块,分别存储在多个磁盘上,这多个磁盘在逻辑上属于同一存储设备。因而,通过在多个磁盘上并行存储和读取数据,可以提高存储系统的吞吐量和存取速率。
此外,在RAID技术中,还通过利用数据校验提供容错功能,来提高系统的稳定性,在很多RAID模式中都提供有较为完备的校验/恢复机制,有些甚至直接是互相的镜像备份。
在出现诸如掉电或者磁盘被移除等硬件故障的情况时,RAID磁盘组会发生崩溃。在硬件故障后,将会立刻从指示正常操作的优化状态进入降级状态,在硬件故障被清除后,会对磁盘进行重新上电并执行故障恢复操作。通常,为了使得用户具有良好的体验,即便主机处于降级状态时,也仍然需要允许用户对磁盘组的存取操作。
然而,在现有技术中,降级状态下的I/O操作非常繁琐,效率较低。例如,在RAID 5模式下,如果在降级状态对故障盘执行I/O写操作,由于目标盘故障因此并不能向其写入数据,而是会计算相应的奇偶校验信息并将其写入奇偶校验盘。而当在降级状态对该数据进行I/O读操作时,会首先读取奇偶校验信息和其他存储盘中的数据,并基于奇偶校验信息和从其他存储盘读取的数据来重构用户数据,然后将重构数据返回给用户。此外,在后续磁盘重新上线需要恢复数据时,也需要再次基于奇偶校验信息和其他盘的数据来重构用户数据,并将重构的数据重新写入到重新上线的磁盘上。因此,与优化状态下的读写相比,降级状态下的读写操作非常繁琐,效率较低。
发明内容
在本公开的一些实施方式中,提供了一种用于针对磁盘阵列执行数据存取的技术方案。
在本公开的第一方面中,提供一种用于针对磁盘阵列执行数据存取的方法。所述磁盘阵列包括校验盘和多个数据盘,并且该方法包括:响应于在所述磁盘阵列处于降级状态下对所述磁盘阵列中的故障数据盘的写入请求,将数据写入所述磁盘阵列中的校验盘;以及在磁盘资源映射信息中设置相应的降级存储位置信息,指示所述数据被存储在所述校验盘中。
在本公开的第二方面中,提供了一种用于针对磁盘阵列执行数据存取的装置。该装置包括:处理器;以及与所述处理器耦合的存储器,所述存储器具有存储于其中的指令,所述指令在被处理器执行时使所述装置执行动作,所述动作包括:响应于在所述磁盘阵列处于降级状态下对所述磁盘阵列中的故障数据盘的写入请求,将数据写入所述磁盘阵列中的校验盘;以及在磁盘资源映射信息中设置相应的降级存储位置信息,指示所述数据被存储在所述校验盘中。
在本公开的第三方面中,提供了一种计算机程序产品,所述计算机程序产品被有形地存储在计算机可读介质上并且包括机器可执行指令,所述机器可执行指令在被执行时使机器执行根据本公开的第一方面的方法中的动作。
提供发明内容部分是为了简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分并非意在识别本公开的关键特征或主要特征,也并非意在限制本公开的范围。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了本公开的一些实施方式可以在其中被实现的示例环境的示意图;
图2示出根据现有技术的分层存储系统中的不同存储层级的示例构建方法;
图3示出了根据本公开的一些实施方式的用于针对磁盘阵列执行数据存取的方法300的流程图;
图4示意性地示出了根据本公开的实施方式中采用的磁盘资源映射的示例;
图5示出了根据本公开的一些实施方式在降级状态的数据写入操作的示意图。
图6示出了根据本公开的一些实施方式的用于针对磁盘阵列执行数据存取的方法600的流程图;
图7示出了根据本公开的一些实施方式在降级状态的数据读取操作的示意图。
图8示出了根据本公开的一些实施方式的用于针对磁盘阵列执行数据恢复的方法800的流程图;
图9示出了根据本公开的一些实施方式在返回优化状态的故障恢复操作的示意图。
图10示出了根据本公开的一些实施方式的用于针对磁盘阵列执行数据存取的方法1000的流程图;
图11示出了根据本公开的一些实施方式在返回优化状态后的数据写入操作的示意图。
图12示出了根据本公开的一些实施方式的用于针对磁盘阵列执行数据存取的方法1200的流程图;
图13示出了可以用来实施本公开的实施方式的示例设备1300的示意性框图。
具体实施方式
下面将参考附图中示出的若干示例实施方式来描述本公开的原理。虽然附图中显示了本公开的优选实施方式,但应当理解,描述这些实施方式仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施方式”和“一个实施方式”表示“至少一个示例实施方式”。术语“另一实施方式”表示“至少一个另外的实施方式”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
首先参考图1,图1示出了本公开的实施方式的技术方案可以在其中被实现的示例环境的示意图。存储系统100包括物理存储设备组120,用于提供数据存储能力。物理存储设备组120包括缓存存储器122和磁盘设备124。缓存存储器122用于数据缓存,磁盘设备124用于数据的持久性存储。通常,缓存存储器122的存取速度大于硬盘设备124的存取速度。存储系统100可以利用多种存储技术来提供数据存储能力。
在一些实施例中,缓存存储器122的示例包括高速缓存,随机存取存储器(RAM)、动态随机存取存储器(DRAM)等具有较高存取速度的存储器。磁盘设备124的示例可以包括磁盘冗余阵列(RAID)或其他磁盘设备。
为了管理对物理存储空间的数据存储,存储系统100还包括存储控制器110。通常存储系统100采用分层控制模型。如图1所示,在分层控制模型下,存储控制器110可以具有多层控制模块,包括主机控制模块112、缓存控制模块114以及物理盘控制模块116。这些控制模块实现层级控制功能。
为了便于理解存储系统100的分层控制模型,在使用RAID技术的示例中描述控制器110的工作机制。物理盘控制模块116将逻辑单元号(LUN)设备呈现给缓存控制模块114。物理盘控制模块116控制磁盘设备124的存储空间。缓存控制模块114控制缓存存储器122的缓存空间,以将缓存卷呈现给主机控制模块112。主机控制模块112管理逻辑存储池,并且将池LUN呈现给主机102。
在操作时,主机102上运行的应用可以向主机控制模块112发送用户写请求,以请求将数据写入存储系统100。响应于接收到的用户写请求,主机控制模块112可能会将生成对缓存控制模块114的多个写请求。例如,如果主机102的用户写请求要求将大量数据写入到由硬盘设备124创建的RAID LUN的多个离散区段上,那么针对每个区段,主机控制模块112都会向缓存控制模块114发送一个写请求。
缓存控制模块114和缓存存储器122在写回模式中进行操作。这意味着在接收到写请求后,缓存控制模块114首先将写请求要写入的数据缓存到缓存存储器122,然后再将(多个)写请求的数据释放到磁盘设备140。缓存控制模块114可以在完成数据缓存之后就向主机控制模块112发送该写请求的完成指示,从而实现对用户写请求的快速响应。物理盘控制模块116用于控制对硬盘设备124的实际写入。
应当理解,在上文中虽然被示出为不同的模块,但主机控制模块112、缓存控制模块114以及物理盘控制模块116可以由具有处理能力的单个或多个处理器、控制器、微处理器等或者包括这些器件的计算设备来实现。在一些示例中,缓存控制模块114还可以与缓存存储器122集成在一起,以获得同时具备缓存和控制能力的器件。虽然未被示出,在一些实施方式中,存储系统100还可以包括作为存储控制器100的镜像的另一存储控制器,以提供数据一致性、安全性和数据恢复能力。在一些示例中,存储系统100还可以使用多核存储机制来实现数据存储和管理。
下面出于说明的目的,将首先参考图2来介绍现有技术中的分层存储系统中的不同存储层级的构建方法。如图2所示,在该存储系统中,具有N个物理的磁盘,即磁盘0至磁盘N-1。磁盘0至磁盘N-1中每个均被划分为若干磁盘区段,磁盘区段放在区段池110中进行统一管理。通过从磁盘中选择多个磁盘区段来形成RAID区段,并由多个RAID区段来共同组成不同的存储层级121至123。每个层级代表与特定的速率对应的硬盘的组合。通常,针对一个存储池可以创建三个存储层级,每个存储层级可以由对应类型的物理磁盘来形成。例如,可以利用固态硬盘(SSD)形成高性能的SSD层,即Tier0;利用串行连接小型计算机系统接口(SAS)盘形成中等性能的SAS层,即Tier1;利用串口硬盘SATA盘形成大容量的SATA层,即Tier2。一个卷可以分布在多个层级上,根据卷I/O的活跃情况,卷上的数据可以在不同的层级之间移动,以实现自动分级存储功能。
如前所述,在现有技术中,在优化状态下,如果执行I/O写操作,则会将数据写入对应的数据盘,并对应的奇偶校验信息写入奇偶校验盘,而在读取时将会从对应的数据盘中直接读取数据。而在降级状态下的I/O操作将较为繁琐,效率较低。例如,在RAID 5模式下,如果在降级状态对故障盘执行I/O写操作,由于目标盘故障,因此并不能向其写入数据,而是会计算相应的奇偶校验信息并将其写入奇偶校验盘。而当在降级状态对该数据进行I/O读操作时,会首先获取奇偶校验信息和其他存储盘的数据,并基于奇偶校验信息和从其他盘读取的数据来重构用户数据,并将重构数据返回给用户。此外,在后续磁盘重新上线需要恢复数据时,也需要再次基于奇偶校验信息和其他盘的数据来重构用户数据,并将重构的数据重新写入到重新上线的磁盘上。因此,与优化状态下的I/O操作相比,降级状态下的读写操作非常繁琐,效率较低。
为此,在本公开中的实施例中,提出在降级状态下对故障数据盘的写入操作时,在校验盘中直接写入数据而不写入校验信息。这样在降级状态下的写入过程中,无需计算校验信息,可以节省计算操作。而且,在降级状态下对该数据执行读取操作时,只需直接从校验盘读取数据,而无需如现有技术中那样读取其他数据盘的数据和校验信息并基于校验信息和读取的数据来重构数据。在进一步的实施方式中,在故障恢复过程中,可以计算校验信息并将校验信息直接写入数据盘,这样在故障恢复时也不会引起额外的I/O操作和计算操作。此外,在进一步的实施方式中,在优化状态下对该数据进行再次写入操作时,还可以重新将数据写回数据盘,而将校验信息写入校验盘,这样可以在没有任何额外I/O操作和计算资源消耗的情况下,自动从降级写入模式切换回正常写入方式。
需要说明的是,此处使用的术语“降级写入模式”是指本申请中提出的在降级状态下在对故障数据盘的写入操作时,在校验盘中直接写入数据的写入方式;此处使用的术语“正常写入方式”是指现有技术中,将数据写入数据盘的写入方式。
在下文中,将结合示例实施方式参考图3至图12来描述在本申请中提出的数据存取方案。需要说明的是,下面的实施例仅仅是出于说明的目的而给出,本公开并不仅限于此。
图3示出了根据本公开的一些实施方式的用于针对磁盘阵列执行数据存取的方法300的流程图。如图3所示,在块310,响应于在所述磁盘阵列处于降级状态下对所述磁盘阵列中的故障数据盘的写入请求,将数据写入所述磁盘阵列中的校验盘。在本公开的实施方式中,磁盘阵列包括校验盘和多个数据盘。磁盘阵列例如是通过RAID技术形成的磁盘组。对于RAID 5,磁盘阵列包括一个校验盘P和4个数据盘。需要说明的是,在下文中,将以RAID 5为例进行说明,但是本公开并不局限于此,而是可以应用于任何其他RAID模式,也可以应用到基于任何其他技术而形成的包括校验盘和多数据盘的磁盘阵列中。
在块320,在磁盘资源映射信息中设置相应的降级存储位置信息,指示所述数据被存储在所述校验盘中。在降级状态下针对故障盘的写入操作与正常的写入操作方式不同,此时在校验盘中包含的是数据而不是校验信息。为了支持后续的读I/O操作,可以指示这种存储位置改变,以便在后续操作中直接从校验盘中获取数据。为此,可以在磁盘资源映射信息中包括降级存储位置信息,以指示数据是否被存储在校验盘中。因此,在执行了本公开中提出的降级状态下的数据写入的情况下,可以设置相应的降级存储位置信息,使其指示该数据被存储在校验盘中。
在本公开的一些实施方式中,所述磁盘资源映射信息包括针对所述多个数据盘的多个降级存储位置指示符,即针对每个数据盘均设置相应的降级存储指示符。这样,可以在所述磁盘资源映射信息中设置与所述故障数据盘对应的降级存储位置指示符,使其指示与该故障数据盘相关的数据已经被写入在校验盘中。
在本公开的一些实施方式中,降级存储位置指示符可以具有第一值和第二值,其中第一值对应于例如有效值,例如“1”,以指示所述数据被存储在校验盘中;第二值可以对应于无效值,例如“0”,指示所述数据未被存储在校验盘中。这样,在所述磁盘资源映射信息中设置相应的降级存储位置信息时,可以将所述降级存储位置指示符设置为指示所述数据被存储在所述校验盘中的第一值,以指示数据被写入在校验盘中。
图4示意性地示出了根据本公开的实施方式中可以采用的磁盘资源映射方式的示例。在该图中以RAID为例进行了说明,本公开的实施方式可以基于该示例的磁盘资源映射来实现降级存储位置信息的存储。
资源映射器是一个基于日志的映射系统,其在存储系统被用于管理磁盘资源映射。它将逻辑存储导出到上层并将存储空间映射到RAID的物理存储资源。如图4所示,资源映射器的逻辑空间由4KB大小的页面组成,每个页面用于存储磁盘的资源映射信息,多个页面被打包在一起形成2MB大小的虚拟块,其被称为虚拟大块,即VLB。
RAID区段被划分为多个物理大块(PLB),PLB 0至PLB M,其包括来自不同磁盘的磁盘区段1至磁盘区段k。每个PLB包括来自RAID区段的每个磁盘区段中的存储资源。针对PLB,设置相应的VLB来存储关于PLB的资源映射信息。在VLB的数据结构中具有关于VLB到PLB的映射的信息。资源映射器例如可以使用三级B+树结构来引用VLB中的页面,B+树的叶条目中的块指针指向VLB的页面。
根据本公开中的一些实施方式,可以将降级存储位置信息存储在用于存储磁盘资源映射信息的VLB中。这样,在数据读取时可以同时读出降级存储位置信息和其他磁盘资源映射信息,而无需额外的读取操作。例如,可以在VLB中设置与各个数据盘对应的降级存储位置指示符。
下面,将参考图5来示意性地描述在降级状态下对磁盘阵列的示例性写入操作,其中示出针对RAID区段的一个PLB执行数据写入时的场景。如图5所示,在一个PLB中,在来自4个磁盘的4个磁盘区段中分别用于存储多个数据版本,而校验盘用于存储对应的校验信息。在该实施例中,在资源映射器的VLB中,增加降级存储位置指示符de_pos,以便记录对于哪个数据盘,其数据被记录在奇偶校验位置。
如图5所示,对于图示的PLB,在降级状态下对其进行写操作时,针对完好数据盘的写I/O操作可以正常进行,即可以将数据的多个版本D0、D2和D3直接写入相应的数据盘。而针对故障数据盘的写I/O操作,将会采用本公开提出的方案,即将原本应该写入故障数据盘的数据D1直接写入校验盘,而不再计算和存储校验信息,如图5所示。在完成写入操作之后,在VLB中存储与故障数据盘相对应的降级存储位置指示符值,以指示数据被存储在校验盘中。
具体地,资源映射器在数据冲刷期间,可以针对已经被写入过的脏页面分配VLB和PLB。然后,资源映射器向RAID发送完整的PLB写入。在PLB写入过程中,如果PLB的磁盘区段处于优化状态,则执行正常写入,并且向资源映射器返回INVALID“0”的降级存储位置指示。相反,如果PLB的磁盘区段处于降级状态,则降级的数据被写入奇偶校验盘中的相应位置,而不是数据盘中,同时将有效的降级存储位置指示返回给映射器。在写I/O操作返回资源映射器之后,资源映射器可以将降级存储位置指示符存储在相应的VLB中。
因此,利用本公开中的降级写入模式,在降级状态下对故障盘进行写入时,无需计算和存储校验信息,因而可以节省大量CPU周期。而且,在降级状态下对该数据执行读取操作时,只需直接从校验盘读取数据,而无需如现有技术中那样读取其他数据盘的数据和校验信息并基于校验信息和读取的数据来重构数据。
图6示出了根据本公开的一些实施方式的用于针对磁盘阵列执行数据存取的方法600的流程图,其中示出了在降级状态下针对故障盘的示例I/O读操作。如图6所示,在块610,响应于在所述磁盘阵列处于所述降级状态下对所述数据的读取请求,从所述磁盘资源映射信息中获取所述相应的降级存储位置信息。然后,在块620,根据所述相应的降级存储位置信息的指示,从所述校验盘中获取所述数据。
因此,在降级状态下,针对利用降级写入模式写入的数据执行读取时,可以首先获取降级存储位置信息,根据降级存储位置信息的指示,“deg_pos=1”,这意味着对应的数据被写入到校验盘中,因此可以从校验盘中直接获取数据,而不会像现有技术中那样执行数据重构操作。这样,可以显著减少I/O操作,节省大量资源。
另一方面,对于采用正常写入方式写入的数据,也会首先获取降级存储位置信息,但是由于降级存储位置信息处于无效状态,因此依然会从数据盘中相应的位置获取数据。由于降级存储位置信息操作与资源映射信息一起存储在VLB中,可以对一并进行读取,因此不需额外的读取操作,而且对计算资源占用也可以忽略。这意味着,根据本公开的实施方式,对于降级状态下正常数据读取操作的性能也不会受到任何影响。
图7示出了根据本公开的一些实施方式在降级状态的数据读取操作的示意图。如图7所示,针对数据的访问,在缓存未命中时,资源映射器会首先读取VLB以获取B+树的叶节点条目的映射信息以及降级存储位置信息。然后,资源映射器将VLB中的降级存储位置信息deg_pos与读取I/O一起发送给由映射信息指示的RAID。如果降级位置是无效的,即I/O读操作并不是针对故障数据盘,则将子I/O发送到数据盘中的存储位置,以按照正常方式来读取数据,即将从数据盘读取数据。如果故障盘被读取且降级存储信息有效,则按照本公开中提议的方案,将子I/O发送到奇偶校验盘中的相应位置来读取数据,而不是数据盘中的存储位置。
这样,在降级状态下对降级模式下写入的数据执行读取操作时,可以直接从校验盘读取数据,而无需读取其他数据盘的数据和校验信息并基于校验信息和读取的数据来重构数据,因此可以节省I/O操作并可以节省大量的CPU周期。
进一步地,在根据本公开的一些实施方式中,可以在执行故障恢复时将数据存储位置和校验信息存储位置恢复成正常状态并将降级存储位置信息设置为无效,以使得优化状态下的存储位置都是正常的。这样,在优化状态下,所有数据的存储位置都是正常状态,因此可以直接从数据盘获取数据而无需关注降级存储位置信息的值。
然而,在根据本公开的另一些实施方式中,在故障恢复时还可以将校验信息直接存储在数据盘中,而并不改变降级期间以降级写入模式写入的数据的存储位置,在随后在对该数据再次读写时才会将新数据写入到数据盘并且将校验信息写入到校验盘。在下文中,将参考图8至图11来描述相关的操作。
图8示出了根据本公开的一些实施方式的用于针对磁盘阵列执行数据恢复的方法800的流程图。如图8所示,在块810,响应于所述磁盘阵列返回至优化状态,计算针对所述其他数据盘的数据以及校验盘中存储的数据,并根据这些数据计算相应的校验信息。然后,在块810,可以将所述校验信息存储在已经恢复的故障数据盘中。因而,根据本公开的实施方式,在故障恢复过程中可以将计算的校验信息直接存储在恢复的故障数据盘中,这样无需交换数据和校验信息的存储位置,因而可以减少I/O操作,节省带宽资源。
在降级存储位置信息存储在资源映射信息中的情况下,故障恢复期间的数据重构可以在资源映射器和RAID的协作来进行。
图9示出了根据本公开的一些实施方式在返回优化状态的故障恢复时的操作的示意图。如图9所示,在降级状态下,如果故障盘重新上线后,资源映射器首先读取VLB以获得降级存储位置信息。然后,资源映射器发送针对降级存储位置的I/O操作以读取整个PLB。此时,RAID将从原来完好的数据盘的存储位置中首先读取D0、D2和D3,并从奇偶校验位置读取数据D1。资源映射器将使用数据D0、D1、D2和D3向RAID发起修复写入操作。具体地,RAID根据D0、D1、D2和D3计算奇偶校验数据,然后RAID将计算的奇偶校验数据写入已经恢复的数据盘位置。
进一步地,在根据本公开的实施方式中,还以通过后续的写入I/O操作将磁盘系统中数据的存储位置和奇偶校验信息的存储位置交换回来,然后将降级存储位置信息设置为无效,并返回给资源映射器。映射器将相应的降级存储位置信息存储在VLB元数据中。
图10示出了根据本公开的一些实施方式的用于针对磁盘阵列执行数据存取的方法1000的流程图。如图10所示,在块1010,响应于在所述优化状态中针对所述数据的写入请求,将新数据写入已经恢复的故障数据盘。在块1020,将相应的校验信息写入所述校验盘。在块1030,将相应的降级存储位置信息设置为指示数据并未被存储在所述校验盘中的第二值。以此方式,可以将以降级写入模式写入的数据和校验信息的存储位置交换至正常存储状态。
图11示出了根据本公开的一些实施方式在返回优化状态后的数据写入操作的示意图。如图11所示,当在优化状态下对利用降级吸入模式写入的数据执行写I/O操作时,按照正常写入方式来执行数据写入操作,即将数据D0、D1、D2和D3写入数据盘中的相应位置,并将校验信息写入校验盘中的相应位置。同时,还将降级存储位置标识符设置为无效。通过这种方式,就可以借助于后续的写入操作而切换回到正常数据存储,而不需要额外的I/O操作,因而节省带宽资源。
图12示出了根据本公开的一些实施方式的用于针对磁盘阵列执行数据存取的方法1200的流程图,其中示出了优化状态下的I/O读操作。如图12所示,在块1210,响应于在所述磁盘阵列处于优化状态下针对所述磁盘阵列中的数据盘的读取请求,从所述磁盘资源映射信息中获取相应的降级存储位置信息。在块1220,在确定所述相应的降级存储位置信息指示所述数据被存储在所述校验盘中的情况下,从所述校验盘中获取数据。在块1230,在确定所述相应的降级存储位置信息指示所述数据并未被存储在所述校验盘中的情况下,从所述数据盘中获取数据。
需要说明的是,本公开提出的数据存取方案对于优化状态下的数据存取操作也可以没有任何影响。在本发明的实施方式中,降级存储位置信息操作可以与资源映射信息一起存储,这样可以对他们一并进行读取,因此不需额外的读取操作,而且对计算资源占用也可以忽略。因此,根据本公开的实施方式,对于优化状态下的正常数据读取操作的性能也不会受到任何影响。
此外,图13还示出了可以用来实施本公开的一些实施方式的示例设备1300的示意性框图。设备1300可以用于实现图1的存储控制器110的一个或多个控制模块。
如图所示,设备1300包括中央处理单元(CPU)1301,其可以根据存储在只读存储器(ROM)1302中的计算机程序指令或者从存储单元1308加载到随机访问存储器(RAM)1303中的计算机程序指令,来执行各种适当的动作和处理。在RAM 1303中,还可存储单元1300操作所需的各种程序和数据。CPU 1301、ROM 1302以及RAM 1303通过总线1304彼此相连。输入/输出(I/O)接口1305也连接至总线1304。
设备1300中的多个部件连接至I/O接口1305,包括:输入单元1306,例如键盘、鼠标等;输出单元1307,例如各种类型的显示器、扬声器等;存储单元1308,例如磁盘、光盘等;以及通信单元1309,例如网卡、调制解调器、无线通信收发机等。通信单元1309允许设备1300通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理单元1301执行上文所描述的各个方法和处理,例如方法300、方法600、方法800、方法1000和方法1200中的任一个或多个。例如,在一些实施方式中,方法300、方法600、方法800、方法1000和方法1200中的任一个或多个可被实现为计算机软件程序或计算机程序产品,其被有形地包含于机器可读介质,例如存储单元1308。在一些实施方式中,计算机程序的部分或者全部可以经由ROM 1302和/或通信单元1309而被载入和/或安装到设备1300上。当计算机程序加载到RAM 1303并由CPU 1301执行时,可以执行上文描述的方法300、方法600、方法800、方法1000和方法1200中的任一个或多个的一个或多个步骤。备选地,在其他实施方式中,CPU 1301可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行方法300、方法600、方法800、方法1000和方法1200中的任一个或多个。
本领域的技术人员应当理解,上述本公开的方法的各个步骤可以通过通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本公开不限制于任何特定的硬件和软件结合。
应当理解,尽管在上文的详细描述中提及了设备的若干装置或子装置,但是这种划分仅仅是示例性而非强制性的。实际上,根据本公开的一些实施方式,上文描述的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。
以上所述仅为本公开的可选实施方式,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等效替换、改进等,均应包含在本公开的保护范围之内。
Claims (15)
1.一种用于针对磁盘阵列执行数据存取的方法,其中所述磁盘阵列包括校验盘和多个数据盘,所述方法包括:
响应于在所述磁盘阵列处于降级状态下对所述磁盘阵列中的故障数据盘的写入请求,将数据写入所述磁盘阵列中的校验盘;以及
在磁盘资源映射信息中设置相应的降级存储位置信息,指示所述数据被存储在所述校验盘中。
2.根据权利要求1所述的方法,其中所述磁盘资源映射信息包括针对所述多个数据盘的多个降级存储位置指示符,以及其中在所述磁盘资源映射信息中设置相应的降级位置信息包括在所述磁盘资源映射信息中设置与所述故障数据盘对应的降级存储位置指示符。
3.根据权利要求2所述的方法,其中在所述磁盘资源映射信息中设置相应的降级存储位置信息包括将所述降级存储位置指示符设置为指示所述数据被存储在所述校验盘中的第一值。
4.根据权利要求1或2所述的方法,进一步包括:
响应于在所述磁盘阵列处于所述降级状态下对所述数据的读取请求,从所述磁盘资源映射信息中获取所述相应的降级存储位置信息;以及
根据所述相应的降级存储位置信息的指示,从所述校验盘中获取所述数据。
5.根据权利要求1或2所述的方法,进一步包括:
响应于所述磁盘阵列返回至优化状态,计算针对所述数据的校验信息;以及
将所述校验信息存储在已经恢复的故障数据盘中。
6.根据权利要求5所述的方法,进一步包括:
响应于在所述优化状态中针对所述数据的写入请求;
将新数据写入已经恢复的故障数据盘;
将相应的校验信息写入所述校验盘;以及
将相应的降级存储位置信息设置为指示数据并未被存储在所述校验盘中的第二值。
7.根据权利要求1或2所述的方法,进一步包括:
响应于在所述磁盘阵列处于优化状态下针对所述磁盘阵列中的数据盘的读取请求,从所述磁盘资源映射信息中获取相应的降级存储位置信息;
在确定所述相应的降级存储位置信息指示所述数据被存储在所述校验盘中的情况下,从所述校验盘中获取数据;以及
在确定所述相应的降级存储位置信息指示所述数据并未被存储在所述校验盘中的情况下,从所述数据盘获取数据。
8.一种用于针对磁盘阵列执行数据存取的装置,其中所述磁盘阵列包括校验盘和多个数据盘,所述装置包括:
处理器;以及
与所述处理器耦合的存储器,所述存储器具有存储于其中的指令,所述指令在被处理器执行时使所述装置执行动作,所述动作包括:
响应于在所述磁盘阵列处于降级状态下对所述磁盘阵列中的故障数据盘的写入请求,将数据写入所述磁盘阵列中的校验盘;以及
在磁盘资源映射信息中设置相应的降级存储位置信息,指示所述数据被存储在所述校验盘中。
9.根据权利要求8所述的装置,其中所述磁盘资源映射信息包括针对所述多个数据盘的多个降级存储位置指示符,以及其中在所述磁盘资源映射信息中设置相应的降级位置信息包括在所述磁盘资源映射信息中设置与所述故障数据盘对应的降级存储位置指示符。
10.根据权利要求9所述的方法,其中在所述磁盘资源映射信息中设置相应的降级存储位置信息包括将所述降级存储位置指示符设置为指示所述数据被存储在所述校验盘中的第一值。
11.根据权利要求8或9所述的装置,其中所述指令进一步被配置为在被处理器执行时使所述装置:
响应于在所述磁盘阵列处于所述降级状态下对所述数据的读取请求,从所述磁盘资源映射信息中获取所述相应的降级存储位置信息;以及
根据所述相应的降级存储位置信息的指示,从所述校验盘中获取所述数据。
12.根据权利要求8或9所述的装置,其中所述指令进一步被配置为在被处理器执行时使所述装置:
响应于所述磁盘阵列返回至优化状态,计算针对所述数据的校验信息;以及
将所述校验信息存储在已经恢复的故障数据盘中。
13.根据权利要求12所述的装置,其中所述指令进一步被配置为在被处理器执行时使所述装置:
响应于在所述优化状态中针对所述数据的写入请求;
将新数据写入已经恢复的故障数据盘;
将相应的校验信息写入所述校验盘;以及
将相应的降级存储位置信息设置为指示数据并未被存储在所述校验盘中的第二值。
14.根据权利要求8或9所述的装置,其中所述指令进一步被配置为在被处理器执行时使所述装置:
响应于在所述磁盘阵列处于优化状态下针对所述磁盘阵列中的数据盘的读取请求,从所述磁盘资源映射信息中获取相应的降级存储位置信息;
在确定所述相应的降级存储位置信息指示所述数据被存储在所述校验盘中的情况下,从所述校验盘中获取数据;以及
在确定所述相应的降级存储位置信息指示所述数据并未被存储在所述校验盘中的情况下,从所述数据盘获取数据。
15.一种计算机程序产品,所述计算机程序产品被有形地存储在计算机可读介质上并且包括机器可执行指令,所述机器可执行指令在被执行时使机器执行根据权利要求1-7中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910340221.6A CN111857540A (zh) | 2019-04-25 | 2019-04-25 | 数据存取方法、装置和计算机程序产品 |
US16/824,032 US11379326B2 (en) | 2019-04-25 | 2020-03-19 | Data access method, apparatus and computer program product |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910340221.6A CN111857540A (zh) | 2019-04-25 | 2019-04-25 | 数据存取方法、装置和计算机程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111857540A true CN111857540A (zh) | 2020-10-30 |
Family
ID=72917055
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910340221.6A Pending CN111857540A (zh) | 2019-04-25 | 2019-04-25 | 数据存取方法、装置和计算机程序产品 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11379326B2 (zh) |
CN (1) | CN111857540A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113849123A (zh) * | 2021-08-14 | 2021-12-28 | 苏州浪潮智能科技有限公司 | 一种慢盘的数据处理方法、系统、设备以及介质 |
CN114546272A (zh) * | 2022-02-18 | 2022-05-27 | 山东云海国创云计算装备产业创新中心有限公司 | 快速通用的raid降级为raid5的方法、系统、设备和存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111857552A (zh) * | 2019-04-30 | 2020-10-30 | 伊姆西Ip控股有限责任公司 | 存储管理方法、电子设备和计算机程序产品 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1851635A (zh) * | 2006-06-01 | 2006-10-25 | 杭州华为三康技术有限公司 | 对廉价磁盘冗余阵列进行读写操作的方法和系统 |
US8839028B1 (en) * | 2011-12-23 | 2014-09-16 | Emc Corporation | Managing data availability in storage systems |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7389393B1 (en) | 2004-10-21 | 2008-06-17 | Symantec Operating Corporation | System and method for write forwarding in a storage environment employing distributed virtualization |
US8145840B2 (en) * | 2009-06-05 | 2012-03-27 | Lsi Corporation | Method and system for storing excess data in a redundant array of independent disk level 6 |
US8583866B2 (en) | 2010-02-22 | 2013-11-12 | International Business Machines Corporation | Full-stripe-write protocol for maintaining parity coherency in a write-back distributed redundancy data storage system |
US9563509B2 (en) * | 2014-07-15 | 2017-02-07 | Nimble Storage, Inc. | Methods and systems for storing data in a redundant manner on a plurality of storage units of a storage system |
US9720596B1 (en) | 2014-12-19 | 2017-08-01 | EMC IP Holding Company LLC | Coalescing writes for improved storage utilization |
US9990263B1 (en) * | 2015-03-20 | 2018-06-05 | Tintri Inc. | Efficient use of spare device(s) associated with a group of devices |
US10901646B2 (en) | 2018-11-30 | 2021-01-26 | International Business Machines Corporation | Update of RAID array parity |
-
2019
- 2019-04-25 CN CN201910340221.6A patent/CN111857540A/zh active Pending
-
2020
- 2020-03-19 US US16/824,032 patent/US11379326B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1851635A (zh) * | 2006-06-01 | 2006-10-25 | 杭州华为三康技术有限公司 | 对廉价磁盘冗余阵列进行读写操作的方法和系统 |
US8839028B1 (en) * | 2011-12-23 | 2014-09-16 | Emc Corporation | Managing data availability in storage systems |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113849123A (zh) * | 2021-08-14 | 2021-12-28 | 苏州浪潮智能科技有限公司 | 一种慢盘的数据处理方法、系统、设备以及介质 |
CN113849123B (zh) * | 2021-08-14 | 2023-08-25 | 苏州浪潮智能科技有限公司 | 一种慢盘的数据处理方法、系统、设备以及介质 |
CN114546272A (zh) * | 2022-02-18 | 2022-05-27 | 山东云海国创云计算装备产业创新中心有限公司 | 快速通用的raid降级为raid5的方法、系统、设备和存储介质 |
CN114546272B (zh) * | 2022-02-18 | 2024-04-26 | 山东云海国创云计算装备产业创新中心有限公司 | 快速通用的raid降级为raid5的方法、系统、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20200341873A1 (en) | 2020-10-29 |
US11379326B2 (en) | 2022-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9128855B1 (en) | Flash cache partitioning | |
US6058489A (en) | On-line disk array reconfiguration | |
EP2685384B1 (en) | Elastic cache of redundant cache data | |
US9684591B2 (en) | Storage system and storage apparatus | |
US10019362B1 (en) | Systems, devices and methods using solid state devices as a caching medium with adaptive striping and mirroring regions | |
JP5944587B2 (ja) | 計算機システム及び制御方法 | |
JP2014174992A (ja) | システム・リブートを通じて改善されたキャッシュ・ランプアップを達成するためにキャッシュ・ストアを管理するためのシステム、方法、およびコンピュータ可読媒体 | |
CN103207840B (zh) | 用于将不完整记录从第一缓存降级至第二缓存的系统和方法 | |
US10564865B2 (en) | Lockless parity management in a distributed data storage system | |
JP4229626B2 (ja) | ファイル管理システム | |
US6378038B1 (en) | Method and system for caching data using raid level selection | |
WO1999017208A1 (en) | Multiple data controllers with centralized cache | |
JPH0642193B2 (ja) | Dasdアレイのための更新記録方法及び装置 | |
CN113971104A (zh) | 用于存储装置的基于奇偶校验的故障保护的系统及方法 | |
US9223655B2 (en) | Storage system and method for controlling storage system | |
US20200133836A1 (en) | Data management apparatus, data management method, and data management program | |
US11379326B2 (en) | Data access method, apparatus and computer program product | |
US10579540B2 (en) | Raid data migration through stripe swapping | |
CN114443346A (zh) | 用于存储装置的基于奇偶校验的故障保护的系统及方法 | |
JP6011153B2 (ja) | ストレージシステム、ストレージ制御方法およびストレージ制御プログラム | |
CN111858189A (zh) | 对存储盘离线的处理 | |
US20170220476A1 (en) | Systems and Methods for Data Caching in Storage Array Systems | |
JPH11288387A (ja) | ディスクキャッシュ装置 | |
US20140372672A1 (en) | System and method for providing improved system performance by moving pinned data to open nand flash interface working group modules while the system is in a running state | |
JP2003131818A (ja) | クラスタ構成ストレージにおけるクラスタ間raid構成 |
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 |