CN107239233A - 一种磁盘阵列及基于其的数据重构方法和存储设备 - Google Patents
一种磁盘阵列及基于其的数据重构方法和存储设备 Download PDFInfo
- Publication number
- CN107239233A CN107239233A CN201710326768.1A CN201710326768A CN107239233A CN 107239233 A CN107239233 A CN 107239233A CN 201710326768 A CN201710326768 A CN 201710326768A CN 107239233 A CN107239233 A CN 107239233A
- Authority
- CN
- China
- Prior art keywords
- physical
- block
- physical block
- storage
- backup
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of 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/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/1088—Reconstruction on already foreseen single or plurality of spare disks
-
- 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/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)
- Quality & Reliability (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本发明提供一种磁盘阵列及基于其的数据重构方法和存储设备,该磁盘阵列包括:多个物理磁盘,每个物理磁盘的存储空间包括多个物理块,每个物理块具有物理地址;每个物理磁盘的多个物理块包括备份物理块和存储物理块,且备份物理块间隔分布于存储物理块中。采用本方案的磁盘阵列,对数据重构之后对RAID读写性能的影响会减小,进而提高整个RAID的读写性能。
Description
技术领域
本发明涉及数据存储技术领域,尤其涉及一种磁盘阵列及基于其的数据重构方法和存储设备。
背景技术
随着技术的发展,用于数据存储的物理磁盘(区别于虚拟磁盘,以下简称磁盘)的容量由几十个GB发展到几个TB,其中RAID(Redundant Array of Independent Disks,即独立磁盘冗余阵列)可提供比单个磁盘更高的存储性能,RAID是一种把多块独立的磁盘按不同的方式组合起来形成一个磁盘组。RAID作为一个存储系统,不可避免的磁盘的硬件或者软件可能会出现问题。许多应用要求RAID具有高可靠性以保护用户数据,其中,数据备份可对数据进行保护,使得数据以高可靠性存储于RAID上,即使部分磁盘硬件或软件出现问题,可进行数据重构,能够从RAID中恢复数据。
通过数据备份进行数据重构,目前可以采用的其中一种方式在RAID中设置用于备份的空间,这样,当某块磁盘或者磁盘中的某块区域发生故障时,能用备份空间代替发生故障的区域,并通过算法把原来储存在发生故障区域中的数据重构到备份空间中。
这种方案的问题是,由于替换该故障区域的备份空间通常设置在原来磁盘的尾部,当磁盘中某个故障区域用备份空间替换进行数据重构之后,在有故障区域的位置附近顺序读写磁盘时,由于故障区域被备份空间代替,需要定位到位于磁盘尾部的备份空间,然后再返回,导致读写时磁盘磁头移动距离比较大,需要花费较多的时间进行磁盘寻道,磁盘的读写性能较低,会导致整个RAID空间读写性能不稳定。
发明内容
为解决上述RAID读写不稳定的技术问题,本发明提供一种磁盘阵列,所述磁盘阵列包括:
多个物理磁盘,每个物理磁盘的存储空间包括多个物理块,每个所述物理块具有物理地址;
每个物理磁盘的多个物理块包括备份物理块和存储物理块,且所述备份物理块间隔分布于所述存储物理块中。
可选的,根据磁盘阵列中每个物理磁盘的总容量和预设物理块容量将每个物理磁盘的存储空间划分成多个物理块。
可选的,根据预设备份空间比例和所述物理块总数量设置备份间隔数量,每间隔所述备份间隔数量个所述存储物理块设置一个备份物理块。
可选的,所述存储物理块中存储有备份位图和存储位图,所述备份位图包括各所述备份物理块在所述物理磁盘中的分布位置,所述存储备份位图包括各所述存储物理块在所述物理磁盘中的分布位置,所述备份位图中的位数值和所述存储位图中的位数值为互补关系。
可选的,所述的磁盘阵列,还包括:
多个虚拟磁盘,所述多个虚拟磁盘为将所述磁盘阵列的多个物理磁盘虚拟化得到的;
其中,每个所述虚拟磁盘的存储空间包括多个虚拟块,每个所述虚拟块具有逻辑地址,所述虚拟块的数量与所述多个物理磁盘中存储物理块的数量相同,每个所述虚拟块的逻辑地址与每个存储数据块的物理地址具有映射关系。
可选的,所述虚拟磁盘的数量小于所述物理磁盘的数量,多个所述虚拟磁盘中位于相同行的多个虚拟块作为一个条带,每个所述条带的各虚拟块的逻辑地址分别与不同物理磁盘中的存储物理块的物理地址建立映射关系。
本发明实施例还提供一种基于磁盘阵列的数据重构方法,所述方法包括以下步骤:
获取磁盘阵列中发生故障的存储物理块的物理地址;
根据所述发生故障的存储物理块的物理地址查找与所述发生故障的存储物理块的物理地址最近的物理地址对应备份物理块作为预选备份物理块;
将所述发生故障的物理块中的数据重构至所述预选备份物理块中;
将所述发生故障的存储物理块的物理地址替换为预选备份物理块的物理地址。
可选的,所述方法在将所述发生故障的存储物理块的物理地址替换为预选备份物理块的物理地址之后,还包括以下步骤:
将所述备份位图中与预选备份物理块对应位置的位数值取反,将所述存储位图中与预选备份物理块置对应位置的位数值也取反。
可选的,所述方法中将所述发生故障的存储物理块的物理地址替换为预选备份物理块的物理地址,具体包括:
将发生故障的存储物理块对应的物理地址与发生故障的存储物理块对应的虚拟块的逻辑地址之间的映射关系,替换为预选备份物理块对应的物理地址与发生故障的存储物理块对应的虚拟块的逻辑地址之间的映射关系。
本发明实施例还提供一种存储设备,包括存储器和处理器,所述存储器中存储有多条指令,所述指令适于由处理器加载并执行上述所述的方法。
基于上述技术方案,本发明实施例中,由于备份物理块间隔分布在存储物理块中,可以选择与发生故障的存储物理块对应的物理地址较近的或者最近的物理块作为备份物理块,当有备份物理块替代发生故障的存储物理块数据恢复之后,对物理磁盘进行读写时,虽然磁头也不能按照原来的顺序移动,但是磁头读取时的位置会发生较小,可能是磁头的位置虽然跳跃但是还是能按照顺序,不需要来回反复移动,也有可能需要磁头在不同磁道之间反复移动,但是反复移动的间隔距离会减小,与之前移动方式相比,磁头移动的距离也会明显减小,磁头寻道的时间会减小,数据重构之后对RAID读写性能的影响会减小,进而提高整个RAID的读写性能。
附图说明
图1是本发明一种实施方式中的磁盘阵列的架构图;
图2是本发明一种实施方式中的数据重构方法的流程图;
图3是本发明另一种实施方式中的磁盘阵列的架构图;
图4是本发明一种实施方式中的备份位图的结构图;
图5是本发明一种实施方式中的存储位图的结构图;
图6是本发明另一种实施方式中的磁盘阵列的架构图;
图7是本发明另一种实施方式中的磁盘阵列中虚拟磁盘部分的架构图;
图8是本发明一种实施方式中的存储设备的结构图。
具体实施方式
下面参考附图详细描述本发明的各实施方式。
目前的RAID中为提高数据的可靠性,在RAID系统中,设置有专门的备份物理磁盘或者在某些物理磁盘中设置数据备份空间,当物理磁盘的某块区域损坏时,可利用备份空间对损坏区域的数据进行恢复,将损坏区域的数据通过数据重构恢复到备份空间。
下面结合图1对RAID中采用备份空间进行数据重构的方法进行介绍。
物理磁盘最基本的组成部分是由坚硬金属材料制成的涂以磁性介质的盘片,盘片被分成许多扇形的区域,每个区域叫一个扇区,每个扇区可存储一定字节的数据,盘片通常有两面,不同盘片相同半径的磁道所组成的圆柱称为柱面,物理磁盘也有两个面,每个面都有一个磁头,可用磁头号进行区分,不同存储容量磁盘的盘片数不等,其中,物理磁盘的容量=磁头数×磁道(柱面)数×每道扇区数×每扇区字节数。将数据沿着物理磁盘上的磁道的扇区存储。当通过磁盘驱动器在向磁盘读取和写入数据时,以扇区为单位进行数据的读取和写入(简称读写)。
可以用柱面/磁头/扇区来唯一定位磁盘上每一个扇区,按照扇区号、磁头号和柱面号(磁道号)的顺序连续地为每个扇区进行编号,生成对每个扇区编号,这样通过扇区编号可定位到物理磁盘的扇区位置,也就是存储数据的位置。
当对物理磁盘中的数据进行读写时,物理磁盘的磁头通常是从开始位置顺序移动,从位于磁盘里面的一侧磁道到远离磁盘里面侧的磁道顺序移动,在一个磁道上读写时,按照顺时针或者逆时针的顺序移动磁头。
参见图1所示,该RAID中,包括3块物理磁盘,分别是DISKA、DISKB、和DISKC,每块物理磁盘具有一定的存储空间,该存储空间可用物理磁盘的物理地址表示,将每块物理磁盘的存储空间划分成A1到A100共计100个区域,这里将每块区域叫做物理块,每个物理块具有物理地址,物理地址即每个物理块所在区域的实际地址,该实际地址为存储在物理磁盘中的数据位于物理磁盘的实际位置。
上述物理块可为包括物理磁盘中一个或多个扇区,如果每个物理块包括一个扇区,则扇区编号的地址可作为物理块的物理地址,如果每个物理块包括多个扇区,可将多个扇区再次按照一定的规则进行编号,该编号可以作为物理块的物理地址,对物理磁盘进行读写时会根据该物理地址进行读写。
这里,每个物理磁盘包括数据空间和备份空间,以DISKA物理磁盘为例,备份空间包括物理块A98-A100作为备份数据块,数据空间包括物理块A1-A97作为存储物理块作为数据正常的读写物理块,备份物理块用于对发生故障的其他物理块中的数据进行重构以恢复数据。
这里的备份物理块可作为对物理磁盘进行热备份的空间,热备份指应用磁盘阵列的系统处于正常运行状态时,可在某个物理磁盘或者物理磁盘中的某个区域出现故障时,可以在不停止服务和不影响使用的情况下利用热备份空间来替换发生故障的物理磁盘或区域。
可建立一个映射表,映射表中可包括从小到大或者其他顺序的编号(该编号也可以叫做逻辑地址),将这些编号与物理磁盘中物理块的物理地址分别建立映射关系,基于这个映射表根据一定的规则将多个物理磁盘组成一个或多个逻辑磁盘,即RAID,后续对RAID进行读写时,根据映射表中的编号获取物理磁盘中的物理地址,也就是实际读取位置。当存储物理块A3发生故障而失效时,可利用备份物理块A98对存储物理块A3中的数据进行恢复,将存储物理块A3中的数据通过数据重构恢复到备份物理块A98,存储物理块A3被备份物理A98替代,这里的替代指存储物理块A3的物理地址被备份物理块A98的物理地址替代,也就是说,将映射表中物理块A3对应的物理地址与物理块A3对应的编号(逻辑地址)之间的映射关系,替换为备份物理块A98对应的物理地址与物理块A3对应的编号(逻辑地址)之间的映射关系,原来备份物理块A98就不能再作为备份物理块使用。
数据修复之后,参照图1所示,以图1中所示的各物理块从上到下的顺序进行读写为例(这里假设映射表中编号的顺序与当前图1中所示的物理块的顺序一致为例),对于RAID而言,当进行数据读写时,读写到物理块A2时,接下来按照顺序本来应该是读写物理块A3,但是由于物理块A3被物理块A98替代,此时会读写物理块A98,然后再读写物理块A4,在这个读写过程中物理磁盘的磁头需要先从物理块A2对应的物理地址所在的位置移动到位于物理磁盘末尾的物理块A98对应的物理地址所在的位置,之后再移动到物理块A4对应的物理地址所在的位置;其他物理磁盘或者物理磁盘中的物理块发生故障而失效时,道理相同。
需要注意的是,物理块A3和物理块A98在图1发生的变化说明的是对应各物理块的物理地址或者逻辑地址发生变化,并不是物理磁盘的物理块所在物理磁盘的实际空间位置发生改变,物理块所在物理磁盘的实际空间位置并不发生变化。
从上述读写过程可知,当有备份物理块替代发生故障的存储物理块时,由于备份物理块均在物理磁盘的尾部位置,数据恢复之后,有故障存储物理块被修复的位置附近,磁头读取时的位置会发生很大的跳跃,如上述描述的磁头需要从物理块A2对应的物理地址所在的位置移动至物理块A98对应的物理地址所在的位置,然后再移动至物理块A4对应的物理地址所在的位置,物理块A2、物理块A98和物理块A4可能位于不同的磁道或者位于相同磁道的不同位置,这样需要磁头需要反复来回移动,当然本实施例只是举例,实际读取时甚至可能需要磁头在不同物理磁盘之间的移动,不管实际中按照何种顺序读取,每当有物理块发生故障时,磁头都需要从正在读取的物理块的位置移动到磁盘尾部的位置,这样需要花费较多的时间用于寻道(寻道指磁头在磁道上移动),导致物理磁盘读写性能大大降低,进而影响到整个RAID的读写性能,并且会导致RAID性能分布不均匀的问题。
针对上述方案存在的问题,本发明实施例中提出一种磁盘阵列(以下简称RAID),该磁盘阵列包括:
多个物理磁盘,每个物理磁盘的存储空间包括多个物理块,每个所述物理块具有物理地址;
每个物理磁盘的多个物理块包括备份物理块和存储物理块,且所述备份物理块间隔分布于存储物理块中。
基于上述的磁盘阵列,还提供一种数据重构方法,如图2所示,该方法包括以下步骤:
步骤S10、获取磁盘阵列中发生故障的存储物理块的物理地址;
步骤S20、根据发生故障的存储物理块的物理地址查找与发生故障的存储物理块的物理地址最近的物理地址对应备份物理块作为预选备份物理块;
上述查找的顺序可以从发生故障的存储物理块的物理地址开始同时双向顺序查找,或者从物理磁盘的初始物理地址开始正向顺序查找,或者从物理磁盘的终止物理地址开始逆向顺序查找,此处对于查找的顺序和方式并不做限定。
步骤S30、将发生故障的物理块中的数据重构至预选备份物理块中;
步骤S40、将发生故障的存储物理块的物理地址替换为预选备份物理块的物理地址。
RAID为一种数据存储装置,RAID有多个端口可以与主机直接连接或者通过网络连接,一个主机可同时连接不同端口,这样可提升数据传输速度。与电脑用单磁盘内部集成缓存一样,在RAID内部为加快与主机交互速度,可带有一定量的缓冲存储器,主机与RAID的缓存交互,缓存与其中物理磁盘进行数据交互。
当将RAID与主机相连,主机中设置有程序,通过该程序可与RAID进行数据交互,进而通过主机控制RAID,进行数据读取、数据写入或者数据重构等操作。
可在数据重构的程序运行过程中,如果RAID中的某一块物理磁盘或者物理磁盘中的某个物理块发生故障而失效时,可设置返回一条指令,该指令携带物理块的物理地址,因此,通过该指令可以获取发生故障的存储物理块(以下简称失效物理块)的物理地址,通过该失效物理块的物理地址可以查找与该物理地址最近的物理地址对应的备份物理块作为预选备份物理块,这样就可以通过一定算法将失效物理块中的数据重构到预选备份物理块中,并且,将失效物理块的物理地址替换为预选备份物理块的物理地址,也就是用预选备份物理块替代失效物理块。
下面结合图3对上述实施例提供方的磁盘阵列和基于磁盘阵列的数据重构方法进行详细介绍。
参照图3所示的RAID,包括三块物理磁盘,分别是DISKA、DISKB和DISKC,将每块物理磁盘的存储空间划分成A1到A100共计100个物理块,每个物理块具有物理地址,该物理地址的含义可参见上述的描述,在此不再赘述。
从图3中可以看出,物理磁盘DISKA中,物理块A25、物理块A50和物理块A75为备份物理块,其余的为存储物理块,物理磁盘DISKB和DISKB结构与物理磁盘DISKA相同。每间隔24个存储物理块设置有一个备份物理块,备份物块块间隔均匀分布于存储物理块中,基于此种结构的物理磁盘可参照上述实施例中对图1的描述建立映射表,基于映射表根据一定的规则将多个物理磁盘组成RAID,下面介绍采用备份物理块进行数据重构的方法。
当物理磁盘DISKA中的物理块A24发生故障失效时,可选择物理块A25、物理块A50或者物理块A75其中任何一块作为备份物理块进行数据重构以恢复物理块24中的数据。优选的是,将距离物理块25的物理地址最近的物理块A25作为预选备份物理块,将物理块A24中的数据重构到物理块A25中,也就是A24被物理块A25替代。
数据修复之后,以图3中所示的各物理块从上到下的顺序进行读写为例(这里假设映射表中编号的顺序与当前图3中所示的物理块的顺序一致为例),对于RAID而言,当进行数据读写时,读写到物理块A23时,接下来按照顺序本来应该是读写物理块A24,但是由于物理块A24被A25替代,此时会读写物理块A25,然后在读写物理块A26,在这个读写过程中物理磁盘的磁头需要先从物理块A23对应的物理地址所在的位置移动到位于物理块A24对应的物理地址所在的位置,之后再移动到物理块A25对应的物理地址所在的位置;同样道理,当物理磁盘DISKB中物理块B2发生故障坏掉时,用来对物理块B2修复的备份物理块可能是物理块B25,修复之后对于RAID而言,读写到物理块B1时,接下来按照顺序本来应该是读写物理块B2,但是由于物理块B2被B25替代,此时会读写物理块B25,然后在读写物理块B3(图中未示出),在这个读写过程中物理磁盘的磁头需要先从物理块B1对应的物理地址所在的位置移动到物理块B25对应的物理地址所在的位置,之后再移动到物理块B3对应的物理地址所在的位置。
需要注意的是,上述物理块A24、物理块A25、物理块B2和物理块B25,在图3发生的变化说明的是对应各物理块的物理地址或者逻辑地址发生变化,并不是物理磁盘的物理块所在的物理磁盘的实际空间位置发生改变,物理块所在物理磁盘的实际空间位置并不发生变化。
从上述读写过程可知,与之前实施例描述的实施方式相比,由于备份物理块间隔分布在存储物理块中,可以选择与发生故障的存储物理块对应的物理地址较近的或者最近的物理块作为备份物理块,当有备份物理块替代发生故障的存储物理块数据恢复之后,进行数据读写时,虽然磁头也不能按照原来的顺序移动,但是磁头读取时的位置移动较小,可能是磁头的位置虽然跳跃但是还是能按照顺序,不需要来回反复移动,也有可能需要磁头在不同磁道之间反复移动,但是反复移动的间隔距离会减小(例如,从磁头从B1到B25再到B3),与之前移动方式(例如,磁头从B1到B98再到B3)相比,磁头移动的距离也会明显减小,磁头寻道的时间会减小,数据重构之后对RAID读写性能的影响会减小,进而提高整个RAID的读写性能。
上述图中所示的备份物理块和存储物理块的划分方式只是举例说明,本实施例中并不限于图3所示的方式,备份物理块不一定是间隔相等数量个物理块均匀分布在存储物理块中,可以是间隔不相等的物理块设置一个,本实施例对此不限定,只要备份物理块间隔分布于存储物理块中均可达到上述的技术效果。
在一个可选的实施方式中,将物理磁盘划分成多个物理块,具体可以是:根据磁盘阵列中每个物理磁盘的总容量和预设物理块容量将每个物理磁盘的存储空间划分成多个物理块。
本实施例中,物理磁盘的总容量指物理磁盘能够存储数据量的大小,容量是决定磁盘数据存储量大小的能力,通常以MB(兆)、GB(千兆)或者TB为单位,每1024字节为1KB,每1024KB为1MB,每1024MB为1GB,每1024GB为1TB,磁盘的总容量可通过上述提到的方法,计算磁头数×磁道(柱面)数×每道扇区数×每扇区字节数的乘积。
预设物理块容量指每个单个物理块的容量,该容量的大小可根据实际需要设置,该容量可以为一个扇区或多个扇区的容量,或者一个磁道或者多个磁道的容量。
根据每个物理磁盘的总容量和预设物理块容量可以计算出每个物理磁盘的物理块总数量,如果每个物理块的容量均相同,总容量除以单个物理块的容量的商即为物理块总数量。
本实施例只是描述了一种划分物理块的方式,当然也可以采用其他方式对将每个物理磁盘划分为多个物理块。每个物理块的容量可以相同也可以不同,根据实际情况可进行对物理磁盘进行划分。
在一个可选的实施方式中,对于备份物理块的分布方式,具体可以包括:
根据预设备份空间比例和物理块总数量设置备份间隔数量,每间隔备份间隔数量个存储物理块设置一个备份物理块。
可设置一定比例的存储空间作为备份空间,该比例可在用户创建RAID时设置,该比例通常不超过50%,通过备份空间比例和总数量a可以计算出需要的备份物理块的数量,例如,如果备份比例是2%,总数量是1000,则备份物理块的数量是20个,这样为每个物理磁盘预留20个物理块作为备份物理块,其他的980个作为存储物理块,这样可以每间隔50个存储物理块设置一个备份物理块。
本实施例中,备份物理块均匀的分布在存储物理块中,这样通过备份物理块替换发生故障的存储物理块对数据进行恢复之后,每隔一定数量个存储物理块就有一个备份物理块,因此,可以查询到的与发生故障的存储物理块对应的物理地址距离接近的备份物理块的概率更大,这样进一步减小磁头移动的距离磁头寻道的时间会更小,进一步减小数据修复之后对RAID读写性能的影响,提高整个RAID的读写性能。
在另一个实施例中,该RAID中,存储物理块中存储有备份位图和存储位图,备份位图包括各备份物理块在物理磁盘中的分布位置,存储备份位图包括各存储物理块在物理磁盘中的分布位置,备份位图中的位数值和所述存储位图中的位数值为互补关系。
位图Bitmap可以理解为通过一个bit数组来存储特定数据的一种数据结构,由于bit是数据的最小单位,所以这种数据结构往往是非常节省存储空间。
本实施例中可根据备份物理块和存储物理块在物理磁盘中的分布位置,生成两张位图,即备份位图和存储位图,备份位图用于标识备份物理块的分布情况,存储位图用以标识存储物理块的分布情况,可以用一个字节代表每个物理块,位图中每个位置的位数值可为0或者1。
参照图4所示,备份位图包括300个位置,各位置与各备份物理块在物理磁盘中的位置对应,物理磁盘中作为备份空间的备份物理块对应位置的位数值置为1,其他数据空间的存储物理块对应位置的位数值置为0;如图5所示,存储位图中,作为备份空间的备份物理块对应位置的位数值置为0,数据空间的存储物理块对应位置的位数值置为1,可以看出存储位图中的位数值与备位位图中的位数值为互补关系。
上述位图可以表示备份物理块和存储物理块在物理磁盘中的分布位置,通过查找位图中的各位数值可以获知备份物理块和存储物理块所在的位置。
本实施例中,建立了备份位图和存储位图,由于位图Bitmap需要占用的存储空间小,因此可以被一次性加载到控制物理磁盘运行的主机的缓存中,通过该位图Bitmap可高效的对各物理磁盘的物理块进行数据读取、数据写入和数据重构等操作,可整体提高RAID的运行速度。
上述的位图可以存储在任何一个物理磁盘的物理块中,基于上述的位图,在查找预选备份物理块时,可通过读取位图中的各位数值进行查找,例如,如果存储物理块A24发生故障,读取备份位图,查找到与物理块A24所在位置最近的位数值为1的位置,该位置对应的物理块A25可作为预选备份物理块。通过位图可以方便快速的查找到预选备份物理块。
在一个可选的实施方式中,该磁盘阵列还包括:
多个虚拟磁盘,多个虚拟磁盘为将磁盘阵列的多个物理磁盘虚拟化得到的;
其中,每个虚拟磁盘的地址空间包括多个虚拟块,每个虚拟块具有逻辑地址,虚拟块的数量与多个物理磁盘中存储物理块的数量相同,每个虚拟块的逻辑地址与每个存储数据块的物理地址具有映射关系。
将构成磁盘阵列的多个物理磁盘虚拟化为多个虚拟磁盘,从用户的角度看到的是多个虚拟磁盘而不是物理磁盘,通过将物理块的物理地址与虚拟块的逻辑地址建立映射关系,利用该映射关系能够将虚拟磁盘的虚拟块的逻辑地址转换为相应的物理磁盘的物理块的物理地址,也就是实际地址,从而将数据按照预定的分配策略存储于多个物理磁盘中,将物理磁盘虚拟化为多个虚拟磁盘后,数据实际还是存储在物理磁盘中,因此,虚拟块的虚拟地址只需要与存储物理块的物理地址建立映射关系即可,不需要考虑备份物理块。
为了与物理磁盘中的各存储物理块对应,虚拟磁盘的虚拟块的数量与物理磁盘的存储物理块的数量相同,每个虚拟块的容量与每个存储物理块的容量可以相同。在对物理磁盘进行虚拟化时,也可以利用位图构建虚拟磁盘,可根据存储位图中各位置的位数值及其位数值的分布情况获得各存储物理块的位置,据此根据一定的算法构建出虚拟磁盘阵列。
在一个可选的实施方式中,虚拟磁盘的数量小于或者等于所述物理磁盘的数量,多个虚拟磁盘中位于相同行的多个虚拟块作为一个条带,且每个条带的各虚拟块的逻辑地址分别与不同物理磁盘中的存储物理块的物理地址具有映射关系。
如果不存在虚拟磁盘,如果其中一个物理磁盘DISKA发生故障失效,对物理磁盘DISKA中的所有物理块中的数据都要通过数据重构进行恢复,现有技术中其中一种方法是,分别对每个存储物理块中的数据进行重构,在进行数据重构过程中,通常从其他未失效的物理磁盘中读取数据,进而将失效磁盘中的数据恢复到备份物理块,由于物理磁盘在进行读写时,同一时刻只能对一个物理块进行读取或写入,因此,在数据重构过程中,只能按照物理块的顺序逐个进行,这样数据重构的时间会很长,而数据重构过程中出现新的失效物理磁盘概率会大大增加,数据丢失的风险也随之增加。因而对RAID数据重构的速度的优化是存储系统中的重要问题。
下面结合附图采用本实施例的RAID进行数据重构的过程。
如图6所示,RAID中,将六块物理磁盘DISKA、DISKB、DISKC、DISKD、DISKE和DISKF虚拟化为三块虚拟磁盘VDISKA、VDISKB和VDISKC,当然也可以虚拟化为两块、或者四块、或者五块,只要数量少于六块即可。
将位于不同虚拟磁盘中相同行的虚拟块作为一个条带,如图6所示,虚拟块A1、虚拟块B1和虚拟块C1作为一个条带,其他条带同理可推。
若每个条带中其中一个或多个虚拟块发生故障失效,进行数据重构时,需要从该条带中其他没有失效的虚拟块中读取数据,进而通过算法对失效虚拟块中的数据进行重构。此处虚拟块发生故障是指虚拟块对应的物理块发生故障失效,对虚拟块处理的过程实际上时对虚拟块对应的物理块中的数据进行处理。
如图6所示,如果物理磁盘DISKA失效,需要对其中每个存储物理块进行数据重构,按照目前的架构,对物理块A1进行数据重构时,需要读取虚拟块B1对应的物理块B1和虚拟块C1对应的物理块C1,对物理块A2进行数据重构需要读取虚拟块E2对应的物理块E2和虚拟块F2对应物理块F2,其他的同理可推。图中虚拟磁盘中各虚拟块的标号与物理磁盘中各物理块的标号相同,只是为了方便说明各虚拟块的逻辑地址与各存储数据块的物理地址具有映射关系,标号并不代表实际的逻辑地址或者物理地址。
由此可见,处于同一条带的各虚拟块的逻辑地址分别与不同物理磁盘中的存储物理块的物理地址具有映射关系,也就是,处于同一条带的各虚拟块分别与不同物理磁盘中的存储物理块对应,按照图6所示的结构,对物理块A1和对物理块A2进行数据重构时,需要分别对物理块B1所在的物理磁盘DISKB、物理块C1所在的物理磁盘DISKC、物理块E2所在的物理磁盘DISKE、物理块F2所在的物理磁盘DISKF进行数据读取或者数据写入等操作,由于各物理块位于不同的物理磁盘,因此,对物理块A1和对物理块A2可以同时进行数据重构,在6块物理磁盘和3块虚拟磁盘盘的情况下,数据重构的时间相对于现有技术理论上可以缩短一半,当物理磁盘数量更多时重建时间也会更短,因此,可以很大程度上降低数据重构过程中出现新的失效物理磁盘的概率,数据丢失的风险也随之降低,因而可提高RAID的整体性能。
在一个可选的实施方式中,上述的步骤S40将发生故障的存储物理块的物理地址替换为预选备份物理块的物理地址之后,还可以包括以下步骤:
步骤S50、将备份位图中与预选备份物理块对应位置的位数值取反,将存储位图中与预选备份物理块置对应位置的位数值也取反。
本实施例中,在通过备份物理块进行数据重构之后,由于预选备份物理块已经替换发生故障的存储物理块,这时,将备选位图和存储位图中对应位置的位数值进行更新,例如,上述实施例中描述的,如果存储物理块A24被备选物理块A25替换,数据重构之后,备选位图中对应物理块A25的位置的数量由1变为0,存储位图中对应物理块25位置的数值由0变为1,这样位图可以反映数据重构之后的备选物理块和存储物理块的分布位置。
在一个可选的实施方式中,上述的步骤S40具体可以包括以下步骤:
步骤S60、将发生故障的存储物理块对应的物理地址与发生故障的存储物理块对应的虚拟块的逻辑地址之间的映射关系,替换为预选备份物理块对应的物理地址与发生故障的存储物理块对应的虚拟块的逻辑地址之间的映射关系。
本实施例中,在通过备份物理块进行数据重构之后,由于预选备份物理块已经替换发生故障的存储物理块,由于虚拟块与物理块之间具有映射关系,此时需要对映射关系进行更新,将发生故障的存储物理块与对应虚拟块之间的映射替换为预选备份物理块与对应虚拟块之间的映射。
参照附图7所示,如果存储物理块A24被备选物理块A25替换,存储物理块B2被备选物理块B25替换数据重构之后,在虚拟磁盘中,虚拟块A24被虚拟块A24替换,虚拟块B2被虚拟块B25替换。
本发明实施例还提供一种存储设备,包括存储器和处理器,存储器中存储有多条指令,该指令适于由处理器加载并执行上述实施例中所述的数据重构方法。
如图8所示,上述的存储设备可以是个人计算机,服务器,或者网络设备等,存储设备可以包括处理器和存储器,存储器可以为非易失性存储器(比如硬盘),还可以包括内存和内部总线等,当然存储设备在实际使用时一般都会通过外部接口挂接一个或者多个RAID阵列。存储器中存储多条指令,处理器可以将相应指令存储器读入内存中然后运行。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
Claims (10)
1.一种磁盘阵列,其特征在于,所述磁盘阵列包括:
多个物理磁盘,每个物理磁盘的存储空间包括多个物理块,每个所述物理块具有物理地址;
每个物理磁盘的多个物理块包括备份物理块和存储物理块,且所述备份物理块间隔分布于所述存储物理块中。
2.根据权利要求1所述的磁盘阵列,其特征在于,
根据磁盘阵列中每个物理磁盘的总容量和预设物理块容量将每个物理磁盘的存储空间划分成多个物理块。
3.根据权利要求1所述的磁盘阵列,其特征在于,根据预设备份空间比例和所述物理块总数量设置备份间隔数量,每间隔所述备份间隔数量个所述存储物理块设置一个备份物理块。
4.根据权利要求1所述的磁盘阵列,其特征在于,所述存储物理块中存储有备份位图和存储位图,所述备份位图包括各所述备份物理块在所述物理磁盘中的分布位置,所述存储备份位图包括各所述存储物理块在所述物理磁盘中的分布位置,所述备份位图中的位数值和所述存储位图中的位数值为互补关系。
5.根据权利要求1-4任一项所述的磁盘阵列,其特征在于,还包括:
多个虚拟磁盘,所述多个虚拟磁盘为将所述磁盘阵列的多个物理磁盘虚拟化得到的;
其中,每个所述虚拟磁盘的存储空间包括多个虚拟块,每个所述虚拟块具有逻辑地址,所述虚拟块的数量与所述多个物理磁盘中存储物理块的数量相同,每个所述虚拟块的逻辑地址与每个存储数据块的物理地址具有映射关系。
6.根据权利要求5所述的磁盘阵列,其特征在于,
所述虚拟磁盘的数量小于所述物理磁盘的数量,多个所述虚拟磁盘中位于相同行的多个虚拟块作为一个条带,每个所述条带的各虚拟块的逻辑地址分别与不同物理磁盘中的存储物理块的物理地址建立映射关系。
7.一种基于磁盘阵列的数据重构方法,其特征在于,所述磁盘阵列包括多个物理磁盘,每个物理磁盘的存储空间包括多个物理块,每个所述物理块具有物理地址;每个物理磁盘的多个物理块包括备份物理块和存储物理块,且所述备份物理块间隔分布于所述存储物理块中,所述方法包括以下步骤:
获取磁盘阵列中发生故障的存储物理块的物理地址;
根据所述发生故障的存储物理块的物理地址查找与所述发生故障的存储物理块的物理地址最近的物理地址对应备份物理块作为预选备份物理块;
将所述发生故障的物理块中的数据重构至所述预选备份物理块中;
将所述发生故障的存储物理块的物理地址替换为预选备份物理块的物理地址。
8.根据权利要求7所述的方法,其特征在于,所述存储物理块中存储有备份位图和存储位图,所述备份位图包括各所述备份物理块在所述物理磁盘中的分布位置,所述存储备份位图包括各所述存储物理块在所述物理磁盘中的分布位置,所述备份位图中的位数值和所述存储位图中的位数值为互补关系;
所述方法在将所述发生故障的存储物理块的物理地址替换为预选备份物理块的物理地址之后,还包括以下步骤:
将所述备份位图中与预选备份物理块对应位置的位数值取反,将所述存储位图中与预选备份物理块置对应位置的位数值也取反。
9.根据权利要求7所述的方法,其特征在于,所述磁盘阵列还包括:
多个虚拟磁盘,所述多个虚拟磁盘为将所述磁盘阵列的多个物理磁盘虚拟化得到的;
其中,每个所述虚拟磁盘的存储空间包括多个虚拟块,每个所述虚拟块具有逻辑地址,所述虚拟块的数量与所述多个物理磁盘中存储物理块的数量相同,每个所述虚拟块的逻辑地址与每个存储数据块的物理地址具有映射关系;
所述方法中将所述发生故障的存储物理块的物理地址替换为预选备份物理块的物理地址,具体包括:
将发生故障的存储物理块对应的物理地址与发生故障的存储物理块对应的虚拟块的逻辑地址之间的映射关系,替换为预选备份物理块对应的物理地址与发生故障的存储物理块对应的虚拟块的逻辑地址之间的映射关系。
10.一种存储设备,包括存储器和处理器,其特征在于,所述存储器中存储有多条指令,所述指令适于由处理器加载并执行权利要求7-9任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710326768.1A CN107239233A (zh) | 2017-05-10 | 2017-05-10 | 一种磁盘阵列及基于其的数据重构方法和存储设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710326768.1A CN107239233A (zh) | 2017-05-10 | 2017-05-10 | 一种磁盘阵列及基于其的数据重构方法和存储设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107239233A true CN107239233A (zh) | 2017-10-10 |
Family
ID=59984331
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710326768.1A Pending CN107239233A (zh) | 2017-05-10 | 2017-05-10 | 一种磁盘阵列及基于其的数据重构方法和存储设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107239233A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108845761A (zh) * | 2018-05-29 | 2018-11-20 | 郑州云海信息技术有限公司 | 一种个人云存储设备 |
WO2021082011A1 (zh) * | 2019-11-01 | 2021-05-06 | 华为技术有限公司 | 应用于磁盘阵列系统的数据重构方法、装置及计算设备 |
CN113448676A (zh) * | 2020-03-24 | 2021-09-28 | 阿里巴巴集团控股有限公司 | 虚拟机的控制方法、装置及设备 |
CN114594902A (zh) * | 2020-12-03 | 2022-06-07 | 西部数据技术公司 | Nand存储器的数据转移协议的开销减小 |
CN115878052A (zh) * | 2023-03-08 | 2023-03-31 | 苏州浪潮智能科技有限公司 | Raid阵列巡检方法、巡检装置和电子设备 |
CN114594902B (zh) * | 2020-12-03 | 2024-05-31 | 西部数据技术公司 | Nand存储器的数据转移协议的开销减小 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101329641A (zh) * | 2008-06-11 | 2008-12-24 | 华中科技大学 | 一种磁盘阵列的数据重建方法 |
CN102306128A (zh) * | 2011-09-16 | 2012-01-04 | 北京星网锐捷网络技术有限公司 | 磁盘管理方法、装置及网络设备 |
CN102799533A (zh) * | 2012-07-10 | 2012-11-28 | 浙江宇视科技有限公司 | 一种磁盘损坏扇区屏蔽方法及装置 |
CN103064804A (zh) * | 2012-12-13 | 2013-04-24 | 华为技术有限公司 | 磁盘数据的访问控制方法及装置 |
CN104750436A (zh) * | 2015-04-15 | 2015-07-01 | 苏州中晟宏芯信息科技有限公司 | 一种磁盘管理方法及系统 |
-
2017
- 2017-05-10 CN CN201710326768.1A patent/CN107239233A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101329641A (zh) * | 2008-06-11 | 2008-12-24 | 华中科技大学 | 一种磁盘阵列的数据重建方法 |
CN102306128A (zh) * | 2011-09-16 | 2012-01-04 | 北京星网锐捷网络技术有限公司 | 磁盘管理方法、装置及网络设备 |
CN102799533A (zh) * | 2012-07-10 | 2012-11-28 | 浙江宇视科技有限公司 | 一种磁盘损坏扇区屏蔽方法及装置 |
CN103064804A (zh) * | 2012-12-13 | 2013-04-24 | 华为技术有限公司 | 磁盘数据的访问控制方法及装置 |
CN104750436A (zh) * | 2015-04-15 | 2015-07-01 | 苏州中晟宏芯信息科技有限公司 | 一种磁盘管理方法及系统 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108845761A (zh) * | 2018-05-29 | 2018-11-20 | 郑州云海信息技术有限公司 | 一种个人云存储设备 |
WO2021082011A1 (zh) * | 2019-11-01 | 2021-05-06 | 华为技术有限公司 | 应用于磁盘阵列系统的数据重构方法、装置及计算设备 |
CN113448676A (zh) * | 2020-03-24 | 2021-09-28 | 阿里巴巴集团控股有限公司 | 虚拟机的控制方法、装置及设备 |
CN114594902A (zh) * | 2020-12-03 | 2022-06-07 | 西部数据技术公司 | Nand存储器的数据转移协议的开销减小 |
CN114594902B (zh) * | 2020-12-03 | 2024-05-31 | 西部数据技术公司 | Nand存储器的数据转移协议的开销减小 |
CN115878052A (zh) * | 2023-03-08 | 2023-03-31 | 苏州浪潮智能科技有限公司 | Raid阵列巡检方法、巡检装置和电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7330932B2 (en) | Disk array with spare logic drive created from space physical drives | |
US6170037B1 (en) | Method and apparatus for storing information among a plurality of disk drives | |
KR940011039B1 (ko) | Dasd 배열내에서의 분배 스페어링 방법 및 장치 | |
US8307159B2 (en) | System and method for providing performance-enhanced rebuild of a solid-state drive (SSD) in a solid-state drive hard disk drive (SSD HDD) redundant array of inexpensive disks 1 (RAID 1) pair | |
US20050050381A1 (en) | Methods, apparatus and controllers for a raid storage system | |
US20140304469A1 (en) | Data storage | |
JPH07320422A (ja) | ディスク・アレイ・システムおよび記憶方法並びに制御装置 | |
US20070088990A1 (en) | System and method for reduction of rebuild time in raid systems through implementation of striped hot spare drives | |
US20030014584A1 (en) | Storage device with I/O counter for partial data reallocation | |
CN107239233A (zh) | 一种磁盘阵列及基于其的数据重构方法和存储设备 | |
JPWO2006123416A1 (ja) | ディスク故障復旧方法及びディスクアレイ装置 | |
JP2006024024A (ja) | 論理ディスク管理方法及び装置 | |
JP4441929B2 (ja) | ディスク装置及びホットスワップ方法 | |
US11144396B1 (en) | Raid reliability with a provisional spare disk | |
CN104778018A (zh) | 基于非对称混合型磁盘镜像的宽条带磁盘阵列及存储方法 | |
CN103699457A (zh) | 基于条带化的磁盘阵列修复方法及装置 | |
US7111118B2 (en) | High performance raid mapping | |
US10409682B1 (en) | Distributed RAID system | |
JP4261532B2 (ja) | 論理ディスク管理方法及び仮想化装置 | |
CN102799533A (zh) | 一种磁盘损坏扇区屏蔽方法及装置 | |
CN101984400A (zh) | 一种raid控制方法、装置及系统 | |
US8402213B2 (en) | Data redundancy using two distributed mirror sets | |
CN106095330A (zh) | 一种元数据的存储方法和装置 | |
US7133965B2 (en) | Raid storage device | |
CN101997919B (zh) | 一种存储资源的管理方法及管理装置 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20171010 |
|
RJ01 | Rejection of invention patent application after publication |