CN1971498A - 数据存取方法及其存储子系统 - Google Patents
数据存取方法及其存储子系统 Download PDFInfo
- Publication number
- CN1971498A CN1971498A CNA2006101360635A CN200610136063A CN1971498A CN 1971498 A CN1971498 A CN 1971498A CN A2006101360635 A CNA2006101360635 A CN A2006101360635A CN 200610136063 A CN200610136063 A CN 200610136063A CN 1971498 A CN1971498 A CN 1971498A
- Authority
- CN
- China
- Prior art keywords
- data
- read
- storage
- target
- 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
- 238000003860 storage Methods 0.000 title claims abstract description 120
- 238000000034 method Methods 0.000 title claims abstract description 52
- 230000005055 memory storage Effects 0.000 claims description 47
- 238000005516 engineering process Methods 0.000 claims description 21
- 230000008569 process Effects 0.000 claims description 20
- 241001269238 Data Species 0.000 claims description 9
- 239000000835 fiber Substances 0.000 claims description 8
- 238000004519 manufacturing process Methods 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 claims description 5
- 238000005520 cutting process Methods 0.000 claims description 4
- 230000003287 optical effect Effects 0.000 claims description 4
- 230000004044 response Effects 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 8
- 238000013500 data storage Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000012797 qualification Methods 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/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/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
-
- 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
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一种数据存取方法及其存储子系统,用以读取磁盘阵列系统中存储装置之数据。当控制器接收到一数据读取请求后,根据读取请求中的逻辑地址块信息,决定欲读取的目标数据及其所在的子目标存储分割带;控制器同时发出多个输出入请求至所有的存储装置,以同时读取目标数据及其它位于相同子存储分割带上的相关数据;若有目标数据的读取迟迟没有响应,则可以利用已回复的其它相关数据,产生与目标数据相同的冗余数据,以尽早响应该数据读取请求,免去不必要的等待时间。
Description
技术领域
本发明是一种数据存取方法及其存储子系统,特别是一种不需等待读取超时的数据存取方法及其存储子系统。
背景技术
冗余磁盘阵列(Redundant Array of Independent Disk,RAID)是一种磁盘子系统,用以增进效能、提供容错能力或同时提供以上两者的优点。冗余磁盘阵列配备有多个硬盘以及一个磁盘控制器(disk controller)。通过磁盘驱动器平行存储(disk striping)技术可提升存取效能,其将数据依字节(bytes)或字节群(groups of bytes)交错存储在多个磁盘驱动器中,使得读、写输出入请求可以同时在多个磁盘驱动器平行进行。通过磁盘驱动器映像存储(mirroring)技术和/或具备分布式同位检测数据的磁盘驱动器平行存储(disk striping withparity)技术,可提供容错能力。磁盘驱动器映像存储技术会将相同的数据存储至两个磁盘中,其中一个用做备份数据。在具备分布式同位检测数据的磁盘驱动器平行存储技术中,举例来说,若RAID系统中有两个用户数据盘与一个同位数据盘,可使用异或(XOR)运算技术来计算两个用户数据盘中的用户数据(user data),将运算结果(亦即同位数据,parity data)存储至第三个同位数据盘中。当其中一个数据盘故障、用户数据遗失、或因为其它理由而没有响应时,磁盘控制器会自动利用正常的另外两个磁盘中与欲读取数据相对应的数据,譬如说与欲读取数据对应到同一存储分割带(stripe)的相关数据,来产生或重建与欲读取数据相同的冗余数据(redundant data)。
公知数据存取方法,在发出数据读取请求至目标磁盘驱动器后,会先等待一段时间直到读取请求超时,才会进行冗余数据产生作业,以重建遗失的数据,用以响应该读取请求。然而,若目标磁盘驱动器因发生媒体错误(mediaerror)或其它因素而无法立刻响应时,公知方法需先等待读取请求超时后,才能读取其相关数据以进行后续的冗余数据产生作业,造成不必要的等待时间。因此,需要一种更有效率的数据存取方法、控制装置以及系统,用以减少不必要的系统等待时间。
发明内容
有鉴于此,本发明的目的为提供一种数据存取方法及其存储子系统,用以减少不必要的系统等待时间。
依据本发明的一特色,揭露一种数据存取方法,由控制器执行,用以读取多个存储装置中的数据,其方法包括:接收数据读取请求,该数据读取请求包含读取逻辑地址块中的数据的信息;依据该逻辑地址块,决定至少一目标数据所在的子目标存储分割带(Sub-stripe),该子目标存储分割带包含至少一子用户数据区段与至少一子同位数据区段;发出多个输出入请求至该多个存储装置,用以读取该至少一子用户数据区段与该至少一子同位数据区段中的数据,该多个输出入请求包含至少一第一输出入请求,用以读取该目标数据,以及至少一第二输出入请求,用以读取至少一其它相关数据;以及进行判断流程,包含第一判断,判断该至少一目标数据是否已成功读取且回复,若否,则再执行第二判断,判断已完成读取的该其它相关数据是否已足以计算产生与该至少一目标数据相同的冗余数据,若该第二判断的结果为是,则产生该冗余数据。
依据本实施例的一特色,本发明方法的进一步特征在于:其中该数据读取请求自一存取要求应用端发出。
依据本实施例的一特色,本发明方法的进一步特征在于:其中该存取要求应用端系一网络计算机、一迷你计算机、一大型主机、一笔记型计算机、一手机、一个人数字助理、一数字录像设备、或一数字音乐播放器。
依据本实施例的一特色,本发明方法的进一步特征在于:其中若欲读取的数据已存储于一高速缓存空间中,则无需至该多个存储装置读取。
依据本实施例的一特色,本发明方法的进一步特征在于:其中当该第一判断的判断结果为是,则在该至少一目标数据回复于一存取要求应用端后,继续完成该至少一第二输出入请求。
依据本实施例之一特色,本发明方法的进一步特征在于:在产生与该目标数据相同的该冗余数据后,更执行一第三判断,判断该目标数据是否在冗余数据产生过程中已完成读取并回复,当该第三判断的判断结果为是,则丢弃该冗余数据;当该第三判断的判断结果为否,则将该冗余数据回复给一存取要求应用端。
依据本实施例的一特色,本发明方法的进一步特征在于:其中更在产生该冗余数据的步骤前,更增加以下步骤:等待一小段时间,以及判断是否成功读取所有目标数据。
依据本实施例的一特色,本发明方法的进一步特征在于:其中该同位数据区段中的数据,包含以镜射技术存储的备份数据。
依据本实施例的一特色,本发明方法的进一步特征在于:其中该子目标存储分割带的大小更可扩大为一目标存储分割带的大小,每一该目标存储分割带包含多个数据区段,包含至少一用户数据区段与至少一同位数据区段,而该多个输出入请求是针对该多个数据区段而发出的。
依据本发明的另一特色,揭露一种存储子系统,包括:一存储单元,包含多个存储装置;以及一控制器,耦接于该存储单元,用以接收一数据读取请求,该数据读取请求包含读取一逻辑地址块中的数据的信息;依据该逻辑地址块,决定至少一目标数据所在的一子目标存储分割带(Sub-stripe),该子目标存储分割带包含至少一子用户数据区段与至少一子同位数据区段;发出多个输出入请求至该多个存储装置,用以读取该至少一子用户数据区段与该至少一子同位数据区段中的数据,该多个输出入请求包含至少一第一输出入请求,用以读取该目标数据,以及至少一第二输出入请求,用以读取至少一其它相关数据;以及进行一判断流程,包含一第一判断,判断该至少一目标数据是否已成功读取且回复,若否,则再执行一第二判断,判断已完成读取的该其它相关数据是否已足以计算产生与该至少一目标数据相同的冗余数据,若该第二判断的结果为是,则产生该冗余数据。
依据本实施例的一特色,本发明子系统的进一步特征在于:其中该存储装置为一磁带机、一磁盘驱动器、一内存纪录装置、一光存储记录装置或在同一磁盘驱动器中的相应于单一读写头的一个扇区。
依据本实施例的一特色,本发明子系统的进一步特征在于:其中该存储装置为一光纤信道磁盘驱动器、一小型计算机系统接口磁盘驱动器、一序列连接小型计算机系统接口磁盘驱动器、一序列先进技术磁盘驱动器、或一平行先进技术磁盘驱动器。
依据本实施例的一特色,本发明子系统的进一步特征在于:其中该控制器为一磁盘阵列控制器。
依据本实施例的一特色,本发明子系统的进一步特征在于:其中该控制器与该存储单元通过光纤信道、小型计算机系统接口、序列连接小型计算机系统接口、序列先进技术接口、或平行先进技术接口的传输接口相耦接。
附图说明
图1表示依据本发明实施例的数据存取系统的系统架构图;
图2表示依据本发明实施例的存储装置的存储空间示意图;
图3表示依据本发明实施例的数据存取方法的主流程图;
图4A与图4B表示依据本发明二实施例的目标存储分割带的数据读取流程图;以及
图5、图6、图7表示依据本发明实施例的存储装置的存储空间与逻辑地址块的对应示意图。
【附图标记说明】
10……………………………………………数据存取系统
11……………………………………………存取要求应用端
12……………………………………………………存储系统
121………………………………………………………控制器
122……………………………………………………存储单元
1211…………………………………………………控制单元
1213…………………………………………冗余数据产生单元
D1、D2、D3、D4……………………………………存储装置
Stripel、Stripe2、Stripe3、Stripe4…………存储分割带
UD11、UD12、UD13、UD21、UD22、UD24、UD31、UD33、UD34、UD42、UD43、UD44……………………用户数据区段
PD14、PD23、PD32、PD41…………………同位数据区段
具体实施方式
图1是表示依据本发明实施例的数据存取系统10的系统架构图,包括存取要求应用端(Application I/O Request Unit)11与存储子系统12,其中,存取要求应用端11可为一部网络计算机、迷你计算机、大型主机、笔记型计算机或需要读取存储系统12中的数据的任何电子设备,例如,手机、个人数字助理(personal digital assistant,PDA)、数字录像设备、数字音乐播放器等。存储子系统12包括控制器121与存储单元122。控制器121包括控制单元1211,该控制单元1211具有冗余数据产生单元1213。存储单元122具有多个存储装置,图1中以四个存储装置D1、D2、D3及D4为例,但本发明的实施例并不以四个为限。存储装置D1、D2、D3及D4中之一可为磁带机(tape drive)、磁盘驱动器(disk drive)、内存纪录装置(memory drive)或光存储记录装置(optical storage drive)或在同一磁盘驱动器中的相应于单一读写头的一个扇区或其它等效的存储装置。
控制单元1211中的冗余数据产生单元1213能产生(重建)与待读取数据相同的冗余数据,在本实施例中,以RAID 5为例说明,所以在RAID 5中的冗余数据产生单元1213通过异或(XOR)运算来产生冗余数据。当然,在其它实施例中,冗余数据产生单元1213也可采用其它各种手段来达到提供与待读取数据相同的冗余数据的功效,且冗余数据产生单元1213也可视需求而设计在控制单元1211的外部。此外,在其它实施例中,亦可采用其它等效的模块来取代冗余数据产生单元1213,以提供与待读取数据相同的冗余数据。在某些实施例中,能通过读取备援数据方式来成为与待读取数据相同的冗余数据,则此时冗余数据产生单元1213或其它等效的产生模块可不设置。
当存取要求应用端11为一部独立的电子设备时,可通过存储局域网络(Storage Area Network,SAN)、局域网络(Local Area Network,LAN)、序列先进技术(Serial ATA,SATA)接口、光纤信道(Fiber Channel,FC)、小型计算机标准接口(Small Computer System Interface,SCSI)等传输接口或PCIExpress等输出入(I/O)接口与存储子系统12相连接。另外,当存取要求应用端11为一个特殊集成电路(IC)或其它能够送出输出入读取要求的等效装置,其能依据其它装置的命令(或请求)而送出数据读取要求至控制器121,以供通过控制器121读取存储单元122中的数据。
存储子系统12中的控制器121及存储单元122可同时包含于单一箱体(Enclosure)中,亦可独立分开而容置于不同的箱体中。在较佳的情况下,控制器121可通过光纤信道(Fibre Channel,FC)、小型计算机系统接口(SCSI)、序列连接小型计算机系统接口(Serial-Attached SCSI,SAS)、序列先进技术(Serial ATA,SATA)接口、平行先进技术(Parallel ATA,PATA或称IDE)接口等传输接口来与存储单元122相连接,存储单元122中的存储装置D1、D2、D3及D4可为FC、SAS、SCSI、SATA、PATA等各种不同类型的磁盘驱动器。控制器121可为磁盘阵列控制器(Redundant Array ofIndependent DiSk,RAID Controller),或是具有能够产生冗余数据(RedundantData)的存储系统的控制器;其中磁盘阵列技术广义地包括RAID 1~6及其延伸与组合。
图2表示依据本发明实施例的存储装置的存储空间示意图。每一个存储装置可以划分为多个数据区段,从容错的观点来看,可分为用户数据区段以及同位数据区段两类;其中,若在RAID1之实施例中,同位数据区段指以镜射(mirroring)方式存储的备份数据区段。用户数据区段存储一般用户数据;同位数据区段存储多余的一组同位数据(或两组以上,视RAID的型态而定),以当有容错需求时,供反算用户数据之用。以第2图所示之实施例为例,存储装置D1包括用户数据区段UD11、UD21、UD31及同位数据区段PD41,存储装置D2包括用户数据区段UD12、UD22、UD42及同位数据区段PD32,存储装置D3包括用户数据区段UD13、UD33、UD43及同位数据区段PD23,以及,存储装置D4包括用户数据区段UD24、UD34、UD44及同位数据区段PD14。存在于不同存储装置的相对应用户数据区段及同位数据区段形成一个存储分割带(Stripe),而同位数据区段中的数据是由用户数据区段中的数据进行异或(XOR)运算而得到的结果。因此,以图2为例,用户数据区段UD11、UD12、UD13与同位数据区段PD14形成存储分割带Stripel,而PD14中的数据为UD11、UD12、UD13中的数据的XOR运算结果;同理,用户数据区段UD21、UD22、UD24与同位数据区段PD23形成另一个存储分割带Stripe2,而PD23中的数据为UD21、UD22、UD24中的数据的XOR运算结果;用户数据区段UD31、UD33、UD34与同位数据区段PD32形成另一个存储分割带Stripe3,而PD32中的数据为UD31、UD33、UD34中的数据的XOR运算结果;用户数据区段UD42、UD43、UD44与同位数据区段PD41形成另一个存储分割带Stripe4,而PD41中的数据为UD42、UD43、UD44中的数据的XOR运算结果。本领域普通技术人员都了解,同位数据区段中的数据的计算,除可使用异或(XOR)运算外,也包含各式各样之同位(parity)运算或类似的运算技术,只要存在以下关系:相同存储分割带(Stripe)中的任一个数据区段中的数据可由其相对应数据区段的数据计算而得。
在描述本发明之实施例之前,先做以下名词说明:
1.数据读取请求:由存取要求应用端11发送至控制器121,包含一段逻辑地址块中的数据的信息。
2.输出入请求(I/O request):由控制器121发送至存储装置D1、D2、D3、D4,包含一段逻辑地址块中的数据的信息;其中又区分为第一输出入请求与第二输出入请求。第一输出入请求是针对数据读取请求所要求的数据而发出的输出入请求;第二输出入请求是对与数据读取请求所要求的数据位于同一存储分割带的其它数据区段(包括用户数据区段与同位数据区段)所发出的输出入请求。举例来说,请参考图2,若分析数据读取请求的结果是要读取磁盘D1的数据区段UD11与磁盘D2的数据区段UD12,则控制器121对磁盘D1与磁盘D2所发送的输出入请求称为第一输出入请求,而对磁盘D3与磁盘D4所发送而读取UD13与PD14的输出入请求称为第二输出入请求。
请参考图3,其表示依据本发明一实施例的数据存取方法的主流程图,以下说明请同时参考图1。流程开始时(步骤S30),存取要求应用端11发送数据读取请求至控制器121(步骤S31)。控制器121解析此数据读取请求中的逻辑地址块,而决定欲存取的目标数据所在地址、及其对应的目标存储分割带(Stripe)(步骤S32)。注意,数据解析的结果,欲存取的目标数据可能不只位于一个数据区段(block),其亦可能分散在一个以上目标存储分割带中;在此种情况下,控制器121将同时但分别对每一个目标存储分割带进行数据读取的动作(步骤S33)。每一目标存储分割带逻辑上对应多个存储装置D1、D2、D3、D4上的数据区段,包括用户数据区段、及同位数据区段;而其中任一数据区段的数据可以由同一存储分割带的其它数据区段的数据计算而得。
根据已知目标存储分割带,分别进行其数据读取的动作。若欲存取的目标数据位于n个目标存储分割带中,则分别对这些目标存储分割带进行图4A所示的数据读取的步骤。等到相应于该逻辑位置区间的目标数据成功读取(或成功产生与其相同的冗余数据)时,则将其回复给存取要求应用端11(步骤S35),最后结束此一流程(步骤S36)。
在步骤S35,无论是回复成功读取的目标数据或产生的冗余数据,都是相应于数据读取请求的逻辑数据区间的欲读取数据。于此须注意的是,步骤S35所回复的数据或许是所有接收到的用户数据区段中的全部或一部份数据,这取决于数据读取请求中的逻辑地址块而定。
请参考图4A,各目标存储分割带的数据读取流程开始时(步骤S330),先根据解析出的逻辑地址块对应于该目标存储分割带的位置,分别为多个存储装置D1、D2、D3、D4的每一个存储装置,决定至少一欲读取的数据区段。然后,控制器121发出多个输出入请求(I/O request)至存储单元122中所有的存储装置D1、D2、D3、D4,以分别存取目标数据及其它位于相同存储分割带的相应数据(步骤S331)。
上述多个输出入请求(I/O request)包括至少一第一输出入请求以及至少一第二输出入请求,第一输出入请求为存取目标数据,第二输出入请求为存取其它位于相同存储分割带的数据。第一输出入请求与第二输出入请求都包含指示存储装置D1、D2、D3、D4读取一段实际存储地址块的数据的信息。值得注意的是,本发明实施例在步骤S331,同时发出输出入请求至存储单元122中所有的存储装置D1、D2、D3、D4,用以取得该目标存储分割带上所有的用户数据与同位数据。
由步骤S332开始等待接收存储装置D1、D2、D3、D4的回复数据,并进行其后的判断与处理;该回复数据可能是响应第一输出入请求或第二输出入请求。步骤S332可将接收到的回复数据存储于一个高速缓存空间(cachespace)中,以加速后续的处理。在步骤S332的等待过程中,控制器121可以单纯等待存储装置D1、D2、D3、D4的回应,或在另一实施例中,控制器121亦可主动检测数据是否已成功读取。
在以上的等待过程中,若有任何数据成功读取并回复给控制器121,则在步骤S333,判断是否所有的目标数据都已成功读取。步骤S333的判断结果,若否,则更进一步在步骤S334,判断其它已回传的数据是否已足以产生与目标数据相同的冗余数据。在步骤S334的判断结果,若是,则进行步骤S335的处理,若否,则回到步骤S332,继续等待其它数据回复。
于步骤S335,由冗余数据产生单元1213直接产生与该欲读取的目标数据相同的冗余数据(redundant data),并不等待读取超时的时间。当冗余数据成功产生,则进入步骤S336,判断该目标数据是否在冗余数据产生过程中已成功读取且回传。若此时该目标数据还未回传给控制器121,于本实施例,则中止(abort)该目标数据相对应的输出入请求(步骤S337),并将该冗余数据暂存于高速缓存(cache)中,以回复给存取要求应用端11(相对于第3图的步骤S35);若此时该目标数据已经回传给控制器121,则丢弃该冗余数据(步骤S338),并且结束此数据读取流程(步骤S339)。须注意的是,在冗余数据的产生过程中(步骤S335),控制器121持续判断是否所有的目标数据都已完成读取(步骤S333),此一判断过程不因开始产生冗余数据而停止。
在本发明的其它实施例中,请参考图4B,步骤S334的判断结果为是、至步骤S335的处理之前,更可以先等待一小段时间(步骤S340),然后再判断一次是否成功读取所有目标数据(步骤S341);如果步骤S341的判断结果为是,则至步骤S339,否则进入步骤S335。如此,也许可以使整体的效果更佳。举例来说,虽然有些情况下,读取目标数据的响应较慢,但也许在其它数据都回复后的一小段时间内(例如:1milli-second),目标数据也立即回复,如此一来,或许不直接进入步骤335产生冗余数据,而只是等待一小段时间,会更有效率。
在步骤S333,若判断的结果为是,表示已接收到欲读取的所有的目标数据,则可忽略冗余数据产生的流程,并且结束此一目标存储分割带(stripe)的数据读取流程(步骤S339)。
在步骤S333,当所有对应第一输出入请求的目标数据都已成功读取且回复,而尚有第二输出入请求未完成时,可视实际应用需求而采取以下两种做法之一:第一,继续完成第二输出入请求,并将读取得到的数据暂时存放在高速缓存(cache memory)中,如此一来,尤其是应用在「循序读取」(sequential read)时,可让后续的数据读取请求快速地被响应;第二,中止(abort)所有未完成的第二输出入请求,以适当地减少输出/输入(I/O)之传输量。须注意的是,即使选择第一种做法:继续完成未完成的第二输出入请求,也须在回复目标数据(或其对应之冗余数据)给存取要求应用端11之后,不使继续完成第二输出入请求的操作,影响到回复目标数据(或其对应之冗余数据)给存取要求应用端11的时间。
为让本发明更清楚易懂,以下更举出一个实例来说明上述方法的详细运作情形,此实例中包含两种可能的情境。请参考图3,在步骤S31,首先由存取要求应用端11发送一数据读取请求至控制器121,此数据读取请求包含读取一段逻辑地址块中的数据的信息。图5表示依据本发明一实施例的存储装置的存储空间与逻辑地址块的对应示意图,其中假设数据读取请求所包含的逻辑地址块相应于用户数据区段UD12,图中以斜线表示;而其它位于同一存储分割带的数据区段,则以圆点背景表示之。在步骤S32,依据数据读取请求中的逻辑地址块,决定目标存储分割带为Stripel。因此,由存储装置D1中的多个数据区段中决定存取用户数据区段UD11;由存储装置D2中的多个数据区段中决定存取用户数据区段UD12;由存储装置D3中的多个数据区段中决定存取用户数据区段UD13;以及由存储装置D4中的多个数据区段中决定存取同位数据区段PD14。在此实例中,欲读取数据所在的目标存储分割带只有一个,因此步骤S33(相应于第4A图或第4B之流程)只有针对一个目标存储分割带进行。
以图4A为例,在步骤S331,发出第一输出入请求至存储装置D2、以及第二输出入请求至存储装置D1、D3与D4,用以读取用户区段UD12中的目标数据,以及读取用户区段UD11、UD13与同位数据区段PD14中的其它相关数据。
在第一种情境中,假设于步骤S332先接收到用户数据区段UD11中的数据,其次是用户数据区段UD12。则在接收到用户数据区段UD12中的数据后,步骤S333的判断为已成功读取所有目标数据,于是结束数据读取流程(步骤S340),并回到图3,将已读取的目标数据UD12回复给存取要求应用端11(步骤S35),之后在步骤S36,结束此一流程。
在第二种情境中,假设存储装置D2因媒体错误或其它因素而迟迟没有响应,因此在步骤S332的等待过程中,依序接收到用户数据区段UD11、UD13、以及同位数据区段PD14中的数据,因此接下来直接进行步骤S335的处理,使用已接收到的用户数据区段UD11、UD13与同位数据区段PD14中的数据来计算出与用户区段UD12中的目标数据相同的冗余数据。当冗余数据成功产生欲回传前,先确认用户区段UD12中的目标数据是否已成功读取且回复(步骤S336)。以上判断的结果,若否,则在步骤S337,中止(abort)与该目标数据相应的输出入请求,并将成功产生的冗余数据回复给存取要求应用端11(步骤S35);若在冗余数据的产生过程中目标数据已成功读取且回复,则在步骤S338中丢弃产生的冗余数据。
再举例来说,请参阅图6,表示依据本发明实施例的存储装置的另一存储空间与逻辑地址块的对应示意图。以下的说明以图4A为例,并请同时参阅图3。若在步骤S32,分析数据读取请求的结果是要读取磁盘D2的数据区段UD12与UD22、磁盘D3的数据区段UD13、以及磁盘D1的数据区段UD21,在第6图中以斜线表示之。在此实例,欲读取数据分布在二个目标存储分割带中,因此步骤S33(相应于第4A图,或于另一实施例,相应于第4B图的流程)会同时针对该二个目标存储分割带分别进行。也就是,控制器121依据步骤S32的分析结果,会同时将第一输出入请求与第二输出入请求发送至所有磁盘D1、D2、D3、D4,以分别读取数据区段UD12、UD13、UD21与UD22的目标数据,以及分别读取数据区段UD11、PD14、PD23、UD24的其它相应数据;只是发出输出入请求之后的判断与处理,则是各目标存储分割带各自依据图4A的流程进行,其处理方式与上述图5的叙述类似,因此以下不再多做赘述。
本发明中将数据回复给存取要求应用端11的方式,取决于存取要求应用端11的可行做法,可以有数种实施例。在一实施例中,可等待所有的目标数据(可能分布在二个以上的目标存储分割带)皆已成功读取,再依序将之一起回复给存取要求应用端11。在另一实施例中,待各目标存储分割带相应于逻辑地址块的目标数据已成功读取(或其冗余数据已成功产生),在步骤S35,则各自将之回复给存取要求应用端11;以本例而言,当第二存储分割带(Strip2)的目标数据区段UD21与UD22皆成功读取(或其冗余数据皆成功产生)后,即先将其回复给存取要求应用端11。除了上述以目标存储分割带为单位回复数据外,在其它实施例中,亦可选择以数据区段为单位回复目标数据给存取要求应用端11。在又一实施例中,若目标数据区段UD12尚未读取完成,即使目标数据区段UD13已成功读取,也不宜将UD13先回复给存取要求应用端11,而必需将UD12读取成功,才回复给存取要求应用端11。
在本发明的其它实施例中,请参考图7,可以更将每一存储分割带(stripe)细分为多个子存储分割带(Sub-stripe),并以子存储分割带为数据存取的单位。以图7为例,若是用户定义一个存储分割带中每一数据区段的长度为64KB,将每一个存储分割带又均等分为四份,每一子存储分割带中的子数据区段长度则为16KB。如此一来,在此实施例,图3与图4A/图4B中的处理步骤,都将改以子存储分割带为处理单位。举例来说,在数据读取时,可能在分析数据读取请求中的逻辑地址块后(相应于第3图的步骤S32),得知目标数据位于用户数据区段UD11中的第三与第四个子用户数据区段、用户数据区段UD12中的四个子用户数据区段、以及用户数据区段UD13中的第一与第二个子用户数据区段,则控制器121会同时且分别对所有的磁盘装置D1、D2、D3、D4发出输出入请求,以读取各子存储分割带中的目标数据。其后续的处理方式与前述实施例相似,只是将数据读取的处理单位变更为子存储分割带,因此以下不再对其内容多做赘述。为了便于本发明之描述,本发明的存储分割带(Stripe)可包含一或多个子存储分割带(Sub-stripe);当存储分割带仅包含一个子存储分割带时,则每一数据区段仅包含一个子数据区段。
虽然本发明之实施例揭露如上,然其并非用以限定本发明,任何本领域普通技术人员,在不脱离本发明的精神和范围内,可做一些更动与润饰,因此本发明的保护范围应当以后附的权利要求所限定的为准。
Claims (22)
1.一种数据存取方法,由一控制器执行,用以读取多个存储装置中的数据,其方法包括:
接收一数据读取请求,该数据读取请求包含读取一逻辑地址块中的数据的信息;
依据该逻辑地址块,决定至少一目标数据所在的一子目标存储分割带,该子目标存储分割带包含至少一子用户数据区段与至少一子同位数据区段;
发出多个输出入请求至该多个存储装置,用以读取该至少一子用户数据区段与该至少一子同位数据区段中的数据,该多个输出入请求包含至少一第一输出入请求,用以读取该目标数据,以及至少一第二输出入请求,用以读取至少一其它相关数据;以及
进行一判断流程,包含一第一判断,判断该至少一目标数据是否已成功读取且回复,若否,则再执行一第二判断,判断已完成读取的该其它相关数据是否已足以计算产生与该至少一目标数据相同的冗余数据,若该第二判断的结果为是,则产生该冗余数据。
2.如权利要求第1项所述的数据存取方法,其中该数据读取请求自一存取要求应用端发出。
3.如权利要求第2项所述的数据存取方法,其中该存取要求应用端为一网络计算机、一迷你计算机、一大型主机、一笔记型计算机、一手机、一个人数字助理、一数字录像设备、或一数字音乐播放器。
4.如权利要求第1项所述的数据存取方法,其中若欲读取的数据已存储于一高速缓存空间中,则无需至该多个存储装置读取。
5.如权利要求第1项所述的数据存取方法,其中当该第一判断的判断结果为是,则在该至少一目标数据回复于一存取要求应用端后,继续完成该至少一第二输出入请求。
6.如权利要求第1项所述的数据存取方法,在产生与该目标数据相同的该冗余数据后,更执行一第三判断,判断该目标数据是否在冗余数据产生过程中已完成读取并回复,当该第三判断的判断结果为是,则丢弃该冗余数据;当该第三判断的判断结果为否,则将该冗余数据回复给一存取要求应用端。
7.如权利要求第1项所述的数据存取方法,其中更在产生该冗余数据的步骤前,更增加以下步骤:等待一小段时间,以及判断是否成功读取所有目标数据。
8.如权利要求第1项所述的数据存取方法,其中该同位数据区段中的数据,包含以镜射技术存储的备份数据。
9.如权利要求第1项所述的数据存取方法,其中该子目标存储分割带的大小更可扩大为一目标存储分割带的大小,每一该目标存储分割带包含多个数据区段,包含至少一用户数据区段与至少一同位数据区段,而该多个输出入请求是针对该多个数据区段而发出的。
10.一种存储子系统,包括:
一存储单元,包含多个存储装置;以及
一控制器,耦接于该存储单元,用以接收一数据读取请求,该数据读取请求包含读取一逻辑地址块中的数据的信息;依据该逻辑地址块,决定至少一目标数据所在的一子目标存储分割带,该子目标存储分割带包含至少一子用户数据区段与至少一子同位数据区段;发出多个输出入请求至该多个存储装置,用以读取该至少一子用户数据区段与该至少一子同位数据区段中的数据,该多个输出入请求包含至少一第一输出入请求,用以读取该目标数据,以及至少一第二输出入请求,用以读取至少一其它相关数据;以及进行一判断流程,包含一第一判断,判断该至少一目标数据是否已成功读取且回复,若否,则再执行一第二判断,判断已完成读取的该其它相关数据是否已足以计算产生与该至少一目标数据相同的冗余数据,若该第二判断的结果为是,则产生该冗余数据。
11.如权利要求第10项所述的存储子系统,其中该存储装置为一磁带机、一磁盘驱动器、一内存纪录装置、一光存储记录装置或于同一磁盘驱动器中的相应于单一读写头的一个扇区。
12.如权利要求第10项所述的存储子系统,其中该存储装置为一光纤信道磁盘驱动器、一小型计算机系统接口磁盘驱动器、一序列连接小型计算机系统接口磁盘驱动器、一序列先进技术磁盘驱动器、或一平行先进技术磁盘驱动器。
13.如权利要求第10项所述的存储子系统,其中该控制器为一磁盘阵列控制器。
14.如权利要求第10项所述的存储子系统,其中该控制器与该存储单元系通过光纤信道、小型计算机系统接口、序列连接小型计算机系统接口、序列先进技术接口、或平行先进技术接口的传输接口相耦接。
15.如权利要求第10项所述的存储子系统,其中该数据读取请求自一存取要求应用端发出。
16.如权利要求第15项所述的存储子系统,其中该存取要求应用端为一网络计算机、一迷你计算机、一大型主机、一笔记型计算机、一手机、一个人数字助理、一数字录像设备、或一数字音乐播放器。
17.如权利要求第10项所述的存储子系统,其中若欲读取的数据已存储在一高速缓存空间中,则无需至该多个存储装置读取。
18.如权利要求第10项所述的存储子系统,其中当该第一判断的判断结果为是,则在该至少一目标数据回复于一存取要求应用端后,继续完成该至少一第二输出入请求。
19.如权利要求第10项所述的存储子系统,在产生与该目标数据相同的该冗余数据后,更执行一第三判断,判断该目标数据是否在冗余数据产生过程中已完成读取并回复,当该第三判断的判断结果为是,则丢弃该冗余数据;当该第三判断的判断结果为否,则将该冗余数据回复给一存取要求应用端。
20.如权利要求第10项所述的存储子系统,其中更在产生该冗余数据的步骤前,更增加以下步骤:等待一小段时间,以及判断是否成功读取所有目标数据。
21.如权利要求第10项所述的存储子系统,其中该同位数据区段中的数据,包含以镜射技术存储之备份数据。
22.如权利要求第10项所述的存储子系统,其中该子目标存储分割带的大小更可扩大为一目标存储分割带的大小,每一该目标存储分割带包含多个数据区段,包含至少一用户数据区段与至少一同位数据区段,而该多个输出入请求是针对该多个数据区段而发出的。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US59727505P | 2005-11-21 | 2005-11-21 | |
US60/597,275 | 2005-11-21 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1971498A true CN1971498A (zh) | 2007-05-30 |
CN100454227C CN100454227C (zh) | 2009-01-21 |
Family
ID=37546308
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006101360635A Active CN100454227C (zh) | 2005-11-21 | 2006-10-20 | 数据存取方法及其存储子系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9442802B2 (zh) |
CN (1) | CN100454227C (zh) |
GB (1) | GB2432440B (zh) |
TW (1) | TWI350526B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015067073A1 (zh) * | 2013-11-07 | 2015-05-14 | 华为技术有限公司 | 一种数据操作的方法和设备 |
CN108717383A (zh) * | 2018-04-03 | 2018-10-30 | 华为技术有限公司 | 一种更新校验块的方法和设备 |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100547566C (zh) * | 2007-06-28 | 2009-10-07 | 忆正存储技术(深圳)有限公司 | 基于多通道闪存设备逻辑条带的控制方法 |
CN100530138C (zh) * | 2007-06-28 | 2009-08-19 | 忆正存储技术(深圳)有限公司 | 基于多通道闪存设备逻辑条带的自适应控制方法 |
EP2028593A1 (en) * | 2007-08-23 | 2009-02-25 | Deutsche Thomson OHG | Redundancy protected mass storage system with increased performance |
TWI345224B (en) | 2007-09-27 | 2011-07-11 | Quanta Comp Inc | Rotating parity redundant array of independent disks and method for storing parity the same |
US8095763B2 (en) * | 2007-10-18 | 2012-01-10 | Datadirect Networks, Inc. | Method for reducing latency in a raid memory system while maintaining data integrity |
US8661218B1 (en) | 2007-10-18 | 2014-02-25 | Datadirect Networks, Inc. | Method for reducing latency in a solid-state memory system while maintaining data integrity |
US8732426B2 (en) * | 2010-09-15 | 2014-05-20 | Pure Storage, Inc. | Scheduling of reactive I/O operations in a storage environment |
KR101826051B1 (ko) * | 2012-02-27 | 2018-02-07 | 삼성전자주식회사 | 비휘발성 메모리 장치의 제어 방법 및 비휘발성 메모리 시스템 |
TWI559133B (zh) | 2013-05-22 | 2016-11-21 | 祥碩科技股份有限公司 | 磁碟陣列系統及資料處理方法 |
TW201445429A (zh) | 2013-05-22 | 2014-12-01 | Asmedia Technology Inc | 磁碟陣列系統及資料處理方法 |
US20150169445A1 (en) | 2013-12-12 | 2015-06-18 | International Business Machines Corporation | Virtual grouping of memory |
JP6375886B2 (ja) * | 2014-11-14 | 2018-08-22 | 富士通株式会社 | パリティレイアウト決定プログラム、パリティレイアウト決定方法、ストレージ装置およびストレージシステム |
US9612756B1 (en) * | 2015-03-26 | 2017-04-04 | EMC IP Holding Company LLC | Data storage system with parallel handling of sub-I/O requests for individual host I/O requests |
CN106445749B (zh) * | 2015-05-12 | 2021-04-23 | 爱思开海力士有限公司 | 使用独立磁盘冗余阵列的动态自动调谐的最大延迟的减小 |
US9766837B2 (en) | 2015-06-10 | 2017-09-19 | Micron Technology, Inc. | Stripe mapping in memory |
US9934172B1 (en) | 2015-12-17 | 2018-04-03 | EMC IP Holding Company LLC | Data storage system with dynamic throttling of parallel sub-I/O request for individual host I/O requests |
US10037289B1 (en) | 2015-12-17 | 2018-07-31 | EMC IP Holding Company LLC | Data storage system with efficient processing of single mapping callback for host I/O requests |
US10761743B1 (en) | 2017-07-17 | 2020-09-01 | EMC IP Holding Company LLC | Establishing data reliability groups within a geographically distributed data storage environment |
US10768856B1 (en) * | 2018-03-12 | 2020-09-08 | Amazon Technologies, Inc. | Memory access for multiple circuit components |
US11436203B2 (en) | 2018-11-02 | 2022-09-06 | EMC IP Holding Company LLC | Scaling out geographically diverse storage |
US11748004B2 (en) | 2019-05-03 | 2023-09-05 | EMC IP Holding Company LLC | Data replication using active and passive data storage modes |
US11449399B2 (en) | 2019-07-30 | 2022-09-20 | EMC IP Holding Company LLC | Mitigating real node failure of a doubly mapped redundant array of independent nodes |
US11449248B2 (en) | 2019-09-26 | 2022-09-20 | EMC IP Holding Company LLC | Mapped redundant array of independent data storage regions |
US11435910B2 (en) | 2019-10-31 | 2022-09-06 | EMC IP Holding Company LLC | Heterogeneous mapped redundant array of independent nodes for data storage |
US11435957B2 (en) | 2019-11-27 | 2022-09-06 | EMC IP Holding Company LLC | Selective instantiation of a storage service for a doubly mapped redundant array of independent nodes |
US11112978B2 (en) * | 2020-02-04 | 2021-09-07 | EMC IP Holding Company LLC | Routing to obtain user data in a geographically distributed data storage environment |
US11507308B2 (en) | 2020-03-30 | 2022-11-22 | EMC IP Holding Company LLC | Disk access event control for mapped nodes supported by a real cluster storage system |
US11693983B2 (en) | 2020-10-28 | 2023-07-04 | EMC IP Holding Company LLC | Data protection via commutative erasure coding in a geographically diverse data storage system |
US11847141B2 (en) | 2021-01-19 | 2023-12-19 | EMC IP Holding Company LLC | Mapped redundant array of independent nodes employing mapped reliability groups for data storage |
US11625174B2 (en) | 2021-01-20 | 2023-04-11 | EMC IP Holding Company LLC | Parity allocation for a virtual redundant array of independent disks |
US11354191B1 (en) | 2021-05-28 | 2022-06-07 | EMC IP Holding Company LLC | Erasure coding in a large geographically diverse data storage system |
US11449234B1 (en) | 2021-05-28 | 2022-09-20 | EMC IP Holding Company LLC | Efficient data access operations via a mapping layer instance for a doubly mapped redundant array of independent nodes |
US11567673B1 (en) * | 2021-08-18 | 2023-01-31 | International Business Machines Corporation | Adaptive, proactive raid rebuild |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4864291A (en) * | 1988-06-21 | 1989-09-05 | Tandem Computers Incorporated | SCSI converter |
US5522031A (en) * | 1993-06-29 | 1996-05-28 | Digital Equipment Corporation | Method and apparatus for the on-line restoration of a disk in a RAID-4 or RAID-5 array with concurrent access by applications |
JPH08171463A (ja) * | 1994-12-20 | 1996-07-02 | Hitachi Ltd | ディスクアレイ装置におけるデータ読み出し方法およびディスクアレイ装置 |
US5758057A (en) * | 1995-06-21 | 1998-05-26 | Mitsubishi Denki Kabushiki Kaisha | Multi-media storage system |
JPH09237165A (ja) | 1996-03-01 | 1997-09-09 | Matsushita Electric Ind Co Ltd | ディスクアレイ装置 |
JPH09305328A (ja) * | 1996-05-13 | 1997-11-28 | Fujitsu Ltd | ディスクアレイ装置 |
US6799283B1 (en) * | 1998-12-04 | 2004-09-28 | Matsushita Electric Industrial Co., Ltd. | Disk array device |
US6321345B1 (en) * | 1999-03-01 | 2001-11-20 | Seachange Systems, Inc. | Slow response in redundant arrays of inexpensive disks |
US6748488B2 (en) * | 2001-09-28 | 2004-06-08 | Sun Microsystems, Inc. | Storage array having multiple erasure correction and sub-stripe writing |
JP3579389B2 (ja) * | 2001-11-30 | 2004-10-20 | 株式会社東芝 | ディスクアレイ装置及び同装置におけるデータ復旧方法 |
US6789165B2 (en) * | 2002-05-10 | 2004-09-07 | International Business Machines Corporation | Data storage array method and system |
US20050152110A1 (en) * | 2004-01-13 | 2005-07-14 | Winston Chen | Portable raid device |
CN100396065C (zh) * | 2005-01-14 | 2008-06-18 | 清华大学 | 一种iSCSI存储系统的实现方法 |
-
2006
- 2006-10-02 TW TW095136537A patent/TWI350526B/zh active
- 2006-10-20 CN CNB2006101360635A patent/CN100454227C/zh active Active
- 2006-10-25 US US11/552,631 patent/US9442802B2/en active Active
- 2006-10-31 GB GB0621675A patent/GB2432440B/en active Active
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015067073A1 (zh) * | 2013-11-07 | 2015-05-14 | 华为技术有限公司 | 一种数据操作的方法和设备 |
US10157000B2 (en) | 2013-11-07 | 2018-12-18 | Huawei Technologies Co., Ltd. | Data operation method and device |
CN108717383A (zh) * | 2018-04-03 | 2018-10-30 | 华为技术有限公司 | 一种更新校验块的方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
GB0621675D0 (en) | 2006-12-06 |
GB2432440A (en) | 2007-05-23 |
TW200721125A (en) | 2007-06-01 |
US20070115731A1 (en) | 2007-05-24 |
CN100454227C (zh) | 2009-01-21 |
GB2432440B (en) | 2011-03-16 |
TWI350526B (en) | 2011-10-11 |
US9442802B2 (en) | 2016-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100454227C (zh) | 数据存取方法及其存储子系统 | |
KR100255847B1 (ko) | 레이드 제어기에서의 스트라이프 기록 방법 | |
CN100407166C (zh) | 改善数据读取效率的方法及其储存系统 | |
US6895468B2 (en) | Log-structured block system and method | |
JP3135751B2 (ja) | データ記憶装置 | |
CN100561442C (zh) | 执行容错磁盘阵列的预先重建 | |
US7076605B1 (en) | Method and apparatus for writing data to a storage device | |
Uysal et al. | Using {MEMS-Based} Storage in Disk Arrays | |
WO2002091111A3 (en) | Parity mirroring between controllers in an active-active controller pair | |
US20090198885A1 (en) | System and methods for host software stripe management in a striped storage subsystem | |
CN102681794A (zh) | 基于双控制器实现磁盘冗余阵列保护的方法及系统 | |
US7454686B2 (en) | Apparatus and method to check data integrity when handling data | |
CN108733326B (zh) | 一种磁盘处理方法及装置 | |
US6658528B2 (en) | System and method for improving file system transfer through the use of an intelligent geometry engine | |
US8949528B2 (en) | Writing of data of a first block size in a raid array that stores and mirrors data in a second block size | |
US20160034215A1 (en) | Indication of a destructive write via a notification from a disk drive that emulates blocks of a first block size within blocks of a second block size | |
CN101382874B (zh) | 一种raid5磁盘阵列中写入数据的方法和装置 | |
US8898392B2 (en) | Data storage system including backup memory and managing method thereof | |
US9164838B2 (en) | Disk array device and disk array device control method | |
US20030225794A1 (en) | Methods and structure for multi-drive mirroring in a resource constrained raid controller | |
JP5292813B2 (ja) | ストレージ装置と方法とプログラム | |
CN104731672B (zh) | 数据存储的方法及设备 | |
JP2003044227A (ja) | 情報記録装置 | |
CN104461394A (zh) | 一种raid及从其读取数据的方法 | |
JP2004126850A (ja) | ディスクアレイ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |