CN101082853A - 闪速存储器存储系统 - Google Patents
闪速存储器存储系统 Download PDFInfo
- Publication number
- CN101082853A CN101082853A CN200710001906.5A CN200710001906A CN101082853A CN 101082853 A CN101082853 A CN 101082853A CN 200710001906 A CN200710001906 A CN 200710001906A CN 101082853 A CN101082853 A CN 101082853A
- Authority
- CN
- China
- Prior art keywords
- fmd
- parity group
- flash memory
- storage system
- data
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
Abstract
使具备多个闪速存储器的大容量存储系统高度可靠。闪速存储器存储系统具有:多个闪速存储器器件,其中具有多个闪速存储器;具有I/O处理控制部的控制器,所述I/O处理控制部,在多个闪速存储器器件中,访问通过从外部装置接收到的I/O请求中所指定的访问目的地而确定的闪速存储器器件。可以由具有相同内部结构的闪速存储器器件来构成奇偶校验组。
Description
技术领域
本发明涉及具有多个存储器件的存储系统。
背景技术
一般,在信息系统中具有使用HDD(硬盘驱动器)来作为存储器件的存储系统,该存储系统,经由存储区域网络(SAN)被多个上位装置(例如主机)访问。在存储系统中,通过RAID(Redundant Array of Inddpendent(orInexpensive)Disks)技术来进行存储控制。从而实现了高度可靠的信息系统。
另一方面,近年来,由于闪速存储器(flash memory)的位成本(bit cost)0不断下降,闪速存储器逐渐成为有力的存储器件。在专利文献1中公开的技术中公开了,克服作为闪速存储器的缺点的、由于重写次数增加而导致写失败的对策。
【专利文献1】特许3507132号
发明内容
可以考虑如下的存储系统:代替HDD或在HDD以外搭载有闪速存储器,在闪速存储器中存储被写入上位装置或被读出的数据。可以期待通过具备大量的闪速存储器,实现具有与基于多个HDD的存储系统相同程度存储容量的存储系统。
但是,在专利文献1中,尽管公开了应对重写次数增加的对策,但没有公开应对一个部件故障(闭塞)的对策。当没有这种对策时,可能会由于一个部件故障而导致存储在闪速存储器中的数据丢失,因此,即便可以使具有多个闪速存储器的存储系统容量增大,也无法实现存储系统的高可靠性。
本发明的目的在于,使具有多个闪速存储器的大容量存储系统具有高可靠性。
根据本发明的闪速存储器存储系统,是从外部装置接收并处理I/O请求的存储系统,其具有:多个具备若干闪速存储器的闪速存储器器件(FMD);具有I/O处理控制部的控制器,所述I/O处理控制部对所述多个FMD中的、根据所述接收到的I/O请求指定的访问目的地所确定的FMD进行访问。
在第一实施方式中,可以有两个以上的、由所述多个FMD中两个以上FMD构成的奇偶校验组(parity group)。在所述多个FMD中,可以含有内部结构不同的FMD。各奇偶校验组可以由相同内部结构的FMD构成。
在第二实施方式中,在所述第一实施方式中,所述内部结构可以是以下(1)至(3)中至少一种:
(1)FMD中所具备的闪速存储器的数量、
(2)FMD中所采用的块大小、
(3)FMD中所具备的多个闪速存储器的总存储容量。
在第三实施方式中,在所述第一实施方式中,作为所述内部结构,可以是包含第一种、第二种以及第三种FMD类型中至少一种的、多个种类的FMD类型。作为所述第一种FMD类型的第一FMD,可以具备多个闪速存储器;和具有第一FMD控制部的内部控制器,所述第一FMD控制部,控制对该多个闪速存储器的输入输出。在所述FMD为该第一FMD的情况下,所述第一FMD控制部,可以根据来自所述I/O处理控制部的访问,控制所述输入输出。作为所述第二种FMD类型的FMD的第二FMD,可以具备多个所述第一FMD;和根据来自所述I/O处理控制部的访问,控制对所述多个第一FMD的访问的第二FMD控制部。所述多个第一FMD分别被所述控制器识别。各第一FMD的所述第一FMD控制部,可以根据来自所述第二FMD控制部的访问,控制所述输入输出。作为所述第三种FMD类型的FMD的第三FMD,可以具备多个所述第一FMD;和根据来自所述I/O处理控制部的访问,控制对于所述多个第一FMD的访问的第三FMD控制部。所述多个FMD被所述控制器识别为一个器件。各第一FMD的所述第一FMD控制部,可以根据来自所述第三FMD控制部的访问,控制所述输入输出。
在第四实施方式中,在所述第三实施方式中,所谓的所述内部结构还可以是,所述内部控制器、所述第二FMD控制部以及所述第三FMD控制部中至少一个的性能。
在第五实施方式中,在所述多个FMD中,可以包含供货商和/或制造年度不同的FMD。
在第六实施方式中,在所述第一实施方式中,在所述多个FMD以外,还可以共存一个或多个盘型存储装置。所述一个或多个盘型存储装置,可以均不存在于包含所述FMD的所述奇偶校验组中。
在第七实施方式中,各FMD可以检测自身的空存储容量的不足,并可以进一步具有在检测出该不足的情况下,通知规定消息的信息通知部。所述控制器,可以执行基于所述规定消息的控制。
在第八实施方式中,在所述第一实施方式中,所述控制器还可以具备结构控制部。所述结构控制部,在检测出所述多个FMD中某个FMD闭塞的情况下,可以确定该闭塞的FMD所属于的奇偶校验组,检索适合于该奇偶校验组的其它FMD,恢复所述闭塞的FMD内的数据,将该恢复的数据写入所找出的其它FMD。
在第九实施方式中,所述两个以上的奇偶校验组中的至少一个,可以由两个以上的第二FMD构成。所述第二FMD可以具备:多个第一FMD;和根据来自所述I/O处理控制部的访问,控制对所述多个第一FMD的访问的第二FMD控制部。所述多个第一FMD分别被所述控制器识别。所述第一FMD可以具备:多个闪速存储器;和具有第一FMD控制部的内部控制器,所述第一FMD控制部控制对于该多个闪速存储器的输入输出。各第一FMD的所述第一FMD控制部,可以根据来自所述第二FMD控制部的访问,控制所述输入输出。
在第十实施方式中,在所述第九实施方式中,所述控制器,关于由所述两个以上的第二FMD构成的奇偶校验组,可以在第一FMD单元中管理有无故障。
在第十一实施方式中,在所述第九实施方式中,由所述两个以上的第二FMD构成的奇偶校验组,可以由多个子奇偶校验组构成。各子奇偶校验组可以由所述两个以上的第二FMD中至少一个中的两个以上的第一FMD构成。通过所述各子奇偶校验组,提供一个以上的逻辑存储单元。即使在所述多个子奇偶校验组中的某子奇偶校验组内,无法恢复数据的情况下,若所述多个子奇偶校验组中存在没产生故障的其它子奇偶校验组,则所述I/O处理控制部可以不闭塞该其它子奇偶校验组上存在的存储单元地进行输入输出。
在第十二实施方式中,在所述第九实施方式中,由所述两个以上第二FMD构成的奇偶校验组,可以由多个子奇偶校验组构成。各子奇偶校验组,可以由所述两个以上的第二FMD中分别不同的第二FMD中存在的第一FMD构成。
在第十三实施方式中,在所述第九实施方式中,在至少一个第二FMD中,可以具有不属于奇偶校验组的备用第一FMD。所述控制器可以具有结构控制部。在某第二FMD中产生需要的情况下,该结构控制部可以使用该第二FMD中存在的所述备用第一FMD。
在第十四实施方式中,在所述第十三实施方式中,在产生所述需要的第二FMD中,不存在所述备用第一FMD的情况下,所述结构控制部可以使用其它第二FMD中存在的所述备用第一FMD。
在第十五实施方式中,在所述第十三实施方式中,在产生所述需要的第二FMD中不存在所述备用第一FMD的情况下,所述结构控制部可以检索适合于该第二FMD所属的奇偶校验组的其它第二FMD,将所述第二FMD内的数据写入所述其它第二FMD,闭塞所述第二FMD。
在第十六实施方式中,所述控制器可以具备结构控制部。该结构控制部,可以检查作为奇偶校验组的构成要素从所述外部装置指定的多个FMD各个的内部结构是否相同,在不同的情况下可以向所述外部装置输出警告。
在第十七实施方式中,由所述多个FMD提供多个逻辑存储单元,各存储单元的块大小小于各FMD的块大小。
在第十八实施方式中,还可以具备高速缓冲存储器。在所述I/O请求为读请求的情况下,所述I/O处理控制部可以根据所述读请求,从所述多个FMD中读出数据,将读出的数据暂时存储在所述高速缓冲存储器之后,将在所述高速缓冲存储器中存储的数据发送至所述外部装置,当将所述读出的数据存储在所述高速缓冲存储器时,可以检测所述高速缓冲存储器中存储的数据是否正确。
在第十九实施方式中,可以将多个地址空间层次化。各层中的块大小可以不同。作为层,有:闪速存储器、FMD、由两个以上FMD构成的奇偶校验组、和提供给所述外部装置的逻辑存储单元。
在第二十实施方式中,所述FMD可以具有与盘接口具有互换性的I/O接口。
在第二十一实施方式中,所述FMD可以具备内部控制器,所述内部控制器具有控制对各闪速存储器的输入输出的FMD控制部。所述FMD控制部,在闪速存储器中写入数据的情况下,可以按照规定的规则,将数据写入到最近写入的闪速存储器以外的闪速存储器中。另外,在这种情况下,所述FMD控制部可以使闪速存储器中的更新前的块为空区域。另外,为了能够以擦除命令来对作为空区域的块进行写入,所述FMD控制部能够以集中了多个块的区段(segment)单位来移动块数据,将整个区段作为空区域,来执行擦除命令。
也可以将上述各部称为各单元。各部或各单元,可以通过硬件(例如,电路)、计算机程序、或它们的组合(例如,通过读取计算机程序来执行的一个或多个CPU)来实现。可以从计算机上所具备的存储资源(例如存储器)读取各计算机程序。在该存储资源中,可以通过CD-ROM或DVD(DigitalVersatile Disk)等存储介质来进行安装,也可以通过因特网或LAN等通信网络来进行下载。
另外,上述的控制器以及内部控制器中的至少一个,可以由一个或多个硬件资源构成。具体而言,例如可以由一个或多个电路板构成。
根据本发明,可以使具有多个闪速存储器的大容量存储系统具有高可靠性。
附图说明
图1是表示本发明的一个实施方式的信息系统的硬件结构的一例的图。
图2是表示FMD的硬件结构和软件结构各一例的图。
图3是表示本实施方式的概要的图。
图4是表示分别存在于主机1100和存储系统1000中的计算机程序和信息的图。
图5是表示在控制器1010中保存的FMD信息4050的结构例的图。
图6是表示PG结构信息4060的结构例的图。
图7是表示内部LU结构信息4070的结构例的图。
图8表示RAID1+0的奇偶校验组的地址空间。
图9表示RAID5的奇偶校验组的地址空间。
图10表示图8的地址空间中的高速缓冲存储器(cache)使用例。
图11表示图9的地址空间中的高速缓冲存储器使用例的一部分。
图12表示图9的地址空间中的高速缓冲存储器的使用例的剩余部分。
图13表示LU路径定义信息4080的结构例。
图14是表示在结构控制程序4030中执行的、奇偶校验组定义处理的流程图。
图15是表示在结构控制程序4030中执行的、内部LU定义处理的流程图。
图16是表示在结构控制程序4030中执行的、LU路径定义处理的流程图。
图17是I/O处理程序4010在接收到写请求的情况下进行的处理的流程图。
图18表示高速缓冲存储器控制程序4020重复执行的奇偶校验位生成和降级(destaging)的步骤。
图19表示I/O处理程序4010在接收到读请求的情况下进行的处理的流程的一例。
图20表示地址空间的层次结构的一例。
图21表示作为FMD1030的变更之一的SFMD1030的结构例。
图22表示作为FMD1030的变更之一的multi-LU-FMD1030(3)的结构例。
图23表示由图22的multi-LU-FMD1030(3)的FMD1030构成的子奇偶校验组的一例。
具体实施方式
以下,参照附图,说明本发明的实施方式。
<1.信息系统的结构>
图1是表示本发明的一个实施方式的信息系统的硬件结构的一例的图。
信息系统,例如,由存储系统1000、主计算机(以后简称为主机)1100以及管理服务器1200构成。存储系统1000、主机1100和管理服务器1200的数量,分别可以为一个以上。存储系统1000和主机1100,通过I/O网络1300互相连接。存储系统1000和管理服务器1200,通过管理网络(未图示)或I/O网络1300相互连接。
在主机1100中存在主机内部网络1104,在该网络1104上连接有处理器(在图中简记为Proc)1101、存储器(在图中简记为Mem)1102、I/O端口(在图中简记为I/OP)1103。管理服务器1200也可以具有和主机1100相同的硬件结构。
管理服务器1200具有显示装置,在该显示装置上可以显示存储系统1000的管理用画面。另外,管理服务器1200,可以从用户(例如管理服务器1200的操作员)接受管理操作请求,并将该接受的管理操作请求,发送至存储系统1000。管理操作请求是用于操作存储系统1000的请求,例如,是奇偶校验组生成请求、内部LU生成请求、以及路径定义请求。在后面,对各个请求进行描述。
I/O网络1300,首先考虑基于光纤通道的连接,但除此以外,也考虑FICON(FIbre CONnection:注册商标)或Ethernet(注册商标)和TCP/IP和iSCSI的组合、或Ethernet和NFS(Network File System)或CIFS(CommonIntemet File System)等网络文件系统的组合。而且,只要是可以转发I/O请求的通信装置,I/O网络1300也可以是上述以外的情况。
存储系统1000具备:控制器(图中记为CTL)1010、高速缓冲存储器(图中记为Cache/Shared Mem)1020、多个闪速存储器器件(Flash Memory Device:以后有时简称为FMD)1030。作为理想的方式,控制器1010和高速缓冲存储器1020分别由多个组件构成。原因在于,即使在组件(component)单元中发生故障而闭塞的情况下,也可以使用剩余的组件来继续接受以读或写为代表的I/O请求。
控制器1010是对存储系统1000的动作进行控制的装置(例如,电路板)。在控制器1010中有内部网络1016,在该网络1016上,连接有I/O端口1013、高速缓冲存储器端口(图中记为CP)1015、管理端口(图中记为MP)1016、后端端口(图中记为B/EP)1014、处理器(例如CPU)1011以及存储器1012。控制器1010和高速缓冲存储器1020,通过存储内部网络1050相互连接。另外,控制器1010和各FMD1030,通过多个后端网络1040相互连接。
此外,主机1100和存储系统1000的内部网络,理想的是,具有比I/O端口1013的转发频带宽的频带,另外,也可用总线或开关型的网络来代替全部或一部分所述内部网络。另外,在图1中,虽然在控制器1010中存在一个I/O端口1013,但实际上,在控制器1010中可以存在多个I/O端口1013。
通过以上的硬件结构,存储系统1000的FMD1030内保存的全部或一部分数据,可以由主机1100读出或写入。
图4是表示分别存在于主机1100和存储系统1000中的计算机程序和信息的图。
在控制器1010中,通过处理器1011、存储器1012、I/O端口1013、后端端口1014、高速缓冲存储器端口1015中的至少一个,来保存FMD信息4050、PG结构信息4060、内部LU结构信息4070和LU路径信息4080,且,执行I/O处理程序4010、高速缓冲存储器控制程序4020和结构控制程序4030。此外,在控制器1010中保存的信息的一部分或全部,也可以被保存在存储系统1000内,控制器1010外部的区域(例如,高速缓冲存储器1020、或FMD1030的一部分)中。
以下,在以程序为主语的情况下,实际上是通过执行该程序的处理器来进行处理。
I/O处理程序4010,从主机1100接受I/O请求(例如,读命令或写命令),执行遵从该I/O请求的处理。具体而言,例如,I/O处理程序4010,将保存在高速缓冲存储器1020中的数据(遵从读命令的读出对象数据),转发至主机1100,或者将从主机1100接收到的数据(遵从写命令的写入对象数据),保存在高速缓冲存储器1020中。此外,在来自主机1100的I/O请求为块访问形式的情况下,I/O处理程序4010,也可以进行用于提供作为访问对象的逻辑卷(例如,SCSI中的逻辑单元(Logical Unit:LU))的处理。另外,在来自主机1100的I/O请求为文件形式的情况下,I/O处理程序4010,可以进行用于提供作为访问对象的文件或目录的处理。此外,I/O处理程序4010,为了提供所述以外的I/O请求(例如,数据库查询、或CKD形式的I/O请求)的访问,也可以进行必要的处理。
高速缓冲存储器控制程序4020,可以和I/O处理程序4010联动或独立地,将FMD1030所保存的数据向高速缓冲存储器1020复制(包括移动),或者,将高速缓冲存储器1020所保存的数据向FMD1030复制。高速缓冲存储器控制程序4020,作为用于提高可靠性的处理,例如,还根据在高速缓冲存储器1020保存的数据,对RAID所代表的冗余数据进行生成和/更新。
结构控制程序4030,可以应答结构变更和/或结构参照的请求,对FMD信息4050、PG结构信息4060、内部LU结构信息4070以及LU路径信息4080中至少一个,进行参照和/或更新的处理。结构变更和/或结构参照的请求,例如,从管理服务器1200、主机1100以及其它计算机中至少一个被发送。
FMD信息4050包含与FMD1030相关的信息。PG结构信息4060,包含奇偶校验组(Parity Group:以后有时简称为PG)的结构信息。内部LU结构信息4030,包含用于将奇偶校验组中包含的FMD的一部分或全部区域,构成为内部的逻辑单元(以后,简称为“内部LU”)的信息。LU路径信息包含,表示内部LU、和I/O端口1013提供给主机1100的LU之间的对应关系的信息。此外,在以后的说明中,以内部LU对应于一个奇偶校验组的区域的情况为中心进行说明,但本发明不限于此。也可以通过从多个奇偶校验组的区域Concatenate或进行条带化(striping)来构成内部LU。
在主机1100中,通过处理器1101、存储器1102和I/O端口1103中的至少一个,OS4101、文件系统4102和应用程序(以后简称为应用)4103中的至少一个被执行。
应用4103是如下的程序:通过依赖于OS4101或文件系统4102,在读写文件等数据的同时,根据来自用户或其它计算机的请求进行业务处理等的程序(例如,Web服务器程序或数据库管理程序)。
OS4101,可以将从应用4103或文件系统4102发送的I/O请求,发送至存储系统1000的I/O端口1013,或者从存储系统1000接收数据。文件系统4102,将来自应用的文件形式的I/O请求,变换为块(block)形式的I/O请求或网络文件系统协议形式的I/O请求,并请求将I/O请求转发至OS4101。
此外,主机1100也可以执行除此以外的程序。另外,主机1100,除块I/O请求或文件I/O请求以外,也可以发送或接收数据库查询或CKD形式的请求。另外,包含在主机1100或控制器1010所执行的OS或文件系统的程序,可以通过硬件实现其一部分或全部的处理。
<2.本实施方式的概要>
闪速存储器(以后有时简称为FM)和HDD不同,由于不存在磁头寻道或旋转等待,所以是适用于随机访问的块型存储器件。但是,闪速存储器,在封装(作为半导体部件形式的提供形态,以下也称为FM封装)单元中,数据容量和物理大小比HDD小。因此,在HDD的更换中,维护人员或用户可以用手拔出HDD,但在试图在封装单元中更换闪速存储器的情况下,需要通过钳子等特殊工具来进行更换,显然是不现实的。因此,为了能够更换存储系统1000中的全体FM封装,需要重新考虑FM封装的配置方法。
因此,在本实施方式中,使多个闪速存储器封装(以后,有时简称为FMP)成为一个模块。该模块为FMD1030。FMD1030是与一个FM封装相比数据容量和物理大小都增加了的维护部件。理想的是,FMD1030具有与HDD接口有互换性的I/O接口,通过成为可以被内置于内置有HDD的部位的形状,存储系统的维护所需的作业的一部分或全部,可以与HDD的情况下相同地进行。
而且,在本实施方式中,出于避免在FMD1030中发生故障的情况下数据消失和提高I/O性能等理由,以一个以上(理想的是多个)FMD来构成奇偶校验组。
此外,在这种情况下,当I/O性能(例如,响应时间、转发频带、IOPS(每1秒的I/O请求的处理数)等)差别很大的FMD1030构成奇偶校验组时,尽管作为一个LU被提供给主机1100,根据基于I/O请求访问的地址,I/O性能会发生变化。在搭载了HDD的存储系统中,作为避免I/O性能的变化的方法,考虑了例如,以I/O性能相同或相近的HDD来构成奇偶校验组的方法。为了实现该方法,例如,使用种类(例如,型号或支持接口)相同或相近的HDD,或者,使用性能(例如,转速或磁头移动时间)相同或相差很小的HDD,来构成奇偶校验组。
但是,FMD,由于是由半导体构成的存储器件,所以没有转速和磁头移动时间。
因此,在本实施方式中,作为这种性能关联参数,使用FMD中包含的闪速存储器封装的数量。其原因在于,FMD1030的I/O端口的极限性能,比FMP单元的极限性能高,所以存在如下趋势,即,FMP数高的FMD1030,I/O性能更高。
图3是表示本实施方式的概要的图。
以存储系统1000中具有4个相同容量的FMD1030-1~1030-4的情况为例进行说明。在此,FMD1030-1和FMD1030-2,在内部具有两个FMP,FMD1030-3和FMD1030-4,在内部具有4个FMP。
控制器1010,在定义了奇偶校验组结构的情况下,通过从各个FMD取得与FMD的结构相关的信息(以下,FMD的结构信息,例如,FMP的数量或型号),如图中的奇偶校验组1、2那样,生成作为具有相同FMP数的FMD的集合的奇偶校验组。控制器1010还可以将奇偶校验组的一部分区域作为逻辑单元,提供给主机。由此,可以接受从主机对该逻辑单元的访问。
此外,在存储系统1000中,通过上述奇偶校验组1和奇偶校验组2的结构,可以创建存储层次。作为这种情况下的恰当应用,例如,控制器1010或主机1100可以进行控制,以使更新频繁的数据被存储在FMP数量多的奇偶校验组2中,与之相比,更新不频繁的数据,被存储在FMP数少的奇偶校验组1中。
此外,一个存储系统1000上搭载的各FMD1030的FMP数也可以相同,但是,由于以下举例说明的理由,很多情况下,具有不同FMP数的FMD1030共存于一个存储系统1000中。
(共存理由1)存储系统1000一般为大规模系统。例如,在大规模企业存储中,由于需要搭载大量的FMD,所以内部结构不同的FMD共存来使用。
(共存理由2)FMP的每个供货商的制造能力不同。在这种情况下,由于每个供货商可以在FMP中内置的存储容量不同,所以,即使制造了相同容量的FMD,在FMD上所搭载的FMP数量也不同。因此,作为维护作业而进行FMD的更换作业的情况下,当使用不同供货商的相同容量的器件时,有时FMP的数量不同,性能发生变化。
(共存理由3)FMP的制造时期不同。即使由相同供货商进行制造,随着半导体技术的进步,FMP中可以内置的存储容量也不相同,所以即使是相同供货商的相同容量的FMD,在FMD中所搭载的FMP数量也不相同。因此,在作为维护作业而进行FMD的更换作业的情况下,例如,即使使用了相同供货商的相同容量的器件,若制造时期不同,有时FMP的数量也不同,性能也发生变化。具体而言,考虑到以下情况,例如,在制造年度不同的FMD共存的情况下,在维护中,将制造年度最早的FMD,更换为存储系统中没有的、最新的制造年度的FMD。
另外,虽未图示,但在存储系统1000中,可以是FMD1030和HDD共存的结构。在这种情况下,由于在HDD和FMD1030之间I/O特性(例如,随机访问或顺序访问、写多或读多)不同,所以可以由HDD来构成奇偶校验组,也可以由FMD构成本实施方式中说明的奇偶校验组。即,HDD的奇偶校验组和FMD的奇偶校验组可以共存于一个存储系统1000中。
此外,根据今后的技术发展方向,不是闪速存储器封装的数量,而是闪速存储器封装内部的控制器的性能(特别是,例如处理器的性能)成为FMD的I/O性能的瓶颈。为了解决该问题,可以将与有关以后说明的信息或处理的闪速存储器封装的数量相关的部分置换为FMD内部的控制器性能。例如,可以考虑将FMD内部的控制器的性能提供给外部,控制器1010以FMD内部的控制器性能相同(不仅包括完全相同,也包括相近)的FMD来构成奇偶校验组的方法。
<3.详细>
<3.0.块大小>
在开始更详细的说明之前,使用图20对本实施方式中的块大小进行说明。在本实施方式中,地址空间(确切地说,指器件的识别符和器件内的地址空间)分为以下4层,在各层中可以采用不同的块大小。
(层1)在访问FMP时所使用的地址空间。在以后的说明中,在明确表示本层时,有时在单词的末尾添加“P”。
(层2)在访问FMD1030时所使用的地址空间。FMD1030有时采用和FMP不同的块大小。原因在于,FMD1030由多个FMP构成,以及为了避免后述的闪速存储器的特征。在以后的说明中,当明确表示本层时,有时在单词的末尾添加“D”。
(层3)用于使控制器1010管理高速缓冲存储器1020上的数据的、分配给奇偶校验组的地址空间。在本实施方式中考虑到,具有各种块大小的FMD1030与控制器1010相连。因此,在I/O处理或高速缓冲存储器控制处理中,控制器1010能够以规定的块大小(例如,作为SCSI中最一般的最小块大小的512字节)将地址空间分配给奇偶校验组,以便可以尽量忽略那样不同的块大小。因此,在高速缓冲存储器1020和FMD1030之间复制数据的缓冲(staging)处理或降级(destaging)处理的时刻,进行块大小的变换。在以后的说明中,当明确表示本层时,有时在单词的末尾添加“G”。
(层4)在访问LU(或者后述的内部LU)时所使用的地址空间。由于有时向主机1100提供512字节的块大小以外的LU,因此采用与高速缓冲存储器级别不同的块大小。在以后的说明中,当明确表示本层时,有时在单词的末尾添加“L”。此外,有时在层1至层4的各块中包含控制用数据或冗余码(例如,控制器1010发送I/O请求,以便在FMD1030的块“D”中一起保存数据和冗余码)。
<3.1.FMD>
<3.1.1概要>
图2是表示FMD的硬件结构以及软件结构各自的一例的图。
FMD1030具备I/O端口2030、FMD控制器2010和多个FMP2020。I/O端口2030与后端网络1040和FMD控制器2010相连。FMD控制器2010与多个FMP2020相连。
此外,理想的是FMD1030具有多个I/O端口2030。原因在于,由于将后端网络1040冗余化,冗余的各个后端网络1040以独立的部件与FMD1030连接的情况,对于维持冗余性是理想的。
然而,在所述的特征以外,FMP2020还具有在HDD或DRAM(DynamicRandom Access Memory)中没有的、以下举例说明的(A1)至(A4)的特征。
(A1)访问单位为块。
(A2)在更新块数据的情况下,需要使用在集中了多个块的段单位中删除数据的擦除命令。
(A3)当对相同块重复更新时,更新处理会失败。
(A4)以更新为契机,有时发生其它块的数据损坏。
为了进行考虑了这些特征的I/O处理(根据来自控制器1010的I/O请求,更新或读出数据等),在FMD控制器2010中配备例如FMDI/O处理程序2011、FMD内部结构信息通知程序2014、FMD地址变换信息2012或FMD内部结构信息2013。另外,鉴于上述特征,FMD1030通过向控制器1010报告比多个FMP2020的总存储容量小的存储容量,可以确保备用(spare)区域。
FMD地址变换信息2012,包含FMD控制器2010接收的I/O请求中所包含的块地址与FMP2020的块的对应关系。例如,FMD地址变换信息2012,在各逻辑块地址单元中具有以下举例说明的种类(B1)和(B2)的信息。
(B1)实际保存地址“D”的数据的FMP的识别符和地址“P”。
(B2)参照地址“D”的次数。
FMD内部结构信息2013是管理各闪速存储器封装的故障状态的信息,理想的是,在集中了一个以上各FMP2020内的段的区域单元中保存以下举例说明的种类(C1)以及(C2)的信息。
(C1)故障状况。
(C2)已擦除标记。
该信息2013,还保存作为FMD向控制器1010提供的存储区域(换句话说,地址空间)的属性(例如,块大小“D”、块数“D”)、用于管理空块的信息。
FMDI/O处理程序2011,对通过I/O端口2030由FMD控制器2010接收到的I/O请求进行解析,更新FMP2020所保存的数据、或从FMP读出数据后向控制器1010转发数据等。
<3.1.2.FMD的I/O处理>
以下表示FMD的I/O处理程序2011的处理内容。
(Step1)FMDI/O处理程序2011接收II/O请求。
(Step2)在请求为读请求的情况下,FMD I/O处理程序2011,根据该请求中所包含的开始逻辑块地址“D”、块长度“D”和FMD地址变换信息,确定保存了数据的一个以上的闪速存储器封装2020和该封装内的块“P”,从所确定的块“P”中读出数据,将读出的数据返回到请求发送源(控制器1010),返回Step1。在请求为写请求的情况下,FMD I/O处理程序2011,对于接收到的每个块数据执行Step3及其以后的步骤。
(Step3)FMD I/O处理程序2011,从最近保存了数据的FMP2020的下一FMP中,检索满足以下全部条件(D1)至(D3)的块“P”。
(D1)未发生故障。
(D2)为空区域。
(D3)被包含在执行了擦除命令的段中。
此外,例如在FMD内部结构信息2013中设置与搭载在FMD1030上的各FMP2020相对应的标记区域,在对应于最近保存了数据的FMP的标记区域中的标记置位(例如,写入“1”),将对应于置位之前保存了数据的FMP的标记区域的标记复位(例如,将“1”改变为“0”),由此可以确定最近保存了数据的FMP2020。作为其它方式,在FMD控制器2010向FMP保存数据时,通过在该控制器内部保存FMP的识别符,也可以确定。另外,下一个FMP,可以是例如,号码比前一次保存了数据的FMP2020的号码大1的FMP。
在该FMP中找不到符合上述条件的块“P”的情况下,FMD I/O处理程序2011从再下一个FMP中重复检索。
(Step4)FMD I/O处理程序2011,对于所找到的块“P”,保存写数据(遵从写请求的写对象数据)的一部分或全部。此外,该程序2011,伴随保存处理,可以进行以下(E1)以及(E2)中的某一项或全部的处理。
(E1)在保存前,根据写数据来计算LRC(Longitudinal RedundancyCheck)或CRC(Cyclic Redundancy Check)等冗余码,将写数据与该冗余码一起保存。此外,当接受读请求时,用该冗余码来确认有无数据损坏,在发生了数据损坏的情况下,通过该读请求返回错误,在FMD内部结构信息2013中记录发生了块故障的情况。
(E2)在保存后,从FMP2020读取该块数据来进行比较。在比较失败了的情况下,在FMD内部结构信息2013中记录在块中发生了故障的情况,再次从Step3开始重新进行处理。
(Step5)FMD I/O处理程序2011,更新对应于地址变换信息2012的块地址“D”的FMP2020和块地址“P”,以便表示新保存了数据的FMP的块“P”,更新前的块“P”成为空区域。
此外,作为独立处理,FMD I/O处理程序2011执行处理(擦除处理),使得通过擦除命令可以对新成为空区域的块进行写入。但是,擦除命令,由于仅能够以集中了多个块的段单位来执行,因此,通过块数据移动使全体段成为空区域后,执行擦除命令,在命令执行结束后,在FMD内部结构信息2013中,将已擦除标记置位(即,记录是已被擦除的段)。可以与请求处理联动地、或在非同步的时刻重复进行该处理。
此外,至此所说明的擦除处理或读、写处理的方法,鉴于所述(A1)至(A4)的特征,若具有以下的(F1)至(F4)中的一部分或全部的条件,则可以被其它处理代替。
(F1)避免更新集中到闪速存储器封装内的相同块。
(F2)闪速存储器封装内的块覆写前,执行擦除处理。
(F3)伴随冗余码的数据损坏的检测及修复。
(F4)可以使访问分散至多个闪速存储器封装的处理(例如,专利3507132号中所记载的方法)
<3.1.3.FMD内部结构信息通知程序>
FMD内部结构信息通知程序2014,是将FMD的内部信息向控制器1010等通知的程序。在以下(G1)至(G8)中表示该程序2014提供的信息的例子。
(G1)FMD1030的块大小“D”(控制器1010,以该块大小单位进行访问)。
(G2)FMD的可利用块数“D”(控制器1010,有时根据该块数和块大小“D”,得知可利用的存储容量)。
(G3)FMD内部的空存储容量(或块数)。作为提供该存储容量的处理,可以求得FMD内部结构信息2013中的发生故障的段数(或块数),进行以下的计算:空块数=(全体闪速存储器封装的块数)-(故障发生块数)-((G2)中记载的块数)。此外,将闪速存储器封装的部分区域,用于管理用或内部冗余化等的情况下,可以考虑其块数(例如,减少)来计算。另外,由于上述计算式以FMP的块大小为基准,因此,当提供信息时,可以换算成FMD的块大小来提供。
(G4)阈值。
(G5)当(G3)的空块数“D”除以(G2)的可利用块数“D”而得到的值在(G4)的阈值以下时的警告。此外,例如通过提供与HDD发生故障时所提供的警告相同的值,该警告可以模拟(emulation)HDD。
(G6)FMD1030所搭载的FMP数。或者从FMD1030所搭载的FMP数中,减去判断为由于故障而无法使用的FMP数而得到的数。此外,FMD内部结构信息通知程序2014,在以下的情况下可以向控制器1010通知I/O请求的错误消息。
(G7)提供给FMD1030的电压或电功率不足,或FMD1030的内部总线或FMD控制器2010损坏。
(G8)由FMD控制器2010检测出FMP中保存的数据的数据损坏。
<3.2.存储系统所管理的信息>
图5是表示通过控制器1010保存的FMD信息4050的结构例的图。
FMD信息4050,对于每个对应于各FMD1030的FMD1030的识别符,具有以下(H1)至(H5)的信息。
(H1)闭塞标记。闭塞标记,在不能使用该FMD的状态(例如,由于硬件故障、拔出了FMD1030、或图2所示的FMD1030中空容量少,而使控制器1010接收到报告时)的情况下为Yes,在其它情况下为No。
(H2)WWN(World Wide Name)。为了访问FMD1030而需要的FibreChannel的通信识别符。此外,在实际的FibreChannel中,根据WWN而生成Port号码,使用该值进行通信,所以可以登记Port号码。此外,可以以用于从控制器1010向FMD1030通信的其它识别符(例如,IP地址、TCP/IP的端口号码、iSCSI Name等)来代替。
(H3)LUN(Logical Unit Number)。在本实施方式中,FMD仅提供一个逻辑单元,因此可以保存FMD所提供的LU的号码。
(H4)FMD的型号。在长时间连续使用存储系统1000的情况下,由于维护作业而同时使用多个型号。
(H5)容量、块大小、闪速存储器封装数。通过FMD1030的FMD内部结构信息通知程序2014,将这些信息中的至少一种信息提供给控制器1010。
此外,虽未图示,表示将各FMD1030搭载在存储系统中的物理位置的信息,也被包含在FMD信息4050中。
图6是表示PG结构信息4060的结构例的图。
PG结构信息4060,在各个奇偶校验组(PG)的每个识别符中,具有以下(I1)至(I3)的信息。
(I1)闭塞标记。闭塞标记,在不能使用PG的状态的情况下为Yes,在其它情况下为No。此外,所谓不能使用的状况,可以考虑以下举例说明的事件多重发生的情况。
(事件1)硬件故障。
(事件2)拔出FMD1030。
(事件3)由于图2所示的FMD1030中空容量少,控制器1010接收报告。
(I2)RAID等级。
(I3)属于奇偶校验组的FMD1030的数量和该FMD的识别符。
此外,如前所述,控制器1010可以对奇偶校验组分配地址空间。图8表示以RAID1+0为例的情况下的奇偶校验组的地址空间“G”与FMD1030的地址空间“D”之间的关系。图9表示以RAID5为例的情况下的相同的关系。
使用例的说明:
图8和图9表示,使用4个FMD8200、8210、8220、8230来构成奇偶校验组8100的情况。阴影框体8010表示FMD的块“D”,在8011中表示其块地址“D”。框体8010中的带虚线框的框体8020,是控制器1010分配给奇偶校验组8100的块“G”,在8021中表示控制器1010分配的块地址“G”。此外,块8020的块大小“G”,可以是作为SCSI标准所提供的最低块大小的512字节,但也可以是除此以外的大小。
RAID1+0:
RAID1+0的情况下,为了进行镜像(mirroring),控制器1010在两个FMD中分配相同的地址空间(例如,FMD8200和8210、FMD8220和8230),然后进行条带化。在条带化的情况下,控制器1010,对于每个规定的块数(以后,称为条带化用连续块数)将下一地址空间“G”切换为其它FMD(例如,在块“G”中为4,在块“D”中为2)。此外,可以通过下式算出条带大小(通过从奇偶校验组内的全部FMD读写数据而进行的I/O大小)。
条带大小=(条带化用连续块数“G”)×(FMD数/2)×(块大小“G”)。
在RAID1的情况下,由于省略了RAID1+0的条带化,所以省略说明。
RAID5:
在RAID5的情况下,控制器1010也以条带化用连续块数为单位,进行条带化处理,并分配奇偶校验位保存区域(例如,从地址P0到P3是保存地址0至11的奇偶校验位的区域)。可以通过下式来计算RAID5情况下的条带大小。
条带大小=(条带化用连续块数“G”)×(FMD数-1)×(块大小“G”)。
图7是表示内部LU结构信息4070的结构例的图。
内部LU结构信息4070,对于各内部LU识别符中的每个,具有以下(J1)至(J4)信息。此外,作为存储区域而提供给主机1100的LU,通过根据该内部LU来定义路径而被提供给外部。在此所说的“外部”,代替主机1100或在主机1100之外,可以有其它种类的装置,例如虚拟开关或其它存储系统。换句话说,该其它种类的装置可以代替主机1100或在主机1100之外,向存储系统发送I/O请求。
(J1)闭塞标记。闭塞标记,在不可使用该内部LU的状态(例如,奇偶校验组闭塞了的情况,或未对该内部LU分配区域的情况)的情况下为Yes,在其它情况下为No。
(J2)PG识别符、开始地址“G”和结束地址“G”。表示作为该内部LU的存储区域而使用的奇偶校验组、奇偶校验组内的开始块地址“G”和结束块地址“G”。本条目由控制器1010管理。因此,基于控制器的块来管理该块地址,但在这种情况下,通过令开始地址“G”和结束地址“G”为考虑了FMD1030的块大小或条带大小的值,可以避免多个内部LU使用相同条带或FMD的块“D”。此外,在对内部LU分配多个奇偶校验组的存储区域的情况下,在内部LU结构信息4070的条目中登记多个(J2)的信息,而且附加用于结合(J2)中所定义的空间的信息。
(J3)块大小“L”。控制器1010,例如令块大小为512字节,但主机1100有时希望更大的块大小,因此,保存以来自主机1100的请求为前提的块大小。
(J4)比较标记。当控制器1010向高速缓冲存储器1020进行缓冲时,用于指定是否和奇偶校验位或镜像的信息进行比较的选项。若进行这种比较,则可以提高可靠性。
图13是表示LU路径信息4080的结构例的图。
例如,保存了以下(K1)至(K3)的信息。
(K1)提供给主机1100的内部LU的识别符。
(K2)WWN(或I/O端口1013的识别符)。本信息表示,提供给主机1100的内部LU是由哪个端口1013提供的。此外,如前所述,可以用端口号码等其它种类的识别符来代替WWN。
(K3)LUN。本信息表示,向主机提供的内部LU,作为(K2)中记载的WWN的哪个LUN被提供。
此外,由于仅可以定义有限数量的LUN,因此没必要向存储系统1000内定义的全体内部LU分配WWN和LUN,通过将某WWN和LUN在某时间段分配给某内部LU,在其它时间段分配给其它内部LU,可以有效地利用LUN。
<3.3.奇偶校验组定义>
图14是表示,通过结构控制程序4030所执行的、奇偶校验组的定义处理的流程图。以下记载各个步骤的说明。
(Step14001)结构控制程序4030,根据需要,向管理服务器1200提供FMD信息4050的部分或全部信息。此外,管理服务器1200可以实施以下(方法1)和(方法2)的某个或全部。
(方法1)在显示装置上显示基于型号、容量、块大小中的一个以上而构成的组。
(方法2)在显示装置上显示基于闪速存储器封装(FMP)数而构成的组。
另外,所谓“根据需要”是指,例如,出于根据来自用户的请求而显示控制器内部的信息的需要,管理服务器1200发送信息的请求,结构控制程序4030接收到该请求的时刻。
(Step14002)结构控制程序4030,从管理服务器1200接收包括多个FMD1030的识别符(识别符,也可以用物理存储系统的搭载位置或逻辑识别信息来代替)和RAID等级在内的奇偶校验组定义请求,根据该请求中附带的信息(各FMD识别符以及RAID等级)生成和/或更新PG结构信息4060。此外,通过在所述处理之前增加以下(检查1)至(检查5)中至少一个检查处理(或,显示检查处理结果的处理),可以避免定义不理想的奇偶校验组结构。
(检查1)在存储系统1000内的、除FMD以外的各组件(指的是控制器、高速缓冲存储器、后端I/O网络等)之一发生故障而导致闭塞的情况下,检查是否可以对奇偶校验组定义请求中包含的多个FMD1030中的两个以上的FMD1030进行访问(包括基于I/O请求的读/写)。若不可以访问,则奇偶校验组的数据恢复处理失败。该检查的目的是,防止由于一点闭塞而使I/O请求停止。此外,在RAID1或RAID1+0等带镜像的RAID等级中,可以对具有镜像关系的两个FMD的双方进行该检查(检查1)。
(检查2)检查在奇偶校验组定义请求中指定的全部FMD1030中,FMP数是否不同。该检查是用于辅助奇偶校验组结构定义的检查。
(检查3)检查在奇偶校验组定义请求中指定的全部FMD1030中,型号是否不同。在FMD1030的型号和FMP数相关的情况下,该检查也可以被包含在(检查2)中。然而,由于没有库存等理由,无法指定全部相同型号的FMD1020的情况下,也可以忽略基于本检查的警告,来定义奇偶校验组结构。
(检查4)检查在奇偶校验组定义请求中指定的全部FMD1030中,总存储容量是否不同。该检查目的在于谋求有效利用总存储容量。然而,由于没有库存等理由,而无法指定全部相同容量的FMD的情况下,也可以忽略基于本检查的警告,来定义奇偶校验组结构。
(检查5)检查在奇偶校验组定义请求中指定的多个FMD1030的块大小“D”是否不同。由于FMD的块大小“D”是向高速缓冲存储器1020的缓冲或降级时的数据单位,因此该检查是用于在奇偶校验组内减小I/O性能的变化的检查。
另外,例如作为检查6,结构控制程序4030检查是否对一个奇偶校验组指定了不同种类的存储器件(例如,HDD和FMD1030),在指定了不同种类的器件的情况下,向管理服务器1200报告。
(Step14003)结构控制程序,对奇偶校验组进行初始化(包括生成镜像数据和奇偶校验数据)。
(Step14004)结构控制程序4030,将PG结构信息4060的适当的奇偶校验组的闭塞标记从Yes变更为No,表示可以利用,将结束消息返回管理服务器1200。
此外,根据FMD1030的型号,可以唯一确定FMP数和总存储容量的情况下,在存储系统1000的外部(例如,存储系统1000的制造公司的计算机),可以在每种检查中,生成可以定义奇偶校验组的FMD的型号列表,将该列表向控制器1010下载,并在所述检查中使用。
<3.4.内部LU定义>
图15是表示通过结构控制程序4030所执行的内部LU的定义处理的流程图。以下记载各个步骤的说明。
(Step15001)如有需要,结构控制程序4030根据来自管理服务器1200的请求,将PG结构信息4060的一部分或全部发送至管理服务器。
(Step15002)结构控制程序4030,当从管理服务器1200接收包括以下举例表示的(参数1)至(参数5)的一部分或全部信息在内的内部LU定义请求时,根据该请求中附加的信息,生成和/或更新内部LU结构信息4070。
(参数1)奇偶校验组的识别符。
(参数2)奇偶校验组的开始地址“G”。
(参数3)内部LU的存储容量或奇偶校验组的结束地址“G”。
(参数4)内部LU的块大小“L”。
(参数5)内部LU的比较标记。
关于(参数3),通过使结束地址为该奇偶校验组的条带大小的整数倍,可以实施避免一个奇偶校验数据由多个内部LU共用的检查。另外,(参数2)和(参数3)通过奇偶校验组的块大小被指定,但也可以以条带大小为单位,取得该参数的值。同样,若最终求得奇偶校验组的开始地址“G”和结束地址“G”,则可以以其它形式取得参数。
(Step15003)如有需要,结构控制程序4030进行内部LU的初始化处理。例如,作为初始化处理的一环,可以创建内部LU的管理区域。
(Step15004)结构控制程序4030将对应于内部LU结构信息4070的内部LU的闭塞标记从Yes变更为No,表示可以使用内部LU并向管理主机返回结束消息。
<3.5.LU路径定义>
图16是表示通过结构控制程序4030执行的LU路径定义处理的流程图。以下记载各个步骤的说明。
(Step16001)如有需要,结构控制程序4030,根据来自管理服务器1200的请求,将内部LU结构信息4070和LU路径定义信息4080的一部分或全部发送至管理服务器。
(Step16002)结构控制程序4030,从管理服务器1200接收包括内部LU的识别符、端口信息(若是最终可以变换为I/O端口1013的识别符或WWN的识别信息,则也可以是这些之外的信息)和LUN在内的路径定义请求。
(Step16003)结构控制程序4030,确认在请求中所指定的WWN和LUN是否被分配,在已分配的情况下以错误进行应答并结束。在未分配的情况下执行Step16004。
(Step16004)结构控制程序4030,根据请求中附带的信息,生成和/或更新LU路径定义信息4080,并向管理服务器1200返回结束消息。
此外,为了使来自主机1100的访问路径多重化,可以对内部LU进行多路径定义。另外,在已定义的路径的解除处理的情况下,通过使用内部LU的识别符、或WWN与LUN的组合,从管理服务器1200中查找LU路径定义信息的对应条目并删除该条目,可以解除路径设定。另外,代替在LU路径定义请求中指定WWN和LUN,可以查找并分配由结构控制程序4030清空的WWN和LUN。
<3.6.闭塞检测>
结构控制程序4030检测由于故障、电源切断、拔出组件等而导致的组件闭塞。以下表示闭塞检测处理的流程。
(L1)结构控制程序4030取得各组件的状态。此外,在组件为控制器或FMD的情况下,组件的状态可以是在该组件上运行的程序的状态或记录。另外,该程序4030可以在本处理中使用来自各组件的报告来替代查询。
(L2)结构控制程序4030,通过检查所取得的状态来判断有无各组件闭塞,在没有闭塞的情况下返回(L1)。
(L3)在(L2)中判断为闭塞的情况下,结构控制程序4030将判断为闭塞的组件的识别符转发至管理服务器1200,并向用户显示。
此外,关于FMD1030的闭塞检测和其后的动态备份,在后面进行描述。由于FMD1030以外的组件闭塞,有时发生不能对一部分FMD1030进行访问的状况,但在这种情况下也可以进行后述的处理(特别是动态备份)。
<3.6.1.FMD1030的闭塞检测>
以下说明通过结构控制程序4030执行的FMD1030的闭塞检测处理的流程。
(M1)FMD1030,根据来自结构控制程序的请求,返回信息或主动地发送报告。
(M2)结构控制程序4030检查所接收的信息,判断有无FMD闭塞。下面举出判断方法的一例。
(判断方法1)在以I/O请求错误为代表的处理失败信息的情况下,通过接收了规定次数(包含1次以上)来进行判断。
(判断方法2)在与3.1.3章中记载的空区域相关的信息(考虑将3.1.3章中记载的(G3)空块数除以(G2)的FMD块数而得到的值)情况下,通过其值比预定阈值(本信息已被保存在控制器1020内部,也可以经由管理服务器1200向控制器1020设定)小,来进行判断。
(判断方法3)在3.3.3章中记载的(G6)FMP数量的情况下,通过从出厂时或说明书中的数量下降到一定比例以下,来进行判断。
此外,作为FMD的安装的变更,当在FMD1030内部实现上述判断方法时,作为和HDD相同的器件故障,向控制器1010进行报告。在这种情况下,控制器1010可以通过(判断方法1)来判断该故障。
(M3)结构控制程序4030将通过FMD结构信息4050判断为闭塞的FMD闭塞标记变更为Yes,表示不能使用FMD。
(M4)结构控制程序4030,通过参照PG结构信息和FMD结构信息,来判断奇偶校验组是否为由于闭塞的FMD1030而无法处理读、写请求的状态,在无法处理的情况下,将应奇偶校验组的闭塞标记改变为Yes(即,不能使用)。此外,所述判断方法,在RAID1+0等带镜像的冗余化方式的情况下,判断成为将数据二重化的对的FMD双方是否都为闭塞状态,在RAID5的情况下,判断奇偶校验组中闭塞状态的FMD的数量是否为两个以上。
(M5)结构控制程序4030,通过参照内部LU结构信息,使在闭塞的奇偶校验组上保存了数据的内部LU的闭塞标记成为Yes(即,不能使用)。
(M6)如有需要,结构控制程序4030向管理服务器1300通知闭塞的FMD1030的识别信息。在该通知中,可以附加作为闭塞理由的信息(例如,通过哪种判断方法判断出闭塞)。另外,在存在由于FMD1030的闭塞而导致闭塞的奇偶校验组、内部LU或LU的情况下,可以向管理服务器1300通知这些识别信息。接收到本通知的管理服务器1300,将这些信息作为故障信息显示给用户。
此外,在以后的说明中,将包含闭塞状态的FMD、且I/O请求为可能的奇偶校验组的状态,称为“退缩状态(缩退状態)”。通过对该退缩状态的奇偶校验组的I/O请求,进行数据恢复处理来应答该请求。此外,所谓数据恢复处理,是指根据冗余数据恢复闭塞的FMD的数据。在镜像的情况下,和闭塞的FMD相同的数据存在于其它FMD中,因此该处理使用各FMD的数据。在奇偶校验方式的情况下,本处理根据未闭塞的残留数据和奇偶校验位来计算闭塞的FMD的数据,从而进行恢复。
<3.6.2.FMD的动态备份>
以下说明结构控制程序4030的动态备份处理。
(N1)结构控制程序4030等待,直至在故障检测处理中检测出FMD闭塞。
(N2)结构控制程序4030,通过参照PG结构信息4060,查找在N1中检测出闭塞的FMD的关联(例如,包含该FMD)奇偶校验组。
(N3)结构控制程序4030,关于查找到的奇偶校验组,判断能否执行数据恢复处理,在不能执行的情况下放弃处理(例如结束)。在可以执行的情况下执行N4以后的步骤。
(N4)结构控制程序4030检索适合于奇偶校验组的代替FMD。此外,可以将与奇偶校验组定义中所提供的信息或检查项目类似的、以下举例表示的条件作为检索条件。
(条件1)FMD的数据容量、型号、FMP或块大小“D”。
(条件2)选择FMD1030,以避免由于FMD以外的组件一点闭塞而导致FMD1030的二重闭塞(为了尽量避免奇偶校验组闭塞)。
(N5)结构控制程序4030,通过数据恢复处理向代替FMD恢复数据(以后称为恢复复制处理)。以下,举例说明更具体的恢复复制处理的内容。
(N5-1)结构控制程序4030,将表示复制结束位置的信息(复制结束位置信息)向FMD的起始地址进行初始设定。
(N5-2)结构控制程序4030,根据复制结束位置信息,恢复多个块的闭塞FMD的数据(通过3.6.1章中记载的处理方法)并将其写入替代FMD中。
(N5-3)结构控制程序4030使复制结束位置信息前进已写入的块数。
(N5-4)结构控制程序4030重复(N5-1)至(N5-3),直到复制结束位置信息前进至FMD的结束地址。
(N6)结构控制程序4030,重新将代替FMD登记在奇偶校验组中,删除闭塞FMD。
此外,在FMD的闭塞理由是空容量不足的情况下,由于可以向FMD进行对已保存的数据的读请求,因此可以不使用奇偶校验数据或镜像数据,从闭塞FMD读入数据,来代替(N5-2)的数据恢复处理。
关于对上述恢复复制中的闭塞FMD的I/O请求,对于复制结束位置信息以前的块“D”,在代替FMD中恢复了数据,因此控制器1010可以将该数据返回主机1100(读的情况下),或在代替FMD中保存写数据(写的情况下)。此外,对于复制结束位置信息以后的块地址,控制器1010可以执行以下处理。
(O1)在接受了读请求,FMD的闭塞理由是空区域不足的情况下,作为数据恢复处理,从闭塞FMD将数据缓冲到高速缓冲存储器中,然后将该数据返回主机1100。
(O2)在(O1)的情况以外接受了读请求的情况下,通过数据恢复处理,将闭塞的FMD1030中所保存的数据恢复至高速缓冲存储器1020,将该数据返回主机1100。
(O3)在接受了写请求的情况下,更新冗余数据(奇偶校验数据或镜像数据),通过此后的读请求或写请求,可以恢复本请求的写数据。
<3.7.写处理>
图17是I/O处理程序4010在接收到写请求的情况下所进行的处理的流程图。另外,图10是表示图8的RAID1+0的奇偶校验组的FMD8200、FMD8210和两片高速缓冲存储器(CM-A和CM-B)上的数据流动和变化的例子的概要图。而且,图11和图12是表示图9的RAID1奇偶校验组的FMD9200、FMD9230和两片高速缓冲存储器(CM-A和CM-B)上的数据流动和变化的例子的概要图。
<3.7.1.概要图的前提和使用例>
图10至图12是表示,对于主机1100,公开了块大小“L”为512B(Byte),并且,对于从奇偶校验组的开头分配了区域的内部LU,写请求到达了块‘3’的情况下的、高速缓冲存储器和FMD之间的数据流动和数据变化的图。另外,高速缓冲存储器和FMD上的带数字的框体,指的是控制器1010分配给奇偶校验组的块“G”和该块“G”的地址。在本例中,FMD块大小“D”是块大小“G”的二倍。
此外,在高速缓冲存储器1020的区域管理中,为了减小将高速缓冲存储器上的数据区域和FMD上的数据区域相对应的信息,以FMD的多个连续的块“D”(在例中为4个块“G”和2个块“D”)来分配高速缓冲存储器上的连续地址区域(高速缓冲存储器区段(segment))。因此,例如,控制器1010对于每个高速缓冲存储器区段,管理以下举例表示的(Q1)至(Q6)的属性信息。
(Q1)高速缓冲存储器区段上的地址。
(Q2)奇偶校验组的识别符和奇偶校验组上的块地址“G”。
(Q3)高速缓冲存储器区段内的每个块“G”的缓冲标记。在概要图中,高速缓冲存储器上的块“G”的下面存在黑带的情况表示该数据已被缓冲。
(Q4)高速缓冲存储器区段内的每个块“G”的脏(虽更新结束,但未向FMD反映)标记。在概要图中,高速缓冲存储器块内的块“G”的上面存在黑带的情况表示脏。
(Q5)旧数据标记。
(6)奇偶校验位更新所需标记。图11和图12中的在写有P而没有数字的框体上存在黑带的情况表示需要更新奇偶校验位,仅出现写有P而没有数字的框体的情况表示不需要更新。
另外,两概要图都从块“G”的‘0’和‘1’已缓冲来用于读取的状态开始说明。
<3.7.2.写请求处理流程>
使用图17的流程图和从图10至12中的例子,来说明I/O处理程序4010接收到写请求时的处理内容。
(Step17001)I/O处理程序4010,从控制器1010接收到的写请求中取得WWN、LUN、开始块地址“L”、块长度“L”和写数据。控制器1010,作为该LUN的块大小“L”,预先报告对应的内部LU的内部LU结构信息4070的块大小,并重复进行,写请求的开始块地址和块长度以该块大小“L”为前提。此外,由于在实际的写请求中包含PortID来代替WWN,因此需要将PortID变换为WWN。
(Step17002)I/O处理程序4010,根据WWN、LUN和LU路径定义信息,求得内部LU号码。此外,作为网络而使用FibreChannel以外的网络的情况下,可以通过根据写请求求出内部LU号码的其它方法来代替Step17001和Step17002。例如,在iSCSI的情况下,以IP地址与Port号码的组合或iSCSI目标名来代替WWN,通过和LUN组合可以求得内部LU号码。
(Step17003)I/O处理程序4010,使用内部LU结构信息4070,将请求的开始块地址“L”和块长度“L”,变换为奇偶校验组的识别符、开始块地址“G”和结束块地址“G”。通过以下的公式进行变换计算。
开始块地址“G”=(块大小“L”×开始块地址“L”/块大小“G”)+(内部LU结构信息的开始块地址“G”)
结束块地址“G”=(块大小“L”×块长度“L”/块大小“G”)+开始块地址“G”。
(Step17005)I/O处理程序4010在高速缓冲存储器上保存写数据。此时,在必要的块“G”的数据已缓冲到高速缓冲存储器中的情况下,以写数据来更新高速缓冲存储器上的数据。但是,即使存在已缓冲的块数据,在本实施方式中,奇偶校验位更新所需标记为No(已更新),在保存对象块的脏标记被置位的情况下(即,在前次的奇偶校验位更新中作为源的写数据),在本次的奇偶校验位更新中,必须作为旧数据来使用,因此,确保独立的高速缓冲存储器区段并保存写数据。在高速缓冲存储器中没有写数据的情况下,如有需要,也确保高速缓冲存储器区段并保存写数据。
此外,通过在两片高速缓冲存储器的双方中保存写数据,即使一片高速缓冲存储器发生闭塞,也可以保存写数据。另外,在保存同时,I/O处理程序4010将所保存的块的缓冲标记、脏标记和奇偶校验位更新所需标记置位,将对于写请求的应答返回主机1100。在图1 0和图11的(1)中,块“G”‘3’的写数据被写入两片高速缓冲存储器,缓冲标记和脏标记处于置位状态。
以上是I/O处理程序4010的流程。
<3.7.2.从奇偶校验位生成到降级>
图18表示高速缓冲存储器控制程序4020重复执行的奇偶校验位生成和降级的步骤。
(Step18001)高速缓冲存储器控制程序4020,通过LRU(Least RecentlyUsed)等高速缓冲存储器算法,选择作为奇偶校验位生成或降级对象的高速缓冲存储器区段。在图10~12(以下,有时记载为“概要图”)中,选择块‘2’和‘3’。
(Step18002)高速缓冲存储器控制程序4020,通过基于作为降级对象的缓冲存储器区段的奇偶校验组ID和块地址的计算式,决定将两片高速缓冲存储器中哪一片中保存的写数据用于奇偶校验位生成或降级。在概要图中使用了CM-A上的写数据。
(Step18003)高速缓冲存储器控制程序4020,将作为降级对象的高速缓冲存储器区段,与作为降级目标的FMD1030的块大小“D”匹配,填充区段中未缓冲的块“G”。进行该步骤,以便能够以高速缓冲存储器的块单位对高速缓冲存储器写数据。
具体而言,从先头开始,以每个FMD块大小“D”划分高速缓冲存储器区段中的多个块“G”(即,以降级单位划分),在该每个划分中具有脏块“G”,且存在部分未缓冲状态的块“G”的情况下,从FMD1030复制与未缓冲状态的块“G”相对应的数据。此时的复制,最初,高速缓冲存储器上的独立区域中,对包含脏的块“G”(例如块‘2’)和未缓冲状态的块“G”(例如块‘3’)的块“D”进行缓冲,然后仅复制未缓冲状态的块“G”。在概要图(例如图10(1))中,块‘3’为未缓冲状态。
(Step18004)高速缓冲存储器控制程序4020,对于降级对象高速缓冲存储器区段,在需要生成奇偶校验位的情况下执行Step18005,在需要镜像的情况下执行Step18011。
(Step18005)高速缓冲存储器控制程序4020,为了生成奇偶校验位,将保存在高速缓冲存储器区段的降级目的地FMD1030中的旧数据,缓冲到与降级对象的高速缓冲存储器区段分离的高速缓冲存储器区段中。此外,该缓冲也可以使用与Step18003中进行的FMD块大小化中缓冲了的高速缓冲存储器区段相同的区域,可以预先在Step18003中缓冲双方所需的数据(在概要图11的(2)中,将双方所需的数据一起进行缓冲)。另外,在高速缓冲存储器上有上次的奇偶校验位更新中所使用的数据的情况下,可以省略缓冲。
(Step18006)高速缓冲存储器控制程序4020,将保存了对应于降级对象的高速缓冲存储器区段的奇偶校验位的块“L”,从FMD1030缓冲至高速缓冲存储器区段(在概要图11的(2)中,向CM-B缓冲块‘P2’和‘P3’)。此外,在高速缓冲存储器上有上次计算出的奇偶校验位的情况下,可以省略缓冲。
(Step18007)高速缓冲存储器控制程序4020,使用降级对象的高速缓冲存储器区段上的写数据、Step18005中缓冲了的旧数据和Step18006中缓冲了的当前奇偶校验位,来计算新的奇偶校验位,通过将脏标记置位并保存,将所述新奇偶校验位保存到与当前的奇偶校验位分离的高速缓冲存储器区段。该程序4020,将降级对象高速缓冲存储器区段的奇偶校验位所需标记复位,放弃在Step18005与Step18006中缓冲的旧数据和奇偶校验位的高速缓冲存储器区段。在概要图11的(3)中,块‘2’的奇偶校验位‘P2’变为脏。
(Step18008)高速缓冲存储器控制程序4020,将Step18007中计算出的新奇偶校验位的高速缓冲存储器区段降级,并将脏标记复位。在概要图12的(4)中,对奇偶校验位‘P2’和‘P3’进行了降级。
(Step18009)高速缓冲存储器控制程序4020,将降级对象高速缓冲存储器区段降级,并将脏标记复位。若降级结束,则放弃一个高速缓冲存储器上的写数据并结束降级。此外,本步骤和Step18008的顺序不重要。
(Step18011)高速缓冲存储器控制程序,为了填充在Step18003中未缓冲完的块,放弃被缓冲到另一高速缓冲存储器区段的数据。并且,高速缓冲存储器控制程序4020将降级对象高速缓冲存储器区段的写数据,降级到镜像关系的两个FMD1030中。该程序等到双方降级处理都结束后,放弃一个高速缓冲存储器中的写数据。概要图10的(3)表示,块‘2’和‘3’从CM-A被降级。
以上为奇偶校验位生成处理。
接下来表示所述处理中使用的降级的处理内容。
(R1)高速缓冲存储器控制程序4020,通过条带化的计算和块大小的变换,将高速缓冲存储器区段的奇偶校验组的块地址“G”变换为FMD的识别符和FMD的块地址“D”。
(R2)高速缓冲存储器控制程序4020,以在(R1)中求得的块地址“D”,对(R1)中求得的FMD发送写请求。
对于读操作也一样,高速缓冲存储器控制程序4020,将奇偶校验组的块地址“G”变换为FMD识别符和FMD块地址“D”,对FMD1030发送读请求。
另外,为了提高可靠性,高速缓冲存储器控制程序4020,可以在向FMD1030降级时,在写数据上附加LRC或CRC等冗余码,在缓冲时检查。而且,在降级后,高速缓冲存储器控制程序4020可以比较在FMD中保存的数据和高速缓冲存储器上的数据,确认数据被可靠地保存。在以上两种情况下,当检查出异常时,高速缓冲存储器控制程序4020可以进行FMD闭塞检测处理和数据恢复处理。
而且,关于与内部LU结构信息4070的数据比较标记为Yes的内部LU相对应的缓冲,为了提高可靠性,若为RAID1,则高速缓冲存储器控制程序4020将原始数据从FMD1030向高速缓冲存储器1020复制,同时也从镜像对的另一FMD中读出数据并比较。同样地,在RAID5的情况下,高速缓冲存储器控制程序4020将原始数据从FMD1030向高速缓冲存储器1020复制,同时,将通过使用奇偶校验数据和其它数据而从另一FMD恢复的数据,与从本FMD读出的数据进行比较。在HDD的情况下,恢复处理中,伴随磁头移动和旋转等待的访问模式有时增加,也必须考虑对应于或超过恢复处理中进行的I/O请求数的增加的性能降低,但在FMD的情况下不需要考虑这种性能降低。
<3.8.读处理>
图19表示I/O处理程序4010在接收到读请求的情况下所进行的处理的流程的一例。以下说明各步骤。
(Step19001)I/O处理程序4010,从控制器1010所接收的读请求中取得WWN、LUN、开始块地址、块长度和写数据。
(Step19002)I/O处理程序4010,根据LU路径定义信息,将WWN和LUN变换为内部LUN。此外,可以通过与写处理相同的方法来代替Step19001和Step19002。
(Step19003)I/O处理程序4010,使用内部LU结构信息4070,将读请求的开始地址和块长度(以向主机1100预先通知的块大小为基础的开始块地址和块长度)变换为以控制器1010内部管理的块长度为基础的值。
(Step19004)I/O处理程序4010,使用内部LU结构信息4070,还将内部LUN、已变换的开始块地址和块长度,变换为奇偶校验组ID、奇偶校验组上的开始块地址和结束块地址。在用于变换的计算中,将内部LU结构信息4070的开始地址与开始块地址相加所得的值,作为奇偶校验组上的开始块地址,将奇偶校验组上的开始块地址与块长度相加所得的值,作为奇偶校验组上的结束块地址。
(Step19005)I/O处理程序4010,确认写请求中所请求的数据是否存在于高速缓冲存储器中,当不存在时确保高速缓冲存储器区段,通过缓冲处理向高速缓冲存储器复制数据。
(Step19006)I/O处理程序4010将高速缓冲存储器上的数据转发至主机1100。
以上为I/O处理程序4010的流程。此外,在本程序的任意一个步骤中,可以检查WWN、LUN、开始块地址和块长度。
此外,在FMD块大小大于LU块大小的形态中,有时应用本实施方式。原因在于,FMD的FMD地址变换信息2012的条目量,与将FMD的存储容量除以块大小所得的值有关,预测到将来条目量会增加,因此用于查找I/O请求中需要的数据的检索时间增加,FMD的块大小将会大到8192字节。另一方面,在通常的主机中,目前块大小以512B为基础。但这并不否定其它关系。若LU的块大小在FMD的块大小以上,则高速缓冲存储器上的缓冲或降级处理效率将会优良,因此也可能积极地采用该结构。
另外,存储系统1000没必要由一个装置构成。例如,FMD1030和控制器1010可以作为分离的装置而存在,通过后端I/O网络相连。而且,在控制器1010上可以附加限定可对LU进行访问的主机的访问控制程序,可以执行在相同存储系统1000内生成LU的副本(replica)的本地复制程序、或向不同存储系统进行镜像的远程镜像程序。更具体而言,例如,当进行远程镜像时,在复制源和复制目的地中,可以考虑采用使用了FMD1030的存储系统。而且,可以考虑实施远程镜像,其中,复制源的存储系统采用使用了FMD1030的存储系统1000,在复制目的地的存储系统中采用了使用HDD的存储。作为其理由,可以列举出,FMD1030和HDD的性能特性和位成本不同;FMD中内置的闪速存储器通过操作电荷来保存数据,与之相对,HDD通过磁力来保存数据,因此易于引起数据消失或数据损坏的环境(例如包含温度、湿度、X射线、电场以及磁场中至少一种)不同,利用这一点使耐故障性提高。
以下,进一步继续说明。
<4.FMD1030的替代器件>
<4.1.SFMD1030(2)>
对于FMD1030,可以考虑有若干变更。图21表示其中一例。
SFMD1030(2)是FMD1030的替代器件。SFMD1030(2)具有SFMD主控制器21010、多个I/O端口2030(2)和多个FMD1030。各FMD1030通过I/O端口2030与SFMD主控制器21010相连。此外,I/O端口可以由内部总线来代替,如图所示为连接了一个I/O端口2030的形态,也可以是连接多个I/O端口的形态。此外,理想的是,一个SFMD1030(2)中所包含的FMD1030,以下的项目(T1)至(T3)相同。
(T1)存储容量“D”。
(T2)块大小“D”。
(T3)FMD控制器2010的性能。
SFMD主控制器21010,为了集中多个FMD1030来提供一个存储区域,而进行条带化处理。即,当控制器1010访问SFMD1030(2)时,不仅使用FMD1030的地址空间“D”,而且使用新的地址空间“SD”。接收到I/O请求的SFMD主控制器21010进行条带化处理,从而根据I/O请求中包含的开始地址“SD”和块长度“SD”,取得保存了数据的FMD1030及其开始地址“D”和块长度“D”,并发送I/O请求。此外,当对SFMD1030(2)的I/O请求的块长度“SD”长时,在数据接收或数据发送的过程中,进行所述变换和对FMD1030的I/O请求的发送,这和FMD1030的情况相同。
理想的是,SFMD1030(2)的块大小“SD”和FMD1010的块大小“D”相等。另外,SFMD1030(2)的块数“SD”(或存储容量“SD”)等于内置的FMD1030的块数“D”(或存储容量“D”)的总和,但在出于控制目的而使用FMD1030的块“D”的一部分的情况下,可以从总数中减去对应块数而得到块数“SD”。
SFMD主控制器21010,可以将以下(U1)至(U4)的信息发送至控制器1010。
(U1)块数“SD”。
(U2)块大小“SD”。
(U3)空块数“SD”。
(U4)FMP2020的数量、和/或FMD1030的数量。
此外,除了上述信息以外,SFMD主控制器21010还可以将FMD内部结构信息通知程序2013所提供的信息的一部分或全部发送至控制器1010。
SFMD1030(2)和FMD1030不同,在某个FMD1030的空块数为零的时刻,例如,即使其它FMD1030的空块数为零以上,写请求失败。因此,(U3)的空块数“SD”的值,可以考虑报告各FMD1030的空块数的最小值(或在最小值上乘以FMD1030数而得到的数)。
与FMD1030相比,SFMD1030(2)具有以下缺点和优点。
(缺点)FMP的利用效率差。根据访问方式,写请求会集中在特定的FMD1030中,所以至组件闭塞的时间短。
(优点)瓶颈位置少。通过FMD控制器2010进行的空区域管理或地址变换是负荷不低的处理,因为需要检索FMD地址变换信息2012。因此,即使增加FMD1030中内置的FMP的数量,由于FMD控制器21010的瓶颈化,有时无法提高性能。为了避免这种情况,考虑通过增大块大小“D”,来减小在FMD1030的地址变换时检索的FMD地址变换信息2012的大小,从而提高性能的方法。但是,如果块大小过大,则在随机访问多的环境下,对与访问没有直接关系的数据进行缓冲和降级,因此性能恶化。SFMD1030(2)的情况下,地址变换分散在多个FMD控制器2010中被处理,所以难以成为瓶颈,并且即使搭载许多大容量的FMP,也不需要增加块大小。
此外,为了解决上述缺点,在控制器1010中进行的以下的一个以上的处理,也可以在SFMD主控制器21010中执行。
(处理1)动态备份。将SFMD1030(2)中内置的FMD1030的一部分,用于备份用途,在工作中的FMD1030的空块数变少的情况下,进行动态备份。为了分配冗余区域,FMP的利用效率下降,但是,到访问集中于特定的FMD1030而导致的组件闭塞的时间增长。
(处理2)附加镜像或奇偶校验位等冗余数据
关于有无上述的处理,可以考虑SFMD主控制器21010根据来自控制器1010的请求而发送信息。另外,若根据SFMD1030(2)的型号得知有无上述处理,则可以通过由控制器1010取得该信息来代替所述信息获取。
<4.2.SFMD和FMD共存的存储系统>
SFMD1030(2)和FMD1030能够以相同方法从控制器1010发送读请求或写请求。因此,存储系统1000可以搭载多个SFMD1030(2),在这种结构中也可以执行此前所说明的处理。而且,存储系统1000也可以搭载SFMD1030(2)和FMD1030的双方。出于与FMD1030中的FMP数量的差异同样的理由,产生这种结构。在这种情况下,SFMD1030(2)和FMD1030中,由于内部构造所引起的I/O特性的差异或至闭塞的时间(耐久性)不同,所以采取SFMD1030(2)与FMD1030不共存于奇偶校验组中的结构。为了实现该结构,控制器1010取得与两器件的内部结构相关联的信息,在奇偶校验组结构定义时将该信息提供给用户,或者在检查处理中使用该信息。另外,当用户利用LU时,通过显示该LU由SFMD1030(2)或FMD1030中哪一个构成,促进考虑到存储层次的系统的利用。但是,由于考虑到器件不足等理由,两器件可以共存于奇偶校验组中。
而且,由于SFMD1030(2)可以通过增加动态备份或冗余数据,来代替增加部件,而提高可靠性,因此,和所述方式相同地,控制器1010取得内部构造(包含有无动态备份或冗余数据),进一步在SFMD1030(2)中仅由有动态备份的器件构成奇偶校验组,或仅由有冗余数据的器件构成奇偶校验组。
<5.FMD1030的替代器件之二>
<5.1.multi-LU-FMD>
在此前的说明中,FMD1030或FMD1030(2)向控制器1010提供一个LU。但因此需要使器件至少具有SFMD主控制器21010那样的条带化功能。从而,FMD的制造成本可能升高。
图22所示的multi-LU-FMD1030(3)将内置的多个FMD1030提供给控制器1010。作为提供方式的一例,考虑到作为属于I/O端口2030(3)所具有的WWN中的LU而提供各FMD1030的方法。转换器22010,例如,向通过LUN指定的FMD1030分配访问请求,在FMD1030的端口2030是和端口2030(2)不同的转发介质的情况下,进行转换处理。另一方面,控制器1010识别multi-LU-FMD1030(3)中内置的多个FMD1030,以该FMD1030为单位来管理有无故障发生。此外,维护人员能够以multi-LU-FMD1030(3)为单位来进行维护更换。
<5.2.使用了multi-LU-FMD1030(3)的奇偶校验组结构>
使用multi-LU-FMD1030(3)来构成奇偶校验组的情况下,需要防止控制器1010从某个multi-LU-FMD1030(3)中选择多个FMD1030来构成奇偶校验组。原因在于,multi-LU-FMD1030(3)为物理故障单位、电源切断单位、以及器件拆装单位中至少一个单位,因此,当从同一器件中使用多个FMD1030的状况下发生器件故障时,不可能进行奇偶校验组的数据恢复处理。
为了辅助上述奇偶校验组结构,控制器1010在定义奇偶校验组结构时使用以下两种方法。
(方法1)定义奇偶校验组结构时,控制器1010,例如,通过GUI(GraphicalUser Interface)显示multi-LU-FMD1030(3)与其中内置的FMD1030的对应关系,从用户接受多个FMD1030的指定。接受了该指定的控制器1010,检查所指定的多个FMD1030的一部分是否属于相同的multi-LU-FMD1030(3)。
(方法2)定义奇偶校验组结构时,控制器1010,例如,通过GUI显示multi-LU-FMD1030(3)的一览。从用户接受多个multi-LU-FMD1030(3)的指定。接受了指定的控制器1010,检查所指定的多个multi-LU-FMD1030(3),各自所搭载的FMD的数量和存储容量是否相等。然后,如图23所示,控制器1010对由各multi-LU-FMD1030(3)的FMD1030所构成的子奇偶校验组进行定义,而且,将通过Concatenate等方式结合了multi-LU-FMD1030(3)内的多个子奇偶校验组的区域作为奇偶校验组来使用,并将其提供给用户。此外,当对“Concatenate”进行说明时,例如,所谓在LU1上ConcatenateLU2是指,使LU2的地址空间的开头与LU1的地址空间的最末尾相连。
<5.3.动态备份和闭塞检测>
在使用了multi-LU-FMD1030(3)的情况下,也和SFMD1030(2)相同,写请求有时会集中在特定FMD1030中。因此,控制器1010掌握各multi-LU-FMD1030(3)内的各FMD的空容量,在某个FMD1030的空块数减少的时刻,将该FMD1030向内置于其它multi-LU-FMD1030(3)中的FMD1030进行动态备份。或者考虑以下方法,即在使用各multi-LU-FMD1030(3)时,预先确保备份用FMD1030,在某FMD1030的空块数减少的时刻,从该FMD1030,向与该FMD1030相同的multi-LU-FMD1030(3)中内置的备份用FMD1030进行动态备份。或者也考虑以下方法,即,在空块数减少了的multi-LU-FMD1030(3)内没有备份用FMD1030的情况下,控制器1010将其它multi-LU-FMD1030(3)的FMD作为自己的备份用FMD1030来使用。另外,控制器1010(例如,结构控制程序4030)可以将复制目的地的备份用FMD1030作为复制源的FMD1030所属的奇偶校验组(或子奇偶校验组)的要素,将该复制源的FMD1030从该奇偶校验组(或子奇偶校验组)中移除。具体而言,例如,在PG结构信息4060中,可以在与该奇偶校验组(或子奇偶校验组)对应的栏中,追加复制目的地的备份用FMD1030的ID,并从该栏中删除复制源的FMD1030的ID。
此外,对于内置有multi-LU-FMD1030(3)的存储系统,可以应用此前所说明的处理。例如,当用户定义奇偶校验组结构时,从各multi-LU-FMD1030取得内置的FMP的数量或FMD1030的数量,以相同数量的器件来构成奇偶校验组等等。
另外,在内置有multi-LU-FMD1030(3)的存储系统的情况下,可以以FMD1030单位进行闭塞检测。因此,即使在作为奇偶校验组,不能进行数据恢复处理的情况下,作为子奇偶校验组,存在可以进行或不需要进行数据恢复、可以处理I/O请求的情况。假如内部LU仅由可以处理这种I/O请求的子奇偶校验组构成,即使在作为奇偶校验组判断为不能进行数据恢复处理的情况下,控制器1010也可以不闭塞内部LU地继续I/O请求。
以上说明了本发明的实施方式,但其作为用于说明本发明的例子,没有将本发明的范围限于该实施方式的意思。也可以通过其它各种形态来实施本发明。例如,控制器1010也可以采用其它结构。例如,代替上述的结构,可以具备:控制和上位装置的通信的多个第一控制部(例如,控制电路板)、控制和FMD1030的通信的多个第二控制部(例如,控制电路板)、可以存储上位装置和FMD1030之间收发的数据的高速缓冲存储器、可以存储用于控制存储系统1000的数据的控制存储器、连接各第一控制部、各第二控制部、高速缓冲存储器以及控制存储器的连接部(例如CROSS-BUS开关等开关)。在这种情况下,第一控制部和第二控制部的一方或双方协同工作,可以作为所述控制器1010进行处理。也可以没有控制存储器,在这种情况下,可以在高速缓冲存储器中设置用于存储控制存储器所存储的信息的区域。
另外,例如根据FMD控制器的安装,有时仅可以同时访问FMD中限定数量的内置FMP。在这种情况下,作为上述的实施方式的说明中所使用的“FMP的数量”的替代(例如,特别地作为性能指标而使用的情况下),可以使用FMD控制器可同时访问的FMP的数量。
Claims (20)
1.一种闪速存储器存储系统,其从外部装置接收I/O请求并进行处理,其特征在于,具备:
多个闪速存储器器件(FMD),所述闪速存储器器件具有多个闪速存储器;和
具有I/O处理控制部的控制器,所述I/O处理控制部对所述多个FMD中的、根据所述接收到的I/O请求中指定的访问目的地而确定的FMD进行访问。
2.根据权利要求1所述的闪速存储器存储系统,其特征在于,
存在两个以上的、由所述多个FMD中的两个以上FMD所构成的奇偶校验组;
所述多个FMD中含有内部结构不同的FMD;
各奇偶校验组由相同内部结构的FMD构成。
3.根据权利请求2所述的闪速存储器存储系统,其特征在于,
所述内部结构为以下(1)至(3)中的至少一种:
(1)FMD中具备的闪速存储器的数量、
(2)FMD中所采用的块大小、
(3)FMD中具备的多个闪速存储器的总存储容量。
4.根据权利要求2所述的闪速存储器存储系统,其特征在于,
作为所述内部结构,存在包含第一种、第二种以及第三种中的至少一种FMD类型的多个种类的FMD类型,
作为所述第一种FMD类型的FMD的第一FMD具有:
多个闪速存储器;和
内部控制器,其具有控制对该多个闪速存储器的输入输出的第一FMD控制部,在所述FMD为该第一FMD的情况下,所述第一FMD控制部,根据来自所述I/O处理控制部的访问,控制所述输入输出,
作为所述第二种FMD类型的FMD的第二FMD具有:
多个所述第一FMD;和
第二FMD控制部,其根据来自所述I/O处理控制部的访问,控制对所述多个第一FMD的访问,所述多个第一FMD分别被所述控制器识别,各第一FMD的所述第一FMD控制部,根据来自所述第二FMD控制部的访问,控制所述输入输出,
作为所述第三种FMD类型的FMD的第三FMD具有:
多个所述第一FMD;和
第三FMD控制部,其根据来自所述I/O处理控制部的访问,控制对所述多个第一FMD的访问,所述多个FMD被所述控制器识别为一个器件,各第一FMD的所述第一FMD控制部,根据来自所述第三FMD控制部的访问,控制所述输入输出。
5.根据权利要求4所述的闪速存储器存储系统,其特征在于,
所谓的所述内部结构还是,所述内部控制器、所述第二FMD控制部和所述第三FMD控制部中至少一个的性能。
6.根据权利要求1所述的闪速存储器存储系统,其特征在于,
在所述多个FMD中,包含供货商和/或制造年度不同的FMD。
7.根据权利要求2所述的闪速存储器存储系统,其特征在于,
除所述多个FMD外,还共存一个或多个盘型存储装置,但在包含所述FMD的所述奇偶校验组中,不存在所述一个或多个盘型存储装置中的任何一个。
8.根据权利要求1所述的闪速存储器存储系统,其特征在于,
各FMD检测自身的空存储容量的不足,其还具有:在检测出该不足的情况下通知规定的消息的信息通知部,
所述控制器,执行对应所述规定的消息的控制。
9.根据权利要求2所述的闪速存储器存储系统,其特征在于,
所述控制器还具有结构控制部;
所述结构控制部,在检测出所述多个FMD中的某个FMD闭塞的情况下,确定该闭塞的FMD所属的奇偶校验组,检索适合该奇偶校验组的其它FMD,恢复所述闭塞的FMD内的数据,将该恢复的数据写入所找出的其它FMD中。
10.根据权利要求1所述的闪速存储器存储系统,其特征在于,
所述两个以上的奇偶校验组中的至少一个,由两个以上的第二FMD构成,
所述第二FMD具备:
多个第一FMD;和
第二FMD控制部,其根据来自所述I/O处理控制部的访问,控制对所述多个第一FMD的访问,所述多个第一FMD分别被所述控制器识别,
所述第一FMD具备:
多个闪速存储器;和
内部控制器,其具有控制对该多个闪速存储器的输入输出的第一FMD控制部,各第一FMD的所述第一FMD控制部,根据来自所述第二FMD控制部的访问,控制所述输入输出。
11.根据权利要求10所述的闪速存储器存储系统,其特征在于,
所述控制器,关于由所述两个以上的第二FMD构成的奇偶校验组,以第一FMD为单位管理有无故障。
12.根据权利要求10所述的闪速存储器存储系统,其特征在于,
由所述两个以上的第二FMD构成的奇偶校验组,由多个子奇偶校验组构成;
各子奇偶校验组,由所述两个以上第二FMD中的至少一个中的两个以上第一FMD构成;
通过所述各子奇偶校验组,提供一个以上的逻辑存储单元;
所述I/O处理控制部,即使在所述多个子奇偶校验组中的某个子奇偶校验组内无法恢复数据的情况下,若所述多个子奇偶校验组中存在未发生故障的其它子奇偶校验组,则不闭塞存在于该其它子奇偶校验组上的存储单元地进行输入输出。
13.根据权利要求10所述的闪速存储器存储系统,其特征在于,
由所述两个以上的第二FMD构成的奇偶校验组,由多个子奇偶校验组构成;
各子奇偶校验组,由所述两个以上第二FMD中各不相同的第二FMD中存在的第一FMD构成。
14.根据权利要求10所述的闪速存储器存储系统,其特征在于,
在至少一个第二FMD中,具有不属于奇偶校验组的备用第一FMD;
所述控制器具有结构控制部;
在某个第二FMD中产生了需要的情况下,该结构控制部使用该第二FMD中存在的所述备用第一FMD。
15.根据权利要求14所述的闪速存储器存储系统,其特征在于,
在产生了所述需要的第二FMD中不存在所述备用第一FMD的情况下,所述结构控制部使用其它第二FMD中存在的所述备用第一FMD。
16.根据权利要求14所述的闪速存储器存储系统,其特征在于,
在产生了所述需要的第二FMD中不存在所述备用第一FMD的情况下,所述结构控制部,检索适合于该第二FMD所属的奇偶校验组的其他第二FMD,将所述第二FMD内的数据写入所述其他第二FMD中,并闭塞所述第二FMD。
17.根据权利要求1所述的闪速存储器存储系统,其特征在于,
所述控制器具有结构控制部;
该结构控制部,检查作为奇偶校验组的构成要素从所述外部装置指定的多个FMD各自的内部结构是否相同,若不相同则向所述外部装置输出警告。
18.根据权利要求1所述的闪速存储器存储系统,其特征在于,
由所述多个FMD提供多个逻辑存储单元,各存储单元的块大小小于各FMD的块大小。
19.根据权利要求1所述的闪速存储器存储系统,其特征在于,
还具备高速缓冲存储器;
在所述I/O请求为读请求的情况下,所述I/O处理控制部根据所述读请求,从所述多个FMD中读出数据,将读出的数据暂时存储在所述高速缓冲存储器之后,将所述高速缓冲存储器中存储的数据发送至所述外部装置,当将所述读出的数据存储在所述高速缓冲存储器中时,检查所述高速缓冲存储器中存储的数据是否正确。
20.根据权利要求1所述的闪速存储器存储系统,其特征在于,
多个地址空间被层次化,各层中的块大小不同,
作为层,有:闪速存储器、FMD、由两个以上FMD构成的奇偶校验组、以及提供给所述外部装置的逻辑存储单元。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006150912A JP4818812B2 (ja) | 2006-05-31 | 2006-05-31 | フラッシュメモリストレージシステム |
JP2006150912 | 2006-05-31 | ||
US11/503,217 | 2006-08-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101082853A true CN101082853A (zh) | 2007-12-05 |
CN100552612C CN100552612C (zh) | 2009-10-21 |
Family
ID=38791732
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200710001906.5A Active CN100552612C (zh) | 2006-05-31 | 2007-01-12 | 闪速存储器存储系统 |
Country Status (3)
Country | Link |
---|---|
US (5) | US7640390B2 (zh) |
JP (1) | JP4818812B2 (zh) |
CN (1) | CN100552612C (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101978676A (zh) * | 2008-03-20 | 2011-02-16 | 泊斯达尔有限责任公司 | 冗余数据转发存储 |
CN102662791A (zh) * | 2010-12-14 | 2012-09-12 | 西部数据技术公司 | 在万一失去电力时维护固态存储器内数据冗余方案的系统和方法 |
CN102959522A (zh) * | 2010-08-10 | 2013-03-06 | 株式会社日立制作所 | 计算机系统的管理方法和管理系统 |
CN101604251B (zh) * | 2008-06-12 | 2014-05-07 | 普安科技股份有限公司 | 多同位储存系统中更新实体储存装置控制程序的方法 |
CN106873725A (zh) * | 2015-12-11 | 2017-06-20 | 广达电脑股份有限公司 | 元件承载装置、转换板以及刷新快取存储器的方法 |
CN108037894A (zh) * | 2017-12-05 | 2018-05-15 | 浙江大华技术股份有限公司 | 一种磁盘空间管理方法及装置 |
CN108121501A (zh) * | 2016-11-29 | 2018-06-05 | 株式会社东芝 | 分级存储系统、存储控制器以及分级控制方法 |
CN109086229A (zh) * | 2018-07-17 | 2018-12-25 | 京信通信系统(中国)有限公司 | 器件访问方法、装置、控制器和存储介质 |
CN111831217A (zh) * | 2019-04-19 | 2020-10-27 | 株式会社日立制作所 | 存储系统、其驱动器框体、以及奇偶校验计算方法 |
CN112988051A (zh) * | 2019-12-17 | 2021-06-18 | 株式会社日立制作所 | 存储系统和存储管理方法 |
Families Citing this family (89)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4818812B2 (ja) | 2006-05-31 | 2011-11-16 | 株式会社日立製作所 | フラッシュメモリストレージシステム |
US7836380B2 (en) * | 2006-10-31 | 2010-11-16 | Intel Corporation | Destination indication to aid in posted write buffer loading |
US8489817B2 (en) | 2007-12-06 | 2013-07-16 | Fusion-Io, Inc. | Apparatus, system, and method for caching data |
US8935302B2 (en) | 2006-12-06 | 2015-01-13 | Intelligent Intellectual Property Holdings 2 Llc | Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume |
US8443134B2 (en) | 2006-12-06 | 2013-05-14 | Fusion-Io, Inc. | Apparatus, system, and method for graceful cache device degradation |
CN101622594B (zh) | 2006-12-06 | 2013-03-13 | 弗森-艾奥公司 | 使用空数据令牌指令管理来自于请求设备的数据的装置、系统和方法 |
US8706968B2 (en) | 2007-12-06 | 2014-04-22 | Fusion-Io, Inc. | Apparatus, system, and method for redundant write caching |
US9104599B2 (en) | 2007-12-06 | 2015-08-11 | Intelligent Intellectual Property Holdings 2 Llc | Apparatus, system, and method for destaging cached data |
JP5014821B2 (ja) | 2007-02-06 | 2012-08-29 | 株式会社日立製作所 | ストレージシステム及びその制御方法 |
US7975109B2 (en) | 2007-05-30 | 2011-07-05 | Schooner Information Technology, Inc. | System including a fine-grained memory and a less-fine-grained memory |
US7873878B2 (en) * | 2007-09-24 | 2011-01-18 | International Business Machines Corporation | Data integrity validation in storage systems |
US9519540B2 (en) | 2007-12-06 | 2016-12-13 | Sandisk Technologies Llc | Apparatus, system, and method for destaging cached data |
US7836226B2 (en) | 2007-12-06 | 2010-11-16 | Fusion-Io, Inc. | Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment |
US8732386B2 (en) * | 2008-03-20 | 2014-05-20 | Sandisk Enterprise IP LLC. | Sharing data fabric for coherent-distributed caching of multi-node shared-distributed flash memory |
US8229945B2 (en) | 2008-03-20 | 2012-07-24 | Schooner Information Technology, Inc. | Scalable database management software on a cluster of nodes using a shared-distributed flash memory |
TW200947456A (en) * | 2008-05-15 | 2009-11-16 | Lumous Technology Co Ltd | Multi-channel solid state storage system |
KR20110050404A (ko) | 2008-05-16 | 2011-05-13 | 퓨전-아이오, 인크. | 결함 있는 데이터 저장소를 검출하고 교체하는 장치, 시스템 및 프로그램 제품 |
US8843691B2 (en) * | 2008-06-25 | 2014-09-23 | Stec, Inc. | Prioritized erasure of data blocks in a flash storage device |
JP2010009548A (ja) * | 2008-06-30 | 2010-01-14 | Toshiba Corp | 記憶装置、制御装置、記憶システム、および記憶方法 |
US8463932B2 (en) * | 2008-08-28 | 2013-06-11 | Red Hat, Inc. | Fast HTTP seeking |
US8762621B2 (en) * | 2008-10-28 | 2014-06-24 | Micron Technology, Inc. | Logical unit operation |
US8566507B2 (en) * | 2009-04-08 | 2013-10-22 | Google Inc. | Data storage device capable of recognizing and controlling multiple types of memory chips |
US8281227B2 (en) | 2009-05-18 | 2012-10-02 | Fusion-10, Inc. | Apparatus, system, and method to increase data integrity in a redundant storage system |
US8307258B2 (en) | 2009-05-18 | 2012-11-06 | Fusion-10, Inc | Apparatus, system, and method for reconfiguring an array to operate with less storage elements |
JP2010282369A (ja) | 2009-06-03 | 2010-12-16 | Toshiba Corp | メモリシステム |
EP2270644A3 (en) | 2009-06-22 | 2012-10-17 | Hitachi, Ltd. | Method for managing storage system using flash memory, and computer |
JP4874368B2 (ja) | 2009-06-22 | 2012-02-15 | 株式会社日立製作所 | フラッシュメモリを用いたストレージシステムの管理方法及び計算機 |
US20110029716A1 (en) * | 2009-07-29 | 2011-02-03 | Stec, Inc. | System and method of recovering data in a flash storage system |
US9377960B2 (en) | 2009-07-29 | 2016-06-28 | Hgst Technologies Santa Ana, Inc. | System and method of using stripes for recovering data in a flash storage system |
WO2011031796A2 (en) | 2009-09-08 | 2011-03-17 | Fusion-Io, Inc. | Apparatus, system, and method for caching data on a solid-state storage device |
US9122579B2 (en) | 2010-01-06 | 2015-09-01 | Intelligent Intellectual Property Holdings 2 Llc | Apparatus, system, and method for a storage layer |
CN102598019B (zh) | 2009-09-09 | 2015-08-19 | 才智知识产权控股公司(2) | 用于分配存储的设备、系统和方法 |
US8964757B2 (en) | 2009-12-18 | 2015-02-24 | Qualcomm Incorporated | HTTP optimization, multi-homing, mobility and priority |
CN102209087B (zh) * | 2010-03-31 | 2014-07-09 | 国际商业机器公司 | 在具有存储网络的数据中心进行MapReduce数据传输的方法和系统 |
US9164554B2 (en) | 2010-04-12 | 2015-10-20 | Sandisk Enterprise Ip Llc | Non-volatile solid-state storage system supporting high bandwidth and random access |
US8856593B2 (en) | 2010-04-12 | 2014-10-07 | Sandisk Enterprise Ip Llc | Failure recovery using consensus replication in a distributed flash memory system |
US8725951B2 (en) | 2010-04-12 | 2014-05-13 | Sandisk Enterprise Ip Llc | Efficient flash memory-based object store |
US9047351B2 (en) | 2010-04-12 | 2015-06-02 | Sandisk Enterprise Ip Llc | Cluster of processing nodes with distributed global flash memory using commodity server technology |
US8868487B2 (en) | 2010-04-12 | 2014-10-21 | Sandisk Enterprise Ip Llc | Event processing in a flash memory-based object store |
US8954385B2 (en) | 2010-06-28 | 2015-02-10 | Sandisk Enterprise Ip Llc | Efficient recovery of transactional data stores |
JP5388976B2 (ja) | 2010-09-22 | 2014-01-15 | 株式会社東芝 | 半導体記憶制御装置 |
US8601313B1 (en) * | 2010-12-13 | 2013-12-03 | Western Digital Technologies, Inc. | System and method for a data reliability scheme in a solid state memory |
US8601311B2 (en) | 2010-12-14 | 2013-12-03 | Western Digital Technologies, Inc. | System and method for using over-provisioned data capacity to maintain a data redundancy scheme in a solid state memory |
WO2012083308A2 (en) | 2010-12-17 | 2012-06-21 | Fusion-Io, Inc. | Apparatus, system, and method for persistent data management on a non-volatile storage media |
US8694733B2 (en) | 2011-01-03 | 2014-04-08 | Sandisk Enterprise Ip Llc | Slave consistency in a synchronous replication environment |
US8966184B2 (en) | 2011-01-31 | 2015-02-24 | Intelligent Intellectual Property Holdings 2, LLC. | Apparatus, system, and method for managing eviction of data |
US8700950B1 (en) | 2011-02-11 | 2014-04-15 | Western Digital Technologies, Inc. | System and method for data error recovery in a solid state subsystem |
US9003104B2 (en) | 2011-02-15 | 2015-04-07 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for a file-level cache |
US8874823B2 (en) | 2011-02-15 | 2014-10-28 | Intellectual Property Holdings 2 Llc | Systems and methods for managing data input/output operations |
US9201677B2 (en) | 2011-05-23 | 2015-12-01 | Intelligent Intellectual Property Holdings 2 Llc | Managing data input/output operations |
JP5505329B2 (ja) * | 2011-02-22 | 2014-05-28 | 日本電気株式会社 | ディスクアレイ装置及びその制御方法 |
WO2012116369A2 (en) | 2011-02-25 | 2012-08-30 | Fusion-Io, Inc. | Apparatus, system, and method for managing contents of a cache |
US8700951B1 (en) | 2011-03-09 | 2014-04-15 | Western Digital Technologies, Inc. | System and method for improving a data redundancy scheme in a solid state subsystem with additional metadata |
US9563555B2 (en) | 2011-03-18 | 2017-02-07 | Sandisk Technologies Llc | Systems and methods for storage allocation |
US8966191B2 (en) | 2011-03-18 | 2015-02-24 | Fusion-Io, Inc. | Logical interface for contextual storage |
US8874515B2 (en) | 2011-04-11 | 2014-10-28 | Sandisk Enterprise Ip Llc | Low level object version tracking using non-volatile memory write generations |
DE102012206283B4 (de) * | 2011-05-06 | 2013-04-11 | International Business Machines Corporation | Verteilung des Datenflusses auf mehrere Pfade (Multi-Pathing) in einem Speicherbereichsnetzwerk |
JP5222388B2 (ja) * | 2011-11-22 | 2013-06-26 | 株式会社日立製作所 | フラッシュメモリを用いたストレージシステムの管理システム及び管理方法 |
US9274937B2 (en) | 2011-12-22 | 2016-03-01 | Longitude Enterprise Flash S.A.R.L. | Systems, methods, and interfaces for vector input/output operations |
US9767032B2 (en) | 2012-01-12 | 2017-09-19 | Sandisk Technologies Llc | Systems and methods for cache endurance |
US10102117B2 (en) | 2012-01-12 | 2018-10-16 | Sandisk Technologies Llc | Systems and methods for cache and storage device coordination |
US9251052B2 (en) | 2012-01-12 | 2016-02-02 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for profiling a non-volatile cache having a logical-to-physical translation layer |
US9251086B2 (en) | 2012-01-24 | 2016-02-02 | SanDisk Technologies, Inc. | Apparatus, system, and method for managing a cache |
US9116812B2 (en) | 2012-01-27 | 2015-08-25 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for a de-duplication cache |
US10359972B2 (en) | 2012-08-31 | 2019-07-23 | Sandisk Technologies Llc | Systems, methods, and interfaces for adaptive persistence |
US10019353B2 (en) | 2012-03-02 | 2018-07-10 | Longitude Enterprise Flash S.A.R.L. | Systems and methods for referencing data on a storage medium |
US9135064B2 (en) | 2012-03-07 | 2015-09-15 | Sandisk Enterprise Ip Llc | Fine grained adaptive throttling of background processes |
US9612966B2 (en) | 2012-07-03 | 2017-04-04 | Sandisk Technologies Llc | Systems, methods and apparatus for a virtual machine cache |
US10339056B2 (en) | 2012-07-03 | 2019-07-02 | Sandisk Technologies Llc | Systems, methods and apparatus for cache transfers |
US10509776B2 (en) | 2012-09-24 | 2019-12-17 | Sandisk Technologies Llc | Time sequence data management |
US10318495B2 (en) | 2012-09-24 | 2019-06-11 | Sandisk Technologies Llc | Snapshots for a non-volatile device |
US9842053B2 (en) | 2013-03-15 | 2017-12-12 | Sandisk Technologies Llc | Systems and methods for persistent cache logging |
JP6136460B2 (ja) | 2013-03-28 | 2017-05-31 | 富士通株式会社 | 情報処理装置、情報処理装置の制御プログラムおよび情報処理装置の制御方法 |
US10102144B2 (en) | 2013-04-16 | 2018-10-16 | Sandisk Technologies Llc | Systems, methods and interfaces for data virtualization |
US10558561B2 (en) | 2013-04-16 | 2020-02-11 | Sandisk Technologies Llc | Systems and methods for storage metadata management |
US9842128B2 (en) | 2013-08-01 | 2017-12-12 | Sandisk Technologies Llc | Systems and methods for atomic storage operations |
US10019320B2 (en) | 2013-10-18 | 2018-07-10 | Sandisk Technologies Llc | Systems and methods for distributed atomic storage operations |
US10073630B2 (en) | 2013-11-08 | 2018-09-11 | Sandisk Technologies Llc | Systems and methods for log coordination |
US9946616B2 (en) | 2014-01-29 | 2018-04-17 | Hitachi, Ltd. | Storage apparatus |
US9547448B2 (en) | 2014-02-24 | 2017-01-17 | Netapp, Inc. | System and method for transposed storage in raid arrays |
WO2016001962A1 (ja) * | 2014-06-30 | 2016-01-07 | 株式会社日立製作所 | ストレージシステム及び記憶制御方法 |
US9946607B2 (en) | 2015-03-04 | 2018-04-17 | Sandisk Technologies Llc | Systems and methods for storage error management |
WO2016194095A1 (ja) * | 2015-06-01 | 2016-12-08 | 株式会社日立製作所 | 情報処理システム、ストレージ装置及び記憶デバイス |
US9990256B1 (en) * | 2016-03-30 | 2018-06-05 | EMC IP Holding Company, LLC | Storage management system and method |
KR20180062246A (ko) * | 2016-11-30 | 2018-06-08 | 삼성전자주식회사 | 재분배기를 포함하는 메모리 시스템 |
US10929034B2 (en) | 2018-05-08 | 2021-02-23 | International Business Machines Corporation | Allocation of task control blocks in a storage controller for staging and destaging based on storage rank response time |
US10783857B2 (en) | 2018-08-02 | 2020-09-22 | Dell Products, Lp | Apparatus and method for fast memory validation in a baseboard management controller |
KR102606009B1 (ko) * | 2018-08-16 | 2023-11-27 | 에스케이하이닉스 주식회사 | 캐시 버퍼 및 이를 포함하는 반도체 메모리 장치 |
US20220246285A1 (en) * | 2021-02-04 | 2022-08-04 | Kleenedge, Llc | Hospital curtain protocol and tracking system |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7190617B1 (en) | 1989-04-13 | 2007-03-13 | Sandisk Corporation | Flash EEprom system |
DE69533764T2 (de) | 1994-06-22 | 2005-12-01 | Hewlett-Packard Development Co., L.P., Houston | Verfahren zum Gebrauch von Speicherplatten unterschiedlicher Inhalte in einem Einzelvolumen einer hierarchischen Speicherplattenanordnung |
JP3507132B2 (ja) | 1994-06-29 | 2004-03-15 | 株式会社日立製作所 | フラッシュメモリを用いた記憶装置およびその記憶制御方法 |
DE19540915A1 (de) * | 1994-11-10 | 1996-05-15 | Raymond Engineering | Redundante Anordnung von Festkörper-Speicherbausteinen |
US5920884A (en) | 1996-09-24 | 1999-07-06 | Hyundai Electronics America, Inc. | Nonvolatile memory interface protocol which selects a memory device, transmits an address, deselects the device, subsequently reselects the device and accesses data |
US6182188B1 (en) * | 1997-04-06 | 2001-01-30 | Intel Corporation | Method of performing reliable updates in a symmetrically blocked nonvolatile memory having a bifurcated storage architecture |
JP3565687B2 (ja) | 1997-08-06 | 2004-09-15 | 沖電気工業株式会社 | 半導体記憶装置およびその制御方法 |
US5956743A (en) | 1997-08-25 | 1999-09-21 | Bit Microsystems, Inc. | Transparent management at host interface of flash-memory overhead-bytes using flash-specific DMA having programmable processor-interrupt of high-level operations |
US6311283B1 (en) * | 1998-09-17 | 2001-10-30 | Apple Computer, Inc. | Need based synchronization of computer system time clock to reduce loading on network server |
JP2000207137A (ja) * | 1999-01-12 | 2000-07-28 | Kowa Co | 情報記憶装置 |
JP3557994B2 (ja) * | 2000-04-05 | 2004-08-25 | 日本電気株式会社 | ファイルデータ格納装置及び方法並びに記録媒体 |
JP3726663B2 (ja) * | 2000-09-07 | 2005-12-14 | 日産自動車株式会社 | 電子制御装置の制御データ記憶装置 |
JP4818812B2 (ja) * | 2006-05-31 | 2011-11-16 | 株式会社日立製作所 | フラッシュメモリストレージシステム |
US6571326B2 (en) * | 2001-03-08 | 2003-05-27 | Intel Corporation | Space allocation for data in a nonvolatile memory |
CN1147933C (zh) | 2002-04-22 | 2004-04-28 | 信息产业部电子第15研究所 | 高速大容量快闪固态存储器的制作方法 |
JP4651913B2 (ja) * | 2003-02-17 | 2011-03-16 | 株式会社日立製作所 | 記憶装置システム |
JP2005018185A (ja) * | 2003-06-24 | 2005-01-20 | Hitachi Ltd | 記憶装置システム |
KR100546348B1 (ko) * | 2003-07-23 | 2006-01-26 | 삼성전자주식회사 | 플래시 메모리 시스템 및 그 데이터 저장 방법 |
JP2005100259A (ja) | 2003-09-26 | 2005-04-14 | Hitachi Ltd | ドライブの2重障害を防止するアレイ型ディスク装置、プログラム、及び方法 |
JP2005181185A (ja) | 2003-12-22 | 2005-07-07 | Orion Denki Kk | 電流検出機能付きチョークコイル |
JP4311288B2 (ja) * | 2004-06-30 | 2009-08-12 | パナソニック株式会社 | 記憶装置 |
JP4576923B2 (ja) * | 2004-08-09 | 2010-11-10 | 株式会社日立製作所 | ストレージシステムの記憶容量管理方法 |
JP2006079380A (ja) * | 2004-09-10 | 2006-03-23 | Hitachi Ltd | ディスクアレイ装置 |
JP5008845B2 (ja) * | 2005-09-01 | 2012-08-22 | 株式会社日立製作所 | ストレージシステムとストレージ装置及びその制御方法 |
US7631245B2 (en) * | 2005-09-26 | 2009-12-08 | Sandisk Il Ltd. | NAND flash memory controller exporting a NAND interface |
JP4863749B2 (ja) * | 2006-03-29 | 2012-01-25 | 株式会社日立製作所 | フラッシュメモリを用いた記憶装置、その消去回数平準化方法、及び消去回数平準化プログラム |
JP2008015769A (ja) * | 2006-07-05 | 2008-01-24 | Hitachi Ltd | ストレージシステム及び書き込み分散方法 |
JP4932427B2 (ja) * | 2006-10-20 | 2012-05-16 | 株式会社日立製作所 | 記憶装置及び記憶方法 |
-
2006
- 2006-05-31 JP JP2006150912A patent/JP4818812B2/ja active Active
- 2006-08-14 US US11/503,217 patent/US7640390B2/en active Active
-
2007
- 2007-01-12 CN CN200710001906.5A patent/CN100552612C/zh active Active
-
2009
- 2009-11-13 US US12/617,765 patent/US7899981B2/en active Active
-
2011
- 2011-01-21 US US13/010,897 patent/US8166235B2/en active Active
-
2012
- 2012-03-08 US US13/414,755 patent/US8359426B2/en active Active
- 2012-12-17 US US13/716,326 patent/US8924637B2/en active Active
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101978676A (zh) * | 2008-03-20 | 2011-02-16 | 泊斯达尔有限责任公司 | 冗余数据转发存储 |
CN103927206B (zh) * | 2008-06-12 | 2017-06-16 | 普安科技股份有限公司 | 多同位储存系统中更新实体储存装置控制程序的方法 |
CN101604251B (zh) * | 2008-06-12 | 2014-05-07 | 普安科技股份有限公司 | 多同位储存系统中更新实体储存装置控制程序的方法 |
CN103984587B (zh) * | 2008-06-12 | 2017-10-20 | 普安科技股份有限公司 | 储存虚拟化系统中更新实体储存装置的控制程序的方法 |
CN103927206A (zh) * | 2008-06-12 | 2014-07-16 | 普安科技股份有限公司 | 多同位储存系统中更新实体储存装置控制程序的方法 |
CN103984587A (zh) * | 2008-06-12 | 2014-08-13 | 普安科技股份有限公司 | 储存虚拟化系统中更新实体储存装置的控制程序的方法 |
CN102959522A (zh) * | 2010-08-10 | 2013-03-06 | 株式会社日立制作所 | 计算机系统的管理方法和管理系统 |
CN102959522B (zh) * | 2010-08-10 | 2016-01-13 | 株式会社日立制作所 | 计算机系统的管理方法和管理系统 |
CN102662791B (zh) * | 2010-12-14 | 2015-04-22 | 西部数据技术公司 | 在万一失去电力时维护固态存储器内数据冗余方案的系统和方法 |
CN102662791A (zh) * | 2010-12-14 | 2012-09-12 | 西部数据技术公司 | 在万一失去电力时维护固态存储器内数据冗余方案的系统和方法 |
CN106873725B (zh) * | 2015-12-11 | 2020-08-18 | 广达电脑股份有限公司 | 元件承载装置、转换板以及刷新快取存储器的方法 |
CN106873725A (zh) * | 2015-12-11 | 2017-06-20 | 广达电脑股份有限公司 | 元件承载装置、转换板以及刷新快取存储器的方法 |
CN108121501A (zh) * | 2016-11-29 | 2018-06-05 | 株式会社东芝 | 分级存储系统、存储控制器以及分级控制方法 |
CN108121501B (zh) * | 2016-11-29 | 2021-02-09 | 株式会社东芝 | 分级存储系统、存储控制器以及分级控制方法 |
CN108037894B (zh) * | 2017-12-05 | 2021-07-20 | 浙江大华技术股份有限公司 | 一种磁盘空间管理方法及装置 |
CN108037894A (zh) * | 2017-12-05 | 2018-05-15 | 浙江大华技术股份有限公司 | 一种磁盘空间管理方法及装置 |
CN109086229A (zh) * | 2018-07-17 | 2018-12-25 | 京信通信系统(中国)有限公司 | 器件访问方法、装置、控制器和存储介质 |
CN111831217A (zh) * | 2019-04-19 | 2020-10-27 | 株式会社日立制作所 | 存储系统、其驱动器框体、以及奇偶校验计算方法 |
CN112988051A (zh) * | 2019-12-17 | 2021-06-18 | 株式会社日立制作所 | 存储系统和存储管理方法 |
Also Published As
Publication number | Publication date |
---|---|
US8359426B2 (en) | 2013-01-22 |
US20130103895A1 (en) | 2013-04-25 |
US8166235B2 (en) | 2012-04-24 |
CN100552612C (zh) | 2009-10-21 |
US20070283079A1 (en) | 2007-12-06 |
US7640390B2 (en) | 2009-12-29 |
US7899981B2 (en) | 2011-03-01 |
US20110119435A1 (en) | 2011-05-19 |
JP2007323224A (ja) | 2007-12-13 |
US20120173802A1 (en) | 2012-07-05 |
JP4818812B2 (ja) | 2011-11-16 |
US8924637B2 (en) | 2014-12-30 |
US20100064097A1 (en) | 2010-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100552612C (zh) | 闪速存储器存储系统 | |
US7761655B2 (en) | Storage system and method of preventing deterioration of write performance in storage system | |
US9329957B2 (en) | Method for managing storage system using flash memory, and computer | |
US5089958A (en) | Fault tolerant computer backup system | |
US8762672B2 (en) | Storage system and storage migration method | |
US8489813B2 (en) | Storage system that executes performance optimization that maintains redundancy | |
CN101571815B (zh) | 信息系统及i/o处理方法 | |
JP4949088B2 (ja) | 階層型ストレージシステム間でのリモートミラー方式 | |
CN101351760A (zh) | 用于在高电源效率的大容量可扩展存储系统中存取辅助数据的方法和系统 | |
CN105009085A (zh) | 信息处理系统、控制程序以及信息处理设备 | |
CN104956311A (zh) | 存储系统以及存储控制方法 | |
CN104699420A (zh) | 允许各种规模存储装置的动态可扩展和可收缩的容错存储系统和方法 | |
CN101501623A (zh) | 感知文件系统的块存储系统、装置和方法 | |
US20100115310A1 (en) | Disk array apparatus | |
WO2012073295A1 (en) | Cluster storage setting method, system, and management system | |
US20070043917A1 (en) | Storage system and storage control method without requiring formatting of storage device | |
US7873866B2 (en) | Computer system, storage system and configuration management method | |
CN102147714A (zh) | 一种网络存储系统的管理方法及装置 | |
JP2006146661A (ja) | レプリケーションシステム、方法、レプリカストレージ、およびプログラム | |
JPH06266510A (ja) | ディスクアレイシステムおよびそのためのデータ書き込み方法、障害回復方法 | |
EP1862905A2 (en) | Flash memory storage system | |
EP2270644A2 (en) | Method for managing storage system using flash memory, and computer |
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 |