CN101373417B - 具备备份高速缓冲存储器上的数据的功能的存储系统 - Google Patents
具备备份高速缓冲存储器上的数据的功能的存储系统 Download PDFInfo
- Publication number
- CN101373417B CN101373417B CN2008100986299A CN200810098629A CN101373417B CN 101373417 B CN101373417 B CN 101373417B CN 2008100986299 A CN2008100986299 A CN 2008100986299A CN 200810098629 A CN200810098629 A CN 200810098629A CN 101373417 B CN101373417 B CN 101373417B
- Authority
- CN
- China
- Prior art keywords
- control module
- data key
- key element
- dirty data
- cache memory
- 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.)
- Expired - Fee Related
Links
- 230000015654 memory Effects 0.000 title claims abstract description 182
- 230000006870 function Effects 0.000 title description 2
- 238000000034 method Methods 0.000 claims description 33
- 238000007726 management method Methods 0.000 description 103
- 238000012545 processing Methods 0.000 description 45
- 230000005611 electricity Effects 0.000 description 35
- 238000004321 preservation Methods 0.000 description 24
- 230000008569 process Effects 0.000 description 21
- 230000005540 biological transmission Effects 0.000 description 19
- 230000008878 coupling Effects 0.000 description 17
- 238000010168 coupling process Methods 0.000 description 17
- 238000005859 coupling reaction Methods 0.000 description 17
- 230000000694 effects Effects 0.000 description 11
- 238000011084 recovery Methods 0.000 description 7
- 230000000295 complement effect Effects 0.000 description 5
- 230000009467 reduction Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000015572 biosynthetic process Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 206010008190 Cerebrovascular accident Diseases 0.000 description 1
- 241001269238 Data Species 0.000 description 1
- 208000006011 Stroke Diseases 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 230000009931 harmful effect Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 239000000178 monomer Substances 0.000 description 1
- 210000000056 organ Anatomy 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000000007 visual effect Effects 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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1441—Resetting or repowering
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2015—Redundant power supplies
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供一种具备备份高速缓冲存储器上的数据的功能的存储系统。着力缩短为了从非易失性存储资源向高速缓冲存储器还原数据所需的时间长度。存储系统中具备分别具有多个高速缓冲存储器的多个控制模块。将第一控制模块内的第一高速缓冲存储器中存储的多个脏数据要素中的一个以上的脏数据要素,拷贝到第二控制模块内的第二高速缓冲存储器。将第二高速缓冲存储器中存储的一个以上的脏数据要素,备份到非易失性存储资源。从第一高速缓冲存储器备份到非易失性存储资源的脏数据要素,是多个脏数据要素中完成了拷贝的上述一个以上的脏数据要素以外的脏数据要素。
Description
技术领域
本发明涉及在存储系统内的高速缓冲存储器中存储的数据的备份。
背景技术
作为与高速缓冲存储器中存储的数据的备份相关的技术,例如,已知有专利文献1中公开的技术。根据专利文献1,在尚未保存到盘中的数据存在于高速缓冲存储器中的状态下切断了来自外部的电源时,在从电池供电的期间将高速缓冲存储器上的数据拷贝到非易失性存储器。在拷贝完成后,继续从电池向高速缓冲存储器供电。当再次开始从外部供电时,若继续从电池供电,则可使用在高速缓冲存储器中存储的数据,若电池被耗尽,则可从非易失性存储器向高速缓冲存储器复原数据。
【专利文献1】特开2002-99390号公报
近年来,由于构成高速缓冲存储器的存储器芯片单体的容量增加和存储系统的高性能化等理由,高速缓冲存储器的存储容量增加了。因此,系统停机时间(System Downtime)有可能增长。所谓“系统停机时间”,是存储系统从上位装置(例如主计算机)停止I/O命令的接收后、直到再次开始接收I/O命令为止的时间长度。假定从某时刻(例如由于停电等不从主电源向高速缓冲存储器供电的电源切断时)开始的系统停机时间的结束时,是结束从非易失性存储资源向高速缓冲存储器还原数据的时刻,则该还原所需的时间长度(以下为了便于说明,将从非易失性存储资源向高速缓冲存储器还原数据称为“升级”,将该还原所需的时间长度称为“升级时间长度”)会影响系统停机时间的长度。如上所述,由于高速缓冲存储器的存储容量增加,因此被升级的数据的量增多,所以升级时间长度延长。于是,与之相伴,系统停机时间也延长。一般出于不对用户的业务产生不良影响等理由,要求存储系统24小时/365天不停止,因此,系统停机时间延长是个问题。
发明内容
因此,本发明的目的在于缩短从非易失性存储资源向高速缓冲存储器还原数据所需的时间长度。
本发明的其它目的可以通过后述说明而明了。
存储系统中具备分别具有多个高速缓冲存储器的多个控制模块。将第一控制模块内的第一高速缓冲存储器中存储的多个脏数据要素(未反映到存储设备的数据要素)中的一个以上的脏数据要素,拷贝到第二控制模块内的第二高速缓冲存储器。将第二高速缓冲存储器中存储的一个以上的脏数据要素备份到非易失性存储资源。从第一高速缓冲存储器备份到非易失性存储资源的脏数据要素,是多个脏数据要素中完成了拷贝的上述一个以上的脏数据要素以外的脏数据要素。
附图说明
图1A表示本发明的一个实施方式的存储系统的外观正面概要。
图1B表示电源模块的结构例。
图2表示4个DKC模块1至4各自的结构以及它们的关系。
图3表示从一个DKC模块1内的CM向其它DKC模块2至4的各自的CM拷贝脏数据要素的过程。
图4A表示DKC模块间的数据复制的概念。
图4B表示DKC模块1至4中的SW-PK彼此的连接的一例。
图5A表示不对存储在一个CM中的脏数据要素组进行分割地保存在SSD中的情况下的备份时间长度、恢复时间长度以及系统停机时间。
图5B表示将存储在一个CM中的脏数据要素组分割为4个脏子组,将4个脏子组分别保存在4个CM中的情况下的备份时间长度、恢复时间长度以及系统停机时间。
图6A表示管理信息群的结构例。
图6B表示保存在SSD中的脏数据要素的结构例。
图7A表示DKC模块内的脏数据要素组的分割的一例。
图7B表示从DKC模块1向其它DKC模块2至4的初始脏子组的拷贝的概念。
图8A表示从DKC模块1向其它DKC模块2至4的差分脏子组的拷贝的概念。
图8B表示DKC模块1至4中的脏数据要素的升级、以及从其它DKC模块2至4向DKC模块1的脏数据要素的传输的概念。
图9A表示DKC模块1和2内的脏数据要素组的分割的一例。
图9B表示从DKC模块1(和2)向其它DKC模块3(和4)的初始脏子组的拷贝的概念。
图10A表示从DKC模块1(和2)向其它DKC模块3(和4)的差分脏子组的拷贝的概念。
图10B表示DKC模块1至4中的脏数据要素的升级、以及从其它DKC模块3(和4)向DKC模块1(和2)的脏数据要素的传输的概念。
图11表示本发明的一个实施方式中进行的处理的流程的第一部分。
图12表示本发明的一个实施方式中进行的处理的流程的第二部分。
图13表示本发明的一个实施方式中进行的处理的流程的第三部分。
图14表示本发明的一个实施方式中进行的处理的流程的第四部分。
图15表示本发明的一个实施方式中进行的处理的流程的第五部分。
图16表示本发明的一个实施方式中进行的处理的流程的第六部分。
图17表示本发明的一个实施方式中进行的处理的流程的第七部分。
图18表示本发明的一个实施方式中进行的处理的流程的第八部分。
图19表示本发明的一个实施方式中进行的处理的流程的第九部分。
图20表示本发明的一个实施方式中进行的处理的流程的第十部分。
图21表示本发明的一个实施方式中进行的处理的流程的第十一部分。
图22表示本发明的一个实施方式中进行的处理的流程的第十二部分。
图23表示本发明的一个实施方式中进行的处理的流程的第十三部分。
图24表示本发明的一个实施方式中进行的处理的流程的第十四部分。
图25表示DKC模块1接收到写命令时所进行的处理的流程的一例。
图26表示DKC模块1接收到读命令时所进行的处理的流程的一例。
符号说明
100存储系统、113DKC模块、115电源模块
具体实施方式
根据实施方式1中,存储系统除了多个存储设备以外还具备分别具有多个高速缓冲存储器和控制单元的多个控制模块。存储系统将第一控制模块内的第一高速缓冲存储器中存储的多个脏数据要素(尚未写入存储设备的数据要素)中的一个以上的脏数据要素,拷贝到第二控制模块内的第二高速缓冲存储器。从第二高速缓冲存储器将这些一个以上的脏数据要素备份到非易失性存储资源,将这些一个以上的脏数据要素以外的脏数据要素从第一高速缓冲存储器备份到非易失性存储资源。
根据实施方式2,在从主电源供电的期间,将一个以上的脏数据要素拷贝到第二高速缓冲存储器。当不从主电源供电、而接受来自电池的供电时,进行上述的各自的备份。
根据实施方式3,在实施方式2中,在电池耗尽后(例如从电池的供电消失、或者放电电压低于规定阈值),若从停电恢复而再次开始供电,则进行:存储系统从非易失性存储资源向第一高速缓冲存储器升级脏数据要素;以及从非易失性存储资源向第二高速缓冲存储器升级脏数据要素,与之并行地将该脏数据要素从第二高速缓冲存储器拷贝到第一高速缓冲存储器。
根据实施方式4,在实施方式3中,第一控制模块生成表示将第一高速缓冲存储器的哪个高速缓冲存储区域中的脏数据要素拷贝到了哪个控制模块的高速缓冲存储器的管理信息,并写入第一高速缓冲存储器,根据脏数据要素的拷贝的完成,更新所述管理信息。当进行备份时,存储系统除脏数据要素以外,还将管理信息从第一高速缓冲存储器备份到非易失性存储资源,当再次开始供电时,除脏数据要素以外,还将管理信息从非易失性存储资源升级到第一高速缓冲存储器。
根据实施方式5,在实施方式1至4中的至少一个实施方式中,根据第一控制模块的数量和对于该第一控制模块的一个以上的第二控制模块的数量的总和,将多个脏数据要素均等地分割。对通过该分割而得到的脏数据要素进行拷贝。
根据实施方式6,在实施方式1至5中的至少一个实施方式中,被构成为:各控制单元将遵从来自上位装置的I/O命令的数据写入高速缓冲存储器,将已写入高速缓冲存储器的数据写入多个存储设备中的至少一个中,或者将该数据发送至上位装置。第一控制单元命令第二控制模块内的第二控制单元拷贝所述一个以上的脏数据要素。第二控制单元应答该命令,在第二高速缓冲存储器中写入一个以上的脏数据要素。由此,从第一高速缓冲存储器向第二高速缓冲存储器拷贝一个以上的脏数据要素。
根据实施方式7,在实施方式1至6中的至少一个实施方式中,存储系统还具备作为所述多个控制模块各自的电源的多个电源模块。第二控制模块的数量在第一控制模块的数量以上,对应于一个第一控制模块,有一个以上的第二控制模块。非易失性存储资源是多个控制模块各自具有的多个非易失性存储器模块(例如具备一个以上的非易失性存储器的模块)。各控制模块还具备将高速缓冲存储器和控制单元可通信地连接的连接单元。通过连接单元彼此的连接,将控制模块彼此连接。电源模块包含电池和主电源。主电源向高速缓冲存储器以及控制单元供电,当不从主电源供电时,电池向高速缓冲存储器以及控制单元供电。第一控制单元在从主电源供电的期间从上位装置接收I/O命令,当接收到的I/O命令是写命令时,将遵从写命令的数据要素写入第一高速缓冲存储器。另外,第一控制单元生成所述管理信息,并写入第一高速缓冲存储器。第一控制单元,将一个以上的脏数据要素的拷贝命令,经由包含所述第一控制模块具有的第一连接单元和第二控制模块具有的第二连接单元在内的两个以上的连接单元,发送至第二控制单元。然后,由于将遵从一个以上的写命令的多个数据要素写入第一高速缓冲存储器而在第一高速缓冲存储器中存在新的多个脏数据要素时,还将新的多个脏数据要素中的一个以上的脏数据要素的拷贝命令,经由所述两个以上的连接单元发送至第二控制单元,根据脏数据要素的拷贝的完成来更新管理信息。第二控制单元,在不从主电源供电、而接受来自电池的供电的期间,将写入第二高速缓冲存储器的脏数据要素备份到第二控制模块所具备的第二所述非易失性存储器模块,当再次开始供电时,从第二非易失性存储器模块向第二高速缓冲存储器升级脏数据要素,与之并行地经由所述两个以上的连接单元向第一控制单元发送已升级的脏数据要素的拷贝命令。第一控制单元,在不从主电源供电、而接受来自电池的供电的期间,将完成了拷贝的一个以上的脏数据要素以外的脏数据要素和所述管理信息,从第一高速缓冲存储器备份到第一控制模块所具备的第一非易失性存储器模块,当再次开始从主电源供电时,从第一非易失性存储器模块向第一高速缓冲存储器升级管理信息和脏数据要素,并且将已升级到第二高速缓冲存储器中的脏数据要素写入第一高速缓冲存储器。此后,例如,第一控制单元将已写入第一高速缓冲存储器的脏数据要素和上述已升级的脏数据要素合并。
根据实施方式8,在实施方式1至7中至少一个实施方式中,第一控制单元,在接受来自主电源的供电时,向第二控制模块发送拷贝命令,当不从主电源供电、而接受来自电池的供电时,不发送拷贝命令而将脏数据要素从第一高速缓冲存储器备份到非易失性存储资源。
根据实施方式9,在实施方式1至8中至少一个实施方式中,具有消耗比例在第一规定比例以上的高速缓冲存储器的控制模块成为第一控制模块,所述消耗比例是脏数据要素的总量相对于高速缓冲存储器的存储容量的比例。具有消耗比例未达到第二规定比例的高速缓冲存储器的控制模块成为第二控制模块。
根据实施方式10,在实施方式1至9中至少一个实施方式中,通过连接单元彼此的连接,将控制模块彼此连接。
根据实施方式11,在实施方式1至10中至少一个实施方式中,第一控制单元,当从上位装置接收到写命令时,若第一高速缓冲存储器的消耗比例在第三规定比例以上,则将遵从该写命令的一个以上的数据要素(例如,经由包含其它控制模块内的连接单元和第一连接模块在内的两个以上的连接模块)发送至其它控制模块,其它控制模块将该一个以上的数据要素写入自身的模块内的高速缓冲存储器。
根据实施方式12,在实施方式1至11中至少一个实施方式中,将多个存储设备中的各两个以上的存储设备分配给各控制模块。基于各两个以上的存储设备形成各逻辑卷,各逻辑卷是所述各控制模块负责的逻辑卷。第一控制单元,当从上位装置接收到写命令时,若通过该写命令指定的自身的负责逻辑卷的空闲状况比规定的状况差,则将遵从该写命令的一个以上的数据要素(例如经由包含其它控制模块内的连接单元和所述第一连接单元在内的两个以上的连接单元)发送至其它控制模块。其它控制模块,将该一个以上的数据要素写入自身模块内的高速缓冲存储器,将写入该高速缓冲存储器的一个以上的数据要素写入自身的负责逻辑卷。
根据实施方式13,在实施方式1至12中的至少一个实施方式中,第一控制单元发送了一个以上的脏数据要素的拷贝命令后,由于将遵从一个以上的写命令的多个数据要素写入第一高速缓冲存储器而在第一高速缓冲存储器上存在新的多个脏数据要素时,还向第二控制模块发送拷贝新的多个脏数据要素中的一个以上的脏数据要素的命令。
根据实施方式14,在实施方式1至13中的至少一个实施方式中,第二控制单元将拷贝到第二高速缓冲存储器的脏数据要素备份到非易失性存储资源,从非易失性存储资源向第二高速缓冲存储器升级脏数据要素,与之并行地向第一控制模块发送已升级的脏数据要素的拷贝命令。第一控制单元从非易失性存储资源向第一高速缓冲存储器升级管理信息和脏数据要素,应答拷贝命令,将来自第二控制模块的脏数据要素写入第一高速缓冲存储器。
以下,参照附图详细说明本发明的几个实施方式。此外,在以下说明中,将构成高速缓冲存储器的多个物理或逻辑存储区域(例如区段(segment))中分别存储的数据、即存储在一个存储区域中的数据称为“数据要素”。因此,例如,将遵从一个写命令的写数据写入高速缓冲存储器时,在该高速缓冲存储器中存在构成写数据的一个以上的写数据要素。
图1A表示本发明的一个实施方式的存储系统的外观正面概要。
存储系统100由多个模块组件构成。模块组件包含对该模块组件内的规定的结构要素供电的电源模块,被容纳在可以搭载3个(也可以多于或少于3个)模块组件而构成的机箱101中。
作为模块组件,例如,有DKU(Disk Unit)模块组件105、DKC(DiskController)模块组件111。在机箱101中可以仅搭载DKU模块组件105,可以搭载DKC模块组件111,也可以搭载DKU模块组件105和DKC模块组件111的双方。在哪个机箱101的哪里搭载怎样的模块组件可以预先定义,也可以不预先定义而自由选择。
DKU模块组件105,例如,有两个DKU模块107和一个电源模块109。在DKU模块107中包含多个盘设备。作为盘设备,采用例如硬盘或者DVD(Digital versatile Disk)等非易失性盘型存储介质的驱动器(不限于盘型存储介质,也可以采用非易失型半导体存储器(例如闪速存储器)等其它种类的存储介质的驱动器)。通过这些多个盘设备中的两个以上的盘设备形成RAID组。基于RAID组的存储空间,形成一个以上的逻辑存储设备(以下,将LogicalStorage Device简称为“LDEV”)。LDEV也可以称为逻辑卷(Logical Volume)或逻辑单元(Logical Unit)。在后面对电源模块109进行说明。
DKC模块组件111具有DKC模块113和电源模块115。在后面对DKC模块113进行说明。电源模块115如图1B所示,包含将来自外部电源(例如商用电源)的AC电力变换为DC电力来进行供给的AC/DC电源(主电源)116、和由于停电等导致不从AC/DC电源116供给电力时,代替该AC/DC电源116向规定的结构要素供给电力的电池(辅助电源)118。AC/CD电源116向包含自身的DKC模块组件111内的DKC模块113的各个结构要素(后述的FE-PK、BE-PK、MP-PK、CM-PK)供电。电池118向包含自身的DKC模块组件111内的DKC模块113中的、至少从CM(高速缓冲存储器)向SSD备份脏数据要素(未写入盘设备的数据要素)所需的要素(例如仅CM-PK和SSD)供电。此外,所述的DKU模块组件105内的电源模块109仅具备向各盘设备供给DC电力的AC/DC电源,与电源模块115不同,不具有电池。
针对每个DKC模块113预先定义了负责的DKU模块107,换言之,预先定义了与该DKC模块113内的后述BE-PK连接的DKU模块107。例如,在本实施方式中,有4个DKC模块113(以下为方便起见,用序号1、2、3和4对它们命名),DKC模块1是以虚线框H1表示的范围内的DKU模块107的负责模块,DKC模块2是以虚线框H2表示的范围内的DKU模块107的负责模块,DKC模块3是以虚线框H3表示的范围内的DKU模块107的负责模块,DKC模块4是以虚线框H4表示的范围内的DKU模块107的负责模块。DKC模块1至4分别也可以访问其它由DKC模块1至4负责的DKU模块。详细情况在后面进行描述。此外,DKC模块113的数量可以少于或多于4个。
图2表示4个DKC模块1至4各自的结构和它们的关系。
DKC模块1至4的各自的结构实质上相同。关于DKC模块1至4的各自的结构,以DKC模块1为代表来举例说明。此时,以父号码和DKC模块的序号构成DKC模块内的结构要素的参照号码,当区别同种结构要素来说明时,使用父号码和序号的组合进行说明,当不特别区别同种结构要素来说明时,仅使用父号码进行说明。例如,当指定某DKC模块的FE-PK时仅使用父号码1151,当指定DKC模块1内的FE-PK时使用1151-1,当指定DKC模块2内的FE-PK时使用1151-2。另外,利用DKC模块1至4分别负责的DKU模块107形成了LDEV1至4。因此,DKC模块1的负责模块为LDEV1,DKC模块2的负责模块为LDEV2,DKC模块3的负责模块为LDEV3,DKC模块4的负责模块为LDEV4。
DKC模块1具备:FE-PK(Front End-Package)1151-1、BE-PK(BackEnd-Package)1153-1、MP-PK(Micro Processor-Package)1137-1、CM-PK(CacheMemory-Package)1143、SSD(Solid State Device)1151-1以及SW-PK(Switch-Package)1135-1。分别将这些结构要素二重化。
FE-PK1151-1是控制与主计算机1100的通信的电路板,例如是从主计算机1100通过通信网络171接收I/O命令(写命令/读命令)、或者向主计算机1100发送读数据(遵从读命令的数据)的电路板。FE-PK1151-1具有进行与主计算机1100的通信时的协议变换处理的协议芯片(在图中简写为“PRC”)1131-1。FE-PK1151-1当接收到I/O命令时,经由SW-PK1135-1通知MP-PK1137-1内的第一MP(Micro Processor)1141A-1接收到了I/O命令。另外,FE-PK1151-1,当接收到的I/O命令是写命令时,将遵从写命令的数据(以下称为写数据)存储在FE-PK1151-1内未图示的存储资源(例如存储器)中。
MP-PK1137-1是具有进行前端处理(针对主计算机1100的处理)的第一MP1141A-1、和进行后端处理(针对LDEV的处理)的第二MP1141B-1、以及将第一MP1141A-1和第二MP1141B-1连接的MCH(Memory Controller Hub)1139-1的电路板。第一MP1141A-1,作为前端处理,例如,从FE-PK1151-1接收存在写命令的接收的通知,从FE-PK1139-1取得来自主计算机1100的写数据,将所取得的写数据写入CM1147-1。另外,第一MP1141A-1,作为后端处理,例如,从FE-PK1151-1接收存在读命令的接收的通知,调查CM1147-1中是否有对象读数据,如果有,则从CM1147-1读出该读数据,发送至FE-PK1139-1(即经由FE-PK1139-1发送至主计算机1100),如果没有,则使第二MP1141B-1从LDEV1读出读数据,将读出并存储在CM1147-1中的读数据从CM1147-1读出,经由FE-PK1139-1发送至主计算机1100。第二MP1141B-1,作为后端处理,例如从CM1147-1读出写数据,将该写数据和表示其写入目的地的信息(例如LDEV1所对应的盘设备及其写入目的地地址)发送至BE-PK1153-1(即经由BE-PK1153写入LDEV1),或者从LDEV1经由BE-PK1153-1读出读数据,写入CM1147-1。
BE-PK1153-1是对与该BE-PK1153-1相连的各盘设备的通信进行控制的电路板,例如是将通过第二MP1141B-1从CM1147-1读出的写数据写入LDEV1、或者从LDEV1读出读数据的电路板。BE-PK1153-1具有进行与盘设备的通信时的协议变换处理的协议芯片(图中简写为“PRC”)1133-1。
CM-PK1143-1是具有作为易失性存储器的CM(Cache Memory)1147-1、和成为针对CM1147-1的数据的写入或读出时的接口的CMA(Cache MemoryAdapter)1145-1的电路板。
SSD是具备多个非易失性存储器(例如多个闪速存储器)等的复合模块。
SW-PK1136-1是控制FE-PK1151-1、BE-PK1153-1、MP-PK1137-1以及CM-PK1143的各个间的通信的交换电路板。在SW-PK1136-1上连接了FE-PK1151-1、BE-PK1153-1、MP-PK1137-1以及CM-PK1143。另外,SW-PK1136-1经由链路(例如电缆)1161也与其它DKC模块内的SW-PK1136相连。
即,在DKC模块1与其它DKC模块2至4之间要进行连接,以便可以进行数据交换。DKC模块彼此的连接可以通过将FE-PK彼此连接而实现,但本实施方式中,如前所述通过将SW-PK彼此连接而实现。
例如,如图4B所示,SW-PK1135-1至1135-4分别与其它所有的SW-PK连接。由此,例如,无论是哪个DKC模块113使用哪个其它的DKC模块113的CM1147或哪个其它DKC模块113所负责的LDEV1155的情况,只要经由一条链路1161和其它的一个SW-PK1135,向负责所使用的CM1147或使用的LDEV1155的其它DKC模块113内的MP-PK1137发出命令即可。
具体而言,例如,如图25所示,当DKC模块1从主计算机1100接收到指定了LDEV1的写命令时,MP-PK1137-1判断LDEV1的消耗比例(消耗存储容量相对于LDEV1的存储容量的比例)是否超过了第一阈值、和/或CM1147-1的消耗比例(脏数据要素的总量相对于CM1147-1的存储容量的比例)是否超过了第二阈值(S2501)。若判断结果为LDEV1的消耗比例未超过第一阈值、和/或CM1147-1的消耗比例未超过第二阈值(S2501,否),则MP-PK1137-1将遵从写命令的写数据写入CM1147-1(S2502),将该写数据从CM1147-1读出后写入LDEV1(S2503)。另一方面,当判断结果为LDEV1的消耗比例超过了第一阈值、和/或CM1147-1的消耗比例超过了第二阈值(S2501,是),则MP-PK1137-1向其它DKC模块(例如DKC模块2)传输写命令,并且在传输管理信息(作为表示将哪个地址的地址传输到了哪个DKC模块的信息,例如存储在MP-PK1137-1内的存储器中的信息)中记录将接收到的写命令所指定的地址(例如LDEV的ID或LBA(Logical Block Address))已经传输到其它DKC模块(例如DKC模块2)的情况(S2504)。作为传输目的地的其它DKC模块所负责LDEV的消耗比例在第一阈值以下、和/或CM的消耗比例在第二阈值以下,例如可以通过MP-PK1137-1定期地从各个其它DKC模块获得通知负责LDEV和/或CM的消耗比例而得知这种情况。接收到CM的写命令的其它DKC模块内的MP-PK,将遵从接收到的写命令的写数据写入CM(S2511),将该写数据写入负责LDEV(S2512)。其它DKC模块内的MP-PK,例如将地址管理信息写入该其它DKC模块内的存储资源,所述地址管理信息表示将关于哪个地址的写数据写入哪里。然后,DKC模块1中的MP-PK1137-1进行等待,直到LDEV1的消耗比例达到第一阈值以下、和/或CM1147-1的消耗比例达到第二阈值以下(S2505,是;以及S2506),若LDEV1的消耗比例达到了第一阈值以下、和/或CM1147-1的消耗比例达到了第二阈值以下(S2505中,否),则根据传输管理信息,从作为传输目的地的其它DKC模块取得写数据(S2507),进行S2502以后的处理。在S2507中,例如MP-PK1137-1将所取得的写数据的地址通知给其它DKC模块,其它DKC模块内的MP-PK参照上述地址管理信息,从与所通知的地址对应的场所取得写数据后传输到DKC模块1,由此MP-PK1137-1可以取得传输的写数据。
另外,例如,如图26所示,当DKC模块1从主计算机1100接收到指定了LDEV1的读命令时,MP-PK1137-1通过参照传输管理信息,判断应该存在于读命令所指定的地址的读数据是否存在于其它DKC模块中(S2601)。若判断结果为存在于DKC模块1(S2601,否),若该读数据仍残留在CM1147-1中(S2602,是),MP-PK1137-1,则将CM1147-1上的读数据送至主机(S2605),若该读数据不残留在CM1147-1中(S2602,否),MP-PK1137-1,则从所指定的地址(LDEV1中的块)读出读数据后写入CM1147-1(S2603和S2604),将CM1147-1上的读数据送至主机(S2605)。若S2601的判断结果为存在于其它DKC模块(例如DKC模块2)中(S2601,是),则MP-PK1137-1从其它DKC模块取得读数据(S2606),进行S2604以后的处理。在S2606中,例如MP-PK1137-1将读命令所指定的地址通知给其它DKC模块,其它DKC模块内的MP-PK参照上述地址管理信息,从与所通知的地址对应的场所读出读数据(若CM中残留有读数据则从CM读出,若CM中未残留则从负责LDEV读出读数据后写入CM,从该CM读出该读数据),向DKC模块1传输该读数据,由此,MP-PK1137-1可以从其它DKC模块取得读数据。
此外,SW-PK1135彼此的连接不限于图4B的例子,一个SW-PK1135也可以与至少一个其它SW-PK1135连接。换言之,从某DKC模块113使用其它DKC模块113的CM1147或负责LDEV1155时,也可以经由多条链路1161以及多个SW-PK1135。具体而言,例如在图4B中,SW-PK1135-1和SW-PK1135-3彼此可以不连接。在这种情况下,DKC模块1在使用CM1147-3的情况下,经由SW-PK1135-2可以使用与SW-PK1135-3连接的CM1147-3。
以下,将通过SW-PK1135实现的FE-PK1151、BE-PK1153、MP-PK1137和CM-PK1143的各个PK(Package)间的耦合称为“紧耦合”,将SW-PK1135彼此的耦合称为“松耦合”。原因在于,一个DKC模块113内的PK间的数据的交换,由于经由SW-PK1135而不经由SW-PK1135彼此的耦合(链路1161),因此可以高速地进行;另一方面,DKC模块113间的数据的交换,由于不仅经由SW-PK1135、也经由SW-PK1135彼此的耦合,因此与DKC模块113内的数据传输速度相比,数据传输速度较慢。即所谓紧耦合是指数据传输速度为高速的耦合(即通过SW-PK1135实现的耦合),所谓松耦合是指与之相比数据传输速度为低速的耦合(即通过链路1161实现的耦合)。
在该存储系统100中,如前所述,各DKC模块113搭载SSD1151-1至1151-4,可以在DKC模块113之间拷贝CM1147上的脏数据要素。作为进行该拷贝的情况可以考虑若干种情况,但作为具体例有以下的(情况A)和(情况B)。
(情况A)在多个DKC模块113中的一个DKC模块113的CM1147中,在规定的消耗比例以上积蓄了脏数据要素,在一个以上的其它DKC模块113的CM1147中,脏数据要素的总量未达到规定的消耗比例的情况。
(情况B)在多个DKC模块113中的两个以上的DKC模块113的CM1147中,在规定的消耗比例以上积蓄了脏数据要素,在两个以上的其它DKC模块113的CM1147中,脏数据要素的总量未达到规定的消耗比例的情况。
此外,作为产生(情况A)的原因,例如可以考虑以下几个原因。
·对于一个DKC模块113所负责的LDEV1155集中进行I/O。此外,该LDEV1155可以是作为存储系统100内存在的实体的LDEV,也可以是基于存储虚拟化技术的、由存储系统100提供的虚拟LDEV所对应的外部LDEV(基于存储系统100的外部存储设备而形成的LDEV)。
·RAID5(3D+1P)结构的LDEV1151中,一个盘设备发生故障,作为后台处理之一而执行将该盘设备中存储的数据在备用盘中复原的处理(有时称为集合拷贝(collection copy))、即执行校验位的再计算。
·DKC模块113所负责的LDEV1155内的盘设备负荷均衡化的作业正在运行。
另外,作为产生(情况B)的原因例如可以考虑以下原因。
·存储系统100内拷贝类应用程序正在执行。具体而言,例如存储系统100具有的主LDEV1155内的数据不经由主计算机1100而被拷贝到副LDEV1155。
如上所述,在该存储系统100中,以DKC模块113内的CM1147的消耗比例(脏数据要素的总量相对于CM1147的存储容量的比例)超过预先规定的设定值为契机,利用经由SW-PK1135的DKC模块113间的耦合(松耦合),进行将一个(情况A)或两个以上的(情况B)DKC模块113内的CM1147中积蓄的脏数据要素拷贝至其它DKC模块113内的CM1147的处理。该处理不为存储系统100的用户(即主计算机1100的用户)所知地作为后台处理之一而进行。此外,在拷贝源DKC模块113中存在的完成了拷贝的脏数据要素,在拷贝完成后也残留在该DKC模块113内的CM1147中。原因在于,为了不使针对CM1147上的数据的访问速度降低(由于针对其它DKC模块113的CM1147上的数据的访问经由SW-PK彼此的耦合(松耦合),因此访问速度变慢,I/O性能下降)。
图3中表示(情况A)的数据的流动,例如将DKC模块1内的CM1147-1上的脏数据要素拷贝到其它DKC模块2至4的CM1147-2至1147-4时的数据的流动。由DKC模块1的CM1147-1上的多个脏数据要素构成的组,被分割为4个子组(一个以上的脏数据要素的集合)(以下,将该子组称为“脏子组”),对于这些分割而得的第一至第四脏子组,分别分配了负责的DKC模块1至4。在此例的情况下,第一脏子组由DKC模块1的第二MP1141B-1进行管理,第二至第四脏子组,由第二MP1141B-1经由SW-PK1135彼此的耦合被送至其它DKC模块2至4各自的第二MP1141B-2至1141B-4,通过各自的第二MP1141B-2至1141B-4被写入CM1147-2至1147-4。由此,CM1147-1上的第二至第四脏子组分别被拷贝至CM1147-2至CM1147-4(此外,在图3中,例如,可视之为经由3条链路1161或3个其它SW-PK1135-2至1135-4,向CM1147-4在拷贝第四脏子组;但若根据图4B所示的连接,可以不经由SW-PK1135-2和1135-3而经由一条链路1161和一个其它SW-PK1135-4,向CM1147-4拷贝第四脏子组)。另外,在DKC模块1的CM1147-1上存储后述的管理信息群。
图4A表示(情况B)的数据的流动、例如存储系统100中的DKC模块113间的数据复制的概念。LDEV1是主LDEV,LDEV2是副LDEV。在这种情况下,向主LDEV1的写数据在CM1147-1上被二重化,将一方的写数据写入主LDEV1,将另一方的写数据从CM1147-1拷贝到CM1147-2后,从CM1147-2写入副LDEV2。因此,在两个DKC模块1和2内的CM1147-1和1147-2上积蓄构成写数据的一个以上的脏数据要素。在该情况B下,由CM1147-1上的多个脏数据要素构成的组被分割为第一和第二脏子组(例如被均等地分割),由CM1147-2上的多个脏数据要素构成的组被分割为第三和第四脏子组(例如被均等地分割)。并且,将第二脏子组从DKC模块1的CM1147-1拷贝到DKC模块3的CM1147-3,将第四脏子组从DKC模块2的CM1147-2拷贝到DKC模块4的CM1147-4。CM1147-1和CM1147-2中分别存储管理信息群。
图6A表示管理信息群的结构例。该图6A所示的管理信息群200是(情况A)的管理信息群。
管理信息群200包含第一管理信息201A和第二管理信息201B。
第一管理信息201A是用于管理如下内容的信息:将拷贝源的CM1147的哪个高速缓冲存储区域(例如区段)中存储的脏数据要素(拷贝对象脏子组的构成要素),拷贝到哪里的DKC模块113内的CM1147的哪个高速缓冲存储区域;该拷贝是否完成;该脏数据要素的备份需要与否;向SSD1151的保存是否完成。具体而言,第一管理信息201A中包含:拷贝完成标志(表示拷贝是否完成的标志)、拷贝源信息(由拷贝源DKC模块113的ID(识别符)和作为拷贝源的高速缓冲存储区域的地址的高速缓冲存储地址构成的信息)、拷贝目的地信息(由拷贝目的地DKC模块113的ID和拷贝目的地的高速缓冲存储区域的高速缓冲存储地址构成的信息)、备份需要与否(表示对应的拷贝源中存储的脏数据要素是否需要备份的信息)、以及保存完成标志(表示保存是否完成的标志)。
第二管理信息201B是用于管理拷贝源和拷贝目的地DKC模块中的哪个作业完成、哪个作业未完成的信息。图6A如前所述表示(情况A)的管理信息群200,因此作为拷贝源和拷贝目的地DKC模块,关于DKC模块1至4的全部而包含表示哪个作业完成、哪个作业未完成的作业管理信息要素,但在(情况B)中,例如DKC模块1是拷贝源、DKC模块3是拷贝目的地的情况下,DKC模块1管理的管理信息群200中的第二管理信息201B中不包含关于DKC模块2和4的作业管理信息要素。
以下,参照图11至图24,详细说明本实施方式中进行的处理的流程。
如图11所示,DKC模块x(在此,x是1以上4以下的整数,以下为了便于说明,和上述例子相同地设x=1)中的第二MP1141B-1判断在CM1147-1中是否在第一规定比例以上积蓄了脏数据要素(S1100)。例如可以参照高速缓冲存储管理信息来进行该判断。高速缓冲存储管理信息例如是用于控制针对CM1147-1的数据存储的信息,例如包含高速缓冲存储地址、高速缓冲存储区域属性(例如干净、脏或空闲)以及表示与LRU(Least Recently Used)的距离的信息。所谓高速缓冲存储区域属性为“干净”,意味着是存储了已存储到盘设备中的数据要素、即干净数据要素(例如读数据的的构成要素)的高速缓冲存储区域;所谓“脏”,意味着是存储了脏数据要素的高速缓冲存储区域;所谓“空闲”,意味着是可以存储脏数据要素或干净数据要素的任意一种的、未分配的高速缓冲存储区域。
若判断结果是在CM1147-1中在第一规定比例以上积蓄了脏数据要素(S1100,是),则第二MP1141B-1,关于DKC模块n(在此,n是1以上4以下的除x以外的整数,以下与上述例子相同地设n=2、3和4)的全部CM1147-2至1147-4,判断所存储的脏数据要素的总量是否未达到第二规定比例(S1100)。第二MP1141B-1通过定期地或在该时刻从全部其它DKC模块2至4中的第二MP1141B-2至1141B-4分别接收所述高速缓冲存储管理信息,并参照这些高速缓冲管理信息,可以进行该S1100中的判断。若判断结果是在全部其它DKC模块2至4中未达到第二规定比例(S1101,是),则进行S1104,若判断结果是在至少一个DKC模块2、3或4中在第二规定比例以上(S1101,否),则进行S1102。在后面描述S1102以后的处理。
在S1104中,第二MP1141B-1将CM1147-1中的脏数据要素组均等地分割为4部分。其结果,得到以下第一至第四初始脏子组(初始脏子组A1至A4)。
A1:Dx-1(t)
A2:Dx-2(t0)+ΔDx-2(t)
A3:Dx-3(t0)+ΔDx-3(t)
A4:Dx-4(t0)+ΔDx-4(t)
在此,所谓t0是该S1104的时刻。所谓t是不断流逝的当前时刻。因此,Dx-2(t0)至Dx-4(t0)是通过将时刻t0的脏数据要素组分割为4部分而得到的脏子组(以下称为第一脏子组)。ΔDx-2(t)至ΔDx-4(t)是通过将从时刻t0到当前时刻t为止积蓄的脏数据要素组分割为4部分而得到的脏子组(以下称为第二脏子组)。Dx-1(t)是时刻t0的脏数据要素组和从时刻t0到当前时刻t为止积蓄的脏数据要素组的子组。ΔDx-2(t)至ΔDx-4(t)以及Dx-1(t),是随着当前时刻t的进展,每当在CM1147-1中新积蓄规定数量(例如4个)脏数据要素时所增加的数据。即,拷贝源DKC模块113停止来自主计算机1100的I/O命令的接收后,不进行脏子组的拷贝而接收I/O命令或进行将CM1147上的脏数据要素写入盘设备的处理的同时(即在线状态下),进行脏子组的拷贝。
接着,在S1105中,第二MP1141B-1将初始脏子组A1至A4分别分配给DKC模块1至4。分配的结果如图所示。
在S1106中,第二MP1141B-1将管理信息群200存储在CM1147-1中。其结果如图7A所示,成为在CM1147-1中存储了4个初始脏子组和管理信息群200的状态。此外,在此时刻,以DKC模块1为主(master)、以其它DKC模块2至4分别作为从属(slave)的关系成立。
接着,在图12的S1201中,第二MP1141B-1根据管理信息群200,对于全部作为从属的DKC模块2至4的第二MP1141B-2至1141B-4,分别发布对所分配的初始脏子组A2至A4进行拷贝的作业群(参照图7B)。例如,在向作为从属的DKC模块2的第二MP1141B-2发布的作业群中包含,在CM1147-2的哪个高速缓冲存储区域(例如根据关于CM1147-2的高速缓冲存储管理信息而确定的空闲或干净的高速缓冲存储区域)写入哪个脏数据要素的作业。第二MP1141B-2,每当执行作业时,向作为主DKC模块1中的第二MP1141B-1回答作业的完成和该作业的ID。
第二MP1141B-1,根据各个作为从属的DKC模块2至4中的作业的执行(例如根据接收到作业的完成和该作业的ID),更新管理信息群200(S1202)。具体而言,例如第二MP1141B-1,当从DKC模块2接收到上述回答时,在第一管理信息201A中,关于已拷贝的脏数据要素,将完成标志从表示“未完成”的值更新为表示“完成”的值,更新第二管理信息201B内关于DKC模块2的作业管理信息要素。
第二MP1141B-1,根据高速缓冲存储管理信息和更新后的管理信息群200,判断在CM1147-1中是否在第一规定比例以上积蓄了脏数据要素(S1203)。例如,若构成脏子组A1的脏数据要素通过被存储在DKC模块1负责的LDEV1中而成为干净数据要素时,CM1147-1中的消耗比例有可能降低。
在S1203中,当判断结果是未积蓄时(S1203,否),第二MP1141B-1命令其它第二MP1141B-2至1141B-4清除作业群,解除脏数据要素组的分割,释放管理信息群200(例如丢弃)(S1204)。此后,返回图11的S1100。
在S1203中,当判断结果是已积蓄时(S1203,是),第二MP1141B-1,若未停电(S1205,否),则判断在全部作为从属的DKC模块2至4中是否完成了初始脏子组A2至A4的拷贝(S1206)。若判断结果是在至少一个作为从属的DKC模块2、3或4中,初始脏子组的拷贝未完成时(S1206,否),则返回步骤1206,若判断结果是在全部作为从属的DKC模块2至4中,初始脏子组的拷贝完成(S1206,是),则进入步骤1207。此外,若在S1203中为“是”后停电(S1205,是),则进入图13的S1301(在后面说明S1301以后的处理)。
在S1207中,第二MP1141B-1将管理信息群200中的、与构成CM1147-1中存在的各初始脏子组的脏数据要素对应的备份需要与否,从表示需要备份的信息更新为表示不需要备份的信息。将完成了拷贝的初始脏子组,特意不消除而残留在CM1147-1中。
接着,在图14的S1401中,第二MP1141B-1根据各个作为从属的DKC模块2至4的作业的执行来更新管理信息群200,同时在构建初始脏子组A1至A4后、或者从前一次的S1401到当前时刻t为止,还向作为从属的DKC模块2至4发布对存储在CM1147-1中的脏子组(以下称为差分脏子组)进行拷贝的作业,更新管理信息群,以便不需要对完成了拷贝的差分脏数据要素进行备份(参照图8A)。
第二MP1141B-1判断CM1147-1的消耗比例是否在1/4以上(S1402)。第二MP1141B-1,若CM1147-1的消耗比例下降到不足1/4(S1402,否),则将管理信息群200中的、与作为不需要备份而被管理的脏数据要素所对应的备份需要与否,更新为表示需要备份的信息(S1404)。然后,第二MP1141B-1命令其它第二MP1141B-2至1141B-4清除作业群,解除脏数据要素组的分割,释放管理信息群200(例如丢弃)(S1405)。此后,返回图11的S1100。
在S1402中,当CM1147-1的消耗比例在1/4以上时,第二MP1141B-1,若未停电(S1403,否),则返回S1401,若停电(S1403,是),则进入图16的S1601(在后面说明S1601以后的处理)。即除了停电的情况以外,在CM1147-1的消耗比例下降到不足1/4以前,根据在CM1147-1中新写入脏数据(写数据)来进行差分脏子组的拷贝。
如上所述,在不停电而继续通常运行的状态下,在(情况A)中,适宜将CM1147-1上的多个脏数据要素均等地分散至其它CM1147-2至1147-4。
在此,假定在初始脏子组的拷贝过程中(例如图12的S1203中为“是”时)、或者差分脏子组的拷贝过程中(例如图14的S1402中为“是”时)引起了停电。以下,对各个情况进行说明。
<在初始脏子组的拷贝过程中的停电、以及从该停电的恢复(恢复供电)>
图12的S1203中为“是”时引起停电,是指在管理信息群200中,关于已拷贝的脏数据要素的备份需要与否被更新为不需要备份前(S1207之前)停电。因此,进行图13的S1301以后的处理。
即,第二MP1141B-1通过参照管理信息群200,确定存储了需要备份的脏数据要素的高速缓冲存储区域,将所确定的高速缓冲存储区域中的脏数据要素保存(拷贝)至SSD1151-1中(S1301)。
在此,若恢复供电(即从停电恢复)(S1302,是),则进行S1303,若未恢复供电(S1302,否),则在脏数据要素的保存完成前(S1304,否),继续脏数据要素的保存。当全部脏数据要素的保存完成时(S1304,是),若恢复供电(S1305,是)则进入S1303,若未恢复供电(S1305,否)则进入S1306。
在S1306中,第二MP1141B-1判断来自与DKC模块1所对应的电源模块115内的电池118的放电电压(DC电压)是否在规定值以下。所谓放电电压在规定值以下,意味着电池118中积蓄的电力已枯竭。若在放电电压未达到规定值以下的期间恢复供电(S1306,否;以及S1305,是),则在CM1147-1中通过来自电池118的供电而残留有所保存的脏数据要素,因此第二MP1141B-1可以从SSD1151-1中释放所保存的脏数据要素(S1303)。换言之,不需要从SSD1151-1向CM1147-1还原脏数据要素。此外,所谓释放脏数据要素,可以保持例如表示可以消除脏数据要素、也可以在该脏数据要素上重写其它数据要素的信息。
另一方面,若在恢复供电前放电电压达到规定值以下(S1306,是),则实质上未对CM1147-1供电,因此脏数据要素从CM1147-1丢失(S1307)。此后,当恢复供电后(S1308,是),进行图15的S1501。
即,第二MP1141B-1决定从SSD1151-1向CM1147-1升级管理信息群200(S1501)。此外,例如可以通过预先决定管理信息群200的SSD1151-1中的存储目的地等的方法,来确定管理信息群200存在于SSD1151-1的哪里。
另外,第二MP1141B-1决定将脏数据要素从SSD1151-1还原(restore)到CM1147-1(S1502)。
第二MP1141B-1,在结束将管理信息群200读出到CM1147-1前,从SSD1151-1读出构成管理信息群200的数据要素(S1503,否;以及S1504)。
若结束将管理信息群200读出到CM1147-1(S1503,是),第二MP1141B-1,在完成将所保存的全部脏数据要素升级到CM1147-1中之前,重复从SSD1151-1读出脏数据要素、和将该脏数据要素写入CM1147-1(S1505,否;以及S1506)。若全部脏数据要素的升级完成(S1505,是)则结束。此外,例如存储在SSD1151-1中的脏数据要素的结构成为图6B所示的结构。即,通过进行保存的第二MP1141B-1,在存储了脏数据要素的数据字段(data field)1503上附加头字段(head field)1501,在该头字段1501中记录发送源DKC模块的ID,在数据字段1503中记录保存源的高速缓冲存储区域的地址。由此,将从SSD1151-1读出的脏数据要素升级到根据该脏数据要素确定的保存源的高速缓冲存储区域中。
<差分脏子组的拷贝过程中的停电、以及从该停电的恢复(恢复供电)>
图14的S1402中为“是”时引起停电,是指在管理信息群200中,已拷贝的脏数据要素的备份需要与否被更新为不需要备份后(S1207后)停电。因此,进行图16的S1601以后的处理。
即,各DKC模块1至4中,第二MP1141B-1至1141B-4通过参照管理信息群200或高速缓冲存储管理信息,确定存储了需要备份的脏数据要素的高速缓冲存储区域,将所确定的高速缓冲存储区域中的脏数据要素分别保存(拷贝)在SSD1151-1至1151-4中(S1601)。
在此,若恢复供电(即从停电恢复)(S1602,是)则进行S1603,若不恢复供电(S1602,否),则在各DKC模块1至4中,在脏数据要素的保存完成前(S1604,否)继续脏数据要素的保存。当全部脏数据要素的保存完成时(S1604,是),作为从属的DKC模块2至4中的第二MP1141B-2至1141B-4向作为主DKC模块1中的第二MP1141B-1报告全部脏数据要素的保存完成。第二MP1141B-1应答该完成报告,更新第二管理信息200(例如将所拷贝的各脏数据要素所对应的保存完成标志,从表示未完成的信息更新为表示完成的信息)。此后,若恢复供电(S1606,是)则进入S1603,若不恢复供电(S1606,否)则进入S1607。
在S1607中,在DKC模块1至4中,第二MP1141B-1至1141B-4判断来自与DKC模块1至4分别对应的电源模块115内的电池118的放电电压(DC电压)是否在规定值以下。若在放电电压未达到规定值以下的期间恢复供电(S1607,否;以及S1606,是),则在CM1147-1至1147-4中通过从电池118供电而残留有已保存的脏数据要素,因此,第二MP1141B-1至1141B-4可以从SSD1151-1至1151-4释放所保存的脏数据要素(S1603)。换言之,不需要从SSD1151-1至1151-4向CM1147-1至1147-4还原脏数据要素。
另一方面,若在恢复供电前放电电压达到了规定值以下(S1607,是),实质上没有对CM1147-1至1147-4供电,因此脏数据要素从CM1147-1至1147-4丢失(S1608)。此后,当恢复供电时(S1609,是)进行图17的S1701。
即,第二MP1141B-1决定从SSD1151-1向CM1147-1升级管理信息群200(S1701)。
另外,第二MP1141B-1至1141B-4决定将脏数据要素从SSD1151-1至1151-4还原到CM-1147-1至CM1147-4(S1702)。
而且,第二MP1141B-2至1141B-4决定将已升级的脏数据要素从CM1147-2至1147-4传输至CM1147-1(S1703)。
第二MP1141B-1,在完成向CM1147-1升级管理信息群200前,将构成管理信息群200的数据要素从SSD1151-1升级到CM1147-1(S1704,否;S1704’),在该升级完成后(S1704,是),根据该管理信息群200决定从作为从属的DKC模块2至4传输来的脏数据要素的合并·复原处理(S1705)。
第二MP1141B-1至1141B-4,在完成向CM1147-1至1147-4升级所保存的全部脏数据要素前,重复从SSD1151-1至1151-4读出脏数据要素、和将该脏数据要素写入CM1147-1至1147-4(S1706,否;以及S1707)。全部脏数据要素的升级完成后(S1706,是)进行S1708。此外,在S1707中,将从SSD1151-1至1154-1读出的脏数据要素分别升级到根据该脏数据要素确定的保存源的高速缓冲存储区域(图8B的虚线R1至R4)。
第二MP1141B-2至1141B-4,在将已升级的全部脏数据要素从CM1147-2至1147-4传输至DKC模块1(根据已升级的脏数据要素的头而确定的DKC模块)以前(图8B的虚线T1至T4),重复从CM1147-2至1147-4传输脏数据要素(S1708,否;以及S1709)。若全部脏数据要素的传输完成(S1708,是)则进行S1710。此外,根据升级到CM1147-2至1147-4的各脏数据要素,确定拷贝源DKC模块是DKC模块1,因此,将升级到CM1147-1至1147-4的多个脏数据要素集中到DKC模块1的CM1147-4。在S1709中,将CM1147-2至1147-4的脏数据要素写入与存储了该脏数据要素的高速缓冲存储区域对应的、CM1147-1中的高速缓冲存储区域(图8B的虚线T2至T4)。例如将升级到CM1147-2中的高速缓冲存储区域#1的脏数据要素写入CM1147-1中的高速缓冲存储区域#1。
第二MP1141B-1,在关于传输来并写入CM1147-1的全部脏数据要素,完成合并·复原处理前,重复脏数据要素的合并·复原处理(S1710,否;以及S1711)。此外,在脏数据要素的合并·复原处理中,例如进行下述处理。
·DKC模块1从管理信息群的第一管理信息201A(参照图6)中参照各高速缓冲存储区域(例如区段)的拷贝源信息以及拷贝目的地信息(管理信息群已经通过图17的S1704被升级到DKC模块1的CM)。
·DKC模块1根据上述拷贝目的地信息/拷贝源信息,对各DKC模块2、3和4发布将拷贝目的地的高速缓冲存储区域的数据要素拷贝到拷贝源DKC模块1的CM的作业(拷贝数据要素来还原的目的地(高速缓冲存储地址)与拷贝源的高速缓冲存储地址可以不同)。
·将上述作业的管理信息存储在DKC模块1的管理信息群的第二管理信息201B中(参照图6A),每当每个高速缓冲存储区域的拷贝处理完成时,更新管理信息群。
若脏数据要素的合并·复原处理完成(S1710,是),则第二MP1141B-1释放管理信息群200(S1712)。即,在从各DKC模块2、3和4的拷贝的作业全部完成的时刻(脏数据要素的合并·复原处理完成的时刻),全部释放与脏数据分割相关联的管理信息群中的信息(例如删除)。
此后,存储系统100成为就绪(ready)状态(可以开始接收I/O命令的状态)(S1713)。成为就绪状态例如是满足了以下全部条件的情况。
·完成了从SSD向CM的脏数据要素的升级处理。
·从CM-PK上的存储器读出结构信息(与存储系统100的结构相关的信息,例如表示哪个LDEV存在于哪个RAID组上等的信息),并已经升级到CM中。
·完成了MP-PK上的MP的加电(power on)处理(电源成为接通状态的情况下执行的处理(例如启动处理))。
·盘设备启动,成为了接收I/O的状态(即盘设备成为就绪状态)。
·在各结构要素以及结构要素间进行规定的诊断(例如执行诊断程序),未检测出错误地完成。
在图11的S1101中,当判断结果为在至少一个DKC模块2、3或4中达到第二规定比例以上时(S1101,否),第二MP1141B-1判断第一规定比例以上的DKC模块是否包含DKC模块1且有两个(S1102)。若判断结果不是两个(判断结果是3个或4个)(S1102,否),则由于脏数据要素的拷贝目的地DKC模块的数量成为1个或0个(例如DKC模块的数量为1时,拷贝目的地DKC模块113的CM1147中脏数据要素过多,无法期待后述的削减系统停机时间的效果),因此返回S1100。另一方面,若判断结果是两个(S1102,是),则第二MP1141B-1判断剩余的DKC模块113的CM1147的消耗比例是否均未达到第二规定比例(S1103)。若判断结果是至少一个CM1147的消耗比例在第二规定比例以上(S1103,否),则返回S1100。另一方面,若判断结果是哪个CM1147的消耗比例均未达到第二规定比例(S1103,是),则进入图18的S1801。即,S1801以后是在(情况B)时进行的处理。
在S1801中,第二MP1141B-x(和1141B-y)将CM1147-x(和1147-y)中的脏数据要素组均等地分割为两部分。在以下的说明中,和图4A的例子相同地设x=1,y=2。CM1147-1中的脏数据要素组被分割为以下的第一以及第二初始脏子组(初始脏子组A1’和A2’),CM1147-2中的脏数据要素组被分割为以下的第三以及第四初始脏子组(初始脏子组A3’和A4’)。
A1’:Dx-1(t)
A2’:Dx-2(t0)+ΔDx-2(t)
A3’:Dy-1(t)
A4’:Dy-2(t0)+ΔDy-2(t)
以下,如后所述构建了以DKC模块1为主、以任意DKC模块x’(x’=3)为从属的第一主从关系;和以DKC模块2为主、以任意DKC模块y’(y’=4)为从属的第二主从关系,而以第一主从关系中的处理为主进行说明,关于第二主从关系中的处理,附以括号进行辅助说明。
接下来,在S1802中,第二MP1141B-1将初始脏子组A1’和A2’分别分配给DKC模块1和3(第二MP1141B-2将初始脏子组A3’和A4’分别分配给DKC模块2和4)。分配的结果如图所示。以下,为了防止混同,将DKC模块1生成的管理信息群记载为“管理信息群200-1”,将DKC模块2生成的管理信息群记载为“管理信息群200-2”。
在S1803中,第二MP1141B-1(和1141B-2)将管理信息群200-1(和200-2)存储在CM1147-1(和1147-2)中。结果如图9A举例所示,成为在CM1147-1(和1147-2)中存储了两个初始脏子组和管理信息群200-1(和200-2)的状态。在该S1803的时刻,以DKC模块1为主、以DKC模块3为从属的第一主从关系;和以DKC模块2为主、以DKC模块4为从属的第二主从关系成立。具体而言,例如第二MP1141B-1向第二MP1141B-2通知以DKC模块2为主、使它的从属为DKC4,由此,第二MP1141B-1识别出以DKC模块2为主、它的从属为DKC模块4。
接下来,在图19的S1901中,第二MP1141B-1(和1141B-2)根据管理信息群200-1(和200-2),对作为从属的DKC模块3(和4)的第二MP1141B-3(和1141B-4)发送拷贝所分配的初始脏子组A2’(和A4’)的作业群(参照图9B)。
第二MP1141B-1(和1141B-2)根据作为从属的DKC模块3(和4)中的作业的执行,更新管理信息群200-1(和200-2)(S1902)。
第二MP1141B-1(和1141B-2)根据高速缓冲存储管理信息和更新后的管理信息群200-1(和200-2),判断在CM1147-1(和1147-2)中是否在第一规定比例以上积蓄了脏数据要素(S1903)。
在S1903中,当判断结果是未积蓄时(S1903,否),第二MP1141B-1(和1141B-2)命令其它第二MP1141B-3(和1141B-4)清除作业群,解除脏数据要素组的分割,释放管理信息群200-1(和200-2)(S1904)。此后,返回图11的S1100。
在S1903中,当判断结果是已积蓄时(S1903,是),第二MP1141B-1(和1141B-2)若未停电(S1905,否),则判断作为从属的DKC模块3(和4)中初始脏数据组A2’(和A4’)的拷贝是否完成(S1906)。若判断结果是DKC模块3(和4)中初始脏数据组A2’(和A4’)的拷贝已完成(S1906,是),则进入步骤1907。此外,在S1903中为“是”后,若停电(S1905,是)则进入图20的S2001(在后面说明S2001以后的处理)。
在S1907中,第二MP1141B-1(和1141B-2)将管理信息群200-1(和200-2)中的、构成CM1147-1(和1147-2)中存在的各初始脏子组A2’(和A4’)的脏数据要素所对应的备份需要与否,从表示需要备份的信息更新为表示不需要备份的信息。完成了拷贝的初始脏子组A2’(和A4’)特意不消除而残留在CM1147-1(和1147-2)中。
接着,在图21的S2101中,第二MP1141B-1(和1141B-2)根据各个作为从属的DKC模块3(和4)中的作业的执行,更新管理信息群200-1(和200-2),同时,在构建初始脏子组A2’(和A4’)后、或者从前一次的S2101到当前时刻t为止,还向作为从属的DKC模块3(和4)发布拷贝在CM1147-1(和1147-2)中存储的差分脏子组的作业,更新管理信息群,以便不需要对完成了拷贝的差分脏子组要素进行备份(参照图10A)。
第二MP1141B-1(和1141B-2)判断CM1147-1的消耗比例是否在1/4以上(S2102)。若CM1147-1(和1147-2)的消耗比例下降到未达到1/4(S2102中,否),则第二MP1141B-1(和1141B-2)将管理信息群200-1(和200-2)中的、与作为不需要备份而管理的脏数据要素对应的备份需要与否,更新为表示需要备份的信息(S2104)。然后,第二MP1141B-1(和1141B-2)命令第二MP1141B-3(1141B-4)清除作业群,解除脏数据要素组的分割,释放管理信息群200-1(和200-2)(S2105)。此后,返回图11的S1100。
在S2102中,当CM1147-1的消耗比例在1/4以上时,第二MP1141B-1(和1141B-2),若未停电(S2103,否)则返回S2101,若停电(S2103,是)则进入图23的S2301(在后面说明S2301以后的处理)。
如上所述,在不停电而继续通常运行的状态下,在(情况B)时适宜将CM1147-1(和1147-2)上的多个脏数据要素均等地分散于其它CM1147-3(和1147-4)。
在此,假定在初始脏子组的拷贝过程中(例如图19的S1905中为“是”时)、或者差分脏子组的拷贝过程中(例如图21的S2102的“是”时)引起了停电。以下,对各自的情况进行说明。
<初始脏子组的拷贝过程中的停电、以及从该停电的恢复(恢复供电)>
图19的S1905中为“是”时引起了停电,是指在管理信息群200-1(和200-2)中,将已拷贝的脏数据要素的备份需要与否更新为不需要备份前(S1907前)停电。因此,进行图20的S201以后的处理。
即,第二MP1141B-1(和1141B-2)通过参照管理信息群200-1(和200-2),确定存储了需要备份的脏数据要素的高速缓冲存储区域,将所确定的高速缓冲存储区域中的脏数据要素保存在SSD1151-1(和1152-1)中(S2001)。
在此,若恢复供电(S2002,是)则进行S2005,若不恢复供电(S2002,否)则在脏数据要素的保存完成以前(S2004,否)继续脏数据要素的保存。当全部脏数据要素的保存完成时(S2004,是),若恢复供电(S2004,是)则进入S2005,若不恢复供电(S2004,否)则进入S2006。
在S2006中,第二MP1141B-1(和1141B-2)判断来自与作为主的DKC模块1(和2)相对应的电源模块115内的电池118的放电电压(DC电压)是否在规定值以下。若在放电电压未达到规定值以下的期间恢复供电(S2006,否;以及S2004,是),则在CM1147-1(和1147-2)中通过来自电池118的供电而残留已保存的脏数据要素,因此第二MP1141B-1(和1141B-2)可以从SSD1151-1(和1151-2)释放已保存的脏数据要素(S2005)。
另一方面,在恢复供电之前放电电压达到规定值以下时(S2006,是),实质上不向CM1147-1(和1147-2)供电,因此脏数据要素从CM1147-1(和1147-2)丢失(S2007)。然后,若恢复供电(S2008,是)则进行图22的S2201。
即,第二MP1141B-1(和1141B-2)决定将管理信息群200-1(和200-2)从SSD1151-1(和1151-2)升级到CM1147-1(和1147-2)(S2201)。
另外,第二MP1141B-1(和1141B-2)决定将脏数据要素从SSD1151-1(和1151-2)升级到CM1147-1(和1147-2)(S2202)。
第二MP1141B-1(和1141B-2),在结束将管理信息群200-1(和200-2)读出到CM1147-1(和1147-2)之前,从SSD1151-1(和1151-2)读出构成管理信息群200-1(和200-2)的数据要素(S2203,否;以及S2204)。
若结束将管理信息群200-1(和200-2)读出到CM1147-1(和1147-2)(S2203,是),第二MP1141B-1(和1141B-2)在将已保存的全部脏数据要素升级到CM1147-1(和1147-2)之前,重复从SSD1151-1(和1151-2)读出脏数据要素、和将该脏数据要素写入CM1147-1(和1147-2)(S2205,否;以及S2206)。若全部脏数据要素的升级完成(S2205,是),则结束。
<差分脏子组的拷贝过程中的停电、以及从该停电的恢复(恢复供电)>
图21的S2102中为“是”时引起停电,是指在管理信息群200-1(和200-2)中,将已拷贝的脏数据要素的备份需要与否更新为不需要备份后(S1907后)停电。因此,进行图23的S2301以后的处理。
即,在各DKC模块1至4中,第二MP1141B-1至1141B-4通过参照管理信息群200-1(和200-2)或高速缓冲存储管理信息,确定存储了需要备份的脏数据要素的高速缓冲存储区域,将所确定的高速缓冲存储区域中的脏数据要素分别保存在SSD1151-1至1151-4中(S2301)。
在此,若恢复供电(S2302,是)则进行S2303,若不恢复供电(S2302,否)则在各DKC模块1至4中,在脏数据要素的保存完成前(S2304,否)继续脏数据要素的保存。当全部脏数据要素的保存完成时(S2304,是),作为从属的DKC模块3(和4)中的第二MP1141B-3(和1141B-4)向作为主的DKC模块1(和2)中的第二MP1141B-1(和1141B-2)通知全部脏数据要素的保存的完成。第二MP1141B-1(和1141-2)应答该完成报告,更新第二管理信息200-1(和200-2)(例如,将对应于拷贝的各脏数据要素的保存完成标志,从表示未完成的信息更新为表示完成的信息)。然后,若恢复供电(S2306,是)则进入S2303,若不恢复供电(S2306,否)则进入S2307。
在S2307中,在DKC模块1至4中,第二MP1141B-1至1141B-4判断来自与DKC模块1至4分别对应的电源模块115内的电池118的放电电压(DC电压)是否在规定值以下。若在放电电压未达到规定值以下的期间恢复供电(S2307,否;以及S2306,是),在CM1147-1至1147-4中通过来自电池118的供电而残留有已保存的脏数据要素,因此,第二MP1141B-1至1141B-4可以从SSD1151-1至1151-4释放已保存的脏数据要素(S2303)。
另一方面,在恢复供电前放电电压达到规定值以下时(S2307,是),实质上没有向CM1147-1至1147-4供电,因此脏数据要素从CM1147-1至1147-4丢失(S2308)。然后,若恢复供电(S2309中,是),则进行图24的S2401。
即,第二MP1141B-1(1141B-2)决定将管理信息群200-1(和200-2)从SSD1151-1(和1151-2)升级到CM1147-1(和1147-2)(S2401)。
另外,第二MP1141B-1至1141B-4决定将脏数据要素从SSD1151-1至1151-4还原到CM1147-1至1147-4(S2402)。
而且,第二MP1141B-3(和1141B-4)决定将已升级的脏数据要素从CM1147-3(和1147-4)传输至CM1147-1(和1147-2)(S2403)。
第二MP1141B-1(和1141B-2),在管理信息群200-1(和200-2)向CM1147-1(和1147-2)的升级完成前,将构成管理信息群200-1(和200-2)的数据要素从SSD1151-1(和1151-2)向CM1147-1(和1147-2)升级(S2404,否;S2404’),若该升级完成(S2404,是),则根据该管理信息群200-1(和200-2),决定从作为从属的DKC模块3(和4)传输来的脏数据要素的合并·复原处理(S2405)。
第二MP1141B-1至1141B-4,在完成将已保存的全部脏数据要素升级到CM1147-1至1147-4前,重复从SSD1151-1至1151-4读出脏数据要素、和将该脏数据要素写入CM1147-1至1147-4(S2406,否;以及S2407)。若全部脏数据要素的升级完成(S2406,是)则进行S2408。此外,在S2407中,将从SSD1151-1至1154-1读出的脏数据要素分别升级到根据该脏数据要素确定的保存源的高速缓冲存储区域(图10B的虚线R1’至R4’)。
第二MP1141B-3(和1141B-4),在将已升级的全部脏数据要素从CM1147-3(1147-4)传输至DKC模块1(和2)之前(图10B的虚线T1’和T2’),重复来自CM1147-3(和1147-4)的脏数据要素的传输(S2408,否;以及S2409)。若全部脏数据要素的传输完成(S2408,是),则进行S2410。
第二MP1141B-1(和1141B-2),在针对传输来并写入CM1147-1(和1147-2)的全部脏数据要素完成合并·复原处理之前,重复脏数据要素的合并·复原处理(S2410,否;以及S2411)。
若脏数据要素的合并·复原处理完成(S2410,是),则第二MP1141B-1(和1141B-2)释放管理信息群200-1(和200-2)(S2412)。
然后,存储系统100成为就绪(ready)状态(可以开始接收I/O命令的状态)(S2413)。
以上,根据上述实施方式可以期待以下4个效果。
(效果1)削减电池的电力容量和大小,
(效果2)缩短系统停机时间,
(效果3)降低存储系统的成本以及有效利用硬件资源,
(效果4)提高耐故障性。
以下,对各效果进行详细描述。
<(效果1)削减电池的电力容量和大小>
在各DKC模块113间,在CM1147的脏数据要素的总量中存在不均衡时(例如在一个或两个DKC模块113中在第一规定比例以上积蓄了脏数据的情况等),根据上述实施方式,将脏数据要素组分割为脏子组,拷贝到其它DKC模块113的CM1147。因此可以缩短通过来自电池118的供电而进行的备份所需的时间长度(将CM1147上的脏数据要素向SSD1151保存的时间长度)。从而可以削减备份所需的电力容量,可以期待削减电池118的大小。例如在DKC模块1的CM1147-1中存储了20MB(兆字节)的脏数据要素组、在其它CM1147-2至1147-4中全部未存储脏数据要素的情况下,将CM1147-1上的脏数据要素组分割为每个5MB的4个脏子组,将其中的3个拷贝到CM1147-2至1147-4。将CM1147-1至1147-4中存储的5MB的脏子组保存在SSD1151-1至1151-4中。因此,从CM1147-1保存到SSD1151-1的数据量从20MB减少到5MB,即成为约1/4(另外,在此除去了管理信息群200的大小)。这与图5A举例所示的分割脏数据要素组而不拷贝的情况相比,在分割脏数据要素组来拷贝的情况下,如图5B举例所示那样,通过来自电池118的供电进行的备份的时间长度成为约1/4。这意味着电池118中所需的电力容量成为约1/4,另外意味着可以按此比例削减电池大小。
<(效果2)缩短系统停机时间>
如前所述,备份对象数据量成为约1/4,所以还原(restore)所需的数据量也成为约1/4,因此可以缩短恢复时间长度,从而可以缩短系统停机时间。例如在所述(情况A)中,考虑向SSD1151的保存(备份)完成后恢复供电的情况。向SSD1151的保存完成后,当恢复供电时,各DKC模块1至4从各个SSD1151-1至1151-4向各个CM1147-1至1147-4升级脏数据要素。另外,进行从作为从属的DKC模块2至4向作为主的(拷贝源的)DKC模块1的脏数据要素的传输。在DKC模块1的SSD1151-1中存储了使脏数据要素拷贝至其它DKC模块时所生成的管理信息群200,DKC模块1使该管理信息群200优先地升级到CM1147-1上。在DKC模块1中,在该管理信息群200的升级完成的时刻,DKC模块1开始合并从作为从属的DKC模块2至4传输来的脏数据要素,DKC模块1根据管理信息群进行脏数据要素的复原处理。在完成DKC模块1中的脏数据要素的复原处理的时刻,存储系统100成为可以从主计算机1100接收I/O命令的状态(就绪状态)。根据这样情况,从DKC模块1中的SSD1151-1向CM1147-1的升级的时间长度,与将脏数据要素组保存在一个SSD1151-1的情况(图5A的情况)相比,如图5B所示成为约1/4。因此,可以使从恢复供电时刻到系统就绪时刻(存储系统100成为就绪状态的时刻)的时间缩短为1/4。此外,与从作为从属的DKC模块和作为主的DKC模块中的SSD1151向CM1147的脏数据要素的升级并行地,进行从作为从属的DKC模块向作为主的DKC模块的脏数据要素的传输,与从SSD1151-1向CM1147-1的数据传输速度相比,DKC模块间的数据传输速度极快,因此,即使忽略该时间也没问题。
<(效果3)降低存储系统的成本以及有效利用硬件资源>
一般的存储系统的控制器如图1A以及图2中举例说明的那样被分割为多个DKC模块。这对于存储系统100的用户而言,降低了存储系统100的导入成本、以及有效利用硬件资源。具体而言,例如一般在用户要导入存储系统时,在导入时相对于用户希望的规模,存在存储系统的规模过大的情况。在这种情况下,用户对导入时不需要的硬件资源就会支付多余的成本。根据本实施方式,变成了可以根据用户的需要(业务规模的扩大等)来追加DKC模块的结构,对于用户而言,可以降低导入成本并能有效利用硬件资源。
<(效果4)提高耐故障性>
存储系统的控制器被分割为多个DKC模块,因此可以期待耐故障性的提高。一般在一个存储系统中,控制器及其电源成为具有冗余性的结构,但在本实施方式中,控制器被进一步分割为多个DKC模块,因此限定了故障时的影响范围。即可以减小影响。具体而言,例如可以使用DKC模块对于对象LDEV或其它DKC模块下属的LDEV进行数据的写入或读出。因此,例如即使在某DKC模块下属的全部LDEV已经闭塞的情况下,也可以将写数据暂时存储在其它DKC模块下属的LDEV中。另外,即使在某DKC模块内的MP-PK1137全部闭塞的情况下,也可以由其它DKC模块的MP-PK1137内的MP1141A或1141B代替执行作业。
以上,说明了本发明的几个实施方式,但它们是用于说明本发明的示例,不表示将本发明的范围仅限定于这些实施方式。本发明也可以通过其它种种的方式来实施。
例如,第二MP1141B进行DKC模块113间的脏数据要素的拷贝、从CM1147向SSD1151的脏数据要素的备份、从SSD1151向CM1147的脏数据要素的升级等,但这些中的至少一个处理也可以由第一MP1141A单独或与第二MP11141B协同工作来进行。
另外,例如,相对于一个作为主的DKC模块,当作为从属的DKC模块的数量为k(k是2以上的整数)时,作为所述第一规定比例与第二规定比例的关系,可以是(第一规定比例×1/k)和第二规定比例的和不超过第一规定比例的范围。例如,当作为主的DKC模块的CM中的脏数据量是CM的容量(Dmax)×第一规定比例时,作为从属的DKC模块的脏数据量成为D0(当前的脏数据量)+Dmax×第一规定比例×1/k,其未超过Dmax×第一规定比例,因此,以下关系式即(D0+Dmax×第一规定比例×1/k)<Dmax×第一规定比例成立,第二规定比例可以为未达到D0/Dmax的值。
Claims (7)
1.一种存储系统,其特征在于,
具备:
接收从上位装置发送的I/O命令的多个控制模块;
存储遵从来自所述上位装置的I/O命令的数据的多个存储设备;以及
作为所述多个存储设备或其它种类的非易失性存储设备的非易失性存储资源,
各控制模块具有高速缓冲存储器和控制单元,所述控制单元,将遵从来自所述上位装置的I/O命令的数据写入所述高速缓冲存储器,将写入了所述高速缓冲存储器的数据写入所述多个存储设备中的至少一个,或者将该数据发送至所述上位装置,
所述多个控制模块中的第一控制模块内的第一控制单元,命令所述多个控制模块中的第二控制模块内的第二控制单元,对所述第一控制模块内的第一高速缓冲存储器中存储的、尚未写入存储设备的多个脏数据要素中的一个以上的脏数据要素进行拷贝,
所述第二控制单元对所述拷贝命令进行应答,在所述第二控制模块内的第二高速缓冲存储器中写入所述一个以上的脏数据要素,将该一个以上的脏数据要素从所述第二高速缓冲存储器备份至所述非易失性存储资源,
所述第一控制单元,将所述多个脏数据要素中完成了拷贝的所述一个以上的脏数据要素以外的脏数据要素,从所述第一高速缓冲存储器备份至所述非易失性存储资源,
所述存储系统还具备作为所述多个控制模块各自的电源的多个电源模块,
所述第二控制模块的数量在所述第一控制模块的数量以上,对应于一个第一控制模块,有一个以上的第二控制模块,
所述非易失性存储资源是所述多个控制模块各自具有的多个非易失性存储器模块,
所述各控制模块还具备将所述高速缓冲存储器和所述控制单元可通信地连接的连接单元,
通过连接单元彼此的连接,将控制模块彼此连接,
各电源模块包含电池和主电源,
所述主电源向所述高速缓冲存储器以及所述控制单元供电,当没有来自所述主电源的供电时,所述电池向所述高速缓冲存储器以及所述控制单元供电,
所述第一控制单元,在有来自所述主电源的供电的期间从所述上位装置接收I/O命令,当接收到的I/O命令是写命令时,将遵从写命令的数据要素写入所述第一高速缓冲存储器,生成表示将所述第一高速缓冲存储器的哪个高速缓冲存储区域中的脏数据要素拷贝到了哪个控制模块的管理信息,并写入所述第一高速缓冲存储器,将所述多个脏数据要素中的一个以上的脏数据要素的拷贝命令,经由包含所述第一控制模块具有的第一连接单元和所述第二控制模块具有的第二连接单元在内的两个以上的连接单元,发送至所述第二控制单元后,由于将遵从一个以上的写命令的多个数据要素写入所述第一高速缓冲存储器而在所述第一高速缓冲存储器中存在新的多个脏数据要素时,还将所述新的多个脏数据要素中的一个以上的脏数据要素的拷贝命令,经由所述两个以上的连接单元发送至所述第二控制单元,根据脏数据要素的拷贝的完成,更新所述管理信息,
所述第二控制单元,在没有来自所述主电源的供电、而接受来自所述电池的供电的期间,将写入到所述第二高速缓冲存储器的脏数据要素备份到所述第二控制模块所具备的第二所述非易失性存储器模块,当再次开始供电时,从所述第二非易失性存储器模块向所述第二高速缓冲存储器升级脏数据要素,与之并行地经由所述两个以上的连接单元向所述第一控制单元发送已升级的脏数据要素的拷贝命令,
所述第一控制单元,在没有来自所述主电源的供电、而接受来自所述电池的供电的期间,将完成了拷贝的所述一个以上的脏数据要素以外的脏数据要素和所述管理信息,从所述第一高速缓冲存储器备份到所述第一控制模块所具备的第一所述非易失性存储器模块,当再次开始供电时,从所述第一非易失性存储器模块向所述第一高速缓冲存储器升级所述管理信息和脏数据要素,并且对所述拷贝命令进行应答,将已升级到所述第二高速缓冲存储器中的脏数据要素写入所述第一高速缓冲存储器。
2.根据权利要求1所述的存储系统,其特征在于,
具有消耗比例在第一规定比例以上的高速缓冲存储器的控制模块成为所述第一控制模块,所述消耗比例是脏数据要素的总量相对于高速缓冲存储器的存储容量的比例,
具有所述消耗比例未达到第二规定比例的高速缓冲存储器的控制模块成为所述第二控制模块。
3.根据权利要求1所述的存储系统,其特征在于,
所述第一控制单元,当从所述上位装置接收到写命令时,若所述第一高速缓冲存储器的消耗比例在第三规定比例以上,则将遵从该写指令的一个以上的数据要素,经由包含其它控制模块内的连接单元和所述第一连接单元在内的两个以上的连接单元,发送至所述其它控制模块,所述其它控制模块内的其它控制单元将该一个以上的数据要素写入所述其它控制模块内的高速缓冲存储器。
4.根据权利要求1所述的存储系统,其特征在于,
将所述多个存储设备中的各两个以上的存储设备分配给各控制模块,
基于所述各两个以上的存储设备形成各逻辑卷,各逻辑卷是所述各控制模块所负责的逻辑卷,
所述第一控制单元,当从所述上位装置接收到写命令时,若由该写命令所指定的自身的负责逻辑卷的空闲状况比规定的状况差,则将遵从该写命令的一个以上的数据要素,经由包含其它控制模块内的连接单元和所述第一连接单元在内的两个以上的连接单元,发送至所述其它控制模块,所述其它控制模块内的其它控制单元,将该一个以上的数据要素写入所述其它控制模块内的高速缓冲存储器,将写入到该高速缓冲存储器的一个以上的数据要素写入所述其它控制模块的负责逻辑卷。
5.根据权利要求1所述的存储系统,其特征在于,
所述第一控制单元,根据所述第一控制模块的数量和对于该第一控制模块的一个以上的第二控制模块的数量的总和,将所述多个脏数据要素均等分割。
6.一种对存储在高速缓冲存储器中的数据进行备份的方法,其是在将来自上位装置的数据暂时保存在高速缓冲存储器后,在将该数据写入存储设备的存储系统中进行的、对存储在高速缓冲存储器中的数据进行备份的方法,其特征在于,
将分别具备多个高速缓冲存储器的多个控制模块中的第一控制模块内的第一高速缓冲存储器中存储的、尚未写入存储设备的多个脏数据要素中的一个以上的脏数据要素,拷贝到所述多个控制模块中的第二控制模块内的第二高速缓冲存储器,
从所述第二高速缓冲存储器,向作为存储设备或其它种类的非易失性存储设备的所述非易失性存储资源备份所述一个以上的脏数据要素,
将所述多个脏数据要素中完成了拷贝的所述一个以上的脏数据要素以外的脏数据要素,从所述第一高速缓冲存储器备份到所述非易失性存储资源,
其中,在有来自主电源的供电的期间,将所述一个以上的脏数据要素拷贝到所述第二高速缓冲存储器,在没有来自所述主电源的供电、而接收来自电池的供电时,将完成了拷贝的所述一个以上的脏数据要素以外的脏数据要素,从所述第一高速缓冲存储器备份到所述非易失性存储资源,并且将完成了拷贝的一个以上的脏数据要素从所述第二高速缓冲存储器备份到所述非易失性存储资源,
在所述电池耗尽后,若再次开始供电,则进行:从所述非易失性存储资源向所述第一高速缓冲存储器升级脏数据要素;以及从所述非易失性存储资源向所述第二高速缓冲存储器升级脏数据要素,并与之并行地将该脏数据要素从所述第二高速缓冲存储器拷贝到所述第一高速缓冲存储器,
所述第一控制模块,生成表示将所述第一高速缓冲存储器的哪个高速缓冲存储区域中的脏数据要素拷贝到了哪个控制模块的高速缓冲存储器的管理信息,并写入所述第一高速缓冲存储器,根据脏数据要素的拷贝的完成,更新所述管理信息,当进行备份时,除脏数据要素以外还将所述管理信息从所述第一高速缓冲存储器备份到所述非易失性存储资源,当再次开始供电时,除脏数据要素以外还将所述管理信息从所述非易失性存储资源升级到所述第一高速缓冲存储器。
7.根据权利要求6所述的方法,其特征在于,
根据所述第一控制模块的数量和对于该第一控制模块的一个以上的第二控制模块的数量的总和,将所述多个脏数据要素均等分割。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007216019 | 2007-08-22 | ||
JP2007-216019 | 2007-08-22 | ||
JP2007216019A JP4977554B2 (ja) | 2007-08-22 | 2007-08-22 | キャッシュメモリ上のデータをバックアップする機能を備えたストレージシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101373417A CN101373417A (zh) | 2009-02-25 |
CN101373417B true CN101373417B (zh) | 2010-12-29 |
Family
ID=40289410
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008100986299A Expired - Fee Related CN101373417B (zh) | 2007-08-22 | 2008-06-03 | 具备备份高速缓冲存储器上的数据的功能的存储系统 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8261032B2 (zh) |
EP (1) | EP2040168B1 (zh) |
JP (1) | JP4977554B2 (zh) |
CN (1) | CN101373417B (zh) |
DE (1) | DE602008001470D1 (zh) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090282194A1 (en) * | 2008-05-07 | 2009-11-12 | Masashi Nagashima | Removable storage accelerator device |
JP4952679B2 (ja) * | 2008-07-31 | 2012-06-13 | 富士通株式会社 | ストレージ管理方法、ストレージ制御装置及びストレージシステム |
US8826351B2 (en) * | 2008-09-11 | 2014-09-02 | At&T Intellectual Property I, Lp | System and method for managing storage capacity on a digital video recorder |
US8499120B2 (en) * | 2008-10-17 | 2013-07-30 | Seagate Technology Llc | User selectable caching management |
US8566507B2 (en) | 2009-04-08 | 2013-10-22 | Google Inc. | Data storage device capable of recognizing and controlling multiple types of memory chips |
US8595572B2 (en) | 2009-04-08 | 2013-11-26 | Google Inc. | Data storage device with metadata command |
US8255365B2 (en) * | 2009-06-08 | 2012-08-28 | Symantec Corporation | Source classification for performing deduplication in a backup operation |
JP2011070365A (ja) | 2009-09-25 | 2011-04-07 | Toshiba Corp | メモリシステム |
US8327069B2 (en) | 2009-12-08 | 2012-12-04 | Hitachi, Ltd. | Storage system and storage control apparatus provided with cache memory group including volatile memory and nonvolatile memory |
US8806134B2 (en) * | 2010-04-16 | 2014-08-12 | Pmc-Sierra Us, Inc. | Mirrored cache protection |
CN102063271B (zh) * | 2010-12-17 | 2014-08-13 | 曙光信息产业(北京)有限公司 | 一种磁盘外置Cache基于状态机的写回方法 |
US8972660B2 (en) | 2012-06-11 | 2015-03-03 | Hitachi, Ltd. | Disk subsystem and data restoration method |
JP5963228B2 (ja) | 2013-05-30 | 2016-08-03 | 株式会社日立製作所 | ストレージシステム及びデータバックアップ方法 |
US9304937B2 (en) * | 2013-10-23 | 2016-04-05 | Netapp Inc. | Atomic write operations for storage devices |
TWI718317B (zh) * | 2016-11-04 | 2021-02-11 | 南韓商三星電子股份有限公司 | 資料儲存裝置及資料處理系統 |
US10146688B2 (en) * | 2016-12-29 | 2018-12-04 | Intel Corporation | Safe write-back cache replicating only dirty data |
US10671494B1 (en) * | 2017-11-01 | 2020-06-02 | Pure Storage, Inc. | Consistent selection of replicated datasets during storage system recovery |
KR20200019420A (ko) * | 2018-08-14 | 2020-02-24 | 에스케이하이닉스 주식회사 | 입력데이터를 분산저장하기 위한 메모리 시스템 및 데이터 처리 시스템 |
CN114169017B (zh) * | 2020-09-11 | 2024-09-10 | Oppo广东移动通信有限公司 | 缓存数据块下电方法、装置及集成电路芯片 |
US20230030241A1 (en) * | 2021-07-29 | 2023-02-02 | International Business Machines Corporation | Intersystem processing employing buffer summary groups |
US12008413B2 (en) | 2021-07-29 | 2024-06-11 | International Business Machines Corporation | Vector processing employing buffer summary groups |
CN114006060B (zh) * | 2021-10-29 | 2023-07-07 | 蜂巢能源科技(无锡)有限公司 | 一种储能电池管理系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1573705A (zh) * | 2003-05-28 | 2005-02-02 | 国际商业机器公司 | 存储控制器及数据存储方法 |
EP1705574A2 (en) * | 2005-03-21 | 2006-09-27 | Sun Microsystems, Inc. | Non-volatile backup for data cache |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2256735B (en) | 1991-06-12 | 1995-06-21 | Intel Corp | Non-volatile disk cache |
WO1993018461A1 (en) * | 1992-03-09 | 1993-09-16 | Auspex Systems, Inc. | High-performance non-volatile ram protected write cache accelerator system |
JP3239669B2 (ja) * | 1995-02-20 | 2001-12-17 | 株式会社日立製作所 | 記憶制御装置及びその制御方法 |
JPH09244954A (ja) * | 1996-03-11 | 1997-09-19 | Toshiba Corp | 情報記憶装置 |
US6513097B1 (en) * | 1999-03-03 | 2003-01-28 | International Business Machines Corporation | Method and system for maintaining information about modified data in cache in a storage system for use during a system failure |
JP2002099390A (ja) | 2000-09-22 | 2002-04-05 | Toshiba Corp | ディスク制御装置 |
JP2003099384A (ja) * | 2001-09-20 | 2003-04-04 | Nec Corp | 負荷分散システム、負荷分散システムのホストコンピュータ、及び負荷分散プログラム |
JP4147198B2 (ja) * | 2004-03-23 | 2008-09-10 | 株式会社日立製作所 | ストレージシステム |
JP2005004791A (ja) * | 2004-08-23 | 2005-01-06 | Hitachi Ltd | ディスク制御装置 |
JP4662550B2 (ja) * | 2005-10-20 | 2011-03-30 | 株式会社日立製作所 | ストレージシステム |
ATE406926T1 (de) | 2006-02-14 | 2008-09-15 | Gerresheimer Buende Gmbh | Verfahren zum herstellen von vorfüllbaren spritzen |
-
2007
- 2007-08-22 JP JP2007216019A patent/JP4977554B2/ja not_active Expired - Fee Related
-
2008
- 2008-02-05 US US12/068,321 patent/US8261032B2/en not_active Expired - Fee Related
- 2008-04-17 EP EP08251452A patent/EP2040168B1/en not_active Not-in-force
- 2008-04-17 DE DE602008001470T patent/DE602008001470D1/de active Active
- 2008-06-03 CN CN2008100986299A patent/CN101373417B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1573705A (zh) * | 2003-05-28 | 2005-02-02 | 国际商业机器公司 | 存储控制器及数据存储方法 |
EP1705574A2 (en) * | 2005-03-21 | 2006-09-27 | Sun Microsystems, Inc. | Non-volatile backup for data cache |
Also Published As
Publication number | Publication date |
---|---|
US8261032B2 (en) | 2012-09-04 |
EP2040168B1 (en) | 2010-06-09 |
JP4977554B2 (ja) | 2012-07-18 |
CN101373417A (zh) | 2009-02-25 |
EP2040168A3 (en) | 2009-08-05 |
JP2009048544A (ja) | 2009-03-05 |
DE602008001470D1 (de) | 2010-07-22 |
EP2040168A2 (en) | 2009-03-25 |
US20090055590A1 (en) | 2009-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101373417B (zh) | 具备备份高速缓冲存储器上的数据的功能的存储系统 | |
CN105739924B (zh) | 基于缓存集群的缓存方法和系统 | |
CN102197372B (zh) | 已分区的、可缩放的、并且可用的结构化存储中的分区管理 | |
CN101258493B (zh) | 用于在顺序存取数据存储子系统中执行搜索操作的系统和方法 | |
CN104956327B (zh) | 计算机系统及计算机系统控制方法 | |
CN102209953B (zh) | 压缩和存储数据元素的存储系统和存储控制方法 | |
CN102959498B (zh) | 包括向外扩展型存储系统的存储系统群及其管理方法 | |
CN103761190B (zh) | 数据处理方法及装置 | |
CN101556529B (zh) | 具有多个存储系统模块的存储系统 | |
WO2010064280A1 (en) | Storage system having volatile memory and non-volatile memory | |
WO2011104741A1 (en) | Management system for storage system and method for managing storage system | |
CN102414673A (zh) | 智能的备份数据分层 | |
WO2011045831A1 (en) | Storage apparatus and its control method | |
JP5286192B2 (ja) | ストレージシステムの容量を管理する管理計算機及びストレージシステムの容量管理方法 | |
CN101566931A (zh) | 虚拟磁盘驱动系统和方法 | |
CN105324757A (zh) | 具有分布式清单的去复制的数据存储系统 | |
JP6097845B2 (ja) | 不揮発性キャッシュメモリにデータをバックアップするストレージシステム | |
CN102508789A (zh) | 一种系统分级存储的方法 | |
CN101986276B (zh) | 文件存储方法、文件恢复方法、系统及服务器 | |
CN104956311A (zh) | 存储系统以及存储控制方法 | |
JP2014056445A (ja) | ストレージ装置、ストレージ制御プログラムおよびストレージ制御方法 | |
CN104011717A (zh) | 对数据存储备份的数据选择 | |
CN101313279A (zh) | 一种在数据存储器中用于时间线压缩的技术 | |
CN101025674A (zh) | 存储系统 | |
EP1561166A2 (en) | File-update apparatus |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20101229 |